重庆方言网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3593|回复: 1
打印 上一主题 下一主题

关于数字电路设计ECO问题

[复制链接]
跳转到指定楼层
楼主
发表于 2020-3-13 17:46:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    最近做项目,真真碰到了一个所谓的ECO问题,什么叫ECO,百度百科是这么只需要稍微改动RTL代码,手动改写PR后的器件(例如更换器件和连线),只上述RTL代码中,case组合电路决定对三个寄存器reg00,reg01那从后端设计来说,需要和前端设计工程师一道,来确定更改点,找到reg00上述代码如何改动呢?一个aways块里控制很多寄存器,共用一个组合控制电最后只能分开来控制每个寄存器,每个寄存器用一个always块来控制,每个涉及到一个重要到问题:三个always块中,每个都有对state的译码电[size=13.3333px]formality虽然通过了,forma[size=13.3333px]很明显综合工具综合优化不会仅仅以foma



最近做项目,真真碰到了一个所谓的ECO问题,什么叫ECO,百度百科是这么說的“Engineering Change Order”,即工程师手动去改变设计,这句话是針对目前设计比較依赖EDA工具这个大背景的,即在不复雜的逻辑中,小范围的改动网表(netlist),或者版图(pr),而不用對RTL代码重新做综合,时序约束(sta),时钟樹综合(CTS),等等一系列流程。
只需要稍微改动RTL代码,手动改写PR后的器件(例如更换器件和连線),只需要对RTL和最后的版圖文件做formality形式验证,只要match即可,不用再按照IC設计綜合流程,時序分析,時钟树綜合等后段流程再走一遍,大大节约了时間,缩短了流片准备时間。

这里涉及三个问题:
1. 怎樣的情況適合ECO?
2. RTL代码怎样的code style适合ECO?
3. 综合工具如何将RTL映射到电路,重点是如何优化电路?

[size=13.3333px]首先,第1個问题
[size=13.3333px]一般都是逻輯不是很复杂的改动,较小的改动,举例如下


   

         

            
nrst1 = A & B & C;

nrst2 = A & B;

aways @(posedge clk or negedge nrst1) begin

    reg00 <= 1'b0;

    reg01 <= 1'b0;

    reg02 <= 1'b0;

end

else begin

    case(state)

        `idle: ...

        `cut: ...

        `freeze: ...

    endcase

end

end
        

   

    復制代码
上述RTL代碼中,case組合电路決定对三个寄存器reg00,reg01,rego2进行寄存器数据输入控制,而nrst1的低电平对三个寄存器进行复位;如果现在想更改reg00的復位条件,例如想用nrst2来复位reg00,而nrst1仍然用于复位reg01和reg02。
那从后端设计来说,需要和前端设计工程师一道,来確定更改点,找到reg00映射的那個寄存器。插入合适的门电路,例如插入一个二输入端与门电路,两個输入是A和B。

其次,第2个问题
上述代码如何改动呢?一个aways块里控制很多寄存器,共用一个组合控制电路,即對state对译码电路,而若要改动上述代码,使之余后端版图formality match,邏輯上等价。则很难更改,原因是我尝试了很多,但都以失敗告终,有的是没有用RTL表达正確的意圖,有的是不了解综合工具的局限性。
最后只能分开来控制每個寄存器,每个寄存器用一個always块来控制,每個always块里只有一个单独的复位信号,这样就能从前端修改RTL代碼與后端版图formality match;并且综合也不会報錯誤。

最后,第3个問题
涉及到一个重要到问题:三个always块中,每个都有对state的译碼电路,他们本来是可以公用一个译码电路的,那么综合工具能否正确认识并优化之呢?[size=13.3333px]實际中,按照第2个问题中的解决办法,formality确实通过了,综合也没有報错。
[size=13.3333px]formality雖然通過了,formality match是指从很多輸入点(包括寄存器输出,pad輸入);输出點(只有一个,寄存器輸入或者pad输出),进行逻辑扫描,遍历一遍后,邏辑match。
[size=13.3333px]很明显綜合工具综合优化不會仅僅以fomality的邏辑錐為基本单位,也会涉及到不同的逻辑錐共享相同的组合電路,以达到降低面积的目的,在添加約束時,一般以时序满足為第一目标,然后在此基础上优化面积,理論上上述不同的写法,综合工具也會对其优化得到相同的電路结构,相同的逻辑功能的。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
回复

使用道具 举报

沙发
发表于 2020-3-13 17:46:25 | 只看该作者
有专业的ECO软件,比如Cadence的Conformal ECO Designer,NanDigits的Gates On the Fly等,都可以很好的处理功能ECO問題。
Cadence的Conformal ECO Designer:
https://www.cadence.com/content/ ... l-eco-designer.html
NanDigits的Gates On the Fly:
www.nandigits.cn
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Baidu

手机版|小黑屋|联系我们|重庆方言网

GMT+8, 2024-5-1 10:35 , Processed in 0.093750 second(s), 16 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表