1 概述在上一篇Xilinx AXI UART Lite IP核IP核深度解析-CSDN博客中我们对AXI_UART Lite IP核进行了介绍对内部的框架和寄存器也进行了详细的说明由于vivado自带的AXI_UARTLite的仿真例子太过于简洁不适合作为新手学习使用故我们使用AXI_VIP重新搭建AXI_UARTLite的仿真环境。2 环境搭建2.1 IP核配置说明我们新建block Design并搜索添加AXI UartLite的IP核IP核配置如下AXI 时钟频率设置为100MHz波特率设置为 115200bps有效数据bit设置为8bit。2.2 搭建测试环境我们使用AXI_VIPAXI_UARTLite的框架地址设置如下所示从AXI_VIP给AXI_UARTLite IP核写入配置和数据当检测到中断的时候再通过AXI_VIP读取数据即可。3 仿真3.1 UART发送仿真仿真激励如下清除TX FIFO和RX FIFO使能中断给0x04寄存器TX FIFO 写入0x87657321等待中断当检测到中断之后读取状态寄存器仿真结果如下我们可以看出发出的数据其实是0x21tx线上是 0 1000 0100 其中第一个0是起始位然后1000 0100 因为低位在前 所以其实应该是0010 0001 对应就是0x21那我们前面写入的不是0x8765_4321吗为什么只传输了0x21呢这是因为高位其实是保留位也就是无效的如果想要传输32bit的数据那么应该分为4笔传输即0x87 0x65 0x43 0x21故修改激励如下仿真结果如下可以看到32bit的数据均通过TX发出3.2 UART接收仿真仿真激励如下将UART的TX和RX相接即进行环回当收到中断以后判断状态寄存器的bit0是否为1RX Data Valid如果RX Data Valid拉高说明RX FIFO中有有效数据读取0x00寄存器RX FIFO寄存器仿真结果如下可以看到接收也是8bit有效的且与刚才写入的数据一致。4 总结通过上述仿真可以看出AXI_UARTLite IP核可以根据GUI界面的配置将AXI4Lite接口输入的数据转为符合协议和波特率的串行信号输出可以通过中断通知主机IP核的收发状态以及故障状态通过AXI4-Lite接口它可以轻松集成到处理器系统中并且提供了灵活的配置选项以满足不同应用需求。无论是作为调试接口还是与外部设备通信AXI UART Lite都是一个可靠的选择。