什么是逻辑综合,逻辑综合包括那几个步骤,每个步骤的作用是什么?
逻辑综合上承RTL级设计,下启后端布局布线的物理设计,目标是基于某个特定的工艺库,将RTL级描述的电路转换成门级网表描述的电路。
DC基本步骤
启动工具——读入设计——初始检查(check_design,用来检查设计中的问题,例如未连接,多次例化等)——设置设计环境(设置工作条件,IO端口,线负载模型)——设计目标约束(时序约束,面积约束等)——编译优化(RTL级到门级网表的优化映射)——导出设计(设计的门级网表(db格式)、标准延时文件,时序/面积综合报告、设计约束文件)
逻辑综合中用到的线负载模型,其工作模式一般有三种,请说明是哪三种,并简述其区别。
Wire_load用于在设计的布图前的阶段估计互连线延迟
工作模式:顶层模式(top):所有层次子模块的wire_load和top_level相同;
包含模式(enclosed):子模块互连线的wire_load和包含它的最小模块相同;
分段模式(segmented):子模块WLM每一段 net 都采用封闭它的 wire load model
请解释什么是伪路径,什么是多周期路径。在DC中设置伪路径和多周期路径的命令是什么?
伪路径也称虚假路径,指时序分析时不需要关心的路径。DC不能自动识别伪路径,故需要显示指定。
Set_false_path-from[ ]-through[ ]-to[ ]
多周期路径指两级相邻寄存器之间的组合逻辑延迟较大,不能在一个时钟周期完成。因此需要设定多周期路径。
由set_multicycle_path命令完成
请列举逻辑综合中用到的8类设计对象。
设计:一种能完成一定逻辑功能的电路,可以是独立的,也可以是层次化设计; 单元:设计中包含的子设计的实例。
参考:所指的设计原型,单元参考的实例; 端口:设计的基本输入,输出和双向的输入输出。
引脚:单元的输入输出和双向的输入输出; 线网:端口与引脚之间或者引脚与引脚之间的连线
时钟:作为时钟信号源的引脚或端口; 库:直接与工艺相关的一组单元的集合
为了得到更好的逻辑综合结果,应对设计进行合理的层次划分并具有良好的编码风格,请列出至少5条层次划分的原则。
将相关组合逻辑划分在一起; 消除胶连逻辑; 模块的输出应使用FF或划分以FF为边界; 合理限制模块的大小
分离用于多时钟的模块; 划分顶层;
DC划分命令:group,ungroup
计算和分析
建立时间裕度= required time- arriva