FPGA——SDRAM+UART

设计要求:通过UART串口向sdram中写入突发长度个数据后读出并通过串口显示。
FPGA——SDRAM+UART_第1张图片
串口接收模块的使能信号uart_rx_en受初始化完成信号sdr_init_done控制,只有sdram初始化完成后,才可以对写fifo进行写操作。uart_rx_en=1后,串口接收模块接收从pc端发送的数据,接受完成后将rxd_flag拉高。
数据缓存模块的使能信号为rxd_flag,rxd_flag=1时,接收从串口接收模块发送过来的8bit数据并其拼成32bit数据,拼接完成后将done_flag拉高。
sdram控制模块的写fifo的使能信号wr_en= done_flag,当done_flag=1时,接收从数据缓存模块发送过来的32bit数据,当写FIFO写入的数据量超过突发长度后,sdr_wr_req=1,sdram进入写状态,写状态结束后,sdr_wr_done拉高;当外部读控制信号sdr_rd_valid=1且读FIFO中可供读取的数据量小于突发长度时,sdram进入读状态,将sdram中的数据写入读FIFO。
要实现上述设计将外部读控制信号sdr_rd_valid与sdr_wr_done相连,写状态结束就可以进行读状态。
串口发送模块的使能信号uart_tx_en由读FIFO中可供读取的数据量rdf_rduse决定,当rdf_rduse>0时,串口发送模块就可以进行向pc端发送数据了。
读FIFO的时钟要和串口发送模块的时钟进行匹配

你可能感兴趣的:(FPGA)