设计要求在特定情况下在时钟的上升沿激活信号,并在时钟下降沿的另一种情况下禁用该信号。这是我的想法:时钟两边的触发信号
[email protected](posedge CLK) begin
signal1 <= 1'b0; // reset flag
if(circumstance1) signal1 <=1'b1; // raise flag if circumstance occurs
end
[email protected](negedge CLK) begin
signal2 <= 1'b1; // reset flag (actually set alternate to signal1)
if(circumstance2) signal2 <=1'b0; // raise flag if circumstance occurs
end
[email protected](posedge signal1 or negedge signal2) begin
if(signal1) outsignal <= 1'b0; // activate outsignal
else outsignal <= 1'n1; // deactivate outsignal
end
这会工作吗?是否有更好的选择(倍增时钟和捕捉单边在这里不是一种选择)。
编辑罗素的回复后。罗素,我认为你提出以下建议:
wire nCLK = ~CLK;
[email protected](posedge CLK or posedge nCLK or negedge nRESET) begin
if(!nRESET) outsignal <= 1'b0;
else if(nCLK) outsignal <= 1'b1;
else outsignal <= 1'b0;
end
我理解你了吗?
您正在使用哪种设备系列? –