后仿真的结果不对,求解!

2019-03-25 10:25发布

程序: module time_delay_reg(in,
                      clk  ,reset ,out
           );
  input[11:0] in;
   input clk,reset;
  output[11:0] out;
   
  reg[11:0] out;
  always@(posedge clk)
  if(reset)
      out<=12'b0;
   else 
      out<=in;
   endmodule 用这个程序仿真出现的结果竟然不对,输入的12位数据是随机产生的,仿真结果的截图放在附件了。 本人新手,求高人解答。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
qd0090
2019-03-27 09:46
你可以写一个简单的代码,如下
always@(posedge clk)
 A<=B;
 B<=C;
   endmodule
(verilog我不熟,不知对不对,意思就是上升沿, A<=B;B<=C;)
你后仿一下看看,就可以明显看到,A,B的变化都是延迟与时钟的。
所以有些人写代码时,会A<=B# 2;这么写,
我认为这样就可以在前仿真时,看到延迟,节省仿真时间。

verilog VHDL是硬件描述语言,不要从软件的角度考虑问题,那样是行不通的。

一周热门 更多>