微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于时序分析,时钟输出延时

关于时序分析,时钟输出延时

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

  1. module exercise (
  2.                                 clk,
  3.                                 reset,
  4.                                 in_1,
  5.                                 in_2,
  6.                                 out_1,
  7.                                 out_2);
  8.         input                        in_1,in_2,clk,reset;
  9.         output        [3:0]        out_1,out_2;

  10.         //nei
  11.         reg                [3:0]        a,b,c;
  12.        
  13.         assign out_1=c;
  14.         assign out_2=a;
  15.         always @(posedge clk or negedge reset)
  16.         begin
  17.                 if(!reset)
  18.                 begin
  19.                         a=0;
  20.                         b=0;
  21.                         c=0;
  22.                 end
  23.                 else
  24.                 begin
  25.                         if(a>8)
  26.                                 a<=0;
  27.                         else
  28.                                 a<=a+1;
  29.                         case ({in_1,in_2})
  30.                         2'b00:        c<=a+b-1;
  31.                         2'b01:        c<=8-a+b;
  32.                         2'b10:        c<=a+b+1;
  33.                         default:c<=0;
  34.                         endcase
  35.                         b<=c;
  36.                 end
  37.         end
  38. endmodule

复制代码



这是我为了学习时序分析随便写的程序,其中对于a来说,只是简单的自加,到9后归0。而时序分析后从a到out_2的时钟输出延时(tco)为什么这么大?这是正常的吗?如果想弄小一点应该怎么办?

这是RTL图:



谢谢!

这个OUT2是直接到PIN脚上去的吧,这个没办法,因为PIN脚输出要驱动一个很大的电流,延迟一般都比较大,你可以试试把a赋给OUT2的时候用时钟打一拍,把IOB上的REG用上,会好一些。


谢谢你,原因我知道了。不过如果是驱动大电流的原因那为什么要打一拍?还有“把IOB上的REG用上”是什么意思?能具体点吗?谢谢!

PIN脚附近还有一个REG,用上可以减少输出延迟


知道了,谢谢!

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

网站地图

Top