加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

UPF和rtl中悬浮信号在综合时处理

(2011-07-04 13:34:53)
标签:

杂谈

在power gating中(或者别的特殊情况下),在综合的时候,需要保留一些悬空(dangling)信号。比如需要在UPF中指定power switch的ack信号,在很多时候,这些信号在rtl中都是没有driver的,这样在rtl读入的时候,DC经常会把这些信号优化掉,使得根据rtl代码指定的ack port所需要的net在读入后消失。
这时可使用keep_signal_name这个primitive。
如下面例子中,PwrOnWifiAck_sw和PwrOnCpuAck_sw在综合的时候都是没有driver的wire,实际上需要在后端设计中接到power switch的ack端。通常情况下这两个net会被删除。
  // dummy signal for switch control
  reg           PwrOnWifiAck;
  reg           PwrOnCpuAck;
  wire          PwrOnWifiAck_sw;
  wire          PwrOnCpuAck_sw;
  
  //synopsys keep_signal_name "PwrOnWifiAck_sw"
  //synopsys keep_signal_name "PwrOnCpuAck_sw"
  
  always @ (posedge HCLK or negedge SYSRESETn) begin
    if (!SYSRESETn) begin
      PwrOnWifiAck <= 1'b0;
      PwrOnCpuAck  <= 1'b0;
    end
    else begin
      PwrOnWifiAck <= PwrOnWifiAck_sw;
      PwrOnCpuAck  <= PwrOnCpuAck_sw;
    end
  end

而上面代码中,加入了primitive: //synopsys keep_signal_name "xxx"。并且在读入rtl之前,设置DC变量:
set hdlin_keep_signal_name "user"

这样,上面例子中的两个net: PwrOnWifiAck_sw和PwrOnCpuAck_sw,不会在analyze和elaborate被删除,从而可以在UPF中直接引用。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有