数字设计和逻辑综合

目录

1 HDL硬件描述语言

1.1 行为级硬件描述语言(Behavioral Level HDL)

1.2 寄存器传输级硬件描述语言(RTL HDL)

1.3 结构化硬件描述语言(Structure HDL)

2 逻辑综合(Logic Synthesis)

2.1 逻辑综合的基本步骤

2.2 综合工具Design Compiler

2.3 目标库和初始环境设置


1 HDL硬件描述语言

1.1 行为级硬件描述语言(Behavioral Level HDL)

Behavioral Level HDL使用行为来描述设计的功能。这种行为的描述需要详细制定何时读进输入,何时对输入进行操作,何时把操作结果写出到输出端口。在用行为级语言时,并不需要指出由有限状态机控制设计或何时执行每个操作时钟周期。它需要工具在综合时决定这些操作。

用行为级语言进行设计,需要用EDA工具(如Synopsys公司的Behavioral Compiler)
将其HDL的硬件描述转化成RTL代码或门级网表。行为级语言在IC设计的设计实现流程中并不常用。

1.2 寄存器传输级硬件描述语言(RTL HDL)

集成电路设计师们常用寄存器传输级硬件描述语言进行设计。设计师用RTL源代码描述了设计的时序电路和组合电路的功能。RTL代码中通常既不包含电路的时间(路径延迟),也不包含电路的面积。
RTL代码定义了:

  1. 电路的寄存器结构和寄存器数目;
  2. 定义了电路的拓扑结构;
  3. 输入/输出接口与寄存器之间组合电路的逻辑功能,寄存器与寄存器之间组合电路的逻辑功能。

无论是Verilog还是VHDL,都会定义了设计中寄存器的数目,寄存器的结构,输入/输出端口与寄存器之间组合电路的逻辑功能以及寄存器与寄存器之间组合电路的逻辑功能。

1.3 结构化硬件描述语言(Structure HDL)

结构化描述语言定义了形成物理电路器件之间的连接关系。门级硬件描述语言(Gate Level HDL)或门级网表(Gate Level Netlist)是结构级硬件描述语言。它们用Verilog或VHDL语言描述各个逻辑单元之间的连接关系,以及输入/输出端口和逻辑单元之间的连接关系。门级网表使用逻辑单元对电路进行描述。

在由半导体厂商提供的工艺库中,包含了一些基本的逻辑单元(Logic Cell),以及它们的逻辑特性(如功能、延时、电容和功耗等)描述。门级网表用例化(Instantiation)的方法组成电路。我们也可用例化(Instantiation)的方法定义电路的层次结构(Hierarchical Structure)。门级电路的生成一般可以由逻辑综合来实现。

2 逻辑综合(Logic Synthesis)

我们用RTL源代码详细完整地为设计建立模型,定义设计中寄存器的结构和数目;定义设计中的组合电路功能;定义设计中寄存器的时钟。并将这个HDL模型输入到逻辑综合器。

综合时我们要提供详细的约束资料,以便产生出时序和面积折衷的设计结果,得到门级网表。

门级网表输入到布局布线工具,由它产生GDSII文件,验证正确后,交付芯片生产商制造。

2.1 逻辑综合的基本步骤

电路的逻辑综合一般由三步组成,即
综合 = 转化 + 逻辑优化 + 映射
(Synthesis = Translation + Logic Optimization + Mapping)

先通过read命令将RTL代码转化为通用的布尔(Boolean)等式,即GTECH(Generic Technology)格式;然后执行compile命令,该命令按照设计的约束对电路进行逻辑综合和优化,使电路能满足设计的目标或约束,并且使用目标工艺库中的逻辑单元映射成门级网表。

2.2 综合工具Design Compiler

逻辑综合包括读入HDL源代码和对设计进行优化。
在综合过程中,优化进程尝试完成库单元的组合,使组合成的电路能最好地满足设计的功能、时序和面积的要求。
编译(compile)是Design Compiler的一个命令,设计者使用该命令对设计进行优化。
在读入设计和做完其他必要的任务后(如加上设计约束),设计者执行compile命令为设计产生优化的门级网表。
Design Compiler有两种接口供用户使用,一种是命令行接口,另一种是图形接口。
使用命令行接口时,在unix命令行下执行命令“dc_shell_t”,即:

unix%dc_shell_t

这时候,显示器上显示

dc_shell_xg_t>

使用图形(GUI-Graphical User Interface)接口时,在unix命令行下执行命令design_vision,即:

unix%design_vision

在DC的接口里普遍使用DC-Tcl来执行DC的命令或脚本(script)。TCL是Tool Command Language的缩写,读音与tickle相同,它是公开的工业标准界面语言。DC-Tcl在TCL的基础上,扩展丰富了TCL。DC-Tcl使设计者(用户)既能灵活方便地使用TCL的命令,又能根据电路的特性,对设计进行分析和优化。

2.3 目标库和初始环境设置

在启动Design Compiler时,需要设置初始环境。DC的初始环境由文件“.synopsys_dc.
setup
'”设定。其中,DC运行时用户当前目录下的该文件优先级最高,其次是用户目录,优先级最低的是$SYNOPSYS/admin/setup目录的标准文件。

DC在做编译时,使用目标库(Target Library)来构成电路图。映射电路图时,DC在用目标库指定的综合库中选用功能正确的逻辑门单元,使用厂商所提供的这些门单元的时间(序)数据计算电路的路径延迟。
DC中,target_library是保留变量,设置这个变量以指向厂商提供的综合库文件。例如,set target_library my_tech.db连接库(link_library)也是保留变量,用于分辨电路中逻辑门单元和子模块的功能。
set link_library“ * my_tech.db”
星号“*”表示DC先搜寻其内存里已有的库;“*”一般放在综合库之前。
DC读入设计时,它自动读入由link_library变量指定的库。前置的“*”号指明当连接设计时,DC先搜寻其内存中已有的库,然后再搜寻变量link_library指定的其它库。DC搜寻由保留变量search_path指定的所有Unix目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值