⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sender.v

📁 视频采集
💻 V
字号:
module sender(
	clk50m,
	rst,
	
	req,
	ack,
	data,
	dck,
	
	s_ram_rab,
	s_ram_rdb,
	s_req,
	s_ack,
	s_start,
	s_finish,
	
	vsin
	);

input	clk50m;
input	rst;

output	req;
output	data;
output	dck;
input	ack;

output	[12:0]	s_ram_rab;
output	s_req;
input	s_ram_rdb;
input	s_ack;
input	s_finish;
input	s_start;
input	vsin;

reg	vsin_reg,vsin_reg1,vsin_reg2;
reg	ack_reg;

always @ (posedge clk50m) begin
vsin_reg1 <= vsin;
vsin_reg2 <= vsin_reg1;
vsin_reg <= vsin_reg2;
ack_reg <= ack;
end

/*************************************************************************/	
reg	[11:0]	s_ram_rab_reg;
always @ (posedge clk50m or negedge rst)
if(!rst)
	s_ram_rab_reg <= 0;
else if(ack) begin
	if(s_ram_rab_reg == 'd2880)
		s_ram_rab_reg <= 0;
	else
		s_ram_rab_reg <= s_ram_rab_reg + 1;
	end
else if(!vsin_reg)
	s_ram_rab_reg <= 0;
	
reg	s_ram_rab_hbit;
always @ (posedge clk50m or negedge rst)
if(!rst)
	s_ram_rab_hbit <= 0;
else if(s_ram_rab_reg == 'd2880)
	s_ram_rab_hbit <= ~s_ram_rab_hbit;
else if(!vsin_reg)
	s_ram_rab_hbit <= 0;

wire	[12:0]	s_ram_rab = {s_ram_rab_hbit,s_ram_rab_reg};
	
reg	s_req;
always @ (posedge clk50m or negedge rst)
if(!rst)
	s_req <= 0;
else if((!vsin_reg & vsin_reg2) || s_ram_rab_reg == 'd10 && !s_finish)
	s_req <= 1;
else if(s_ack)
	s_req <= 0;

reg data;
always @ (posedge clk50m)
data <= s_ram_rdb;

wire dck = ack_reg?clk50m:'d1;

reg	req;
always @ (posedge clk50m or negedge rst)
if(!rst)
	req <= 0;
else if(s_start)
	req <= 1;
else if(s_finish && s_ram_rab == 'd6974)//'d6975
	req <= 0;
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -