《硬件描述语言HDL的现状与发展.doc》由会员分享,可在线阅读,更多相关《硬件描述语言HDL的现状与发展.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流硬件描述语言HDL的现状与发展【精品文档】第 5 页摘要:从数字系统设计的性质出发,结合目前迅速发展的芯片系统,比较、研究各种硬件描述语言;详细阐述各种语言的发展历史、体系结构和设计方法;探讨未来硬件描述语言的发展趋势,同时针对国内eda基础薄弱的现状,在硬件描述语言方面作了一些有益的思考。 关键词:asic 硬件描述语言hdl verilog hdl vhdl systemc superlog 芯片系统soc引 言硬件描述语言hdl是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的
2、设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(eda)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路asic或现场可编程门阵列fpga自动布局布线工具,把网表转换为要实现的具体电路布线结构。目前,这种高层次(high-level-design)的方法已被广泛采用。据统计,目前在美国硅谷约有90%以上的asic和fpga采用硬件描述语言进行设计。硬件描述语言hdl的发展至今已有20多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬件描
3、述语言,对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20世纪80年代后期,vhdl和verilog hdl语言适应了这种趋势的要求,先后成为ieee标准。现在,随着系统级fpga以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计结合。硬件描述语言为适应新的情况,迅速发展,出现了很多新的硬件描述语言,像superlog、systemc、cynlib c+等等。究竟选择哪种语言进行设计,整个
4、业界正在进行激烈的讨论。因此,完全有必要在这方面作一些比较研究,为eda设计做一些有意义的工作,也为发展我们未来的芯片设计技术打好基础。1. 目前hdl发展状况目前,硬件描述语言可谓是百花齐放,有vhdl、superlog、verilog、systemc、cynlib c+、c level等等。虽然各种语言各有所长,但业界对到底使用哪一种语言进行设计,却莫衷一是,难有定论。而比较一致的意见是,hdl和c/c+语言在设计流程中实现级和系统级都具有各自的用武之地。问题出现在系统级和实现级相连接的地方:什么时候将使用中的一种语言停下来,而开始使用另外一种语言?或者干脆就直接使用一种语言?现在看来得出
5、结论仍为时过早。在2001年举行的国际hdl会议上,与会者就使用何种设计语言展开了生动、激烈的辩论。最后,与会者投票表决:如果要启动一个芯片设计项目,他们愿意选择哪种方案?结果,仅有2票或3票赞成使用systemc、cynlib和c level设计;而superlog和verilog各自获得了约20票。至于以后会是什么情况,连会议主持人john cooley也明确表示:“5年后,谁也不知道这个星球会发生什么事情。”各方人士各持己见:为verilog辩护者认为,开发一种新的设计语言是一种浪费;为systemc辩护者认为,系统级芯片soc快速增长的复杂性需要新的设计方法;c语言的赞扬者认为,ver
6、ilog是硬件设计的汇编语言,而编程的标准很快就会是高级语言,cynlib c+是最佳的选择,它速度快、代码精简;superlog的捍卫者认为,superlog是verilog的扩展,可以在整个设计流程中仅提供一种语言和一个仿真器,与现有的方法兼容,是一种进化,而不是一场革命。当然,以上所有的讨论都没有提及模拟设计。如果想设计带有模拟电路的芯片,硬件描述语言必须有模拟扩展部分,像verilog hdl-a,既要求能够描述门级开关级,又要求具有描述物理特性的能力。2 几种代表性的hdl语言2.1 vhdl早在1980年,因为美国军事工业需要描述电子系统的方法,美国国防部开始进行vhdl的开发。1
7、987年,由ieee(institute of electrical and electro- nics engineers)将vhdl制定为标准。参考手册为ieee vhdl语言参考手册标准草案1076/b版,于1987年批准,称为ieee 1076-1987。应当注意,起初vhdl只是作为系统规范的一个标准,而不是为设计而制定的。第二个版本是在1993年制定的,称为vhdl-93,增加了一些新的命令和属性。虽然有“vhdl是一个4亿美元的错误”这样的说法,但vhdl毕竟是1995年以前唯一制订为标准的硬件描述语言,这是它不争的事实和优势;但同时它确实比较麻烦,而且其综合库至今也没有标准化,
8、不具有晶体管开关级的描述能力和模拟设计的描述能力。目前的看法是,对于特大型的系统级数字电路设计,vhdl是较为合适的。实质上,在底层的vhdl设计环境是由verilog hdl描述的器件库支持的,因此,它们之间的互操作性十分重要。目前,verilog和vdhl的两个国际组织ovi、vi正在筹划这一工作,准备成立专门的工作组来协调vhdl和verilog hdl语言的互操作性。ovi也支持不需要翻译,由vhdl到verilog的自由表达。2.2 verilog hdlverilog hdl是在1983年,由gda(gateway design automation)公司的phil moorby首
9、创的。phil moorby后来成为verilog-xl的主要设计者和cadence公司的第一合伙人。在19841985年,phil moorby设计出了第一个名为verilog-xl的仿真器;1986年,他对verilog hdl的发展又作出了另一个巨大的贡献:提出了用于快速门级仿真的xl算法。随着verilog-xl算法的成功,verilog hdl语言得到迅速发展。1989年,cadence公司收购了gda公司,verilog hdl语言成为cadence公司的私有财产。1990年,cadence公司决定公开verilog hdl语言,于是成立了ovi(open verilog inte
10、rnational)组织,负责促进verilog hdl语言的发展。基于verilog hdl的优越性,ieee于1995年制定了verilog hdl的ieee标准,即verilog hdl 1364-1995;2001年发布了verilog hdl 1364-2001标准。在这个标准中,加入了verilog hdl-a标准,使verilog有了模拟设计描述的能力。2.3 superlog开发一种新的硬件设计语言,总是有些冒险,而且未必能够利用原来对硬件开发的经验。能不能在原有硬件描述语言的基础上,结合高级语言c、c+甚至java等语言的特点,进行扩展,达到一种新的系统级设计语言标准呢?su
11、perlog就是在这样的背景下研制开发的系统级硬件描述语言。verilog语言的首创者phil moorby和peter flake等硬件描述语言专家,在一家叫co-design automation的eda公司进行合作,开始对verilog进行扩展研究。1999年,co-design公司发布了superlogtm系统设计语言,同时发布了两个开发工具:systemsimtm和systemextm。一个用于系统级开发,一个用于高级验证。2001年,co-design公司向电子产业标准化组织accellera发布了superlog扩展综合子集ess,这样它就可以在今天verilog语言的rtl级综
12、合子集的基础上,提供更多级别的硬件综合抽象级,为各种系统级的eda软件工具所利用。至今为止,已超过15家芯片设计公司用superlog来进行芯片设计和硬件开发。superlog是一种具有良好前景的系统级硬件描述语言。但是不久前,由于整个it产业的滑坡,eda公司进行大的整合,co-design公司被synopsys公司兼并,形势又变得扑朔迷离。2.4 systemc随着半导体技术的迅猛发展,soc已经成为当今集成电路设计的发展方向。在系统芯片的各个设计中,像系统定义、软硬件划分、设计实现等,集成电路设计界一直在考虑如何满足soc的设计要求,一直在寻找一种能同时实现较高层次的软件和硬件描述的系统
13、级设计语言。systemc正是在这种情况下,由synopsys公司和coware公司积极响应目前各方对系统级设计语言的需求而合作开发的。1999年9月27日,40多家世界著名的eda公司、ip公司、半导体公司和嵌入式软件公司宣布成立“开放式systemc联盟”。著名公司cadence也于2001年加入了systemc联盟。systemc从1999年9月联盟建立初期的0.9版本开始更新,从1.0版到1.1版,一直到2001年10月推出了最新的2.0版。3 各种hdl语言的体系结构和设计方法3.1 systemc所有的systemc都是基于c+的;图1中的上层构架都是很明确地建立在下层的基础上;systemc内核提供一个用于系统体系结构、并行、通信和同步时钟描述的模块;完全支持内核描绘以外的数据类型、用户定义数据类型;通常的通信方式,如信号、fifo,都可以在内核的基础上建立,经常使用的计算模块也可以在内核基础上建立;如果需要,图1中较低层的内容不依赖上层就可以直接使用。实际使用中,systemc由一组描述类库和一个包含仿真核的库组成。在用户的描述程序中,必须包括相应的类库,可以通过通常的ansi c+编译器编译该程序。systemc提供了软件、硬件和系统模块。用户可以在不同的层次上自由选择,建立自己的系统模型,进行仿真、优化、验证、综合等等。