为什么不将Verilog视为编程语言?

nod*_*nja 15 programming-languages verilog

在课堂上,教授说学生不应该说他们学会了用Verilog编程.他说像Verilog这样的东西不习惯用来设计它.那么Verilog与其他编程语言有何不同?

Gre*_*reg 18

与VHDL一样,Verilog旨在描述硬件.相反,诸如C或C++之类的编程语言提供了软件程序的高级描述,即微处理器执行的一系列指令.

在实践中,Verilog和VHDL不提供与编程语言相同的功能,即使它们看起来非常相似.例如,forC/C++中的循环描述了给定代码片段的顺序执行; 相反,for ... generateVerilog/VHDL中的循环描述了同一硬件构建块(例如,逻辑门)的多个并行实例AND.确切地说,for在Verilog中也存在一个普通的循环,但同样,它必须是"可合成的",也就是说,编译器必须能够生成适合描述的逻辑.

通常,Verilog/VHDL中的初学者会试图将给定的函数/算法从C/C++类型的伪代码直接"转换"到Verilog/VHDL:令人惊讶的是,它有时可能会起作用,但它总是会导致设计极差.为了成为一名优秀的Verilog/VHDL程序员,我们必须真正意识到这些差异.

  • for循环中的隐含序列可以创建多个逻辑级别.这对于计时可能是一个糟糕的解决方案,但对于区域来说是一个很好 此外,根据情况,即使从最初的非最优结构,逻辑综合也可以做出创造良好逻辑的出色工作.换句话说,硬件设计师必须"理解他的编译器"(综合工具).但这不是优秀的程序员吗? (2认同)

nmi*_*els 13

Verilog是一种硬件定义语言.编程语言通常被理解为用于告知现有硬件要做什么的语言,而不是用于重新配置所述硬件的语言.