Embedded 什么';在C上使用Verilog或VHDL的动机是什么?
我有编程背景,对硬件或固件(最多一点电子和Arduino)没有太多干扰 使用硬件描述语言(HDL),如Verilog和VHDL,而不是像C或某些汇编语言的动机是什么 这是一个选择的问题吗 我读到硬件,它的固件是用HDL写的,在并行运行指令方面有明显的优势。然而,我很惊讶地看到讨论中表达了怀疑(如果您不一定有CPU,那么组装如何合适?) 因此,我有几个问题(请毫不犹豫地解释):Embedded 什么';在C上使用Verilog或VHDL的动机是什么?,embedded,verilog,hdl,firmware,Embedded,Verilog,Hdl,Firmware,我有编程背景,对硬件或固件(最多一点电子和Arduino)没有太多干扰 使用硬件描述语言(HDL),如Verilog和VHDL,而不是像C或某些汇编语言的动机是什么 这是一个选择的问题吗 我读到硬件,它的固件是用HDL写的,在并行运行指令方面有明显的优势。然而,我很惊讶地看到讨论中表达了怀疑(如果您不一定有CPU,那么组装如何合适?) 因此,我有几个问题(请毫不犹豫地解释): 固件真的可以用HDL或软件编程语言编写,或者只是执行相同任务的另一种方式?我很喜欢现实世界的例子。每个选项会产生哪些约束
有些硬件描述语言基于软件开发语言,例如Handle C,它是一种类似于C的硬件描述语言,这一事实可能会造成进一步的混淆。这个问题在一段时间之前不会出现太多,但在当前的平台上,您现在可以在C和HDL语言之间进行转换(从90年代开始,不再使用C的Handel-C扩展),主要是在C和行为VHDL之间,以及企业提供的许多较新工具,如Xilinx电子系统级设计生态系统或Pulse-C() 重要的是要知道,C是一种中级语言,VHDL是一种描述语言。C只能处理顺序指令,而VHDL允许顺序和并发执行 即使C程序可以用纯逻辑或算法思维成功编写, 一个成功的VHDL程序员需要对硬件电路有透彻的工作知识。能够预测给定代码将如何在硬件中实现
在这两种语言中,您都关心资源的使用,但方式不同(除非您是为资源受限的设备编程)。但是当涉及到VHDL时,除了内存之外,FPGA中的其他逻辑元素也受到限制(通常将VHDL代码放在FPGA中)。虽然存在一些重叠(状态机等),HDL语言通常用于描述计算设备的结构(最终称为“布线”),而C等语言则用于为其提供按分支顺序依次执行的任务列表。“固件”通常指后者(基本上是存储在芯片中的“软件”与“磁盘”)—HDL等价物是“设计文件"要么加载到FPGA中,要么用于指导定制IC的物理生产。一个项目既有HDL来描述定制处理器,又有固件在其上运行,这并不少见。您似乎认为Handel-C已经过时,不再相关。它仍然是Mentor Graphic的核心。如果您从上世纪90年代起就没有使用过它90年代你可能不知道它有多强大