ISE中FIFO IP核的Standard FIFO和First

Stella981
• 阅读 843

ISE下的FIFO IP核有Standard FIFO和First-word-Fall-Through两种模式,相对于标准模式FWFT(First-word-Fall-Through)可以不需要读命令,自动的将最新数据放在dout上。

接下来分别对两种模式下的FIFO进行仿真,testbench如下

 1 module fifo_test;
 2 
 3     // Inputs
 4     reg rst;
 5     reg wr_clk;
 6     reg rd_clk;
 7     reg [15:0] din;
 8     reg wr_en;
 9     reg rd_en;
10 
11     // Outputs
12     wire [7:0] dout;
13     wire full;
14     wire empty;
15     wire [13:0] rd_data_count;
16 
17     // Instantiate the Unit Under Test (UUT)
18     write_fifo uut (
19         .rst(rst), 
20         .wr_clk(wr_clk), 
21         .rd_clk(rd_clk), 
22         .din(din), 
23         .wr_en(wr_en), 
24         .rd_en(rd_en), 
25         .dout(dout), 
26         .full(full), 
27         .empty(empty), 
28         .rd_data_count(rd_data_count)
29     );
30     
31     always #5 wr_clk = ~wr_clk;
32     always #5 rd_clk = ~rd_clk;
33     
34 
35     initial begin
36         // Initialize Inputs
37         rst = 0;
38         wr_clk = 0;
39         rd_clk = 0;
40         din = 0;
41         wr_en = 0;
42         rd_en = 0;
43 
44         // Wait 100 ns for global reset to finish
45         #100;
46         din = 8193;
47         wr_en = 1;
48         repeat(8192)
49         #10 din = din - 1;
50         #10
51         wr_en = 0;
52         #100
53         rd_en = 1;
54         #163840
55         rd_en = 0;
56         #10;
57         $stop;
58         
59         
60         // Add stimulus here
61 
62     end
63       
64 endmodule

两次仿真FIFO的配置都一样,写位宽为16,写深度为8192,读位宽为8,读深度为16384.

ISE中FIFO IP核的Standard FIFO和First

ISE中FIFO IP核的Standard FIFO和First

图一为标准FIFO的仿真截图,图二为FWFT模式的仿真截图

图二中在读信号有效之前,dout即输出了最新的数据。

另外需要注意的有:

1,FIFO的实际有效深度为理论深度减。。

2,FIFO中的rd_data_count信号指示的是FIFO前几拍时的状态,即在连续写入2个数据时,rd_data_count依然为0.

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
国庆假期玩不停双重好礼放肆领
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天AW
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天$20
AWS国庆双重礼,仅限7天
自2021年10月1日00:00起至2021年10月7日24:00,新注册并激活(需全部完成账号注册的五个步骤,否则账号状态并未激活)AWS海外区域账户,填写页面下方表单,即可申领价值$200美元的AWS海外区域账户服务抵扣券直充到您的账户,用以抵扣服务消费,助您轻松体验多个云迁移应用场景。同时,您还可获赠AWS精美祥云纪念T恤一件。,仅限7天$20
Wesley13 Wesley13
2年前
ES6 新增的数组的方法
给定一个数组letlist\//wu:武力zhi:智力{id:1,name:'张飞',wu:97,zhi:10},{id:2,name:'诸葛亮',wu:55,zhi:99},{id:3,name:'赵云',wu:97,zhi:66},{id:4,na
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这