Verilog语言和C语言的本质区别是什么?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」,

点个关注在评论区回复"888"之后私信回复"888",全部无偿共享给大家!!!

用老石的一句话其实很好说明本质,cpu运行时固定数据流,底层硬件在变化。而++fpga++运行是固定底层硬件,数据流在硬件上流动。我知道很多初学者看到这段并不能理解,不是说fpga是可以对硬件进行编程的器件吗?为什么运行的时候底层硬件是固定的?

这其实跟他们处理数据的思路有关,cpu是通过指令集去完成指定操作,而fpga实现功能的思路与数字硬件电路一样,需要加法器,那我就用++与非门++ 搭建一个加法器,只不过fpga内部就把与或非这些逻辑门用查找表这一个器件替代了,查找表本质就是ram,这个ram只能通过综合软件进行初始化,每次写完程序后,使用++vivado++ ,quartus综合,然后++烧录++ ,烧录的是什么?其实就是给这些查找表赋值,确定这些查找表的功能,有的查找表根据写的代码,可能是加法器,减法器,++数据选择器++,比较器等等。当工程烧录进fpga之后,那fpga内的每个查找表的功能和连接方式其实就已经确定了,其实fpga内部的电路就已经确定了,后续需要处理的数据只需要从输入端流出到输出端,就完成了相关了运算,所以说fpga运行是数据流在底层硬件上流动,因此速度就很快。

从而也得知编写fpga本质就是搭建++数字电路++,只不过使用查找表替换了与,或,非这些基本逻辑。比如在学数字电路的时候想要实现两个加法运算,怎么做?如果不考虑速度,那就按顺序执行。如果想电路简单,速度快,那是不是直接搭两套加法器电路,每个电路完成一个加法运算,最后把两个电路计算结果使用一个数据选择器选择输出就行了?这其实跟fpga的思路是一样的,想速度快直接搭两套完全相同的电路实现两个运算即可。

而单核cpu想要完成两组运算怎么办?那就只有按顺序一组一组的来了。cpu他需要取址,译码等操作,每次只能执行一条指令,当他取到需要运算的数据后,如果要执行加法运算,就需要调用底层加法器,如果要执行除法,就要调用++除法器++去完成,本质是数据固定,根据运算类型不同调用底层不同硬件去计算,所以速度相对较慢。

当然现在cpu和fpga都已经不是当年那个简单的器件了,fpga内部也早就不只有查找表,cpu内部运算也进步了,但本质的东西还是没变。

相关推荐
学工科的皮皮志^_^2 小时前
电压源和电流源学习理解
单片机·嵌入式硬件·学习
linweidong4 小时前
跨平台驱动开发:打造兼容多款MCU的硬核方案
驱动开发·单片机·嵌入式硬件·bsp·rtos·spi驱动·hal设计
易享电子4 小时前
基于单片机大棚浇水灌溉控制系统Proteus仿真(含全部资料)
单片机·嵌入式硬件·fpga开发·51单片机·proteus
星辰pid7 小时前
STM32基于can总线通信控制多个舵机/电机原理及代码
stm32·单片机·嵌入式硬件
武文斌777 小时前
项目学习总结:CAN总线、摄像头、STM32概述
linux·arm开发·stm32·单片机·嵌入式硬件·学习·c#
淘晶驰AK8 小时前
主流的 MCU 开发语言为什么是 C 而不是 C++?
c语言·开发语言·单片机
云山工作室15 小时前
2025年单片机毕业设计选题物联网计算机电气电子通信类
单片机·物联网·课程设计
Ching·16 小时前
STM32L4xx编译提示Keil MDK Warning: L6989W警告问题及其解决办法
stm32·单片机·嵌入式硬件
小莞尔17 小时前
【51单片机】【protues仿真】基于51单片机温度测量系统
c语言·单片机·嵌入式硬件·物联网·51单片机
晓风凌殇17 小时前
单片机按键检测与长短按识别实现
c语言·单片机