正在加载图片...
逻辑综合 6 7. 顶层避免存在glue-logic; 8. 把状态机和其他逻辑独立开来: 9. 避免在一个块中存在多时钟: 10.把用来同步多个时钟的块独立出来: 11.分块时考虑你的版图设计。 块的产生:entity和module语句定义了层次的块。entity或module的示例也产生 了一个新层。算术电路(+,-,*,。。)的inference也能产生新层。process和always 语句不会产生层次。 逻辑优化并不能穿过块的界线。最好的分块是把相关的组合逻辑和它的目的寄存器聚 集在同一个块中。这样组合优化技术能被完全的利用,时序优化也可以吸收一些组合逻辑 到复杂的触发器中(JK,T,Clock-enabled)。好的分块如图4.5所示: COMBO LOGIC 图4.5最佳的分块 什么是glue-logic:就是用一个组合逻辑把几个块结合起来,这个组合逻辑就是glue logic.由于这glue logic不能被吸收,优化是被限制的,要删除这glue logic,.我们把这 NAND放进后面的逻辑电路中。这样glue logic就可以和其他逻辑一起优化了。顶层设计只 能是一个结构的网表,不需要被编译。换句话说,就是顶层不能含glue1ogic,当然其他 层最好也是不要存在glue logic。 分块时各个块的大小最好不要相差太大,因为,太小多余的边界将限制优化,太大编 译的时间又太长。尽量减少不必要的层。编写DL源代码时每一个块的输出最好都是通过 寄存器实现,这样可以可以简化约束的说明和方便优化。input delay和output delay可 以不用设置。块的名字必须和文件名相同,否则在分析是将会出错。 初始的分块由DL定义。不满意的话,DC可以进行调整。 DC分块的命令是group与ungroup. 例如我们把两个块U1,2合并为一个块U23,则转到当前层后 group (U1,U2)}-cell_name U23 ungroup (U23} 命令的具体应用请查看在线帮助。 4.4读进设计 DC的输入格式可以是Verilog HDL,VHDL等硬件描述语言,可编程逻辑阵列(PLA), EDIF2000,格式。 对于HDL格式,DC要求用analyze和elaborate读进设计。 analyze:读进VHDL,或Verilog文件,检查语法和可综合逻辑,并把设计已中间格式 存在设计工作库(WORK)中。analyze后,在DA(Design Analyzer)中并看不到有什么东西出 现。analyze命令可以同时对若干个文件执行操作。 elaborate:从工作库中把analyze后的中间文件转换为一个设计。elaborate命令 用综合的操作符代替HDL的操作符,且决定正确的总线大小。elaborate命令后,在DA中 你可以看到出来了一个一个的模块。一个文件一个,即一个entity或module一个。 elaborate一次只能对一个文件进行操作。这点需要注意。 在这里我们需要提醒一下的是,entity或module的名字,即设计的名字必须和文件逻辑综合 6 7. 顶层避免存在 glue-logic; 8. 把状态机和其他逻辑独立开来; 9. 避免在一个块中存在多时钟; 10. 把用来同步多个时钟的块独立出来; 11. 分块时考虑你的版图设计。 块的产生: entity 和 module 语句定义了层次的块。 entity 或 module 的示例也产生 了一个新层。算术电路( +,- ,*,。。)的 inference 也能产生新层。 process 和 always 语句不会产生层次。 逻辑优化并不能穿过块的界线。最好的分块是把相关的组合逻辑和它的目的寄存器聚 集在同一个块中。这样组合优化技术能被完全的利用,时序优化也可以吸收一些组合逻辑 到复杂的触发器中(JK,T,Clock-enabled)。好的分块如图 4.5 所示: 图 4.5 最佳的分块 什幺是 glue-logic :就是用一个组合逻辑把几个块结合起来,这个组合逻辑就是 glue logic.由于这 glue logic 不能被吸收,优化是被限制的,要删除这 glue logic,我们把这 NAND 放进后面的逻辑电路中。这样 glue logic 就可以和其他逻辑一起优化了。顶层设计只 能是一个结构的网表,不需要被编译。换句话说,就是顶层不能含 glue logic ,当然其他 层最好也是不要存在 glue logic 。 分块时各个块的大小最好不要相差太大,因为,太小多余的边界将限制优化,太大编 译的时间又太长。尽量减少不必要的层。编写 HDL 源代码时每一个块的输出最好都是通过 寄存器实现,这样可以可以简化约束的说明和方便优化。 input delay 和 output delay 可 以不用设置。块的名字必须和文件名相同,否则在分析是将会出错。 初始的分块由 HDL 定义。不满意的话, DC 可以进行调整。 DC 分块的命令是 group 与 ungroup. 例如我们把两个块 U1,U2 合并为一个块 U23,则转到当前层后 group {U1,U2} -cell_name U23 ungroup {U23} 命令的具体应用请查看在线帮助。 4.4 读进设计 DC 的输入格式可以是 Verilog HDL,VHDL 等硬件描述语言,可编程逻辑阵列(PLA), EDIF2000 ,格式。 对于 HDL 格式, DC 要求用 analyze 和 elaborate 读进设计。 analyze :读进 VHDL,或 Verilog 文件,检查语法和可综合逻辑,并把设计已中间格式 存在设计工作库(WORK)中。 analyze 后,在 DA(Design Analyzer)中并看不到有什幺东西出 现。 analyze 命令可以同时对若干个文件执行操作。 elaborate :从工作库中把 analyze 后的中间文件转换为一个设计。 elaborate 命令 用综合的操作符代替 HDL 的操作符,且决定正确的总线大小。 elaborate 命令后,在 DA 中 你可以看到出来了一个一个的模块。一个文件一个,即一个 entity 或 module 一个。 elaborate 一次只能对一个文件进行操作。这点需要注意。 在这里我们需要提醒一下的是, entity 或 module 的名字,即设计的名字必须和文件 D Q Q SET CLR D Q Q SET CLR D Q Q SET CLR COMBO LOGIC
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有