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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4777|回复: 8

[求助] 综合报告 时序报告的时序不满足

[复制链接]
发表于 2013-6-4 09:42:53 | 显示全部楼层 |阅读模式

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

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

x

                                    
  上面的是我的综合报告,-0.018显然是时序违规了,但是违规是保持时间违规  还是建立时间违规呢?
如果是保持时间违规,为什么我将 FDP  这个输入加上buf,综合后依然违规呢,还是-0.018,那位大神给指点一下啊,多谢啊,非常感激啊。
    always @(posedge rd_clk)
      begin
     if(!rst_n || empty == 1'b1)
    begin
      rd_en <= 1'b0 ;
    end
  else if(valid_temp == 1'b1)
    begin
      rd_en <= 1'b1 ;  
    end
  else
    begin
      rd_en <= 1'b0 ;
    end
      end
这个是我的rd_en处的代码
 楼主| 发表于 2013-6-4 09:45:13 | 显示全部楼层
回复 1# zsy5460


    不好意思 图片没有显示:下面是我的综合报告一处违规:
Timing constraint: Default OFFSET IN BEFORE for Clock 'pll_2clk_inst/CLKOUT1_BUF'
  Total number of paths / destination ports: 2 / 2
-------------------------------------------------------------------------
Offset:              0.803ns (Levels of Logic = 3)
  Source:            pll_inst/PLL_ADV_INSTOCKED (PAD)
  Destination:       framedeinterleave_matcher_blockdeintrleave_inst/prachblockdeinterleave_inst/rd_en (FF)
  Destination Clock: pll_2clk_inst/CLKOUT1_BUF falling
  Data Path: pll_inst/PLL_ADV_INSTOCKED to framedeinterleave_matcher_blockdeintrleave_inst/prachblockdeinterleave_inst/rd_en
                                Gate     Net
    Cell:in->out      fanout   Delay   Delay  Logical Name (Net Name)
    ----------------------------------------  ------------
    PLL_ADVOCKED        62   0.000   0.000  PLL_ADV_INST (LOCKED_OUT)
     end scope: 'pll_inst'
     begin scope: 'framedeinterleave_matcher_blockdeintrleave_inst'
     begin scope: 'prachblockdeinterleave_inst'
     LUT3:I1->O            1   0.094   0.000  rd_en_rstpot1 (rd_en_rstpot)
     FD                     -0.018          rd_en
    ----------------------------------------
    Total                      0.803ns (0.803ns logic, 0.000ns route)
                                       (100.0% logic, 0.0% route)
 楼主| 发表于 2013-6-4 09:47:46 | 显示全部楼层
: L都变成了   D都变成了
发表于 2013-6-4 09:50:44 | 显示全部楼层
你的buf是怎么加的?是不是优化掉了?
 楼主| 发表于 2013-6-4 16:51:07 | 显示全部楼层
回复 4# neoitachi


    我直接使用assign rd_en = signal_name ; 做延时
  没有使用D触发器
发表于 2013-6-4 23:10:39 | 显示全部楼层
这样做肯定不行的。你要加入综合干预命令让综合器不对这个信号进行优化加入buff,定义信号的时候像这样写:module buffer(din,
              dout
                                                                                                                );
parameter SIGNAL_WIDTH = 1;

input[SIGNAL_WIDTH-1:0]  din;
output[SIGNAL_WIDTH-1:0] dout/*synopsys keep=1*/;

assign dout = din;

endmodule
例化该模块,就会成功加入buf,当然,你也可以不另加一个模块,直接定义信号的时候加入/*synopsys keep=1*/这个东东就行了!
 楼主| 发表于 2013-6-6 14:36:18 | 显示全部楼层
回复 6# neoitachi


    多谢斑竹啊!
    直接定义信号的时候加入/*synopsys keep=1*/这个东东就行了!  恕我新手啊,有点不懂,怎么直接定义啊?
   是这样定义  wire dout/*synopsys keep=1*/ ;  ?
  然后赋值;
  assign dout = din;
  再请斑竹答疑啊  多谢
发表于 2013-6-6 15:13:30 | 显示全部楼层
是的,这样定义就可以,
module buffer(a,
                     b);
input a;
output b;
wire b1/*synopsys keep=1*/;

assign b1=a;
assign b = b1;
endmodule
这样综合器就会加上一个cell进行延时。
 楼主| 发表于 2013-6-6 17:25:54 | 显示全部楼层
回复 8# neoitachi


    多谢斑竹啊 可以加你的QQ嘛 便于直接向你请教啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-25 20:00 , Processed in 0.028600 second(s), 8 queries , Gzip On, Redis On.

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