RTL设计和dc综合注意事项
最近做了一个项目,从RTL设计,到DC综合,再到后仿真,简单的设计确踩到不少坑,记录下遇到的问题
1、dc constrain 一定要定义好衍生时钟
定义主时钟和衍生时钟,后端会自动加上时钟tree;若对时钟做取反或者加使能操作,插入了组合逻辑,会让clock tree断掉,这时需要在新的时钟上定义衍生时钟,否则会造成未定义的时钟后其他时钟不同步的问题;
2、RTL设计要考虑IO端口/数模交互 CLK不同步问题
列如,外部信号同步时钟上升沿给入芯片,到达芯片内部器件时,信号一般和时钟有不同的delay,如果此时在上升沿采样可能得到错误数据,解决办法是在时钟下降沿去采样,保证采样数据稳定性;
同理在模数交互时也有这种情况,不过在下降沿采样会导致数据传递周期减半,可能导致setup_time违例,特别是时钟频率高的时候。
3、rst和clk有效沿不能同步
在做crc模块时,需要定时rst,设计中rst是clk生成的,两个沿基本同步,可能会导致器件输出死机,并且更严重的是会将这种不稳定的状态延续到下级设计中;
这种情况非常特殊,这次也是好几个版本有一个版本出现了,才注意到这个问题的严重性
4、跨时钟域需要定义multicycle_path
不管是慢时钟到快时钟,还是快时钟到慢时钟传递数据,都需要定义多时钟域,让dc综合工具知道
5、综合时需要设置tiegh/tielow属性
高低置位需要连接到一起,再由后端工程师接外部电源
6、独立模块,如内部SRAM、外部接口输入输出打一拍时钟处理
打一拍setuptime更不容易出现违例,信号和时钟同步性也更好
浙公网安备 33010602011771号