每当 dis_data有变化就产生一个 高脉冲该怎么写啊

2020-02-03 11:07发布

每当  dis_data有变化就产生一个 高脉冲该怎么写啊
我知道我这个写的是不对的,只是做个示范
always @(dis_data)
begin
        start <= 1'b0;
        start <= 1'b1;
        start <= 1'b0;
end


assign start = (dis data1 != dis_data)?1'b1:1'b0;这个也是不行的,因为脉冲宽度不可控。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
hqbenson
2020-02-04 04:16
楼主您要判别dis_data是否有变化,言下之意就是要判断接下来的dis_data的值与当前值是否不同,那肯定就是时序电路了,肯定要用到寄存器了。
可以将dis_data值用寄存器存一拍,然后输出与输入用一个异或进行判断即可。一个可能可行的代码:
always@(posedge clk)
  dis_data_sav<=dis_data;
assign judge=dis_data^dis_data_sav;
assign pulse=judge&(!clk);
注意时钟要取的恰当,高脉冲宽度取决于时钟频率。不过可能不太可靠就是了,随手写的。。。。

一周热门 更多>