//如果是8位的话,只选择低8位传输
//因为同步码也是可以自己设置,所以把同步码设置成parameter最好
module embeded_2_separate_sync(
input clk,
input [:] din,
output[:] dout,
output h_black_out,//包括同步码在内的Black
output v_black_out,//包括同步码在内的Black
output h_no_sync_black_out,//不包括同步码在内的Black
output h_sync_black_out,//只在4个同步码周期为高电平
output de_o,
output reg [:] line_cnt//计算行数 );
parameter VAL_SAV = 'h80;
parameter VAL_EAV = 'h9d;
parameter IVAL_SAV = 'hab;
parameter IVAL_EAV = 'hb6; parameter DATA_WIDTH = ;
reg [DATA_WIDTH-:] v_data [:] ; always @( posedge clk )
begin
v_data[] <= din;
end
genvar i ;
generate for( i = ;i <= ;i = i+ )
begin :data_dly
always@( posedge clk )begin
v_data[i+] <= v_data[i];
end
assign dout = v_data[]; end
endgenerate
wire [:] time_ref_code;
reg [:] time_ref_code_r = ;
assign time_ref_code[] = (v_data[][:] == 'hff ) ? 1'b1 : 'b0;
assign time_ref_code[] = (v_data[][:] == 'h00 ) ? 1'b1 : 'b0;
assign time_ref_code[] = (v_data[][:] == 'h00 ) ? 1'b1 : 'b0;
assign time_ref_code[] = (v_data[][:] ==VAL_SAV ) ?'b1 : 1'b0;
assign time_ref_code[] = (v_data[][:] ==VAL_EAV ) ?'b1 : 1'b0;
assign time_ref_code[] = (v_data[][:] ==IVAL_SAV) ?'b1 : 1'b0;
assign time_ref_code[] = (v_data[][:] ==IVAL_EAV) ?'b1 : 1'b0; always @( posedge clk )
begin
time_ref_code_r <= time_ref_code;
end // reg h_sync;
// reg v_sync;
reg h_sync_r = ;
reg v_sync_r = ;
always @( posedge clk )
begin
case(time_ref_code_r )
'h71 :begin h_sync_r = 1'b0; v_sync_r = 'b0; end
'h72 :begin h_sync_r = 1'b1; v_sync_r = 'b0; end
'h74 :begin h_sync_r = 1'b0; v_sync_r = 'b1; end
'h78 :begin h_sync_r = 1'b1; v_sync_r = 'b1; end
default : begin h_sync_r = h_sync_r; v_sync_r = v_sync_r; end
endcase
end reg [:] h_sync_dly = ;
reg [:] v_sync_dly = ;
always @( posedge clk )
begin
h_sync_dly[:] <= {h_sync_dly[:],h_sync_r};
v_sync_dly[:] <= {v_sync_dly[:],v_sync_r};
end reg [:] h_sync_r2 = 'b00;
reg [:] v_sync_r2 = 'b00;
always @( posedge clk )
begin
v_sync_r2[:] <= {v_sync_r2[],v_sync_r};
h_sync_r2[:] <= {h_sync_r2[],h_sync_r};
end
wire pos_h = (h_sync_r2 == 'b01);
wire pos_v = (v_sync_r2 == 'b01);
always @( posedge clk )
begin
if( pos_v )
line_cnt <= ;
else if( pos_h )
line_cnt <= line_cnt + 'b1;
else
line_cnt <= line_cnt;
end wire h_black ;
wire h_no_sync_black;
wire h_sync_black;
reg h_black_r = ;
reg v_black_r = ;
reg h_no_sync_black_r = ;
reg h_sync_black_r = ;
reg h_sync_orign_r = ;
reg de_r = ;
assign h_black = h_sync_r | h_sync_dly[] ;
assign h_no_sync_black = h_sync_r & h_sync_dly[] ;
assign h_sync_black = h_black^h_no_sync_black ;
always @( posedge clk )
begin
h_black_r <= h_black;
de_r <= v_sync_r ? :~h_black;
v_black_r <= v_sync_r;
h_no_sync_black_r <= h_no_sync_black;
h_sync_black_r <= h_sync_black;
h_sync_orign_r <= h_sync_r;
end assign h_black_out = h_black_r;
assign v_black_out = v_black_r;
assign h_no_sync_black_out = h_no_sync_black_r;
assign h_sync_black_out = h_sync_black_r;
assign de_o = de_r;
endmodule

embeded_2_separate_sync的更多相关文章

随机推荐

  1. Swift 错误记录

    最近几天开始学习Swift,作为一个从 OC 转到 Swift 的程序员,我一直以为很简单.但是现在学习一个星期之后,发现问题还是蛮多的! 最大的问题就是 太特么 不习惯了!!!!!!!!!! 好吧, ...

  2. centos7下的glusterfs的安装与使用

    环境说明: 两台虚拟主机,IP分别为192.168.1.222和192.168.1.233,分别装上glusterfs. 一.下载glusterfs源码包 https://download.glust ...

  3. 使用独立的log4net.config文件配置log4net,将日志记录到Mysql数据库【原创】

    开发环境: VS2013, Asp.Net MVC 4.0, .Net Framework 4.0, Log4net 1.2.13.0, Mysql.Data.dll,6.8.3.0 设置步骤: 1. ...

  4. BZOJ1093或洛谷2272 [ZJOI2007]最大半连通子图

    BZOJ原题链接 洛谷原题链接 和 Going from u to v or from v to u?(题解)这道题类似,只不过是求最大子图的大小和个数而已. 一样用\(tarjan\)求强连通分量, ...

  5. dell E6400笔记本 centos7 安装无线网卡

    1.下载  驱动:http://download.csdn.net/detail/nj4506/9752842 2.解压: make  make install 3.将wk.ko拷贝到 /lib/mo ...

  6. 论坛:设计实体-->分析功能-->实现功能 之 《分析功能》

    其中 管理文章 的功能没有做,以下做的设计 浏览与参与 功能的步骤 分析功能   5个功能.   7个请求. 实现功能   Action, 7个方法   Service   Dao   Jsp For ...

  7. [AI]神经网络章3 损失函数

    损失函数 作用 在有监督的学习中,需要衡量神经网络输出和所预期的输出之间的差异大小.这种误差函数需要能够反映出当前网络输出和实际结果之间一种量化之后的不一致程度,也就是说函数值越大,反映出模型预测的结 ...

  8. vue 浏览器页面刷新时执行一段代码

    当刷新(浏览器刷新)页面的时候,重置到首页(或其他页面)纯js的是window.onload()但是vue几乎不会用到这个,vue所有的是生命周期那么我们可以根据生命周期来实现这个beforeCrea ...

  9. python轻量级orm

    python下的orm使用SQLAlchemy比较多,用了一段时间感觉不顺手,主要问题是SQLAlchemy太重,所以自己写了一个orm,实现方式和netsharp类似,oql部分因为代码比较多,没有 ...

  10. 使用flask-alchemy 过程中报错KeyError: 'SQLALCHEMY_TRACK_MODIFICATIONS'

    在网上找了很多, 大多数说是必须要给 SQLALCHEMY_TRACK_MODIFICATIONS 一个默认值,尝试修改alchemy 源码,,但是还是不起作用 最后阅读源码 , self.app = ...