TA的每日心情 | 开心 2021-12-31 09:03 |
---|
高级会员
- 积分
- 976
|
实际verilog设计中,很多情况下模块设计有向下一个模块发送一个脉冲作为下一个模块的启动信号的设计需求。
单脉冲产生很简单:
1、 输入信号signal_in延迟1个周期得到delay_reg1;
2、 输入信号signal_in延迟2个周期得到delay_reg2;
3、 delay_reg1取反然后与delay_reg2相与产生单周期脉冲pluse_out。
将电平触发信号转为单脉冲触发信号的代码如下:
- module single_pluse ( clk,rst_n, signal_in, pluse_out);
- input clk ;
- input rst_n ;
- input signal_in ;
- output pluse_out ;
- reg delay_reg1;
- reg delay_reg2;
-
- always@(posedge clk or negedge rst_n)
- if(!rst_n)begin
- delay_reg1 <= 0;
- delay_reg2 <= 0;
- end
- else
- begin
- delay_reg1 <= signal_in ;
- delay_reg2 <= delay_reg1 ;
- end
- assign pluse_out= (!delay_reg1)&delay_reg2;
- endmodule
复制代码
|
|