前仿真和后仿真

作者:李秋凤,华清远见嵌入式学院讲师。

仿真可以分为前仿真和后仿真,前仿真是功能仿真,目标是分析电路的逻辑关系的正确性,仿真速度快,可以根据需要观察电路输入输出端口和电路内部任一信号和寄存器的波形,后仿真是将电路的门延迟参数和各种电路单元之间的连线情况考虑在内后进行仿真,得到的仿真结果接近真实的应用情况,后仿真的速度相对于前仿真慢得多,在观测内部节点波形时比较困难,在一个完整的电路设计中应该包括这两个过程。

下面是简单的数字电路,代码及综合后的RTL网表如下:

`timescale 1ns/1ps
    module ml(clk,in1,in2,in3,out);
    input clk;
    input in1,in2,in3;
    output out;
    wire w1,w2;
    reg d1,d2;
    assign w1=~(in1&in2);
    always@(posedge clk)
    d1<=w1;
    assign w2=~d1;
    always@(posedge clk)
    d2<=w2;
    assign out= d2^in3;
    endmodule

分析上面代码可以看出,上面只是反映的是逻辑功能,实际上,每个门电路都有工作延时,如果考虑到工作延时,则代码需要进行修改,修改后的代码更能反映电路的实际工作情况

`timescale 1ns/1ps
    module ml(clk,in1,in2,in3,out);
    input clk;
    input in1,in2,in3;
    output out;
    wire w1,w2;
    reg d1,d2;
    parameter delay1=1,delay2=2;
    assign # delay1 w1=~(in1&in2);
    always@(posedge clk)
    d1<= # delay2 w1;
    assign # delay1 w2=~d1;
    always@(posedge clk)
    d2<= # delay2 w2;
    assign # delay1 out= d2^in3;
    endmodule

这段代码中定义了两个延时参数,分别对应组合逻辑的门延时和寄存器的传输延时,这里的延时与真正的门延时在具体数值上是不同的,但是这种每次赋值操作时都加入延时的方法有助于对电路后仿真时可能的延时情况给出定性分析的结果。

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值