族谱网 头条 人物百科

硬件描述语言

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:210
转发:0
评论:0
目的1970年代以来,集成电路的复杂程度按照半导体业界摩尔定律的趋势急剧增长。电路设计人员的工作量不断增加,这使得他们必须放弃以往那样从特定的电子元件,如CMOS、双极性晶体管为基础,来开始复杂电路的设计工作。设计流程的关注重心开始转到电路系统的数据流动以及有关时序的信息,这样的设计抽象级别被称为“寄存器传输级”。设计人员通过使用硬件描述语言,可以将精力放在电路逻辑功能、时序的设计上,而不需要一开始就考虑具体的器件制造工艺以及它们对电路功能的影响。结构硬件描述语言是对电路系统的结构、行为的标准文本描述。硬件描述语言和一些并行编程语言一样存在并行性的表达方式。然而,和大多数用于软件设计的编程语言不同,硬件描述语言可以描述硬件系统在不同时间的时序行为,而时序性正是硬件电路的重要性质之一。在计算机辅助设计中,用于描述电路模块中连线、各层次模块之间互连的硬件描述语言代码,被称为“网表”。硬件描述语...

目的

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

结构

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

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

与控制流语言的比较

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

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

使用硬件描述语言进行设计

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

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

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

使用硬件描述语言进行验证

参见

集成电路设计

硬件验证语言


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 硬件
输入输入设备使用户能够将信息输入到系统中,或控制其操作。大多数个人计算机的鼠标和键盘,但笔记本电脑的系统通常使用的鼠标触摸板来代替。其他的输入设备包括网络摄像头,麦克风,游戏杆和图像扫描仪。输出设备输出设备在人类可读的形式显示信息。这种设备可以包括打印机,音箱,显示器或盲文压花。电脑主机在IBMSystemz9大型主机大型计算机是一个更大的计算机,通常填充一个房间,并且可能花费几百或几千倍之多的个人计算机。它们被设计用来运行大量计算为政府和大型企业。超级计算机超级计算机是表面上类似于大型机,而是被用于极其苛刻的计算任务。截至2016,世界上最快的超级计算机是神威·太湖之光。固定媒体数据是通过使用各种介质的计算机存储。硬盘驱动器被发现在几乎所有的旧电脑,由于其高容量,成本低,但固态硬盘速度更快,更省电,目前虽然比硬盘更加昂贵,因此往往更加昂贵的电脑上发现的。有些系统可能会使用一个磁盘数组控制...
· 硬件虚拟化
简介虚拟化这个概念,在1960年为了描述虚拟机(实验性的IBMM44/44X系统)被第一次提出。对虚拟机的架设和管理被称为平台虚拟化,现在也被称为服务器虚拟化。平台虚拟化表现为在一个给定硬件平台的宿主机上创造一个模拟的计算机环境(虚拟机)提供给客户机。客户机软件对于用户应用程序没有限制;许多宿主机允许运行真实的操作系统。客户机就好像直接运行在计算机硬件上,伴随着几个明显的警告。虚拟机对硬件资源(如网络、显示器、键盘、硬盘)的访问被统一管理在一个比处理器和系统内存更有限制性的层次上。客户软件经常被限制访问计算机周边设备,或者被限制在较低的设备性能上,这取决于宿主机硬件访问策略设定。虚拟化的原因在计算机集群中,许多小型服务器正在被一个大型服务器取代以增加硬件资源的利用率(如CPU等)。虽然硬件正在被整合,但是典型的操作系统仍然是独立的。取而代之地,每一个运行在独立的服务器上的操作系统被转移到在...
· 计算机硬件历史
早期的计算工具中国式算盘,用手指克服算数人类利用工具辅助算数已有数千年的历史,例如利用重量平衡原理所发明的秤,或是账房拿方格布以简易的数据结构原理,按照高度清点钱币堆叠。历史上算盘是人类的专门用来计算的工具,在公元前五世纪希腊的希罗多德有纪录埃及人有使用,后来其希腊字άβακας成为拉丁文、英文的abacus。齿轮是部分机械装备的心脏20世纪初期,希腊人在一艘约公元前65年遇难的沉船上,找到已有两千年历史的安提凯希拉仪器,据信用途是计算天体运行周期,协助古人筹备宗教节日和提醒谷物收割。此器件由37道青铜齿轮和刻度盘组成,齿轮彼此咬合,有一组齿轮的作用甚至是模拟月球的运动方式。这项技术工艺失传后,直到1600年后人类才有能力发明出复杂度旗鼓相当的计算机械。计算尺是基本的手动计算器,易于乘除1614年,苏格兰数学家纳皮尔发现利用加减计算乘除的方法,依此发明对数,纳皮尔在制作第一张对数表的时候,...
· 语言
汉语词义一人自说叫言,两人相应答叫语。《诗经》大雅疏:“于时言言,于时语语”云:直言曰言,谓一人自言;答难曰语,谓二人相对。郑注大司乐曰;“发端曰言,荅难曰语。”语言发展语言的发展,常会有让人误解之处,例如英语,英语虽是现今的大众语言,但其发展只有在英国开始。并且,英语不是欧洲语言的发展中心,大家常常误以为英语是欧洲语系的发源语,事实上英语是日耳曼语系的一个分支。英语的文法和德文,瑞典文相近;但与法语,意大利语等拉丁语系的语言文法差很多。英国与欧洲大陆隔有英吉利海峡,古代与欧洲各国分离,所以在语言,文化,宗教上有很大的差异。语言的概念对于语言概念的探讨是一个非常古老的问题,也是语言学的中心课题。由于研究方法和角度的不同,人们对“语言”的定义多种多样。有代表性的说法就有几十种。下面举出几种:语言是主要以呼吸器官发声为基础来传递信息的符号系统,是人类重要的交际工具和存在方式之一。用于表达事物、...
· D语言
特性D的设计来自实际的C++用法的经验教训,而不是从理论的角度。D沿用了很多C/C++观念,同时摒弃了一些概念,因此D并不完全兼容C/C++代码。D实现了C++的功能,实现了契约式设计(designbycontract)、单元测试、真正的模块性、自动化内存管理(垃圾回收)、第一类数组(firstclassarray)、关联数组、动态数组、数组切片、嵌套函数(嵌套函数)、内部类别、闭包的限制形式、匿名函数、编译时期函数运行、惰性计算以及革新的模板语法。D保有C++的性能以进行低级程序设计,并加入完整的内联汇编器支持。C++的多重继承改以Java单继承与接口混合的风格取代。D的宣告、语句和表达式语法几乎和C++一样。内联汇编器(inlineassembler)象征了D和Java、C#等应用程序语言的不同。内联汇编器让程序员输入机器特定的汇编语言码,如同标准D代码—通常由系统程序员使用的技术,以...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信