微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > DC综合时如何删除冗余逻辑

DC综合时如何删除冗余逻辑

时间:10-02 整理:3721RD 点击:
请问大侠们, DC综合时如何删除冗余逻辑?
我知道“compile_delete_unloaded_sequential_cells”设为true可以删除冗余寄存器,但是仍然有大块的冗余逻辑,请问大侠们如何解决?

怎么会有冗余逻辑呢?不懂求教

同楼上,同问!

就是有一些寄存器的输出端是悬空,没有用到的,但是DC 却没把这部分寄存器优化掉

那我可否这样理解:既然这些寄存器的输出是没用的,也就是它们的输入是没用的,而这些输入又是来自其他模块的输出,所以这些模块和它的输入也是没用的,这样需要删除的东西很多啊。
或是这样理解:这些寄存器的输出是没用的,但是它们的输入是有用的,这些数据DC默认要用同步逻辑打一拍输出?所以只需要把这部分寄存器优化掉即可。
到底是哪种情况呢?谢谢

std lib有不同的寄存器类型,有只有Q端输出的,也有Q、QN输出均有的类型,照你的意思,你的逻辑只需要有一个输出就行,奇怪为什么综合出带Q/QN的DFF,难道是库的问题?

比较接近第一种情况。例如下面的数据流:... ->A_Reg -> D_Reg
D_Reg 的输出是悬空的,所以 DC 应该将D_REG 以及 A_Reg -> D_Reg之间的组合逻辑删除。
但是 A_Reg不会删除,因为有... ->A_Reg -> B_Reg -> C_Reg -> ..... 这样的有用路径存在。

谢谢指点,那如果没有 A_Reg -> B_Reg这条路径,是不是 A_Reg 也要优化掉?

怎么知道和看到有冗余逻辑的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top