Verilog事件控制语句

Verilog事件控制语句,verilog,fpga,hdl,Verilog,Fpga,Hdl,目前,我有以下代码用于fpga上按钮的去抖动器,但是我得到一个错误,即在这种情况下不支持一个始终/初始进程块中的多个事件控制语句。每当我试图合成设计元素时。导致问题的那一行是@posedge clk,但我想知道如何确切地替换这个逻辑。我基本上需要的是@quarter&posedge clkas第一个always块的灵敏度列表,但这也不起作用。我对该语言相当陌生,因此我仍在研究一些语法纠结。代码片段如下: always @(quarter) begin @

目前,我有以下代码用于fpga上按钮的去抖动器,但是我得到一个错误,即在这种情况下不支持一个始终/初始进程块中的多个事件控制语句。每当我试图合成设计元素时。导致问题的那一行是@posedge clk,但我想知道如何确切地替换这个逻辑。我基本上需要的是@quarter&posedge clkas第一个always块的灵敏度列表,但这也不起作用。我对该语言相当陌生,因此我仍在研究一些语法纠结。代码片段如下:

always @(quarter)
        begin

            @(posedge clk)
             begin
                 if (quarter != new) begin new <= quarter; count <= 0; end
                 else if (count == DELAY) cleanq <= new;
                 else count <= count+1;
              end
          end
伪代码:

always@(something1)
           @(something2)
                 do something
请查看注释,以了解为什么这是不可合成的

always @(posedge clk)
             /* over here you'll have to set the default values
                for everything that's being changed in this always block, 
                you'll otherwise generate latches. Which is likely
                not what you want */
             begin
                 if (quarter != new) begin new <= quarter; count <= 0; end
                 else if (count == DELAY) cleanq <= new;
                 else count <= count+1;
              end
我目前无法访问我的verilog装备,因此我无法确认语法正确性,而不是始终

@(posedge event1)         
@(posedge event2)
create aflag (1bit reg) event2done :   reg event2done; initial event2done=0;
always@(posedge event1)
begin       if (!event2done & event 2)
        // event2done=1; + type ur code 
            else if(event2done & !event 2)
                event2done =0;  end

我对你在评论栏中的内容有点困惑。你的意思是你基本上初始化了你的变量?如果是的话,我很难看出这是如何代表同样的逻辑。代码块应该在posedge和四分之一按下时执行。这个答案是错误的。总是将@something1@something2 do something解释为等待something1事件,然后等待下一个something2事件。无法编写或合成两个事件同时发生的代码。大多数合成工具只允许在“始终”块中出现一个事件。@dave_59我可能错了。安东尼努斯你所说的四分之一新闻是什么意思,它的价值已经改变了?我的意思不是初始化这些值,我的意思是要明确它们的值。所以,如果一个值没有改变,你就把它的值放进去,当你按下按钮时,它的值基本上从0变为1。我现在明白你的意思了,但它不允许我表达同样的逻辑。虽然我确实找到了解决办法,但谢谢你的帮助!你能不能用反引号来注释代码部分来编辑你的答案?例句:这是代码,真的不可读。