[2]Vivado中异步FIFO的实现和使用
来源:互联网 发布:sql计算留存率算法 编辑:程序博客网 时间:2024/06/05 18:36
FIFO应用:
- 1、在千兆以太网数据写入,往DDR3里面写数据时候
- 2、AD采样时钟和内部时钟不同时,需要FIFO进行转换
- 3、同频异相时也需要用FIFO进行转换
Vivado中FIFO generator的配置方法
1、
2、standard FIFOread mode读取时会延迟一个周期时钟,first word fall throughread mode 读取时没有延时时钟周期,给使能就有数据,read latency=0。
3、
read data count表示fifo中有多少个数据了。
异步FIFO实现
具体实现代码:
`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2016/08/10 14:42:33// Design Name: // Module Name: fifo_timing// Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision:// Revision 0.01 - File Created// Additional Comments:// //////////////////////////////////////////////////////////////////////////////////module fifo_timing(inputwiresclk,inputwirerst_n,inputwirer_clk,inputwiredata_v,inputwire[7:0]data_in,outputwiredata_ov,outputwire[15:0]data_out,output wirefifo_w_clk,outputwirefifo_r_clk,outputwirefifo_w_en,outputwire[7:0]fifo_w_data,inputwirefifo_full,outputwirefifo_r_en,inputwire[15:0]fifo_r_data, inputwirefifo_empty, inputwire[8:0]fifo_rd_count ); wirefull; wireempty; // r_clk regr_flag; wire[8:0]rd_data_count; reg[8:0]r_cnt; wirerd_en; assign fifo_w_clk = sclk;assign fifo_r_clk = r_clk;assign fifo_w_en = data_v & (~fifo_full);assign fifo_w_data = data_in;assign fifo_r_en = r_flag & (~fifo_empty);assign data_out = fifo_r_data;assign data_ov = r_flag;assignrd_en = r_flag;always @(posedge r_clk or negedge rst_n)if(rst_n == 1'b0)r_flag <= 1'b0;else if(r_flag == 1'b1 && r_cnt == 'd255 )r_flag <= 1'b0;else if(fifo_rd_count >= 'd255 && r_flag == 1'b0)r_flag <= 1'b1;always @(posedge r_clk or negedge rst_n)if(rst_n == 1'b0)r_cnt <='d0;else if(r_flag == 1'b1)r_cnt <= r_cnt + 1'b1;else r_cnt <='d0;assigndata_ov = r_flag;endmodule
0 0
- [2]Vivado中异步FIFO的实现和使用
- 同步FIFO和异步FIFO的Verilog实现
- 异步FIFO的FPGA实现
- 异步FIFO的FPGA实现
- 异步FIFO的FPGA实现
- 异步FIFO的FPGA实现
- 异步FIFO的FPGA实现
- 异步FIFO的FPGA实现
- 异步FIFO的FPGA实现
- 异步FIFO的FPGA实现
- Vivado使用的经验和技巧分享——Vivado中数据导入MATLAB的方法
- vivado中TCL的使用
- vivado中dcp的使用
- 同步FIFO和异步FIFO
- 异步FIFO的Verilog代码 DCFIFO实现
- 异步FIFO的配置与使用注意事项
- 关于亚稳态和异步FIFO的设计
- 一种异步FIFO实现
- C++链栈实现
- jquery获取元素内容
- 一个对 Dijkstra 的采访视频
- WinRAR 5.40 去除广告方法,屏蔽广告弹窗方法,亲测有效
- Python中Function(函数)和methon(方法)
- [2]Vivado中异步FIFO的实现和使用
- TextRank 算法提取关键词的 Java 实现
- Bangu详解(二)--- Tools安装脚本
- Hadoop的HDFS Java pai 读写操作
- Hdu1548 A strange lift
- 2016华为、腾讯、360、网易、滴滴面试
- 404. Sum of Left Leaves
- JVM常用分析工具JPS/JINFO/JSTACK/JSTAT/JMAP详解
- python for 循环