最近在看一些芯片验证的资料,结合有些做纯计算机软件编程的人想入手硬件编程领域,觉得以下几点总结得几好。
1. 了解 HDL 的可综合性问题。 HDL 有两种用途:系统仿真和硬件实现。如果程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。但如果我们的程序 是用于硬件实现,那么我们就必须保证程序的可综合(程序的功能可以用硬件电路实现)。我们应该牢记一点:所有的 HDL 描述都可以用于仿真,但不是所有的 HDL 描述都能用硬件实现。
2. 用硬件电路设计的思想来编写 HDL。学好 HDL 的关键是充分理解 HDL语句和硬件电路的关系。编写 HDL,就是在描述一个电路,不能用纯软件的设计思 路来编写硬件描述语言。 Verilog 描述电路的时候,一定要清楚它实现的电路,很多人只顾学习 Verilog 语言,而不熟悉它实现的电路,这是设计不出好电路来的。所以数字电路的里面的各种门必须熟悉,卡诺图化简起码要知道。
3. 语法掌握贵在精,不在多。 30%的基本 HDL 语句就可以完成 95%以上的电路设计,很多生僻的语句并不能被所有的综合软件所支持,程序移植或者更换平台时,容易产生兼容性问题,也不利于他人阅读和修改。如xilinx里面用到的很多原语在Altera里面就用不上,兼容不起来,需要针对不同平台修改。