逻辑综合

更新时间:2023-06-23 14:56:34 阅读: 评论:0

一 逻辑综合
1  逻辑综合的含义
实现在满足设计电路的功能,速度及面积等限制条件下,将行为级描述转化为指定的技术库中单元电路的连接。
2  逻辑综合的原因
RTL代码是理想的情况,在实际情况中会有门的延时,导线的延时,信号的转换时间及时钟信号到达各个触发器的时间不相等情况。
3   综合的过程
化工管道
主要包括转译(Translation),优化(Optimization),映射(Mapping)三个过程。
3.1  转译:用HDL语言描述的电路转化为用GTECH库元件组成的逻辑电路的过程。GTECH是synopsys的通用工艺库,它仅表示逻辑函数的功能,并没有映射到具体的厂家工艺库,是独立于厂家工艺的。
3.2 秋游活动方案 优化:根据设计者对电路设定延时和面积等约束条件对电路进行优化设计的过程。它  通过各种方法尽量满足设计者对电路的要求。
3.3 映射:把用GTECH库元件的电路映射到某一固定厂家的工艺库上,此时的电路包含了厂家的工艺参数Library Cells.
4 综合的目标:
得到一个功能和时序都满足的网表。达到面积最小化,功耗最小化和性能最大化。
综合软件(DC
Design Compile是synopsys的综合软件,它的功能是把RTL级的代码转化为门级网表。
DC综合的流程如下:
26个音标
综合环境建立
1.1 启动文件
  启动文件用来指定综合工具所需要的一些初始化信息。DC使用名为襄阳牛肉面.synopsys_dc.tup”的启动文件,启动时,DC会以下述顺序搜索并装载相应目录下的启动文件:1)DC的安装目录;2)、用户的home目录;3)、当前启动目录。
注意:后装载的启动文件中的设置将覆盖先装载的启动文件中的相同设置。
世界上第一所大学arch_path= arch_path + {., synopsys_root + /dw/sim_ver }
arch_path= arch_path + { ~/risc32/synthesis/libraries }
target_library={ tcb773stc.db }
synthetic_library={dw_foundation.sldb}
link_library = { *, dw_foundation.sldb, tcb773stc.db }
symbol_library = { tcb773s.sdb }
synlib_wait_for_design_licen = {"DesignWare-Foundation"}
alias rt report_timing
designer= XXXXX
company= ASIC Lab, Fudan Univ.
arch_path指定了综合工具的搜索路径。
target_library:为综合的目标库,它一般是由生产线提供的工艺相关的库。
synthetic_library:综合库,它包含了一些可综合的与工艺无关的IPdw_foundation.sldbSynopsys提供的名为Design Ware的综合库,它包含了基本的算术运算逻辑、控制逻辑、可综合存储器等IP,在综合是调用这些IP有助于提高电路性能和减少综合时间。 
link_library:链接库,它是DC在解释综合后网表时用来参考的库。一般情况下,它和目标库相同;当使用综合库时,需要将该综合库加入链接库列表中。
symbol_library为指定的符号库。
synlib_wait_for_design_licen用来获得DesignWare-Foudation的许可(licen)
alias语句与UNIX相似,它定义了命令的简称。
最后的designercompany项则表明了设计者和所在公司。
1.2 设计实体
DC中,总共有8种设计实体:
设计(Design):一种能完成一定逻辑功能的电路。设计中可以包含下一层的子设计。
单元(Cell):设计中包含的子设计的实例。
参考(Reference):单元的参考对象,即单元是参考的实例。
端口(Port):设计的基本输入输出口。
孜然羊排管脚(Pin):单元的输入输出口。
连线(Net):端口间及管脚间的互连信号。
时钟(Clock):作为时钟信号源的管脚或端口。
(Library):直接与工艺相关的一组单元的集合。
逻辑综合的过程
DC通过Script文件,自动完成模块的综合过程,其内容如下:
2.1  DC输入用VerilogVHDL描述的设计:  RTL design entry  客厅挂画
编码指南
RTL级的HDL描述实际是电路结构的文本描述,它是技术无关的,类似于网表。HDL语言先于综合工具出现,综合工具只能根据HDL代码进行逻辑推断,对完成同一功能而书写方式不同的HDL代码,综合工具会产生不同逻辑电路。所以不能依靠DC去修正不符合规范的代码。写代码时,需清楚描述的硬件电路拓扑结构。
RTL描述内容如下:寄存器的结构;电路的拓扑;寄存器之间的功能;DC仅对寄存器之间的逻辑进行优化,不会对寄存器的排列进行优化。
输入命令:read和analyze&elaborate,推荐用analyze&elaborate
analyze&elaborate允许设计者在设计的GTECH建立之前,首先去分析设计的语法错误和进行HDL代码转换。 Analyze做语法的检查并产生一个“.syn”文件,存储于work路径下的定义的设计库内,可供后来elaborate使用。对于一个analyzed设备,只需用elaborate重新输入,节省时间。Read就不行。
2.2  设定约束:Environment constraints 
定义设计的工艺参数,I/O端口属性,统计wire-load模型
Set_operating_conditions:设置工作条件命令
芯片供应商提供的库通常有max,type,min三种类型,代表操作环境为最坏(worst),典型(type),最好(best)三种情况。芯片的操作环境包括:操作温度,供电电压,制造工艺偏差和RC树模型。一般说来,电压越低,操作温度越高,工艺偏差系数越大,产品速度越慢,反之,速度越快。当电压,温度和工艺偏差有波动的时候,乘以系数K因子来模拟这种影响计算延时。Tree_type定义了环境的互连模型,通过定义这个值选取适当的公式来计算互连线的延迟。
如:命令t_operating_conditions –min BEST –max WORST 用于指示DC对设计的WORST和BEST条件,同时优化。
Set_wire_load <wire-load model> -mode <top|enclod|gmented>:设置连线负载模型
向DC提供wire_load信息。在DC综合的过程中,连线延时是通过设置连线负载模型确定。连线负载模型基于连线的扇出,估计它的电阻电容等寄生参数,它由foundary提供。根据导线负载模型(wire_load_model),DC可以估算出连线的电容,电阻和面积。找出这条
线所驱动的负载,得出其扇出数,通过以网表可以查出相应的线的长度。通常技术库里包含许多负载模型,每一种wire-load模型都代表一定模块的尺寸。
导线负载模型模式(wireload model mode)用来选择穿过层次边界时的线的模型,有top,enclod,gmented三种模式,如果不指定模式,默认的模式是top。
Set_load<value><object list> :设定输出负载
综合出来的电路必须要驱动下一级电路,如果负载取得过小,下级电路无法正常工作,负载取得过大,会增大上一电路的难度。用t_load命令可以设置端口或者线上的电容负载,从而保证输出路径的时序(transition time)。
t_driving_cell -cell<cell name> -pin<pin name> <object list>:设置输入驱动
驱动是指施加到待综合电路的驱动能力。如果取值不当,综合出来的电路就不能正常工作。如果驱动太大,综合出来的电路的负载很大;驱动太小,信号的变化边沿会很差。t_drive命令用特定的驱动阻抗来设置输入端口的驱动强度。保证输出路径的时序,确定输入信号的transition time。在默认的情况下,DC认为驱动输入的单元的驱动能力为无穷
大,即transition time 为0。
DRC的设计规则约束:
t_max_transition <value> <object list>:设置最大传输时间
Transition time是指改变某线所驱动的pin所需用的时间,该时间的计算方法是基于工艺库的。输出的传输时间是输入传输时间及输出负载的函数关系。DC在优化的过程中就是确保所有net的对应的传输时间小于所设定的最大传输时间。
t_max_capacitance <value> <object list>:设置线负载电容
Transition time不能提供对net(线)的电容的直接控制,此命令可实现独立于传输时间约束的最大容值的约束。对于连接 输出pin上的net,其对应的容值是net本身的电容加上所连接的pin的容值,DC将这个计算结果与所设定的Max_capacitance比较,决定是否违反设计规则约束。
t_max_fanout <value> <object list>:设置最大扇出负载元日战争
设置某线所能驱动的负载数量上线,如果某线的扇出负载过重,DC可通过改变单元的驱动强度来修正该约束违例的情况。
这些约束用于的input ports,output ports或current_design,一般在技术库内部设置。当技术库的内部设置不能满足时,可用以上命令设置。例如;
t_max_transition 0.3 current_design
t_max_capacitance 1.5 find(port,”out1”)
t_max_fanout 3.0 all_outputs()
2.3 设计和面积约束:Design and clock constraints 
  描述设计的目标,包括时序和面积约束,要注意约束必须是可实现的,否则会导致面积超额,功耗增加或时序不能满足要求。
主要包括两点:
约束综合模块的最大面积( t_max_area

本文发布于:2023-06-23 14:56:34,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1051420.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:综合   电路   负载   设计   驱动   时间
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图