写代码:
下面的myhdl代码写了一个模块top,里面有两个计数器:cnt1从0计到9,当cnt1=9时,cnt2从0计到4。
从上面的代码可以看到其实与verilog非常接近,只是复位和时钟在python装饰器always和always_seq里实现了。另一个特殊点是,给一个信号赋值需要用xxx.next,这样就描述了DFF的功能,赋的值下一个时钟生效。
转Verilog:
我们用下面的方法来把myhdl转成verilog:
直接上效果,不解释了,大家自己看:
写验证环境,仿真:
与Verilog的验证环境没有太大区别,实例化、编写时钟、复位等激励,设置dump波形,仿真时间等。
看波形:
运行后目录下产生testbench.vcd。用Verdi打开如下图:
原文标题 : MyHDL,体验一下“用python设计电路”