![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FPGA
yx-1230
热爱运动
展开
-
UART串口verilog hdl实现(3)接收模块
波特率模块和发送模块都没问题以后,就可以开始编写接收模块的代码了。其中: I_clk是系统时钟; I_rst_n是系统复位; I_rx_start是开始发送信号,当I_rx_start一直为高电平时,接收模块检测到有数据就会接收; I_bps_rx_clk是接收模块波特率时钟信号,当检测到I_bps_rx_clk为高的时候就接收1个bit; I_rs232_rx是串行的bit...原创 2019-07-08 16:20:38 · 2098 阅读 · 1 评论 -
UART串口verilog hdl实现(4)串口回显功能的设计与实现
编写一个顶层模块把发送模块和接收模块均例化进去,然后从PC的串口调试助手上发送数据到FPGA,FPGA接收到数据以后把接收的数据返回给串口调试助手显示写一个顶层模块,把串口的发送模块与接收模块例化进去,把接收模块的接收完成标志位O_rx_done连接到发送模块的I_tx_start上,把接收模块的8-bit并行输出总线O_para_data连接到发送模块的8-bit并行输入总线I_para_da...原创 2019-07-08 16:49:59 · 1407 阅读 · 2 评论 -
UART串口verilog hdl实现(2)发送模块
有了波特率时钟以后,就可以开始编写发送模块的内部逻辑了。I_clk是系统时钟; I_rst_n是系统复位; I_tx_start是开始发送信号,当检测到I_tx_start为高电平时,立马把输入 I_para_data[7:0]的数据串行化成单bit的发出去; I_bps_tx_clk是发送模块波特率时钟信号,当检测到I_bps_tx_clk为高的时候就发送1个bit...原创 2019-07-08 13:01:06 · 1854 阅读 · 0 评论 -
UART串口verilog hdl实现(1)波特率产生模块
串口通信主要包括三个模块:波特率产生模块、发射模块和接收模块。本节以波特率为115200bps为例来说明波特率模块设计方法,其余波特率可以以此类推。由于我的开发板上的时钟为50MHz,周期T=20ns,而波特率为115200bps,所以1个bit持续的时间是8.7us,那么每个bit占用的周期数N=(8.7us / 20ns) = 434,所以可以定义一个计数器,每当计数器从0计数到433的时候...原创 2019-07-05 16:52:21 · 6157 阅读 · 2 评论 -
mealy状态机序列检测器设计
设计一个序列检测器。要求检测器连续收到串行码1110后,输出检测标志1,否则输出0。Mealy型状态机输出是由现状态和输入决定。状态机设计步骤:1.分析设计要求,列出全部可能状态;2.画出状态转移图;3.用Verilog hdl描述状态机,编写testbench验证。在这里插入代码片欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如...原创 2019-07-04 09:34:49 · 4909 阅读 · 0 评论 -
SPI总线verilog hdl实现(1)SPI通信
SPI总线传输只需要4根线就能完成,这四根线的作用分别如下: SCK(Serial Clock):SCK是串行时钟线,作用是Master向Slave传输时钟信号,控制数据交换的时机和速率; MOSI(Master Out Slave in):在SPI Master上也被称为Tx-channel,作用是SPI主机给SPI从机发送数据; CS/SS(Chip Select/Slave Se...原创 2019-07-09 14:42:06 · 3992 阅读 · 3 评论 -
vivado中使用ROM IP核
1.在project中选择IP Catalog在IP Catalog中选择---->Block Memory Generator------>RAMs&ROMs&BRAM-------->Block Memory Generator2.basic 选择Single Port ROM3.设置PORT A的宽度和深度具体根据coe文件而定4.Load ...原创 2019-07-10 10:12:43 · 5306 阅读 · 0 评论