您的位置:首页 > 科技 > IT业 > 串口rx + RAM + LCD

串口rx + RAM + LCD

2024/10/5 20:20:06 来源:https://blog.csdn.net/hhh123987_/article/details/139826916  浏览:    关键词:串口rx + RAM + LCD

REVIEW

昨天摸鱼怪发现高两位的数据写入or读出存在问题:

RAM + 串口的简单应用-CSDN博客

1.  今日摸鱼任务

UART_RX + RAM + LCD 来显示一下是  rx or tx 的问题

2.  代码部分

rx_ram_lcd.v

module rx_ram_lcd(input clk ,input reset_n ,input uart_rx ,output VGA_CLK,output VGA_HS, //TFT行同步信号output VGA_VS, //TFT场同步信号output VGA_BLK,        //VGA 场消隐信号output [23:0] VGA_RGB ,//TFT数据输出output TFT_BL  //背光);assign TFT_BL = 1; wire Clk33M;  assign VGA_CLK= Clk33M;  wire rx_done;wire [7:0]rx_data;reg [7:0]addra;reg [7:0]addrb;wire [7:0]doutb;wire key_flag;wire key_state;
//    wire tx_done;wire [11:0]hcount;wire [11:0]vcount;wire Data_Req;   //定义颜色编码localparam BLACK  = 16'h0000, //黑色WHITE  = 16'hFFFF; //白色localparam DOT = BLACK,  //点是黑色BACKGROUND = WHITE;  //背景白色wire R_all = vcount >= 0 && vcount < 480;  wire C_all = hcount >= 0 && hcount < 800; wire BR = R_all & C_all;//底色全为白色clk_33 vga_clk(.clk_out1(Clk33M),.clk_in1(clk)); ram ram_ (.clka(clk), // input wire clka.wea(rx_done), // input wire [0 : 0] wea.addra(addra), // input wire [7 : 0] addra.dina(rx_data), // input wire [7 : 0] dina.clkb(Clk33M), // input wire clkb.addrb(hcount<256?hcount:25), // input wire [7 : 0] addrb.doutb(doutb) // output wire [7 : 0] doutb);uartrx uart_rx_(. clk(clk) ,. reset_n(reset_n) ,. uart_rx(uart_rx) ,. rx_data(rx_data),. rx_done(rx_done)    );always@(posedge clk or negedge reset_n)if(!reset_n)addra <= 8'b0000_0000;else  if(rx_done)addra <= addra + 1'b1;reg [15:0]disp_data;          VGA_CTRL VGA_CTRL_(.clk(Clk33M),    //系统输入时钟25MHZ.reset_n(reset_n),.data(disp_data),    //待显示数据.data_req(Data_Req),.H_addr(hcount),    //VGA行扫描计数器.V_addr(vcount),   //VGA场扫描计数器.VGA_HS(VGA_HS),   //VGA行同步信号.VGA_VS(VGA_VS),   //VGA场同步信号.VGA_BLK(VGA_BLK), //VGA 场消隐信号.VGA_RGB(VGA_RGB)  //VGA数据输出);           wire dotline = (vcount == doutb) && hcount;     always@(*)case({BR,dotline})2'b10: disp_data = BACKGROUND;2'b11: disp_data = DOT;endcaseendmodule

.xdc

set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports reset_n]
set_property IOSTANDARD LVCMOS33 [get_ports uart_rx]
set_property PACKAGE_PIN U18 [get_ports clk]
set_property PACKAGE_PIN H20 [get_ports reset_n]
set_property PACKAGE_PIN K16 [get_ports uart_rx]set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]
set_property SEVERITY {Warning} [get_drc_checks UCIO-1]set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[23]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[22]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[21]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[20]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[19]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[18]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[17]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[16]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[15]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[14]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[13]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[12]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[11]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[10]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[9]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[8]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {VGA_RGB[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports VGA_BLK]
set_property IOSTANDARD LVCMOS33 [get_ports TFT_BL]
set_property IOSTANDARD LVCMOS33 [get_ports VGA_CLK]
set_property IOSTANDARD LVCMOS33 [get_ports VGA_HS]
set_property IOSTANDARD LVCMOS33 [get_ports VGA_VS]
set_property PACKAGE_PIN W20 [get_ports {VGA_RGB[23]}]
set_property PACKAGE_PIN W19 [get_ports {VGA_RGB[22]}]
set_property PACKAGE_PIN V17 [get_ports {VGA_RGB[21]}]
set_property PACKAGE_PIN V16 [get_ports {VGA_RGB[20]}]
set_property PACKAGE_PIN T15 [get_ports {VGA_RGB[19]}]
set_property PACKAGE_PIN V20 [get_ports {VGA_RGB[15]}]
set_property PACKAGE_PIN U17 [get_ports {VGA_RGB[14]}]
set_property PACKAGE_PIN V18 [get_ports {VGA_RGB[13]}]
set_property PACKAGE_PIN T16 [get_ports {VGA_RGB[12]}]
set_property PACKAGE_PIN R16 [get_ports {VGA_RGB[11]}]
set_property PACKAGE_PIN U19 [get_ports {VGA_RGB[10]}]
set_property PACKAGE_PIN Y19 [get_ports {VGA_RGB[7]}]
set_property PACKAGE_PIN Y18 [get_ports {VGA_RGB[5]}]
set_property PACKAGE_PIN W16 [get_ports {VGA_RGB[4]}]
set_property PACKAGE_PIN Y17 [get_ports {VGA_RGB[3]}]
set_property PACKAGE_PIN W14 [get_ports VGA_VS]
set_property PACKAGE_PIN U14 [get_ports VGA_HS]
set_property PACKAGE_PIN U15 [get_ports VGA_CLK]
set_property PACKAGE_PIN R17 [get_ports TFT_BL ]
set_property PACKAGE_PIN W15 [get_ports VGA_BLK]

3.  调试结果

串口写入 0x00~0x3F  、 0x40~0x4F   、   0x5F...0xFF

从上图可以看出,是rx数据读入存在问题,八位数据的高两位一直为0
摸鱼怪碎碎念:事已至此,先睡大觉

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com