硬件描述语言与软件编程语言有什么本质的区别?
一、硬件描述语言与软件编程语言的本质的区别
用途不一样。VHDL等硬件描述语言主要用于CPLD、FPGA的大规模可编程逻辑器件;而C语言等高级编程语言主要用于计算机等方面。做单片机方面,汇编语言是必学的,虽然单片机编程所用的大部分是C语言。VhdL语言是针对FPGA和CPLD的硬件描述语言,两者没多大共同点,是针对两个不同领域的语言。
首先说VHDL:它是描述电路的计算机工具,早期的CPLD等器件是基于与-或阵列的,更容易说明这点,VHDL是描述电路行为的,当下载到器件后,它就是具体的电路,这个电路全由与-或阵列组成。后期的FPGA也一样,只是它是基于查找表的。再说C语言:我们可以认为它是用于控制特定电路的工作。我们都知道可以C编程的控制器都有程序存储器,它里面就存放了C编译后的二进制代码。而VHDL里下载后根本就不需要这个存放程序的地方。
延伸阅读:
二、Verilog的抽象层次
Verilog的抽象层次是指,要实现一个功能,我们可以怎么用怎样的Verilog语言去描述他。Verilog一共有五种抽象层次,分别是:系统级、算法级、寄存器级、门级、开关级,其中系统级和算法级又称作是行为级,寄存器级又称为数据流级,门级和开关级又称作是结构级。
行为级是通过模块之间的数据流描述系统实现,并不关心具体的硬件层次。这一层次抽象层次较高,描述也最灵活。这一层次和C语言时类似的,语法逻辑上十分相似。
数据流级是通过通过描述模块内部或者模块之间,数据在寄存器间的流动和数据处理。数据流级抽象层次较低,一般数据流级描述可以进行逻辑综合。和C语言不同,数据流级描述涉及到具体的线路连接(如线网驱动和寄存器驱动)。
结构级是用具体的逻辑门(如与、或、非门等)和具体的开关器件实现模块功能。这一抽象层次级别最低,灵活性也较差。但是,同一个逻辑表达式表达的功能,用不同的电路结构去实现,最终的电路面积功耗速度稳定性等性能参数是完全不同的。这一层次上考虑的问题,C语言是完全不会考虑的。
总言之,Verilog有着比C语言更加丰富的抽象层次,这使得进行代码优化时,Verilog不仅可以像C语言一样,从算法逻辑上进行优化,灵活性高,还可以从电路设计实现的角度进行优化,更大程度上提高电路性能。

相关推荐HOT
更多>>
硬件描述语言与软件编程语言有什么本质的区别?
一、硬件描述语言与软件编程语言的本质的区别用途不一样。VHDL等硬件描述语言主要用于CPLD、FPGA的大规模可编程逻辑器件;而C语言等高级编程语...详情>>
2023-10-13 18:00:08
Data Scientist、Data Analyst、Data Engineer 有什么区别?
一、Data Scientist、Data Analyst、Data Engineer 的区别Data Scientist、Data Analyst、Data Engineer 这三者是数据行业中比较详情>>
2023-10-13 16:57:12
大数据分析与数据分析有什么区别?
一、大数据分析与数据分析的区别大数据分析与数据分析有以下区别:1、数据规模不同大数据分析通常处理海量数据,而数据分析则处理小规模数据。2...详情>>
2023-10-11 23:04:34
地址传递和值传递有哪些区别?
一、地址传递和值传递的区别地址传递和值传递都是计算机编程中常用的参数传递方式,它们之间的主要区别如下:1、定义不同值传递:将函数调用中...详情>>
2023-10-11 20:05:08热门推荐
什么是农业物联网?
沸如何实施项目制管理?
热物联网工程是什么?
热Pycharm专业版、教育版和社区版有哪些区别?
新怎样才是好的测试用例?
记工天用什么软件?
物联网与互联网的区别是什么?
物联网应用是什么?
西门子PLC是用什么语言编程的?
c语言中的返回值究竟有什么用?
为什么箭头函数想要立即执行必需要用括号把箭头函数整体包起来?
硬件描述语言与软件编程语言有什么本质的区别?
驼峰式大小写中 StudlyCaps 和 Camel-Case 有什么区别?
Data Scientist、Data Analyst、Data Engineer 有什么区别?