在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5690|回复: 14

[求助] 请教一个primetime静态时序仿真的问题

[复制链接]
发表于 2013-3-14 04:40:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我收到一个挺大的门级乘法器电路的verilog代码,是纯组合逻辑。
我总是感觉PT做静态时序仿真必须得有clk在才好,只有这样,报告中才能比较arrival time和时钟周期,得到slack(正数是满足,负数不满足)。这就是我对PT的弱弱的理解。
于是我让设计这个电路的人只在输出端 加了reg(输入端不可以加reg?),于是就有了clk了:
module hisdesign(clk, A,B, C);
input [32:1] A;
input [32:1] B;
input clk;
output [32:1] C;
reg [32:1] C;
wire [32:1] output_c;
multiplier mul(A,B, output_c);         //代表”门级组合电路。。。。。“
always @(posedge clk)
         C<=output_c;
endmodule
我先拿DC综合出某个库的门级verilog,然后用PT做时序分析,
静态时序仿真的结果和我想象的不一样,我开始慢慢感觉到错在哪里了,但是不知道怎么改:
Startpoint: C_reg[1]
               (rising edge-triggered flip-flop clocked by clk)
  Endpoint: C[1] (output port clocked by clk)
  Path Group: clk
  Path Type: max

  Point                                    Incr       Path
  ---------------------------------------------------------------
  clock clk (rise edge)                    0.00       0.00
  clock network delay (ideal)              0.00       0.00
  C_reg[1]/CK (DFFRQX2VH)              0.00       0.00 r
  C_reg[1]/Q (DFFRQX2VH)               7.90       7.90 r
  C[1] (out)                           0.00       7.90 r
  data arrival time                                   7.90

  clock clk (rise edge)                   10.00      10.00
  clock network delay (ideal)              0.00      10.00
  output external delay                   -1.00       9.00
  data required time                                  9.00
  ---------------------------------------------------------------
  data required time                                  9.00
  data arrival time                                  -7.90
  ---------------------------------------------------------------
  slack (MET)                                         1.10
以上就是我的仿真结果,感觉不是我原本想算的东西,请高手们帮忙看下啊,谢谢。
发表于 2013-3-14 11:07:58 | 显示全部楼层
是怎么设置的约束?
C_reg[1]/CK (DFFRQX2VH)              0.00       0.00 r
  C_reg[1]/Q (DFFRQX2VH)               7.90       7.90 r
  C[1] (out)                           0.00       7.90 r
感觉乘法器的逻辑是空的(没有读进去)?  路径里面只包含了寄存器的cell delay
发表于 2013-3-14 11:29:42 | 显示全部楼层
可以在输入端都加上Register,这样就输入、输出都是基于clk。你再试一试。
发表于 2013-3-14 13:47:36 | 显示全部楼层
纯组合电路也可以分析时序,不然怎么综合优化呢。

你的SDC和时序报告的命令都贴出来吧。
发表于 2013-3-14 13:53:29 | 显示全部楼层
时序分析一般是寄存器之间, 你只有输出有reg , 输入没有reg, 那你这个怎么分析?到时候你和外部顶层的连接起来有可能在顶层上时序过不去
发表于 2013-3-15 16:42:10 | 显示全部楼层
报一下 输入a-》寄存器c 以及 B-》c 的timing
 楼主| 发表于 2013-3-20 07:26:02 | 显示全部楼层
多谢各位大侠指点。
我之前给的代码好像不全。。。。
原电路就是一个组合逻辑,没有一个寄存器。但是那个设计者为了故意把电路拆成4个周期,在中间加了一些寄存器,他强调说他想试着实现4级流水线电路。但是我从他的代码中提取出的结构如下图所示:
multiplier.jpg
矩形代表寄存器,圆形或者椭圆都是组合逻辑。
我感觉他直接把sign这个信号输入给最后一级的组合电路不太对吧?(应该sign=>sign1=>sign2也分级来传吧?)
而且不太像是4级流水线。
请问本贴中遇到的时序仿真问题是不是和这个有关?
发表于 2013-3-20 08:17:08 | 显示全部楼层
没有看懂呢!
发表于 2013-3-20 12:03:25 | 显示全部楼层
你应该设input delay,外部用虚拟clock,
你现在是组合逻辑的输出连到一个reg的输入,你的constrain设的不对
 楼主| 发表于 2013-3-25 08:03:36 | 显示全部楼层
回复 5# 教父


    多谢大侠。
    我有个疑问,假如就是有一条没有输入寄存器的路径,只有输出寄存器C,
    是不是PT得到的结果一定是这条路径 max_delay? 因为找不到输入关卡,所以认为delay无限大?
    然而,输出的delay数字却是C_reg的CLK->Q延时?
    我知道我这个电路分析一定是我错了,但是不知道分析的对不对。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 03:22 , Processed in 0.031767 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表