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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 11013|回复: 27

[求助] 关于create_generated_clock中get_pins的疑问

[复制链接]
发表于 2018-9-6 09:33:15 | 显示全部楼层 |阅读模式

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

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

x
create_generated_clock命令中的“get_pins"在综合阶段如何定义,此时还没有网表,比如“create_generated_clock -name CLKdiv2  -edges {2 4 6} -source CLK [get_pins Udiv/Q]”,get_pins如何定义呢?
发表于 2018-9-6 10:23:06 | 显示全部楼层
一般情况下,如果需要定义的节点是一个寄存器,就在这个名字后面加个_reg/Q,例如你这个Udiv,就写成Udiv_reg/Q.

另外,如果还不对的话可以通过下面的方式
analyze -format verilog $RTLLIST
elaborate $DesignTopName
通过上面读入design之后,工具会利用getch库改一遍名字,执行上面两个命令之后将design保存一下
write -format ddc -hierarchy -output filename.ddc
然后在dc_shell中将这个filename.ddc读进来,然后get_cells -hier Udiv* 找一下你这个寄存器改了名字之后变成了什么样。
发表于 2018-9-6 10:25:08 | 显示全部楼层
回复 1# leijing


   如果Udiv是个cell的话,你可以找到一个它驱动的reg,然后get_pins -of */reg/clocked_on -leaf  -filter "pin_direction==out"
 楼主| 发表于 2018-9-6 10:58:15 | 显示全部楼层
回复 2# Marvin.Liang


   关键是在没有综合之前,只有RTL代码,并不知道这个reg的名字,上面那个只是我随便找的一个例子例子罢了
 楼主| 发表于 2018-9-6 10:58:58 | 显示全部楼层
回复 3# 马奎高


   关键是在没有综合之前,只有RTL代码,并不知道这个reg的名字
发表于 2018-9-6 11:34:26 | 显示全部楼层
回复 5# leijing


   这简单啊,找到任意一个reg,他的输出名字+reg就是这个reg的名字,如果div直接是reg就更省事了
 楼主| 发表于 2018-9-6 14:50:15 | 显示全部楼层
回复 6# 马奎高


   输出名字+reg是在综合之后的网表中存在的,在没有综合之前,如果create_generated_clock使用这个名字会报错,我试过了,因为在RTL中没有这个名字的寄存器。
发表于 2018-9-6 16:16:22 | 显示全部楼层
回复 7# leijing


   给你举个例子:如果你rtl中的时钟并是直接产生




  1.   if(~rst) clk_div<=1'b0;
  2.   else clk_div<=~clk_div;
  3. end


复制代码

直接



  1. create_generated_clcok -source [get_ports clk] -divide_by 2 [get_pins -of clk_div_reg -filter "pin_direction=out"] -name clk_div

  2. 当然也可以直接get_pins clk_div_reg/clocked_on


复制代码

如果你rtl中是门控等组合逻辑产生的话,而你又没有手动去例话指定名字的话,假设这个产生的时钟是gclk,那么找gclk驱动的reg,例如




  1. always @(posedge gclk or negedge rst)begin
  2. if(~rst) aa<=0;
  3. else begin
  4. ...
  5. end
  6. end


复制代码


直接




  1. get_pins -of aa_reg/clocked_on -leaf -filter "pin_direction=out"


复制代码


以上就能找到rtl的pin了
 楼主| 发表于 2018-9-6 17:33:50 | 显示全部楼层
回复 8# 马奎高


  谢谢你耐心详细的解答,拿你举的第一个例子来说,我试过这种方法了,会报错,说找不到clk_div_reg
发表于 2018-9-6 18:06:53 | 显示全部楼层
回复 9# leijing


  如果方便的话把你的create_generated_clock这个命令和对应的RTL代码粘一下,这样方便分析是哪里不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 11:17 , Processed in 0.022166 second(s), 7 queries , Gzip On, Redis On.

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