почему clk_o2 здесь x?

Я пытался отложить начало, но это не сработало. Я новичок в Verilog, и это была проблема с обучением.

Код ClockDivisor

Тест Бенш

Результат

Я получаю x на clk_o2, если меняю его на отрицательном фронте

1 ответ

Решение

Я думаю, вы имеете в виду последний всегда блок в модуле clkdivisor. Проблема в том, что ваш тестовый стендnegedge clk в момент времени 0, потому что он кодирует от X до 0. Это создает гонку с initial блок пытается присвоить clockout2 значение 0.

Избавиться от гонки можно с помощью блокирующего задания. начальный start clockout1 = 0; clockout2 = 0; конец

Ваш код, конечно же, невозможно синтезировать. Есть и другие способы исправить это, но мы точно не знаем, что делать.

Другие вопросы по тегам