| |
在学校的时候,由于教材的缘故,好多人学得是Vhdl,我也是。然而在很多公司内部,verilog才是比较通用的语言,不管是设计,还是验证,都一样。所以,这几天又要重新回过来再学习Verilog语言。
语言这个东西,如果你只看不用,那就很难学会,就好像我们在学校的时候学英语,如果有个环境,天天需要你说英语,很快你就觉得说英语不那么别扭了,有时候甚至还有想说的冲动。同样的道理,Verilog也是一样的,需要更多的去实践,去用。在写代码的过程当中,你就会理解一些语法和语义。
个人觉得,可以从最简单的逻辑门写起,学习实例化以及连续赋值语句(组合逻辑),再到计数器、选择器(学习时序逻辑和过程赋值语句),再到状态机这些既有时序逻辑又有组合逻辑的学习。实际上,掌握了状态机之后,其实一般的程序都没有什么问题了,重要的就是如何把一个算法转化为数据通到和状态机的状态转换上来了。
谈到数据通道和状态机(在RTL级进行描述),我觉得基础的数字电路知识是必须的,最好知道自己在描述的时候,对应的RTL级的数字电路应该是什么样的,最好能够画出底层的逻辑电路。
再回过来谈语言,实际上语言只不过是你画下来的逻辑电路的另外一种表述而已。