diff --git a/src/train/eda/chip-circuit/Part_3-chip_flow/3_1_logic_synthesis.md b/src/train/eda/chip-circuit/Part_3-chip_flow/3_1_logic_synthesis.md index fecb71e..744f756 100644 --- a/src/train/eda/chip-circuit/Part_3-chip_flow/3_1_logic_synthesis.md +++ b/src/train/eda/chip-circuit/Part_3-chip_flow/3_1_logic_synthesis.md @@ -79,7 +79,7 @@ DC针对最坏情况下的关键时序路径进行优化。采用所谓**最大 此时与工艺库、工艺参数有关优化和映射是同时进行的,转译和优化没有执行步骤上的先后,因此综合是一个**选代过程**。 -GTECH(aeneric technology)网表即通用网表,与工艺网表相比较,GTECH 网表**没有具体的工艺信息**,指的是其使用的逻辑门单元是一个符号,包含通用逻辑门(例如与或非,触发器等等)和通用运算符(加减乘除、移位、比较、选择等等),**GTECH 网表中仅包含逻辑功能,但可以对功耗、时延和面积建模。** +GTECH(generic technology)网表即通用网表,与工艺网表相比较,GTECH 网表**没有具体的工艺信息**,指的是其使用的逻辑门单元是一个符号,包含通用逻辑门(例如与或非,触发器等等)和通用运算符(加减乘除、移位、比较、选择等等),**GTECH 网表中仅包含逻辑功能,但可以对功耗、时延和面积建模。** 以16选1多路选择器(muliplexer,MUX)为例,GTECH 网表将其表示成 16 输入、4 个输入选择、1个输出的 16 x1 MUX;而工艺网表依据工艺库信息可能将其表示成多个 4x1MUX 的级联形式。 @@ -125,7 +125,7 @@ DC在运行过程中使用到的几种库文件如下: 读入的 HDL 代码首先由 synopsys 自带的 GTECH 库转换成 Design Compier 内部交换的格式,然后经过映射到工艺库和优化生成门级网表。 -目标库是由晶圆厂提供的,格式是.b ,是 DC 的内部格式,不可读,可以由文本可读的 .1ib 格式转换得到。目标库中包含了各个门级单元的行为(逻辑功能)、引脚、面积以及时序信息(有的工艺库还有功耗方面的参数),DC 在综合时就是根据目标库中给出的单元电路的延迟信息来计算路径的延迟。并根据各个单元延时、面积和驱动能力的不同选择合适的单元来优化电路。 +目标库是由晶圆厂提供的,格式是.b ,是 DC 的内部格式,不可读,可以由文本可读的 .lib 格式转换得到。目标库中包含了各个门级单元的行为(逻辑功能)、引脚、面积以及时序信息(有的工艺库还有功耗方面的参数),DC 在综合时就是根据目标库中给出的单元电路的延迟信息来计算路径的延迟。并根据各个单元延时、面积和驱动能力的不同选择合适的单元来优化电路。 工艺库(日标库)的示例如下,DC 优化的一个常用方法是在逻辑功能相同的前提下替换单元的大小尺寸,替换依据就是工艺库中包含的各种信息。 @@ -143,7 +143,7 @@ DC在运行过程中使用到的几种库文件如下: ![](/res/images/train_eda_3/5778a19b94554bb4bef4becc6f45e993.png) -如上图所示,在这样一个目录情况下,虽然设置了 1ink_1ibrary ,但是 DC 在 1ink 的时候却报错, 找不到 ToP.v 中引用的DECODEIP模块。 这是因为没有设置搜索路径,DC找不到文件,这也说明 1ink_1ibrary 默认是在运行 DC 的目录下寻找相关引用。要使上例的 DECODE 能被找到,需要设置 search path。如下图所示: +如上图所示,在这样一个目录情况下,虽然设置了 link_library ,但是 DC 在 link 的时候却报错, 找不到 ToP.v 中引用的DECODEIP模块。 这是因为没有设置搜索路径,DC找不到文件,这也说明 link_library 默认是在运行 DC 的目录下寻找相关引用。要使上例的 DECODE 能被找到,需要设置 search path。如下图所示: ![](/res/images/train_eda_3/13be0fbc620746b4aa872b25b017ae94.png) @@ -161,7 +161,7 @@ DC在运行过程中使用到的几种库文件如下: ![](/res/images/train_eda_3/7a9b63e7677540c8aeca5236a8d7d8bb.png) -DC综合的时候,默认综合为性能相对较差的电路结构,比如将加法器(verilog中的运算符“+”)综合为串行进位加法器,如果想要使用高性能的加法器,如超前进位加法器,这时候就需要设定算数运算库,让 DC 在综合的时候调用 Designware库。同时也需要在 1ink_library设置相应的库以使得在连接的时候 DC 可以搜索到相应的运算符的实现。(这是一个较为高级的功能,需要高级的licence) +DC综合的时候,默认综合为性能相对较差的电路结构,比如将加法器(verilog中的运算符“+”)综合为串行进位加法器,如果想要使用高性能的加法器,如超前进位加法器,这时候就需要设定算数运算库,让 DC 在综合的时候调用 Designware库。同时也需要在 link_library设置相应的库以使得在连接的时候 DC 可以搜索到相应的运算符的实现。(这是一个较为高级的功能,需要高级的licence) ## 文章来源