硬件描述语言

✍ dations ◷ 2025-08-21 17:33:30 #特定领域语言,硬件描述语言,建模语言,规范语言

在电子学中,硬件描述语言(英语:hardware description language, HDL)是用来描述电子电路(特别是数字电路)功能、行为的语言,可以在寄存器传输级、行为级、逻辑门级等对数字电路系统进行描述。随着自动化逻辑综合工具的发展,硬件描述语言可以被这些工具识别,并自动转换到逻辑门级网表,使得硬件描述语言可以被用来进行电路系统设计,并能通过逻辑仿真的形式验证电路功能。设计完成后,可以使用逻辑综合工具生成低抽象级别(门级)的网表(即连线表)。:1-12:3-4:483-484

硬件描述语言在很多地方可能和传统的软件编程语言类似,但是最大的区别是,前者能够对于硬件电路的时序特性进行描述。硬件描述语言是构成电子设计自动化体系的重要部分。小到简单的触发器,大到复杂的超大规模集成电路(如微处理器),都可以利用硬件描述语言来描述。常见的硬件描述语言包括Verilog、VHDL等。:254

1970年代以来,集成电路的复杂程度按照半导体业界摩尔定律的趋势急剧增长。电路设计人员的工作量不断增加,这使得他们必须放弃以往那样从特定的电子元件,如CMOS、双极性晶体管为基础,来开始复杂电路的设计工作。设计流程的关注重心开始转到电路系统的数据流动以及有关时序的信息,这样的设计抽象级别被称为“寄存器传输级”。设计人员通过使用硬件描述语言,可以将精力放在电路逻辑功能、时序的设计上,而不需要一开始就考虑具体的器件制造工艺以及它们对电路功能的影响。

硬件描述语言是对电路系统的结构、行为的标准文本描述。硬件描述语言和一些并行编程语言一样存在并行性的表达方式。然而,和大多数用于软件设计的编程语言不同,硬件描述语言可以描述硬件系统在不同时间的时序行为,而时序性正是硬件电路的重要性质之一。在计算机辅助设计中,用于描述电路模块中连线、各层次模块之间互连的硬件描述语言代码,被称为“网表”。硬件描述语言可以在结构级(或称逻辑门级)、行为级、寄存器传输级这几种不同的层次上对电路进行描述,实现同一功能的硬件描述语言也可以使用任一层次的硬件描述语言代码来描述。通过逻辑综合,后两种层次的硬件描述语言代码可以被转换到低抽象级别的门级描述,但是采用不同厂商的工具、使用不同的综合设置策略可能会产生不同的结果。

在实现具体的硬件电路之前,设计人员可以利用硬件描述语言来进行仿真。在硬件实现的过程中,硬件描述语言的源文件通常会被转换成一种类似可执行文件的中间文件,该文件可以解释硬件描述语言的各种代码、语句的语义。正由于此,硬件描述语言具有了类似软件编程语言的一些性质,但是总体来说,它仍然属于规约语言、建模语言的范畴。模拟电路也有自己的硬件描述语言,但和数字电路的差异较大。

可以使用传统的编程语言控制流程的特性来指代硬件的数据流性质,例如包含特定增强类库的C++(如SystemC)即可实现这样的目的。尽管如此,用于软件设计的编程语言不能对电路的时序性质进行描述,这导致软件编程语言不能替代专用的硬件描述语言。在最近地位愈加显著的硬件验证语言——SystemVerilog出现之前,人们利用C++和一些逻辑仿真工具协同工作,从而在硬件验证中实现面向对象程序设计的思想。

硬件描述语言的部分子集是可综合的,这意味着可以使用逻辑综合工具通过“阅读”行为级、寄存器传输级的代码,来“推断”这些代码对应的功能,从而给出一个经过优化的的电路连线网表。:111逻辑综合工具(如新思科技的Design Compiler等或Cadence的RTL Compiler)通常会对设计人员定义的逻辑功能进行逻辑化简,这样就可以避免冗杂的逻辑门级网表。含有延迟的硬件描述语言代码(例如Verilog中#5这样的代码)通常是不可合成的,也就是说,这部分代码在逻辑综合过程中会被忽略。这类代码在硬件验证中的作用更加显著。此外,还有其他部分代码结构也是不可合成的。

通过使用硬件描述语言,集成电路(特别是现代的数字电路)的设计效率得以大大提高。大多数设计人员从设计行为目标或高级架构图出发开始设计。电路系统的控制决断结构以流程图、状态图为原型。编写硬件描述语言代码的过程与目标电路的特性以及设计人员的编程风格有关。硬件描述语言可以是高抽象级别的算法描述。设计人员经常使用脚本语言(如Perl、Python)来在硬件描述语言中生成重复性的电路结构。硬件描述语言的编程工作可以在一些代码编辑器中完成,这些软件通常提供自动缩进、保留字高亮显示等辅助功能。

随后,硬件描述语言代码会经过审核阶段。在进行逻辑综合之前,电子设计自动化软件会进行一系列自动检查,如扫描硬件描述语言代码中存在的语法错误等。自动检查程序会将违背规则的代码呈现在报告中,并指出它们潜在的危害。代码中的硬件逻辑错误也会在此阶段被检查。这些审核过程可以尽可能减少代码在综合后引发的错误。

在工业界,硬件描述语言设计一般止于综合的完成。一旦逻辑综合工具将硬件描述语言代码映射到逻辑门级的网表,该网表会被送到之后的后端工艺产线。根据所使用的不同器件,如现场可编程逻辑门阵列(FPGA)、专用集成电路(ASIC)、门阵列(Gate array)、专用集成电路标准元件(Standard cell),实际电路的硬件制造过程可能不同,但是硬件描述语言一般并不过多关注的后端流程。普遍地说,随着设计流程逐渐转向物理实现方式,设计数据库的重心将转向器件制造工艺相关的信息,这些信息通常由硬件厂商提供,设计人员编写的硬件描述语言代码并不需要包含这方面的信息。最后,集成电路在物理上得以实现。

相关

  • 碘片碘化钾(英文:Potassium iodide,实验式:KI),俗称钾碘。是一种无机化合物,用于制备有机碘化物等,并用作化学试剂。为无色或白色立方晶体。无臭,有浓苦咸味。熔点 681℃,沸点 1330℃。易
  • 岛屿灰狐(U. littoralis)Vulpes littoralis Baird, 1857岛屿灰狐(学名:Urocyon littoralis),是一种小型狐狸,生活在加利福尼亚州海峡群岛的六个岛屿。岛屿灰狐是美国最小的狐狸。岛屿灰狐有六个亚种,每个
  • 生态气候图生态气候图(climate diagram)是Heirich Walter1985年发展出用以呈现地域植被与气候关系的一种工具。指以某地的气温及降水资料,依月份绘制之长期曲线图。由本图可以判断此地属
  • 金钱世界 (电影)《金钱世界》(英语:)是一部2017年美国传记剧情犯罪片,由雷德利·斯科特执导,大卫·史卡帕(英语:David Scarpa)撰写剧本,该片改编自约翰·皮尔森(英语:John Pearson (author))的1995年书
  • 拉巴尔拉巴尔(El Raval)是西班牙巴塞罗那的一个社区,位于旧城区的西部。该社区北到加泰罗尼亚广场、佩拉约街(Carrer de Pelai)和大学广场,东到兰布拉大道,毗邻哥特区,西面和南面的边界为
  • 立人大学立人大学,简称立大(Liren College,简称LRC)是中国大陆一家非政府组织,总部位于北京。立人大学的前身可以追溯到立人乡村图书馆于2011年7月1日至15日在立人乡村图书馆第一分馆黄侃
  • 山口彊山口彊(日语:山口 彊/やまぐち つとむ ,1916年3月16日-2010年1月4日),日本长崎县人,是首个被日本政府承认为先后经历广岛与长崎两次原爆的幸存者。 山口彊遭受爆炸的地方两次都位于
  • 巴利恰克巴利恰克(Balichak),是印度西孟加拉邦Medinipur县的一个城镇。总人口12206(2001年)。该地2001年总人口12206人,其中男性6092人,女性6114人;0—6岁人口1360人,其中男660人,女700人;识字
  • 阿方索 (安茹及加的斯公爵)西班牙大公、安茹及加的斯公爵阿方索(法语:Alphonse de Bourbon;1936年4月20日-1989年1月30日),本名阿方索·海梅·马尔塞利诺·曼努埃尔·维克多·玛利亚·德·波旁-达姆皮埃尔(西
  • 冨㭴义博冨㭴义博(1966年4月27日-),小名为Yoshirin。生于日本山形县新庄市,日本男性漫画家,是《幽游白书》与《HUNTER×HUNTER》的作者 。在1999年与武内直子结婚。弟弟是成人漫画家冨㭴秀