Verilog 错误信号有多个驱动程序



我发现的关于多个驱动器的问题答案似乎都不适用于我的情况,所以我会问。

我有多个相同频率的时钟,但在时间上彼此偏移。

我希望根据在此期间不同位置更改其电平来创建信号。

简单案例:

时钟 A 和时钟 B - 频率相同,但 B 相对于 A 偏移 X 度数。

wire Signal_On_Wire;
reg SigValue;
always @ (posedge Clock_A)
     SigValue<= 1'd0;
always @ (posedge Clock_B)
     SigValue<= 1'd1;
Assign Signal_On_Wire = SigValue;

在这个例子中 - 值并不重要 - 这只是我想从多个时钟驱动 SigValue 的事实。

Verilog给了我一个多驱动程序错误。

是否有任何解决方法可以让我完成我想做的事情?

谢谢

这个应该可以工作。

始终 @ (posedge clock_B( if (~sigValue( 翻牌 <= ~翻牌;

总是@(posedge clock_A( if(sigValue( 翻转<= ~翻转;

赋值 sigValue = 翻牌 ^ 翻转;

请记住添加重置以初始化翻转和翻转。

最新更新