定义
数字硬体语言全称为数字硬体描述语言,是电子系统硬体行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模组来表示极其複杂的数字系统。然后,利用电子设计自动化( EDA )工具,逐层进行仿真验证,再把其中需要变为实际电路的模组组合,经过自动综合工具转换到门级电路网表。接下去,再用专用积体电路 ASIC 或现场可程式门系列FPGA 自动布局布线工具,把网錶转换为要实现的具体电路布线结构。
简介
数字硬体语言的发展至今已有很多年的历史,并成功地套用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬体描述语言,对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标準硬体描述语言。20世纪80年代后期,VHDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE 标準。
现在,随着系统级FPGA以及系统晶片的出现,软硬体协调设计和系统设计变得越来越重要。传统意义上的硬体设计越来越倾向于与系统设计和软体设计结合。数字硬体语言为适应新的情况,迅速发展,出现了很多新的硬体描述语言,像Superlog、SystemC、Cynlib C++等等。究竟选择哪种语言进行设计,整个业界正在进行激烈的讨论。因此,完全有必要在这方面作一些比较研究,为EDA设计做一些有意义的工作,也为发展我们未来的晶片设计技术打好基础。
代表
VHDL
早在1980年,因为美国军事工业需要描述电子系统的方法,美国国防部开始进行VHDL的开发。1987年,由IEEE(Institute of Electrical and Electro- nics Engineers)将VHDL制定为标準。参考手册为IEEE VHDL语言参考手册标準草案1076/B版,于1987年批准,称为IEEE 1076-1987。应当注意,起初VHDL只是作为系统规範的一个标準,而不是为设计而制定的。第二个版本是在1993年制定的,称为VHDL-93,增加了一些新的命令和属性。
对于特大型的系统级数字电路设计,VHDL是较为合适的。实质上,在底层的VHDL设计环境是由Verilog HDL描述的器件库支持的,因此,它们之间的互操作性十分重要。目前,Verilog和VDHL的两个国际组织OVI、VI正在筹划这一工作,準备成立专门的工作组来协调VHDL和Verilog HDL语言的互操作性。OVI也支持不需要翻译,由VHDL到Verilog的自由表达。
Verilog HDL
Verilog HDL是在1983年,由GDA(GateWay Design Automation)公司的Phil Moorby首创的。Phil Moorby后来成为Verilog-XL的主要设计者和Cadence公司的第一合伙人。在1984~1985年,Phil Moorby设计出了第一个名为Verilog-XL的仿真器;1986年,他对Verilog HDL的发展又作出了另一个巨大的贡献:提出了用于快速门级仿真的XL算法。随着Verilog-XL算法的成功,Verilog HDL语言得到迅速发展。1989年,Cadence公司收购了GDA公司,Verilog HDL语言成为Cadence公司的私有财产。
随着Verilog-XL算法的成功,Verilog HDL语言得到迅速发展。1989年,Cadence公司收购了GDA公司,Verilog HDL语言成为Cadence公司的私有财产。1990年,Cadence公司决定公开Verilog HDL语言,于是成立了OVI(Open Verilog International)组织,负责促进Verilog HDL语言的发展。基于Verilog HDL的优越性,IEEE于1995年制定了Verilog HDL的IEEE标準,即Verilog HDL 1364-1995;2001年发布了Verilog HDL 1364-2001标準。在这个标準中,加入了Verilog HDL-A标準,使Verilog有了模拟设计描述的能力。
Superlog
开发一种新的硬体设计语言,总是有些冒险,而且未必能够利用原来对硬体开发的经验。能不能在原有硬体描述语言的基础上,结合高级语言C、C++甚至Java等语言的特点,进行扩展,达到一种新的系统级设计语言标準呢? Superlog就是在这样的背景下研製开发的系统级硬体描述语言。Verilog语言的首创者Phil Moorby和Peter Flake等硬体描述语言专家,在一家叫Co-Design Automation的EDA公司进行合作,开始对Verilog进行扩展研究。1999年,Co-Design公司发布了SUPERLOGTM系统设计语言,同时发布了两个开发工具:SYSTEMSIMTM和SYSTEMEXTM。一个用于系统级开发,一个用于高级验证。2001年,Co-Design公司向电子产业标準化组织Accellera发布了SUPERLOG扩展综合子集ESS,这样它就可以在今天Verilog语言的RTL级综合子集的基础上,提供更多级别的硬体综合抽象级,为各种系统级的EDA软体工具所利用。 至今为止,已超过15家晶片设计公司用Superlog来进行晶片设计和硬体开发。Superlog是一种具有良好前景的系统级硬体描述语言。但是不久前,由于整个IT产业的滑坡,EDA公司进行大的整合,Co-Design公司被Synopsys公司兼併,形势又变得扑朔迷离。
SystemC
随着半导体技术的迅猛发展,SOC已经成为当今积体电路设计的发展方向。在系统晶片的各个设计中,像系统定义、软硬体划分、设计实现等,积体电路设计界一直在考虑如何满足SOC的设计要求,一直在寻找一种能同时实现较高层次的软体和硬体描述的系统级设计语言。
SystemC正是在这种情况下,由Synopsys公司和CoWare公司积极回响目前各方对系统级设计语言的需求而合作开发的。1999年9月27日,40多家世界着名的EDA公司、IP公司、半导体公司和嵌入式软体公司宣布成立“开放式SystemC联盟”。
特点
SystemC
所有的SystemC都是基于C++的;上层构架都是很明确地建立在下层的基础上;SystemC核心提供一个用于系统体系结构、并行、通信和同步时钟描述的模组;完全支持核心描绘以外的数据类型、用户定义数据类型;通常的通信方式,如信号、FIFO,都可以在核心的基础上建立,经常使用的计算模组也可以在核心基础上建立;如果需要,图1中较低层的内容不依赖上层就可以直接使用。
实际使用中,SystemC由一组描述类库和一个包含仿真核的库组成。在用户的描述程式中,必须包括相应的类库,可以通过通常的ANSI C++编译器编译该程式。SystemC提供了软体、硬体和系统模组。用户可以在不同的层次上自由选择,建立自己的系统模型,进行仿真、最佳化、验证、综合等等。
Superlog
Superlog集合了Verilog的简洁、C语言的强大、功能验证和系统级结构设计等特徵,是一种高速的硬体描述语言。
1、Verilog 95和Verilog 2K。Superlog是Verilog HDL的超集,支持最新的Verilog 2K的硬体模型。
2、 C和C++语言。Superlog提供C语言的结构、类型、指针,同时具有C++面对对象的特性。
3、Superlog扩展综合子集ESS。ESS提供一种新的硬体描述的综合抽象级。 ④ 强大的验证功能。自动测试基準,如随机数据产生、功能覆盖、各种专有检查等。
Superlog的系统级硬体开发工具主要有Co- Design Automation公司的SYSTEMSIMTM和SYSTEMEXTM,同时可以结合其它的EDA工具进行开发。
VHDL
与传统的电路设计方法相比较,採用VHDL语言进行数字逻辑电路和数字系统的硬体设计时,具有如下的特点:
1、採用自上而下的设计方法。即将设计的内容分块细化,根据系统的总体要求,自上而下地逐步进行,最后完成系统硬体的整体设计。
2、大量套用可程式逻辑器件晶片。众多晶片製造厂家晶片均支持VHDL语言的编程。所以目标器件有很大的选择範围,不必要受到通用元器件的限制。
3、随时对系统进行模拟仿真,判断设计系统功能的可行性。
4、降低了硬体电路设计难度。利用VHDL语言设计硬体电路时很大程度上减轻了设计者的工作强度,提高使设计效率和质量。
5、系统设计的主要程式均採用VHDL语言编写。VHDL设计者的原始描述是非常简练的硬体描述。其一是资料量小,易修改,易保存;其二是可继承性好;其三是阅读方便,再经过EDA工具综合处理,根据不同的实现晶片,最终生成付诸生产的电路描述或版图参数描述的工艺档案。