embeded_2_separate_sync
//如果是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的更多相关文章
随机推荐
- Union and Intersection of two sorted lists 并集和交集
跟面试官确认是arrayList还是singly-linked list /* Union 并集:两个升序的list a, b, 返回其并集(升序排序)*/ public class UnionTw ...
- Django xadmin后台添加富文本编辑器UEditor的用法
效果图: 步骤: 1.利用命令:pip install DjangoUeditor,安装DjangoUeditor,但由于DjangoUeditor没有python3版本的,从的Github上把修改好 ...
- RPM打包原理、示例、详解及备查( 转)
RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软件,所 ...
- httpclient的简单使用
1.通过get请求后台,注意tomcat的编码设置成utf-8; <Connector connectionTimeout="20000" port="808 ...
- python调试工具pdb
pdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++). 命令 简写命令 作用 break b 设置断点 continue c 继续执行程序 list l 查看当前行的代码段 step ...
- ajax添加header信息
$.ajax({url:"xxx",async:true,dataType:"json",contentType:"application/json& ...
- 认识Thymeleaf:简单表达式和标签 基础信息
转载:https://www.cnblogs.com/beyrl-blog/p/6633182.html 本文只适用于不会Java对HTML语言有基础的程序员们,是浏览了各大博客后收集整理,重新编辑的 ...
- 获取URL某个参数
/* 获取URL某个参数(可以是中文) * 返回:字符串 */ function getUrlParam(key) { // 获取参数 var url = window.location.search ...
- stl之容器、迭代器、算法几者之间的关系
转自:https://blog.csdn.net/bobodem/article/details/49386131 stl包括容器.迭代器和算法: 容器 用于管理一些相关的数据类型.每种容器都有它的优 ...
- Spring Boot 2.0(一):Spring Boot 2.0尝鲜-动态 Banner
Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜 Spring Boot 更换 Banner 我们先来回顾一下在 Spring Bo ...