rs232_vga显示学习总结

        实验目标是由串口调试助手向FPGA传入图像数据,FPGA经vga接口在显示器中现实。

一、整体框图

        系统整体框图如图。由锁相环ip核产生vga显示所需要的25M时钟和串口所需要的50M时钟。串口接受的图像数据缓存到vga_pic的RAM中。RAM包含读写时钟,读写地址,读写数据端口。vga_pic、vga_ctrl根rom_vga类似。

二、新收获

        1.学习得到了RAM在缓存中的运用。

        2.其他模块的时钟也要由锁相环产生。视频中未细讲其中原因。由仿真波形看出,锁相环产生时钟有一定延时,推断为保证时钟同步,所以其他模块时钟也由锁相环产生。

三、过程中的问题

        实验与ROM_VGA类似,难度不大。调试过程中发现rx传出没有数据,检查rx传入波形,发现正确。以为和上次一样,tb中复位在rx下降沿后,结果又不是。继续检查,发现波特计数超过51还在计数(为加快仿真时间,每一位52个时钟)。检查代码,发现虽然uart_rx中波特的参数改了,但是顶层模块调用uart_rx时,参数传递的参数没有修改。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问题在哪?always @ (posedge clk or negedge rst_n) begin if(!rst_n) begin bps_start_r <= 1'bz;//波特率时钟启动信号 tx_en <= 1'b0; tx_data <= 1'b0; count <= 1'b0; end else if(start) begin //接收数据完毕,准备把接收到的数据发回去 bps_start_r <= 1'b1;//波特率时钟状态为1 case(count) 1'b00:begin tx_data <= data[2'd0]; count <= 1'b01; end 1'b01:begin tx_data <= data[2'd1]; count <= 1'b10; end 1'b10:begin//不做这个? tx_data <= data[2'd2]; count <= 1'b00; end default:count <= 1'b00; endcase tx_en <= 1'b1; //进入发送数据状态中 end else if(num==8'd11) begin //数据发送完成,复位 bps_start_r <= 1'b0; tx_en <= 1'b0; end end assign bps_start = bps_start_r; //--------------------------------------------------------- reg rs232_tx_r; always @ (posedge clk or negedge rst_n) begin if(!rst_n) begin num <= 8'd0; rs232_tx_r <= 1'b1; end else if(tx_en)//发送数据使能信号 begin if(clk_bps) begin num <= num+1'b1; case (num) 8'd0: rs232_tx_r <= 1'b0; //发送起始位 8'd1: rs232_tx_r <= tx_data[0] ; //发送第0bit 8'd2: rs232_tx_r <= tx_data[1] ; //发送第1bit 8'd3: rs232_tx_r <= tx_data[2] ; //发送第2bit 8'd4: rs232_tx_r <= tx_data[3] ; //发送第3bit 8'd5: rs232_tx_r <= tx_data[4] ; //发送第4bit 8'd6: rs232_tx_r <= tx_data[5] ; //发送第5bit 8'd7: rs232_tx_r <= tx_data[6] ; //发送第6bit 8'd8: rs232_tx_r <= tx_data[7] ; //发送第7bit 8'd9: rs232_tx_r <= 1'b1; //发送结束位 default: rs232_tx_r <= 1'b1; endcase end else if(num==8'd11) num <= 8'd0; //复位 end end assign rs232_tx = rs232_tx_r;
05-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值