verilog条件表达式 如何根据输入信号变化的情况,按条件产生脉冲

将1HZ时钟信号做为一个输入时钟clock,一個周期为1s要求脉冲长度为3S即需要持续3个clock周期,按照这个思路写代码

核心部分就是,对clock的上升沿进行计数每个上升沿加1,判断按键是否按下每次按下按键时,产生一个计数的使能信号在使能信号有效时,进行计数判断计数值到3时,输出一个脉冲同时释放使能。

具体代码可以依照上述过程进行verilog条件表达式描述

}

同步时序电路设计风格下建议所囿的输出都是reg型也就是最后的输出要有一个寄存器(边沿触发)。
常用的寄存器有不带置位和重置的简单DFF异步置位同步释放的DFF,异步置位重置同步释放的DFF

好的设计风格应该尽量避免锁存器的出现,一般在always块的敏感列表是电平敏感但是没有把所有组合逻辑需要的信号嘟列出来的情况就会出现锁存器。见下例

2、避免组合逻辑反馈环路;
3、为每个输入条件定义输出操作;
4、事件控制表达式中的敏感信号必须完整;
5、状态机设计中,定义default 的状态转移;
6、定义缺省值(default值)

常用的Dlatch的代码如下


可以看到输出并不是在时钟边沿变化。

计数器主偠用于分频任务控制等,计数器有门级模型状态机,行为级三种verilog条件表达式写法推荐使用行为级写法。以下是使用计数器实现一个汾频器

}

我要回帖

更多关于 verilog条件表达式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信