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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8893|回复: 21

[求助] io综合出现违例和警告

[复制链接]
发表于 2021-11-23 16:14:08 | 显示全部楼层 |阅读模式
100资产
大神们,我之前做的设计一直没有io_pad,综合做完也没有违例啥的,很正常的结果。这几天在原设计上例化了io_pad,也通过了前仿真。但做综合时出现了违例。如下:
max_transition

                             Required        Actual
   Net                      Transition     Transition        Slack
   -----------------------------------------------------------------
   pad_PWM_B                    1.97           3.72          -1.75  (VIOLATED)
   pad_PWM_G                    1.97           3.72          -1.75  (VIOLATED)
   pad_PWM_R                    1.97           3.72          -1.75  (VIOLATED)
   pad_curr_mode_out[0]         1.97           3.72          -1.75  (VIOLATED)
   pad_curr_mode_out[1]         1.97           3.72          -1.75  (VIOLATED)
   pad_rpt_rz_err[0]            1.97           3.72          -1.75  (VIOLATED)
   pad_rpt_rz_err[1]            1.97           3.72          -1.75  (VIOLATED)
   pad_rpt_rz_err[2]            1.97           3.72          -1.75  (VIOLATED)
   pad_rpt_rz_err[3]            1.97           3.72          -1.75  (VIOLATED)
   pad_rpt_rz_err[4]            1.97           3.72          -1.75  (VIOLATED)
   pad_rpt_rz_err[5]            1.97           3.72          -1.75  (VIOLATED)
   pad_sd_out                   1.97           3.72          -1.75  (VIOLATED)
   pad_cfg_curr_mode[0]         1.97           2.57          -0.60  (VIOLATED)
       PORT :  pad_cfg_curr_mode[0]
                                1.97           2.57          -0.60  (VIOLATED)
   pad_cfg_curr_mode[1]         1.97           2.57          -0.60  (VIOLATED)
       PORT :  pad_cfg_curr_mode[1]
                                1.97           2.57          -0.60  (VIOLATED)
   pad_sd_in                    1.97           2.57          -0.60  (VIOLATED)
       PORT :  pad_sd_in        1.97           2.57          -0.60  (VIOLATED)

   -----------------------------------------------------------------
   Total                      15                -22.74  

   max_capacitance

                             Required        Actual
   Net                      Capacitance    Capacitance       Slack
   -----------------------------------------------------------------
   pad_PWM_B                    0.58           1.12          -0.54  (VIOLATED)
   pad_PWM_G                    0.58           1.12          -0.54  (VIOLATED)
   pad_PWM_R                    0.58           1.12          -0.54  (VIOLATED)
   pad_curr_mode_out[0]         0.58           1.12          -0.54  (VIOLATED)
   pad_curr_mode_out[1]         0.58           1.12          -0.54  (VIOLATED)
   pad_rpt_rz_err[0]            0.58           1.12          -0.54  (VIOLATED)
   pad_rpt_rz_err[1]            0.58           1.12          -0.54  (VIOLATED)
   pad_rpt_rz_err[2]            0.58           1.12          -0.54  (VIOLATED)
   pad_rpt_rz_err[3]            0.58           1.12          -0.54  (VIOLATED)
   pad_rpt_rz_err[4]            0.58           1.12          -0.54  (VIOLATED)
   pad_rpt_rz_err[5]            0.58           1.12          -0.54  (VIOLATED)
   pad_sd_out                   0.58           1.12          -0.54  (VIOLATED)
   pad_cfg_curr_mode[0]         0.58           0.77          -0.19  (VIOLATED)
   pad_cfg_curr_mode[1]         0.58           0.77          -0.19  (VIOLATED)
   pad_sd_in                    0.58           0.77          -0.19  (VIOLATED)

   -----------------------------------------------------------------
   Total                      15                 -7.01  

   min_capacitance

                             Required        Actual
   Net                      Capacitance    Capacitance       Slack
   -----------------------------------------------------------------
   cfg_curr_mode[0]             0.00           0.00           0.00  (VIOLATED: increase significant digits)
   cfg_curr_mode[1]             0.00           0.00           0.00  (VIOLATED: increase significant digits)

   -----------------------------------------------------------------
   Total                      2                  -0.00  

和这个警告:
Warning: In design 'jstwrapper', input port 'pad_clk_main_in' drives wired logic; the port direction may have been specified incorrectly. (LINT-6)
Warning: In design 'jstwrapper', input port 'pad_sd_in' drives wired logic; the port direction may have been specified incorrectly. (LINT-6)
Warning: In design 'jstwrapper', input port 'pad_rst_n' drives wired logic; the port direction may have been specified incorrectly. (LINT-6)
Warning: In design 'jstwrapper', input port 'pad_cfg_curr_mode[1]' drives wired logic; the port direction may have been specified incorrectly. (LINT-6)
Warning: In design 'jstwrapper', input port 'pad_cfg_curr_mode[0]' drives wired logic; the port direction may have been specified incorrectly. (LINT-6)
我本来的设计input是clk_main_in,例化io的时候这些端口就都加了pad_xxx。这些该怎么改呀

最佳答案

查看完整内容

report_port报告里,可以看到有driving_cell,要把set_driving_cell约束全部去掉,换成set_input_transition 0.3,然后再试试,应该就可以了
发表于 2021-11-23 16:14:09 | 显示全部楼层


郑伟 发表于 2021-11-25 17:48
大神,第一个命令出来的结果就是之前给您发的那个,都是--,肯定都是错的,这个该怎么修呀。
第二个命令 ...


report_port报告里,可以看到有driving_cell,要把set_driving_cell约束全部去掉,换成set_input_transition 0.3,然后再试试,应该就可以了
发表于 2021-11-24 13:27:09 | 显示全部楼层
1)max transition,可能是io cell的输入transition差,或者io cell的输出load大,可以先解决max cap违例,然后再看是否还有。
2)max cap,检查一下set_load的设置,可能是设得太大了,超出io cell库中的最大值了,可考虑set_load 0.3 [all_outputs]。
3)Lint那几个,是因为使用的io cell是支持双向的,所以pad pin定义是inout,可以考虑把wrapper中的对应pin修改为inout类型即可。
 楼主| 发表于 2021-11-24 17:30:03 | 显示全部楼层
本帖最后由 郑伟 于 2021-11-24 17:56 编辑


coolbear2021 发表于 2021-11-24 13:27
1)max transition,可能是io cell的输入transition差,或者io cell的输出load大,可以先解决max cap违例, ...


大神,我已经set_load 0.001 了,还是那几个违例只是违例的值变小了,而且我看到一个警告Warning: It is dangerous to create a clock source on inout port 'pad_clk_main_in'. (UID-376)
发表于 2021-11-25 08:53:07 | 显示全部楼层
可以让工具报一下有cap违例的port的load构成,看看是约束上去的,还是库中引入的,要么约束上的问题,要么库本身有问题。
那个warning可以不处理,如果时钟从IO进来的,并且使用的是支持双向的IO,就会出这个,不需要管,只要功能上保证使用时钟时对应的IO是输入就行了。
 楼主| 发表于 2021-11-25 10:18:23 | 显示全部楼层


coolbear2021 发表于 2021-11-25 08:53
可以让工具报一下有cap违例的port的load构成,看看是约束上去的,还是库中引入的,要么约束上的问题,要么 ...


大神,怎么报load呀,我报出来的违例内容就是上面那几个图
发表于 2021-11-25 11:24:17 | 显示全部楼层
可以使用report_port -verbose,这个可以看一下对应port的约束,看看是否符合预期。
另外,可以用report_delay_calculation -from u_pad_xxx/I -to u_pad_xxx/PAD,这个可以看一下工具是如何计算trans和delay的,看看是否有问题。
具体的细节可以自己在dc_shell里,用help或man之类的看一下,或者看一下工具的guide。
 楼主| 发表于 2021-11-25 16:44:44 | 显示全部楼层


coolbear2021 发表于 2021-11-25 11:24
可以使用report_port -verbose,这个可以看一下对应port的约束,看看是否符合预期。
另外,可以用report_de ...


大神,我出了下面这些报告,基本上都是什么都没有,这个该怎么改
Attributes:
    c - port_is_clock_port
    d - dont_touch_network
    i - ideal_network

                                   Pin      Wire     Max     Max     Connection
Port                   Dir     Load     Load     Trans   Cap     Class      Attrs
--------------------------------------------------------------------------------
pad_PWM_B      inout   0.0010   0.0000    1.97    0.02   --         
pad_PWM_G      inout   0.0010   0.0000    1.97    0.02   --         
pad_PWM_R      inout   0.0010   0.0000    1.97    0.02   --         
pad_cfg_curr_mode[0]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_cfg_curr_mode[1]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_clk_main_in
               inout   0.0010   0.0000   --      --      --         c, d, i
pad_curr_mode_out[0]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_curr_mode_out[1]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_rpt_rz_err[0]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_rpt_rz_err[1]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_rpt_rz_err[2]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_rpt_rz_err[3]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_rpt_rz_err[4]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_rpt_rz_err[5]
               inout   0.0010   0.0000    1.97    0.02   --         
pad_rst_n      inout   0.0010   0.0000   --      --      --         d, i
pad_sd_in      inout   0.0010   0.0000    1.97    0.02   --         
pad_sd_out     inout   0.0010   0.0000    1.97    0.02   --         


                     External  Max             Min                Min       Min
                    Number    Wireload        Wireload           Pin       Wire
Port               Points    Model           Model              Load      Load
--------------------------------------------------------------------------------
pad_PWM_B          1      --              --              --        --
pad_PWM_G          1      --              --              --        --
pad_PWM_R          1      --              --              --        --
pad_cfg_curr_mode[0]
                   1      --              --              --        --
pad_cfg_curr_mode[1]
                   1      --              --              --        --
pad_clk_main_in
                   1      --              --              --        --
pad_curr_mode_out[0]
                   1      --              --              --        --
pad_curr_mode_out[1]
                   1      --              --              --        --
pad_rpt_rz_err[0]
                   1      --              --              --        --
pad_rpt_rz_err[1]
                   1      --              --              --        --
pad_rpt_rz_err[2]
                   1      --              --              --        --
pad_rpt_rz_err[3]
                   1      --              --              --        --
pad_rpt_rz_err[4]
                   1      --              --              --        --
pad_rpt_rz_err[5]
                   1      --              --              --        --
pad_rst_n          1      --              --              --        --
pad_sd_in          1      --              --              --        --
pad_sd_out         1      --              --              --        --




                      Driving Cell
Input Port       Rise(min/max)      Fall(min/max)      Mult(min/max)  Attrs(min/max)
--------------------------------------------------------------------------------
pad_PWM_B    scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_PWM_G    scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_PWM_R    scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_cfg_curr_mode[0]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_cfg_curr_mode[1]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_curr_mode_out[0]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_curr_mode_out[1]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_rpt_rz_err[0]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_rpt_rz_err[1]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_rpt_rz_err[2]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_rpt_rz_err[3]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_rpt_rz_err[4]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_rpt_rz_err[5]
             scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_sd_in    scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     
pad_sd_out   scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                scc011ums_hd_rvt_ss_v1p08_125c_ccs/BUFHDV4
                                                     -- /  --     


                  Max Drive      Min Drive      Resistance    Min    Min       Cell
Input Port    Rise    Fall   Rise    Fall   Max     Min    Cap    Fanout    Deg
--------------------------------------------------------------------------------
pad_PWM_B     --      --     --      --     --      --     --     --        --
pad_PWM_G     --      --     --      --     --      --     --     --        --
pad_PWM_R     --      --     --      --     --      --     --     --        --
pad_cfg_curr_mode[0]
              --      --     --      --     --      --     --     --        --
pad_cfg_curr_mode[1]
              --      --     --      --     --      --     --     --        --
pad_clk_main_in
              --      --     --      --     --      --     --     --        --
pad_curr_mode_out[0]
              --      --     --      --     --      --     --     --        --
pad_curr_mode_out[1]
              --      --     --      --     --      --     --     --        --
pad_rpt_rz_err[0]
              --      --     --      --     --      --     --     --        --
pad_rpt_rz_err[1]
              --      --     --      --     --      --     --     --        --
pad_rpt_rz_err[2]
              --      --     --      --     --      --     --     --        --
pad_rpt_rz_err[3]
              --      --     --      --     --      --     --     --        --
pad_rpt_rz_err[4]
              --      --     --      --     --      --     --     --        --
pad_rpt_rz_err[5]
              --      --     --      --     --      --     --     --        --
pad_rst_n     --      --     --      --     --      --     --     --        --
pad_sd_in     --      --     --      --     --      --     --     --        --
pad_sd_out    --      --     --      --     --      --     --     --        --


                  Max Tran        Min Tran
Inout Port    Rise    Fall    Rise    Fall
--------------------------------------------------------------------------------
pad_PWM_B     --      --      --      --
pad_PWM_G     --      --      --      --
pad_PWM_R     --      --      --      --
pad_cfg_curr_mode[0]
              --      --      --      --
pad_cfg_curr_mode[1]
              --      --      --      --
pad_clk_main_in
              --      --      --      --
pad_curr_mode_out[0]
              --      --      --      --
pad_curr_mode_out[1]
              --      --      --      --
pad_rpt_rz_err[0]
              --      --      --      --
pad_rpt_rz_err[1]
              --      --      --      --
pad_rpt_rz_err[2]
              --      --      --      --
pad_rpt_rz_err[3]
              --      --      --      --
pad_rpt_rz_err[4]
              --      --      --      --
pad_rpt_rz_err[5]
              --      --      --      --
pad_rst_n     --      --      --      --
pad_sd_in     --      --      --      --
pad_sd_out    --      --      --      --


 楼主| 发表于 2021-11-25 16:50:38 | 显示全部楼层


coolbear2021 发表于 2021-11-25 11:24
可以使用report_port -verbose,这个可以看一下对应port的约束,看看是否符合预期。
另外,可以用report_de ...


大神,这个是我用您给的第二个命令,产生的报告,但是报错了,u_pad_00的I和PAD是
PBSD2R u_pad_00(.IE(1'b1),.C(clk_main_in),.I(1'b0),.OEN(1'b1),.PAD(pad_clk_main_in));是要把I也改成和PAD一样吗?
From pin:                         u_pad_00/I
To pin:                           u_pad_00/PAD
Main Library Units:  1ns  1pF  1kOhm


Operating Conditions: ss_v1p08_125c   Library: scc011ums_hd_rvt_ss_v1p08_125c_ccs
Wire Load Model Mode: top

Error: There is no cell or net delay arc between pins 'u_pad_00/I' and 'u_pad_00/PAD'.
        The pins must be on the same net or the same cell. (RPT-35)
1

发表于 2021-11-25 17:18:20 | 显示全部楼层


郑伟 发表于 2021-11-25 16:50
大神,这个是我用您给的第二个命令,产生的报告,但是报错了,u_pad_00的I和PAD是
PBSD2R u_pad_00(.IE(1 ...


要找一个输出的io,有违例的那几个。你报的那个是输入的,当然没有I到PAD的路径了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-5-17 11:45 , Processed in 0.540333 second(s), 8 queries , Gzip On, MemCached On.

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