【学习笔记】用uart控制vga

        工程目的,用uart控制vga。(简单提升了一下上一个工程)

        功能: 当输入A时才能开启数据往vga的ram中传输数据,并且uart不能控制vga开关状态。当计数到数据量最大值时,uart才能正常控制vga开关状态。当输入B时,将vga开启,正常显示(当先输入B再输入A一边更新vga图像数据一边图像显示)。当输入C时,将vga关闭。(A、B和C为16位数据)
              总体框图:(实际编写全部模块放顶层模块,这样画只是为了方便观看)

 

module uart_ctrl_vga(
	input		wire	clk_sys			,
	input		wire	rst_n_sys		,
	input		wire	rx					,	

	output	wire	[7:0]rgb		,
	output	wire	hsync			,
	output	wire	vsync			
);

//output uart_rx
	wire	[7:0]uart_po_data	;
	wire	uart_po_flag		;

//output ctrl
	wire	[15:0]	ram_addr	;
	wire	[7:0]	ctrl_po_data;
	wire	ctrl_po_flag		;
	wire	vga_on_off			;	

//output clk_divide
	wire	clk_vga				;

//output	vga_pic
	wire	[7:0]pix_data		;
	
//output	vga_ctrl			
	wire	[9:0]pix_x	;
	wire	[9:0]pix_y	;


uart_rx  uart_inst(
	.clk_sys			(clk_sys)	,
	.rst_n_sys		(rst_n_sys)	,
	.rx				(rx)			,
		
	.po_data	(uart_po_data),
	.po_flag			(uart_po_flag)
	);
	

ctrl		ctrl_inst(	
	.clk_sys				(clk_sys)		,
	.rst_n_sys			(rst_n_sys)		,
	.uart_po_data		(uart_po_data)	,
	.uart_po_flag		(uart_po_flag)	,
	
	.ram_addr			(ram_addr)		,
	.ctrl_po_data		(ctrl_po_data)	,
	.ctrl_po_flag		(ctrl_po_flag)	,
	.vga_on_off			(vga_on_off)	
);
	
clk_divide	clk_divide_inst(
	.clk_sys		(clk_sys),
	.rst_n_sys	(rst_n_sys),

	.clk_vga		(clk_vga)	

);
	

vga_pic	vga_pic_inst(
	.clk_vga		(clk_vga)		,
	.rst_n_sys	(rst_n_sys)		,
	.pix_x		(pix_x)			,
	.pix_y		(pix_y)			,
	.clk_sys		(clk_sys)		,
	.po_data		(ctrl_po_data)	,
	.po_flag		(ctrl_po_flag)	,
	.vga_on_off	(vga_on_off)	,
	.ram_addr	(ram_addr)		,

	.pix_data	(pix_data)	

);
	
vga_ctrl	vga_ctrl_inst(
	.clk_vga		(clk_vga)	,
	.rst_n_sys	(rst_n_sys)	,
	.pix_data	(pix_data)	,
	.vga_on_off
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值