一,Verilog基本语法掌握情况
目前速读过夏宇闻老师的《Verilog数字系统设计教程》书籍的1-14章节,知识涵盖Verilog常见语法、Verilog数字系统设计和验证两大部分,对于语法基本了解熟悉,可通读基础代码,但仍需要勤加练习掌握。
二,对于复杂数字系统的构成理解以及状态机的理解划分
Verilog中最重要的Top-Down设计思想,在设计中我认为是对于整个系统分为层次化设计,层次之下为结构化,每一层次硬件都可以分为一些模块,这些模块结构可以描述该层次的硬件行为,可以作为该层次的基础单元,而该层次的基本单元又由下一层次的基本单元互联而成,如此下去,可以展示Top-Down的设计思想。
对于这种设计思想,我觉得可综合性是什么重要的,模块的复用会让代码量减少很多,但在目前的学习过程,对于代码的可综合性要求和标准,我了解的不多还比较迷茫。
状态机的结构和原理已经了解,掌握状态机设计思想的基础,对于状态转换图的设计,状态化简,状态分配问题还需练习。较复杂时序逻辑电路的设计实践正在接触,目前在看这方面代码学习。
不足之处:
1.需复习数字电路相关知识,对于代码所展现的硬件结构理解不够,如乘法器、除法器等,以及流水线的设计思想和具体设计理解不够。
2.需要加强写代码操作以及vivado的实际应用;
3.对于阻塞和非阻塞赋值的不同需要加深理解。
学习过程遇到的问题:
1.casex、casez在某些场景下的应用和理解(已解决);
2.可综合代码的要求和标准是什么;
3.为什么在 Verilog HDL 设计中一定要用同步而不能用异步时序逻辑
书上所说是因为许多综合器不支持异步时序逻辑的综合,而且也因为用异步时序逻辑确实很难来控制由组合逻辑和延迟所产生的冒险和竞争。这样的话是不是设计中都只会用到同步时序逻辑什么时候会用到异步逻辑时序电路?