时钟脉冲的Verilog程序,但是编译总是无法通过

2019-07-15 23:42发布

基于ise14.7
下面是一个时钟脉冲的Verilog程序,但是编译总是无法通过,检查也检查不出问题,求大神赐教!!!
module clock_pulse(
    input wire inp,
         input wire cclk,
         input wire clr,
         output wire outp
    );
         reg delay1;
         reg delay2;
         reg delay3;         
         always@(posedge cclk or negedge clr)
           begin
                  if(clr==1'b1)
                    begin
                           delay1<=0;
                                delay2<=0;
                                delay3<=0;
                         end
                  else
                    begin
                           delay1<=inp;
                                delay2<=delay1;
                                delay3<=delay2;
                         end
                end
    assign outp=delay1 & delay2 & ~delay3;//产生时钟脉冲
endmodule

注:
编译时提示的错误是:ERROR:HDLCompiler:1128 - "E:ISE-FPGA Procedureclock_pulseclock_pulse.v" Line 41: Assignment under multiple single edges is not supported for synthesis
警告有:
WARNING:HDLCompiler:462 - "E:ISE-FPGA Procedureclock_pulseclock_pulse.v" Line 33: if-condition does not match any sensitivity list edge
WARNING:HDLCompiler:91 - "E:ISE-FPGA Procedureclock_pulseclock_pulse.v" Line 41: Signal <inp> missing in the sensitivity list is added for synthesis purposes. HDL and post-synthesis simulations may differ as a result.
WARNING:HDLCompiler:1499 - "E:ISE-FPGA Procedureclock_pulseclock_pulse.v" Line 21: Empty module <clock_pulse> remains a black box.

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
屌丝
1楼-- · 2019-07-16 05:13
确实是被多个时钟沿驱动,这里不允许的情况下,你可以尝试将边沿触发改为电平触发 最佳答案
技术牛人小渣子
2楼-- · 2019-07-16 09:23
杨成威
3楼-- · 2019-07-16 11:36
很明显你的异步复位没写对!改为if(clr==1’b0)就可以了

一周热门 更多>