vivado中fifo ipcore的empty和dout输出特征

今天写整形模块的时候想要用fifo的empty信号,所以研究一下empty的信号特征:
(1) 复位的时候(低电平有效,即为0),empty线是红色的,代表既不是0也不是1,复位信号无效(即为1)且尚未有数据输入的时候,empty为1;
(2) Empty啥时候变为0呢?当第一组数据输入完成时empty有1变为0。如下图所示:
在这里插入图片描述
再回顾一下输出dout的信号特征:

信号输出dout的特征是啥呢?
在这里插入图片描述

第一次读的时候,dout先保持为0一个周期,再读写入的值。
在这里插入图片描述

Rd_en后,dout的数据首先保持一个时钟,即为之前的dout最后时刻的值,第二次读的时候先保持一个时钟周期,dout值为上一次读最后输出的值4。

在这里插入代码片`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2020/12/03 21:46:30
// Design Name: 
// Module Name: fifo1_tst
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module fifo1_tst();
reg clk;
reg srst;
reg [17:0] din;
reg wr_en;
reg rd_en;
wire [17:0] dout;
wire full;
wire empty;

initial begin
clk=1;
srst=1;
wr_en=0;
rd_en=0;
#10 srst=0;
#100 wr_en=1;
din=1;
#10 din=2;
#10 din=3;
#10 din=4;
#10 wr_en=0;
#10 rd_en=1;

//din=0;
#100 rd_en=0;
#10 wr_en=1;
 din=5;
#10 din=6;
#10 wr_en=0;
//din=0;

#100 rd_en=1;

end
always #5 clk=~clk;

    
    fifo_generator_0 uut (
      .clk(clk),      // input wire clk
      .srst(srst),    // input wire srst
      .din(din),      // input wire [17 : 0] din
      .wr_en(wr_en),  // input wire wr_en
      .rd_en(rd_en),  // input wire rd_en
      .dout(dout),    // output wire [17 : 0] dout
      .full(full),    // output wire full
      .empty(empty)  // output wire empty
    );
endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IC媛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值