Verilog的错误信号有多个驱动器

问题描述 投票:0回答:1

答案没有我发现关于多个驱动器质疑似乎适用于我的情况,所以我会问。

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

我想基于在该期间内的不同位置改变其级别创建一个信号。

简单的例子:

时钟和时钟 - 相同的频率,但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的给了我一个多驱动程序错误。

是否有任何变通,让我完成我想做什么?

谢谢

verilog
1个回答
1
投票

这一次应该工作。

总是@(posedge时钟B)如果(〜SIG值)翻转<=〜触发器;

总是@(posedge时钟A)如果(sigValue)翻转<=〜翻转;

分配sigValue =跳高^翻转;

记得加复位初始化翻转和失败。

© www.soinside.com 2019 - 2024. All rights reserved.