...帮解,verilog有没有跳出指令,或是verilog如何实现跳出always或是停在...
发布网友
发布时间:2024-10-24 09:36
我来回答
共3个回答
热心网友
时间:9小时前
硬件语言首先你要理解你写的always块是要映射成物理电路的,不像软件有什么跳出或者pause一说。但是实现你说的功能是有办法的。
举个例子,你可以这样做:
always@(*)
if(button_n) //这里添加一个条件判断模块,假如按键不按下就执行逻辑
/*状态机或者逻辑块*/
else ; //else后直接跟分号,表示按键按下的时候这个always块不动作,保持原有状态
另一层楼的朋友说的方法实质是使用门控时钟,也是一种思路,不过在同步电路设计中不推荐使用门控时钟,容易引入毛刺。。这一般是ASIC为了降低功耗才会使用的方法。
热心网友
时间:9小时前
我有一个想法
设置一个信号en,然后你程序的时钟是fclk,而你用的时钟是clk=en&&fclk。
你的目的是用一个按键将数码管停下,那意思就是数码管的值不变,比如说你的always是posedge clk有效,那么初试设en=1,然后在你需要时将en=0,那么时钟就已知为0,所以已知不会执行always模块,所以数码管就不会变。
没试过,但是感觉应该可以,试试吧
热心网友
时间:9小时前
用状态机实现吧,不是很难。