信息爆炸的时代难的并不是某个知识点。
目录
硬件设计语言的精髓就是用最简单的语句描述最复杂的硬件,不可过分追求代码的简洁。
可综合是说所编写的代码可以对应成具体的电路。https://blog.csdn.net/kebu12345678/article/details/78950912
-
综合和实现步骤
综合:将代码转化成网表(由与门,非门,RAM,触发器等基本逻辑单元连接而成),对应的是功能仿真。
实现:分为翻译,映射和布局布线。对于大工程,编译很费时间,往往先看映射后的时序报告进行前期的分析。对应的是时序仿真。
https://www.cnblogs.com/clover-toeic/p/3755360.html
阻塞赋值:一般对应电路中的组合逻辑赋值,等号右端的结果会立刻赋值给左端。在本语句中“右式计算”和“左式更新”完全完成之后,才开始执行下一条语句。
非阻塞赋值:一般对应电路中的时序逻辑赋值,等号右端的结果不会立刻赋值给左端。在计算非阻塞赋值的RHS表达式和更新LHS期间,其他的Verilog语句,包括其他的非阻塞赋值语句都可能计算RHS表达式和更新LHS。非阻塞赋值允许其他的Verilog语句同时进行操作。
非阻塞赋值操作只能用于对寄存器类型变量进行赋值,因此只能用在“initial”块和“always”块等过程块中,而非阻塞赋值不允许用于连续赋值。
在数字电平变化的电压上升沿或下降沿到一定阀值时就产生触发,是谓边沿触发。当电压达到数字电平的高或低电压一段时间后(一般是最小脉冲宽度的三分之一),才产生触发是电平触发。
边沿触发和电平触发基本就是触发器和锁存器的区别。
触发器是边沿触发,只有当时钟上升(或下降)的一瞬间,触发器会读取并锁存输入信号。输出信号仅在时钟信号上升(或下降)的一瞬间会发生变化。
锁存器是电平触发,只要使能(enable)信号处于高电平(或低电平),输出就会随着输入信号变化,直到使能信号变为低电平(或高电平)时,输出才会锁存,不再随输入变化。
-
阅读大项目的代码
首先,弄清楚时钟信号的复位信号;
其次,最好对照工程的需求说明书看。如没有就看电路原理图,了解常用器件的操作时序。
最后,就是要有耐心,多分析,有条件可以问原作者。
写好Verilog代码并非一朝一夕的事,需要多练习,多学习优秀的代码(和玩王者看直播是一个道理,学习大神的操作)