硬件描述语言和一般的高级语言有什么不同?

作者&投稿:靳文 (若有异议请与网页底部的电邮联系)
硬件描述语言与高级编程语言有何区别?~

用途不一样
VHDL等硬件描述语言主要用于CPLD、FPGA的大规模可编程逻辑器件

而C语言等高级编程语言主要用于计算机等方面

机器语言 (Machine language)

机器语言Machine Language(低级语言)

机器语言是计算机唯一能接受和执行的语言。机器语言由二进制码组成,每一串二进制码叫做一条指令。一条指令规定了计算机执行的一个动作。一台计算机所能懂得的指令的全体,叫做这个计算机的指令系统。不同型号的计算机的指令系统不同。

指令通常由几个字节组成,第一个字节是操作码,它规定了计算机要执行的基本操作;后面的字节是操作数,它规定了操作对象或操作对象的地址。

机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机字长为16位,即有16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作。

如某种计算机的指令为1011011000000000,它表示让计算机进行一次加法操作;而指令1011010100000000则表示进行一次减法操作。它们的前八位表示操作码,而后八位表示地址码。从上面两条指令可以看出,它们只是在操作码中从左边第0位算起的第6和第7位不同。这种机型可包含256(=28)个不同的指令。

机器语言或称为二进制代码语言,计算机可以直接识别,不需要进行任何翻译。每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言。它是第一代的计算机语言。机器语言对不同型号的计算机来说一般是不同的。

使用机器语言编写程序是一种相当烦琐的工作,既难于记忆也难于操作,编写出来的程序全是由0和1的数字组成,直观性差、难以阅读。不仅难学、难记、难检查、又缺乏通用性,给计算机的推广使用带来很大的障碍。

最早的程序设计语言都采用机器语言来编写。当时,要在计算机上运行的所有算法都必须直接用机器语言来表达,计算机才能接受。算法的运算序列包括运算对象和运算结果都必须转换为指令序列。其中的每一条指令都以编码(指令码和地址码)的形式出现。与算法语言表达的算法,相差十万八千里。对于没受过程序设计专门训练的人来说,一份程序恰似一份"天书",让人看了不知所云,可读性极差。

用机器语言表达算法的运算、数据和控制十分繁杂琐碎,因为机器语言所提供的指令太初等、原始。机器语言只接受算术运算、按位逻辑运算和数的大小比较运算等。对于稍复杂的运算,都必须一一分解,直到到达最初等的运算才能用相应的指令替代之。机器语言能直接表达的数据只有最原始的位、字节、和字三种。算法中即使是最简单的数据如布尔值、字符、整数、和实数,也必须一一地映射到位、字节和字中,还得一一分配它们的存储单元。对于算法中有结构的数据的表达则要麻烦得多。机器语言所提供的控制转移指令也只有无条件转移、条件转移、进入子程序和从子程序返回等最基本的几种。用它们来构造循环、形成分支、调用函数和过程得事先做许多的准备,还得靠许多的技巧。

直接用机器语言表达算法有许多缺点。

Ø 大量繁杂琐碎的细节牵制着程序员,使他们不可能有更多的时间和精力去从事创造性的劳动,执行对他们来说更为重要的任务。如确保程序的正确性、高效性。

Ø 程序员既要驾驭程序设计的全局又要深入每一个局部直到实现的细节,即使智力超群的程序员也常常会顾此失彼,屡出差错,因而所编出的程序可靠性差,且开发周期长。

Ø 由于用机器语言进行程序设计的思维和表达方式与人们的习惯大相径庭,只有经过较长时间职业训练的程序员才能胜任,使得程序设计曲高和寡。

Ø 因为它的书面形式全是"密"码,所以可读性差,不便于交流与合作。

Ø 因为它严重地依赖于具体的计算机,所以可移植性差,重用性差。

这些弊端造成当时的计算机应用未能迅速得到推广。



汇编语言(Assember language)
汇编语言Assembler Language(低级语言)

为了克服机器语言上述的缺点,出路在于程序设计语言的抽象,让它尽可能地接近于算法语言。为此,人们首先注意到的是可读性和可移植性,因为它们相对地容易通过抽象而得到改善。于是,很快就出现汇编语言。这种语言对机器语言的抽象,首先表现在将机器语言的每一条指令符号化:指令码代之以记忆符号,地址码代之以符号地址,使得其含义显现在符号上而不再隐藏在编码中,可让人望"文"生义。其次表现在这种语言摆脱了具体计算机的限制,可在不同指令集的计算机上运行,只要该计算机配上汇编语言的一个汇编程序。这无疑是机器语言朝算法语言靠拢迈出的一步。但是,它离算法语言还太远,以致程序员还不能从分解算法的数据、运算和控制到汇编才能直接表达的指令等繁杂琐碎的事务中解脱出来。

用能反映指令功能的助记符表达的计算机语言叫汇编语言。它是符号化了的机器语言。用汇编语言编写的程序叫汇编语言源程序,计算机无法执行。必须用汇编程序把它翻译成机器语言目标程序,计算机才能执行。这个翻译过程称为汇编过程。

汇编语言是用助记符表示指令功能的计算机语言。与机器语言相比,汇编语言具有以下的几个特点:第一,它使用符号来表示操作码和地址码,这种符号便于记忆,称为记忆码。第二,汇编程序自动处理存储分配,毋需程序员做存储分配工作。第三,程序员可以直接书写十进制数`

例如,要计算c=7+8,可以用如下几条汇编命令:

标号 指令 说明

START GET 7; 把7送进累加器ACC中

ADD 8; 累加器ACC+8送进累加器ACC中

PUT C; 把累加器ACC送进C中

END STOP; 停机

其中(ACC)表示累加器中的值,等等。

如此简单的汇编语言,只是符号形式的机器语言,但用它来编写程序或阅读已经编写好的程序比起机器语言来要简单和方便多了。这就是计算机语言发展中的第二代语言—汇编语言。人们使用这种助记符编写程序后,要是计算机能够接受,还必须把编好的程序逐条翻译成二进制编码的机器语言。当然,这个工作并不是有程序员来完成,而是有称为“汇编程序”的程序自动完成的。汇编程序的功能就是把由汇编语言编写的程序(称为汇编语言源程序)翻译成机器语言程序,计算机才能执行该程序。这个翻译过程称为汇编。

汇编语言比起机器语言在很多方面都有很大的优越性,如编写容易、修改方便、阅读简单、程序清楚等,但在计算机语言系统中,把汇编语言仍然列入“低级语言”的范畴,它仍然是属于面向机器的语言,也就是说,不同的计算机可以有不同的指令集。

高级语言(High-level language)
高级语言

机器语言和汇编语言都是面向机器的,高级语言是面向用户的。到了50年代中期,出现程序设计的高级语言如Fortran,Algol60,以及后来的PL/l,Pascal等,算法的程序表达才产生一次大的飞跃。用高级语言编写的程序叫做高级语言源程序,必须翻译成机器语言目标程序才能被计算机执行。高级语言的翻译有两种方式:编译方式和解释方式。

Ø 编译方式:先由编译程序把高级语言源程序翻译成目标程序,执行时运行目标程序。

Ø 2.解释方式:在运行高级语言源程序时,由解释程序对源程序边翻译边执行。

诚然,算法最终要表达为具体计算机上的机器语言才能在该计算机上运行,得到所需要的结果。但汇编语言的实践启发人们,表达成机器语言不必一步到位,可以分两步走或者可以筑桥过河。即先表达成一种中介语言,然后转成机器语言。汇编语言作为一种中介语言,并没有获得很大成功,原因是它离算法语言还太远。这便指引人们去设计一种尽量接近算法语言的规范语言,即所谓的高级语言,让程序员可以用它方便地表达算法,然后借助于规范的高级语言到规范的机器语言的"翻译",最终将算法表达为机器语言。而且,由于高级语言和机器语言都具有规范性,这里的"翻译"完全可以机械化地由计算机来完成,就像汇编语言被翻译成机器语言一样,只要计算机配上一个编译程序。

上述两步,前一步由程序员去完成,后一步可以由编译程序去完成。在规定清楚它们各自该做什么之后,这两步是完全独立的。它们各自该如何做互不相干。前一步要做的只是用高级语言正确地表达给定的算法,产生一个高级语言程序;后一步要做的只是将第一步得到的高级语言程序翻译成机器语言程序。至于程序员如何用高级语言表达算法和编译程序如何将高级语言表达的算法翻译成机器语言表达的算法,显然毫不相干。

为了解决低级语言的缺点,人们为了从根本上摆脱语言对机器的依赖,使之独立于机器,由面向机器改为面向过程,经过多年精心的研究,终于在1954年首先创造出一种与具体的计算机指令系统无关的、表达方式或接近于人们对求解过程或问题的描述方式,且易于掌握和书写的语言,这就是FORTRAN语言。人们把具有以上特点的语言称为高级语言,这就是计算机语言系统中的第三代语言。

例如计算A=1+2,若用高级语言(如BASIC语言)编写,只要两条语句:

10 A=1+2

11 END

就可以完成A=1+2的操作。这种语言,人们易于掌握和理解,即使小学生也容易掌握,便于推广,它不再是面向机器,而是“面向过程”,即用户不仅要告诉计算机“做什么”,还要告诉计算机“怎么做”,也就是把每一步操作事先设计好,然后再编写程序,让计算机按照指定的步骤去执行。目前,世界上已经有几百种不同类型、功能各异的高级语言。使用较多的有:

BASIC

FORTRAN

PASCAL

C

PL/I

ADA

LISP

程序设计语言从机器语言到高级语言的抽象,带来的主要好处是:

高级语言接近算法语言,易学、易掌握,一般工程技术人员只要几周时间的培训就可以胜任程序员的工作;
高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;
高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高;
由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。

一、语言构成不同

1、硬件描述语言:是电子系统硬件行为描述、结构描述、数据流描述的语言。

2、高级语言:其语法和结构更类似汉字或者普通英文,且由于远离对硬件的直接操作,使得一般人更容易学习。    

二、语言特点不同

1、硬件描述语言:是对电路系统的结构、行为的标准文本描述。硬件描述语言和一些并行编程语言一样存在并行性的表达方式。

2、高级语言:较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。


三、优势不同

1、硬件描述语言:利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。

2、高级语言:与计算机的硬件结构及指令系统无关,有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。


参考资料来源:百度百科-硬件描述语言

参考资料来源:百度百科-高级语言



高级语言更贴近人类使用得语言,硬件语言就是机器代码,由0,1组成

硬件描述语言就是可以描述硬件电路的功能,信号的连接关系及定时(时序)关系的语言,也是一种形式化方法来描述数字电路和设计数字系统的语言,目前最主流的是VHDL和Verilog HDL两种

  硬件描述语言和高级语言的区别:
  硬件描述语言最终靠硬件电路实现,高级软件语言靠CPU运算实现对于一个设计,编写硬件描述语言其实就是在画电路原理图,首先要清楚电路是怎么实现的,再去动手写HDL, 而不能先去用高级软件语言的思路写,再改成硬件描述语言。
  如果连电路都画不出来,就不要动手去写HDL,把电路想好了再动手。
  现在QuartusII,ISE,Synplify pro都有RTL View功能,软件可以自动显示硬件描述语言对应的电路图,经常使用这个功能,就可以理解硬件描述语言和电路的关系,时间长了,就会熟能生巧。


语言能力一般怎么填?
语言能力描述格式:1. 母语:中文。2. 其他掌握语言:英语、西班牙语等。具备良好的听说读写能力。对于部分专业领域,如法语等。具体解释:明确母语及主要语言:在填写语言能力时,首先要明确列出母语,例如中文。此外,还应提及其他掌握的语言,如英语、西班牙语等。描述语言熟练程度:对于每一种语言,都...

fdl是什么意思
FDL有多种含义,具体含义需要根据上下文来判断。一、FDL的常见含义 1. 文件描述语言:在计算机科学领域,FDL可能指的是文件描述语言,这是一种用于描述计算机文件结构和内容的语言。2. 地板距离雷达:在航空航天领域,FDL可能指的是地板距离雷达,用于测量飞机与地面之间的距离。3. 家具设计语言:在家居...

...某个方面的品质和特点。注意描述人物的语言、动作或神态
我感到非常纳闷:明艳不是一直跟我在一起吗?我怎么没听到过她说拾到两元钱呢?真是件怪事。我还没醒悟过来,邬明艳就把我拉到一个僻静处,压低了声音对我说:“黄莺,你反正带了五元钱,借给我一元吧。”“你的钱呢?”我感到非常奇怪。只见她神秘地眨了一下眼睛说:“我的钱嘛,刚才给了廖志强...

怎样辅导小学作文 写作技巧和步骤
链接: https:\/\/pan.baidu.com\/s\/1BuMZ23u5UxwKxHJfa1xF2Q 提取码: usef

描述性语言和评价性语言:说你看到的,而不是你认为的
心理学上讲暗示,我们的语言就是对我们的暗示,我说你好烦,心理就是会关注你让人烦的一方面,越关注越是难以忍受你的烦。如果换一种语言:“你总是问我同一件事,而我已经和你说过了,这会让我觉得你根本没有认真听我说过,让我心里很不舒服。”你换了这种语言方式,先描述事情再说出自己的想法...

HDL(硬件描述语言)有什么特点?
利用硬件描述语言(HDL)的硬件电路设计方法具有以下特点:(1) 采用自上而下的设计方法 (2) 系统中可大量采用ASIC芯片 由于目前众多的制造ASIC芯片的厂家,他们的工具软件都可以支持HDL语言的编程,因此,硬件设计人员在设计硬件电路时,无须受只能使用通用元器件的限制,而可以根据硬件电路设计的需要,设计...

1请用简洁的语言描述画面的内容2请你说说我们在日常生活中该怎样节约用...
洗衣机设定的程序一般都是一次洗涤,两次漂洗,水主要都耗费在漂洗上了。如果不用洗衣粉,不就能省下漂洗的水了吗?这种超声波洗衣机,每秒能发出2万次的冲击波,可以将污垢从衣物上“震”下来。洗衣机里还安装了一个特殊的电解水装置,能把自来水中的水分子分解成氢离子和氧离子,利用离子对污渍、...

一般化的使用技巧
1,运用描述行为的语言,转化当事人对事件的主观定义或者是标签。当事人:我觉得自己是一个懦弱的人,每次做事都要想很久,很怕出错。咨询师:听起来你决定做一件事情之前会先考虑,你想确认不会出错再行动,是这样吗?2,以心理学理论,心理咨询的理论,多数人的反应模式为基础来描述当事人的行为或者...

与软件描述语言相比,VHDL有什么特点
出现在在80年代的后期,最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL主要用于描述数字...

叙述性语言和人物语言的区别
叙述性语言和人物语言是两种不同的语言方式,主要表现在以下几个方面:1. 视角不同。叙述性语言是通过作者自己的视角来描述和叙述事件或事物的。而人物语言则是通过人物的语言来表达事件或事物,更加贴近人物,可以刻画人物的性格和思想情感。2. 表现方式不同。叙述性语言通过描写和解说等形式来呈现情节,...

秦淮区13391275044: 硬件描述语言和一般的高级语言有什么不同? -
井祥精制: 硬件描述语言是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的功能、电路结构和连接形式. 高级语言是一种人工设计的语言,它对具体的算法进行描述,所以又称为算法语言.高级语言独立于计算机的硬件(即与具体的硬件无关). 由此可以看出,一种是关于硬件的语言,而一种却不是关于硬件的语言,完全是两个不同的领域,几乎没有交集可言.

秦淮区13391275044: 硬件使用的语言是什么? -
井祥精制: 计算机语言主要分为三类:低级语言,高级语言,专用语言. 1.机器语言 机器语言是指一台计算机全部的指令集合 电子计算机所使用的是由"0"和"1"组成的二进制数,二进制是计算机的语言的基础.计算机发明之初,人们只能降贵纡尊,...

秦淮区13391275044: 与计算机硬件有关的程序设计语言有哪些?各有什么特点? -
井祥精制: 你指的是硬件描述语言吧? 像VHDL、Verilog、SystemC这种.具体特点本人还真不是很清楚,没有全部用过.只知道VHDL相对更面向硬件一点,SystemC这种更接近高级语言.

秦淮区13391275044: 可编程硬件描述语言主要包括哪俩种 -
井祥精制: 硬件描述语言概述 随着半导体技术的发展,数字电路已经由中小规模的集成电路向可编程逻辑器件(PLD)及专用集成电路(ASIC)转变.数字电路的设计手段也发生了变化,由传统的手工方式逐渐转变为以EDA工具作为设计平台的方式....

秦淮区13391275044: VHDL是什么? -
井祥精制: VHDL是一种硬件描述语言,是用来设计硬件的,更多地用于集成电路(IC)的设计.它的全称是 Very High Speed Integrated Circuit Hardware Description Language——超高速集成电路硬件描述语言. 是1983年由美国国防部委托 TI公司、IBM公司和Intermerics公司联合开发的.1987年被美国电气和电子工程师协会(IEEE)接受为第一个国际标准HDL——IEEE Std 1076-1987.

秦淮区13391275044: 什么是VHDL语言,有什么用? -
井祥精制: VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年.1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 .自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各...

秦淮区13391275044: 现在所说的高级语言都有哪几种? -
井祥精制: 高级语言:由于汇编语言依赖于硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言.在这种语言下,其语法和结构更类似普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程.高级语言通常按...

秦淮区13391275044: 硬件描述语言是什么 -
井祥精制: 硬件描述语言就是所谓的VHDL,在电子设计中有重要的应用.具体描述这里有:http://baike.baidu.com/view/1201.html?wtp=tt补充:硬件描述语言可以在某个芯片中实现若干个芯片的功能.比如现在常用的CPLD芯片,他有很多个引脚,可以通过VHDL设计软件,让它实现众多与非门、触发器等等组合逻辑和时序逻辑的功能.以上. 很久没玩过的老狼

秦淮区13391275044: 硬件编程语言和c c++之类的语言为何还不同? -
井祥精制: 看楼上说的很含糊,我简单的总结一下,计算机一共分为五个等级,最上面两个分别是高级语言级和汇编语言级,汇编语言采用助记符控制机器指令的执行,汇编语言对相应的硬件适应性也很强.而c c++是高级语言,是时代的发展,便于写程...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网