代码在这:becomequantum (becomequantum) · GitHub
算法演示动画:CCAL_哔哩哔哩_bilibili
大脑视觉皮层运作机理简介,CNN其实不像它_哔哩哔哩_bilibili
Verilog是一种思维方式
先来谈一下怎样才能学好Verilog这个问题。有人说学Verilog很难,好像比C语言还要难学。有一定难度是真的,但并没有比别的语言更难学。我们刚开始学C语言的时候也觉得C语言很难,直到我们把思维方式转变过来了,把微机原理学好了,能模拟CPU的运行方式来思考问题了,就会发现C语言也没那么难了。所以这里面存在一个思维方式的转换的过程。这对于学Verilog来说也是一样的,只不过Verilog比C语言还要更加底层,我们只掌握了CPU的思维模式还不行,还需要再往下学一层“硬件电路的思维模式”,才能更好的掌握硬件编程语言。
我对学习的一个经验总结就是,如果你想要很好的掌握某一个层面的知识技能,那就必须要往下再学一个更基础的层面。比如C语言是软件层面的,理论上你不知道CPU的工作原理也能编程。但要成为高手也还是必须对更下层的微机原理、编译原理等有深入的了解。再往下一层,也就是数字电路层,对于软件编程来说已经不太重要了。但要学好Verilog,则又必须再往下学好数字电路这一层。也就是要了解什么是时序电路,组合电路,RTL,什么是触发器的建立时间和保持时间等这些重要概念。至于触发器是由什么样的门电路构成的,逻辑门的版图又是怎么画的,这样更底层的知识其实对学Verilog来说也不太重要,但要是学芯片设计,这些又很重要。