1.3 数字IC前端设计语言及后端设计软件

随着设计复杂性的提高,传统的电路原理图设计方法的工作量越来越大,验证也越来越困难,设计效率和正确性大大降低,无法满足市场对IC产品高性能、强功能、低成本、快上市的要求。为了解决上述问题,人们发明了硬件描述语言(Hardware Description Language,HDL),用硬件描述语言描述电路的结构和行为,建立集成电路模型并进行仿真验证,从而大大提高了集成电路设计的抽象层次,降低了设计复杂度,提高了设计效率和成功率。

硬件描述语言具有下述特点。

(1)采用高级程序设计语言的结构,但与一般软件程序设计语言有差别,它是针对硬件系统与部件设计的。

(2)能够在不同的抽象层次上描述电路的功能和连接关系,可以描述电路的结构。

(3)除了描述功能之外还能描述时序关系。

(4)能够描述电路固有的并行性,可同时执行多个任务。

(5)具有描述延迟等时间概念的能力。

目前IC设计领域应用最为广泛的两种硬件描述语言是Verilog和VHDL。

1.3.1 Verilog硬件描述语言

Verilog硬件描述语言是由民间发展起来的,其语法风格类似于C语言。1985年,Gateway Design Automation公司为其仿真器产品Verilog-XL开发了Verilog语言。1989年,Cadence收购Gateway公司,并继续推广该语言和仿真器。

Verilog硬件描述语言在C语言的基础上,引入了并行计算的概念,可以准确地描述二值电压的数字电路行为,还可以实现系统级(system)、算法级(algorithem)、行为级(behaviour)、门级(gate)的电路建模。由于它保留了C语言的特点,简单灵活,很快就被应用于数字电路的设计中,受到工程师的欢迎。基于Verilog HDL的优越性,IEEE(Instiute of Electrical and Electronics Engineer)于1995年制定了Verilog HDL的IEEE标准,即Verilog HDL 1364-1995;2001年,IEEE发布了Verilog HDL 1364-2001标准。在这个标准中,加入了HDL-A标准,使Verilog有了模拟设计描述的能力。后来由于系统级的设计需要,由Verilog语言衍生出Superlog,Verilog的创始人Phil Moorby参与了这个扩展工作。Phil Moorby本人因对现代IC设计自动化的重大贡献而获得了巨大的荣誉。

1.3.2 VHDL设计语言

因为美国军事需要描述电子系统的方法,美国国防部开始进行VHDL的开发。VHDL的英文全名为VHSIC Hardware Description Language,而VHSIC则是Very High Speed Integrated Circuit的缩写,故VHDL其准确的中文译名为甚高速集成电路的硬件描述语言。1987年,由IEEE将VHDL制定为标准,参考手册为IEEEVHDL语言参考手册标准草案1076/B版,于1987年批准,称为IEEE 1076-1987。应当注意,起初VHDL只是作为系统规范的一个标准,而不是为设计而制定的。第二个版本是在1993年制定的,称为VHDL-93,增加了一些新的命令和属性。

VHDL语言相对Verilog来说比较繁杂、抽象,更适合描述系统级的模型,所以使用的范围没有Verilog广泛。

随着数字芯片设计规模越来越大,模块化的重复使用越来越多,尤其是以处理器为核心的系统芯片,软件设计和硬件设计越来越迫切需要一个统一的设计平台。增强系统级描述能力的HDL软件应运而生,如Superlog、System C、Cynlib C++、C Level等,它们各有长处,可以大大提高超大规模芯片设计的效率。但是目前的这些增强语言中,并没有一种可以成为像Verilog和VHDL一样广泛应用于数字设计的语言。

1.3.3 验证和验证语言

当数字IC设计进入超大规模时代时,设计工程师发现,设计的时间已经不是影响设计周期的关键因素,影响设计周期的关键因素在于发现和修改设计中存在的问题。而一般的仿真工具Verilog和VHDL在仿真中只适合解决低层次的设计问题,更高层次的问题需要海量的测试矢量来发现,而产生这种测试矢量对于Verilog和VHDL来说实现起来非常麻烦,相关代码也更加繁杂,运算速度也受到制约。更重要的是,VHDL和Verilog对于建立更抽象的算法级描述并不方便。

为了保证数字IC设计不偏离最初的目标,自顶向下的设计方法中引入了验证(Verification)的概念。验证的概念就是从数字设计开始,就要对系统的功能以及重要信号进行描述,以便对下一级的模型设计的结果进行比较,修正下一级模型设计中引入的偏差和错误。

System Verilog作为一种验证语言工具,引入了软件设计中类似事件的概念,使其更适合描述芯片与芯片相关的系统,方便建立更完善的验证平台。它增强了算法的描述,更加方便描述抽象实现算法,同时又继承了Verilog对并行运算和位运算的支持,并且以时钟为基本时间单位,使其方便对重要信号进行的cycle-to-cycle比较。

C语言和上述提到的几种语言,都有助于更加方便地建立验证的平台。

1.3.4 数字IC设计后端EDA工具

1.数字IC设计的EDA综合软件

EDA(Electronic Design Automation)综合(synthesis)软件是从算法到门级实现的“自动化翻译软件”。综合软件的主要功能有两个:映射和优化。

业界常用的RTL(Register Transfer Level)级综合工具有:Synopsys公司的Design Compiler(DC)、Cadence公司的Encounter RTL Compiler、Mentor公司的Leo Spectrum等。

综合工具往往包含可测性设计软件,如DFT Compiler等,可为同步数字电路自动生成测试电路并自动产生测试向量(ATPG)。

2.数字IC设计的自动布局布线工具

自动布局布线EDA软件工具能够实现自动布局和布线功能,它能大大缩短数字IC版图的设计周期,最大限度地减少手工布局布线所产生的错误,且能修复布局布线产生的时序问题。

常用的布局布线工具有:Cadence公司的SOC Encounter、Synopsys公司的Astro等。

3.其他后端设计分析工具

静态时序分析(static timing analysis)工具:用于分析数字IC后端设计中的时序在真实信号负载情况下是否满足寄存器时钟的建立时间和保持时间,同时可以分析电路的驱动能力及上升下降时间是否安全和稳健。

常用的静态时序分析工具:Synopsys公司的Prime Time和Cadence公司的ETS。

形式验证工具:保证物理版图实现的功能与RTL模型的逻辑功能一致。

常用的形式验证工具:Cadence公司的LEC(logic equivalence check)和Synopsys公司的Formality。

针对定制版图的EDA验证工具,有Mentor公司的Calibre和Cadence公司的Assura。它们都可以做版图的工艺规则检查(DRC),版图和网表的等效连线检查(LVS),版图的电气规则检查(ERC)。这些工具还可以做版图参数提取,反标原理图网表,以用于最后版图可靠性的仿真验证。

总之,大规模数字IC设计需要各种各样的EDA软件来保证每个环节的正确性,并加速设计进程。EDA工具种类繁多、各有所长,每家IC设计公司都基于不同的EDA软件建立自己的设计流程。