Сигнал ошибки Verilog имеет несколько драйверов - PullRequest
0 голосов
/ 09 февраля 2019

Ни один из ответов, которые я нашел на вопрос о нескольких дисках, кажется, не подходит для моей ситуации, поэтому я спрошу.

У меня есть несколько часов одной и той же частоты, но сдвинутых во времени друг от друга.

Я хочу создать сигнал на основе изменения его уровня в разных позициях в течение периода.

Простой случай:

ClockA и ClockB - та же частота, но B смещено на число Xградусов по отношению к A.

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 дает мнеошибка нескольких драйверов.

Есть ли способ, позволяющий мне выполнить то, что я хочу?

Спасибо

1 Ответ

0 голосов
/ 10 февраля 2019

Это должно работать.

всегда @ (posedge clock_B) if (~ sigValue) Flop <= ~ Flop; </p>

всегда @ (posedge clock_A) if (sigValue) Flip <=~ Flip; </p>

assign sigValue = Flop ^ Flip;

Не забудьте добавить сброс для инициализации Flip и Flop.

...