- 博客(8)
- 收藏
- 关注
原创 FIFO的初步认识与简单实用
同步时钟(common clock) 和 异步时钟(Independent clock)这种接口将 FIFO 封装为一个AXI内存映射的IP核,可以通过AXI总线进行访问。这是最基本的FIFO接口,包括数据输入、输出端口、写使能、读使能等信号。2、添加设计文件(例化FIFO IP核)一、FIFO IP核的配置。7、生成FIFO IP 核。二、FIFO IP核的接口。三、FIFO IP核的调用。2、配置FIFO基本参数。3、配置fifo接口参数。1、新建FIFO IP。4、状态信号接口设置。
2023-08-17 15:03:00 232 1
原创 uart在FPGA中实现细则
1、时钟频率:UART 协议规定了通信双方的时钟频率必须相同,常见的频率包括 115200、57600、38400、19200、9600 等。6、软件驱动:在 FPGA 中实现 UART 通信时,需要编写相应的软件驱动程序,用于控制和管理 UART 的操作。4、缓存管理:在 FPGA 中实现 UART 通信时,通常需要使用 FIFO 缓存来存储发送和接收的数据。1、写入数据:当有数据需要写入 FIFO 时,将数据写入数据存储器中,并将写指针向前移动一位。下一章节我们将在一完成的uart项目中应用FIFO。
2023-05-14 20:53:48 267
原创 uart与PC间的通信
通过以上步骤我们完成了PC与FPGA的uart基本通信流程,通过总体设计、代码实现、软件仿真以保证我们实验的正确性。在之前章节我们已经完成了uart_ip的设计与具体实现,在本章节将学习使用串口助手对uart_ip上板实践。4.6.1、持续发送55,观察接收端情况。4.6.2、持续输入输出。4.2.1PLL例化。4.2.2、整体实现。4.6、串口助手调试。
2023-05-14 20:45:44 461
原创 uart_ip实现(uart_rx与uart_tx结合)
写在前面:在之前的部分我们已经完成了uart_rx与uart_tx的具体实现,并进行了相关仿真,结果也证明的逻辑与编码的正确性。在接下来的这部分,我们将结合之前的章节完成uart_ip的实现。
2023-05-14 19:51:09 218
原创 UART_FSM中RX端实现
1、随着tx模块中data_valid信号的拉高,data_temp作为中间变量将tx模块从总线上获得的数据data_in保存下来。与此同时,data_valid的拉高带动状态机的执行,从IDLE状态跳转至START。2、在TB测试模块中,tx模块中的sout与rx模块中的sin连接,随着sin的上升沿的到来,状态机开始跳转。状态跳转条件为计数器216.为了防止不稳定采样的发生,在计数器为108的时候进行采样并赋值给rx中的data_temp。3.3、仿真结果分析。
2023-05-10 16:52:37 137
原创 UART_FSM中TX端实现
在data_valid为真的时候,将data_inz保存到data_temp成功。同时,状态由0跳跃至1.此时counter开始计时(current!当1状态计时216时候,将data_temp[0]通过sout发送,对于H55来说,二进制即为01010101,发送1.复位100ns结束后,给data_in赋值8‘H55成功。综上所述,uart_tx模块暂无错误。当计时到216时,又发生状态跳转。1、uart_tx实现。1.3.1、状态转移图。1.2、输入输出描述。1.3.2、代码实现。
2023-05-09 20:23:58 148 2
原创 water_LED的状态机实现(FSM)
由于在测试中计时器为1us,如何继续使用1us计时器进行上板实现,那么流水灯变化太快,将会无法肉眼辨别,所以我们还需要修改计时器时间,再次修改为1s。时钟频率为25Mhz,周期是40ns,计时总个数就是1s/40ns,等于25,000,000,需要位宽设置为28,即[27:0]。通过仿真,可以看出:led_out相邻两次变化时间间隔为1000ns(即1us),完全符合我们计时器的设定。相对于第一篇文章,在本示例中主要变化是water_led模块,使用状态机的实现方式。5.1、修改计时器时间为1s。
2023-05-06 20:25:20 264
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人