数字硬件语言

更新时间:2022-08-25 13:15

数字硬件语言全称为数字硬件描述语言,是电子系统硬件行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化( EDA )工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路 ASIC 或现场可编程门系列 FPGA 自动布局布线工具,把网表转换为要实现的具体电路布线结构。

定义

数字硬件语言全称为数字硬件描述语言,是电子系统硬件行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化( 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工具综合处理,根据不同的实现芯片,最终生成付诸生产的电路描述或版图参数描述的工艺文件。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}