我来自编程背景,对硬件或固件(最多是电子产品和Arduino)的了解不多。
在像C或某些Assembly这样的编程语言上使用Verilog和VHDL等硬件描述语言(HDL)的动机是什么?
这是一个选择问题吗?
我读到它的固件写在HDL中的硬件在并行运行指令方面具有明显的优势。但是,令我惊讶的是,有讨论使人们怀疑是否要用C或Assembly编写固件(如果您不一定要有CPU,如何使用Assembly?),我感到很惊讶,但我得出结论,这也是一个选择。
因此,我有几个问题(不要犹豫,解释一下):
固件真的可以用HDL或软件编程语言编写,还是执行相同任务的另一种方式?我喜欢真实的例子。每个选项产生什么约束?
我知道固件在软件上的普遍用法是在硬件加速器(例如GPU,网络适配器,SSL加速器等)中。据我了解,这种加速并非总是必要的,而只是推荐的(例如,在SSL和复杂算法加速的情况下)。在所有情况下都可以在固件和软件之间进行选择吗?如果不是这样,我很乐意使用固件清晰明确的方式。
我读过,固件大部分刻录在ROM或闪存上。它在其中如何表示?像软件一样?如果是这样,有什么深远的区别?如果是固件,是否可以使用自适应电路?
我想我在某些假设下到处都是错误,请原谅。谢谢!