我来自编程背景,并没有过多地使用硬件或固件(最多是一点电子设备和 Arduino)。
使用诸如 Verilog 和 VHDL 之类的硬件描述语言 (HDL) 而不是诸如 C 或汇编语言之类的编程语言的动机是什么?
这是一个选择问题吗?
我读到了硬件,它的固件用 HDL 编写,在并行运行指令方面具有明显的优势。然而,我很惊讶地看到有人质疑是用 C 语言还是汇编语言编写固件(如果你不一定有 CPU,那么汇编如何合适?)但我得出结论,这也是一种选择。
因此,我有几个问题(不要犹豫解释任何事情):
固件真的可以用 HDL 或软件编程语言编写,还是只是完成相同任务的另一种方式?我很想有一些现实世界的例子。每个选项会产生什么限制?
我知道固件优于软件的常见用途是硬件加速器(例如 GPU、网络适配器、SSL 加速器等)。据我了解,这种加速并不总是必要的,只是推荐使用(例如,在 SSL 和复杂算法加速的情况下)。在所有情况下都可以在固件和软件之间进行选择吗?如果不是,我很高兴知道固件在哪些情况下是明确且明确合适的。
我读过固件主要烧在 ROM 或闪存上。它在那里是如何表现的?以比特为单位,比如软件?如果是这样,有什么深刻的区别?在固件的情况下是否可以使用适配电路?
我想我在某些假设中在这里和那里犯了一个错误,请原谅我。谢谢!