• testbench文件编写风格

    2006年03月13日

    Tag:verilog

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://mathon.blogbus.com/logs/2050996.html

    testbench文件编写风格
     
    作者: xixilu  发布日期: 2006-1-06   出自: http://www.edacn.net
     
    [RF] 不建议在设计文件里写 `timescale,建议在一个单独的文件里写
    理由之一,容易漏写,导致模拟报错,改起来费时间;理由之二,容易不一致,导致模拟报错,改起来费时间;理由之三,即使每个文件都写了,而且都写得一样,当需要调整精度时,还是要一个一个地修改,还是费时间。

    建议创建一个专门的文件定义timescale,最后include 进去就可以了。

    很多集成开发环境都是在生成 Verilog 文件时自动插入`timescale定义的,纯属画蛇添脚。推荐使用 EmacsVerilogMode,生成干净的 Verilog 代码。

    [GL] 加载测试向量时,避免在时钟的上下沿变化
    为了模拟真实器件的行为,加载测试向量时,避免在时钟的上下沿变化,而是在时钟的上升沿延时一个时间单位后,加载的测试向量发生变化。如

    ......
    assign #5 c=a^b
    ......
    @(posedge clk) #(0.1*`cycle) A=1;
    ......
    wire #5 z = a&b;
    ......
    or #5 u3(C,A,B);
    ......
    assign #(rise,fall) c = a^b;
    ......
    buf #(10,25,35) zbuf(z,a,en)
    ......

    [GL] 避免对同一测试向量同时进行不同的操作
    如果模拟时有对同一测试向量的操作,要避免同时出不同的操作,通过增加不同的延时单位,将操作串行化。例如模拟FIFO的行为,对FIFO有效计数的加和减操作,要在不同的时间进行。

    [GL] 用$strobe调用显示用非阻塞赋值语句赋的值
    不要用 $display

    收藏到:Del.icio.us




发表评论

您将收到博主的回复邮件
记住我