微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog代码quartus II下时序仿真出现两个时钟延时,请问怎么...

verilog代码quartus II下时序仿真出现两个时钟延时,请问怎么...

时间:10-02 整理:3721RD 点击:

      我用verilog编了一个减法代码,但是在FPGA下的时序仿真却出现了时钟延时,请问我的代码有什么问题吗?(代码的内容:输入x和y,e=y-x,eo表示正负,ec是后一个e与前一个e的误差,co表示正负)
代码如下:
module jianfa (x, y, clk, e, ec, eo, co);
   input[7:0] x;
   input[7:0] y;
   input clk;
   output[7:0] e;
   reg[7:0] e;
   output[7:0] ec;
   reg[7:0] ec;
   output eo;
   reg eo;
   output co;
   reg co;
   reg[7:0] a;
   reg[7:0] b;
   reg m;
   reg n;
   always @( posedge clk)
      begin
         if (y >= x)
         begin
            a = b)
            begin
               ec = b)
            begin
               ec <= a - b ;
               co <= 1'b1 ;
            end
            else if (a < b)
            begin
               ec <= b - a ;
               co <= 1'b0 ;
            end
         end
         e <= a ;
      end
endmodule
仿真结果如下:


代码没有问题,同步逻辑电路就是靠时钟工作的,第一个上升沿取数据,第二个时钟的上升沿才会输出数据。所以仿真是没有问题的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top