对时序图与Verilog语言之间的转化的认识:
首先明确工程要实现一个什么功能;用到的硬件实现一个什么功能。
要很明确这个硬件的工作时序,即:用什么样的信号,什么变化规则的信号去驱动这个硬件。
然后对工程进行模块划分,顶层尽量不要有逻辑设计,尽量只放在子模块里,尽量提升模块复用性。
按照模块划分,画出子模块的时序图。
重点:再画的时候,一定要清晰的想好,
这个信号是用reg型还是wire型,以及区别。
reg型,延迟条件一个时钟周期。
计数器的开启条件与归零条件与保持条件是什么。是否需要保持?
常用的信号:标志信号,请求信号,应答信号,计数信号。
Verilog语言:硬件描述语言。描述的就是驱动它的信号的时序。
所以一定要清楚的理解好硬件的工作时序。
以及一个清晰,缜密的逻辑思维。
我觉得主要难在一些逻辑条件,在设计的时候可能会忽略,在写代码或者通过功能仿真,不断修改吧。
看仿真波形的经验总结:
如果一个信号处于高阻态:没有用到三态逻辑或者三态门,那么大概率是信号例化时没有连接好。
如果一个信号处于X :可能是没有给这个信号赋值,或者这个信号的逻辑描述,有问题。因为不是预想中的逻辑,以外的给这个信号赋了一个未知的值。所以要检查信号产生的逻辑。
在看计数器波形时:要注意开始计数条件对不对,递增条件对不对,归零条件对不对,保持条件对不对。发现不对,再看是不是计数器逻辑错误,还是这个条件信号的描述有问题。逐渐深挖。
哦对了,先看仿真的输入信号描述是否正确。
然后看被测试的模块,由上至下,由顶至内。
确保所有子模块都正确的情况下,再对顶层模块进行仿真。
现在我遇到的都是小实验,都进行了仿真。在仿真

最低0.47元/天 解锁文章
1375

被折叠的 条评论
为什么被折叠?



