基于FPGA的VGA和HDMI视频拼接系统设计 下载本文

内容发布更新时间 : 2024/5/23 2:31:50星期一 下面是文章的全部内容请认真阅读。

谢 辞

历时将近几个月的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。

首先最应该感谢的是我的同学,由于我的基础比较差,所以总是请教他们,但他们还是耐心的教我。还有我的舍友,在他的帮助之下,我的电路图才能完工。班上的同学还指导我修改论文。如果没有他们的帮助和支持,我将很难完成本次毕业设计。

岁月如梭,时间在不经意之间就流逝的七七八八,有时候真想问问时间去哪儿了,短暂的时间生活即将结束,在这四年的生活中我学习到了很多专业知识,受到了很多良师益友的教诲与鼓励,跟重要的是学会了如何独立的去解决某一些问题,如果让问题变的不是问题。

在这一次的毕业设计中,我意识到,之前所学的一切都是有用的,他是我们未来的铺垫,它带给我们解决很多问题的理论知识。这里,我先要感谢我们的学校,是她给予了我这样一个学习的平台,让我在这次辛勤的学过了四年,学习到了人生中一笔最为可贵的财富,为我出去社会打下了坚实的基础,再者,我要感谢那些曾经教过我的老师,使他们让我在学习各种专业知识的同时,也同样让我这迷惘的四年的,慢慢的树立目标,找到自我,明确了未来发展的道路。还有就是要感谢那些在我生活中帮助过我点点滴滴的朋友或是陌生人,你的当时的帮助,是我莫大的动力,是对我莫大的鼓舞,谢谢你们,谢谢大家。

之后,也是在这一次毕业设计中,最重要的一个人,我要感谢的是我的指导老师。整个毕业设计的过程,首先是论文题目制定时,他给予了明确题目,给了我前进的目标,让我在完成这个毕业设时有了具体方向。在论文提纲制定时,我本来没有什么方向,但是经过我的老师的帮助,让我在设计的过程中慢慢清晰思路。在完成初稿后,老师认真查看审阅了我的文章,指出了论文及作品中的些许不足,指导我修改等等。在此十分感谢黄老师老师的细心指导,才能让我顺利完成毕业论文。

28

顶层程序: module top( //sys input clk,

input sys_key0,

//i2c

input scl, inout sda, //vga

output vga_out_clk, output vga_out_hs, output vga_out_vs, output vga_out_de,

output[7:0] vga_out_rgb_b, output[7:0] vga_out_rgb_g, output[7:0] vga_out_rgb_r,

//hdmi

output hdmi_out_clk, output hdmi_out_hs, output hdmi_out_vs, output hdmi_out_de,

output[7:0] hdmi_out_rgb_b, output[7:0] hdmi_out_rgb_g, output[7:0] hdmi_out_rgb_r,

//cvbs in

input cvbs_in_clkp, input cvbs_in_clkn,

input[7:0] cvbs_in_data,

//cvbs out

output cvbs_out_clk,

output[7:0] cvbs_out_data, output cvbs_out_hs, output cvbs_out_vs, output cvbs_out_de,

//ddr

附录

29

output wire[0 : 0] mem_cs_n, output wire[0 : 0] mem_cke, output wire[12: 0] mem_addr, output wire[2 : 0] mem_ba, output wire mem_ras_n, output wire mem_cas_n, output wire mem_we_n,

inout wire[0 : 0] mem_clk, inout wire[0 : 0] mem_clk_n, output wire[3 : 0] mem_dm, inout wire[31: 0] mem_dq, inout wire[3 : 0] mem_dqs, output[0:0] mem_odt );

parameter H_ACTIVE = 16'd1024; parameter H_FP = 16'd24; parameter H_SYNC = 16'd136; parameter H_BP = 16'd160; parameter V_ACTIVE = 16'd768; parameter V_FP = 16'd3; parameter V_SYNC = 16'd6; parameter V_BP = 16'd29;

parameter H_TOTAL = H_ACTIVE + H_FP + H_SYNC + H_BP; parameter V_TOTAL = V_ACTIVE + V_FP + V_SYNC + V_BP;

parameter VCH_NUM = 5; parameter CH0 = 1; parameter CH1 = 2; parameter CH2 = 3; parameter CH3 = 4; parameter CH4 = 5; parameter CH5 = 6; parameter CH6 = 7; parameter CH7 = 8;

parameter MEM_DATA_BITS = 64; wire rst_n; wire phy_clk;

wire ch0_rd_burst_req;

wire[9:0] ch0_rd_burst_len; wire[23:0] ch0_rd_burst_addr;

30

wire ch0_rd_burst_data_valid; wire[63:0] ch0_rd_burst_data; wire ch0_rd_burst_finish;

wire ch0_wr_burst_req;

wire[9:0] ch0_wr_burst_len; wire[23:0] ch0_wr_burst_addr; wire ch0_wr_burst_data_req; wire[63:0] ch0_wr_burst_data; wire ch0_wr_burst_finish;

wire ch1_rd_burst_req;

wire[9:0] ch1_rd_burst_len; wire[23:0] ch1_rd_burst_addr; wire ch1_rd_burst_data_valid; wire[63:0] ch1_rd_burst_data; wire ch1_rd_burst_finish;

wire ch1_wr_burst_req;

wire[9:0] ch1_wr_burst_len; wire[23:0] ch1_wr_burst_addr; wire ch1_wr_burst_data_req; wire[63:0] ch1_wr_burst_data; wire ch1_wr_burst_finish;

wire ch2_rd_burst_req;

wire[9:0] ch2_rd_burst_len; wire[23:0] ch2_rd_burst_addr; wire ch2_rd_burst_data_valid; wire[63:0] ch2_rd_burst_data; wire ch2_rd_burst_finish;

wire ch2_wr_burst_req;

wire[9:0] ch2_wr_burst_len; wire[23:0] ch2_wr_burst_addr; wire ch2_wr_burst_data_req; wire[63:0] ch2_wr_burst_data; wire ch2_wr_burst_finish;

wire ch3_rd_burst_req;

wire[9:0] ch3_rd_burst_len; wire[23:0] ch3_rd_burst_addr; wire ch3_rd_burst_data_valid;

31

wire[63:0] ch3_rd_burst_data; wire ch3_rd_burst_finish;

wire ch3_wr_burst_req;

wire[9:0] ch3_wr_burst_len; wire[23:0] ch3_wr_burst_addr; wire ch3_wr_burst_data_req; wire[63:0] ch3_wr_burst_data; wire ch3_wr_burst_finish;

////////////////////////////////////////

wire[VCH_NUM - 1 : 0] is_pal;

assign cvbs_out_hs = 1'b1; assign cvbs_out_vs = 1'b1; assign cvbs_out_de = 1'b1; wire vga_out_clk_fpga;

assign vga_out_clk = ~vga_out_clk_fpga; assign hdmi_out_clk = vga_out_clk_fpga;

////////////////////////////////////////////// wire pll_27m; reset reset_m0( .clk(clk), .rst_n(rst_n) );

pll pll_m0(

.inclk0(clk),

.c0(vga_out_clk_fpga)); video_pll video_pll_m0( .inclk0(pll_27m), .c0());

///////////////////////////////////////////////////////////////// wire ch0_de; wire ch0_vs;

wire[15:0] ch0_yc_data; wire ch0_f;

wire ch1_de; wire ch1_vs;

wire[15:0] ch1_yc_data; wire ch1_f;

32