(2)同步FIFO设计及仿真验证(下)

该博客详细介绍了如何设计并验证一个同步FIFO,包括TB(Testbench)的设计思路,从端口数据类型声明到RTL模块实例化,再到时钟信号生成、数据初始化、写操作模拟以及读操作的验证。在仿真过程中,初始状态为wr_ptr和rd_ptr均为0,通过任务(task)来完成预期值与实际读取值的比较,确保FIFO功能的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四:TB设计

        1.思路:端口数据类型申明 —> RTL module实例化 —> 产生时钟信号clk —> 初始化数据 —> 给写信号和写使能 —> 定义写信号的激励(task实现)—> 检测读出操作(task比较预期 值和实际读出值)—> 结束

`timescale 1ns/10ps

//声明端口数据类型
module test#(
    parameter      AW=3,
    parameter      DW=8
);
    reg            clk;
    reg            rstn;
    reg            wr_en;
    reg[DW-1:0]    wr_data;
    reg            rd_en;
    wire[DW-1:0]   rd_data;
    wire           full;
    wire           empty;

//RTL module实例化
sync_fifo    u_sync_fifo#(
    .AW=3,
    .DW=8
)(
    .clk(clk),
    .rstn(rstn),
    .wr_en(wr_en),
    .wr_data(wr_data),
    .rd_en(rd_en),
    .rd_data(rd_data),
    .full(full),
    .empty(empty)
);

//产生时钟clk
always #5 clk    &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

少卿不在大理寺

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

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

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

打赏作者

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

抵扣说明:

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

余额充值