Verilog Деление деления на два счетчика из D Вьетнамки не работает
У меня есть рабочий DFF под модулем ниже.
d_flip_flop_edge_triggered DFFT(Q, Qn, C, D);
Однако, когда я переключаю вход "D" на "Qn" - чтобы сделать счетчик деления на 2 - результаты тестового стенда не показывают ни Q, ни Qn. Его красный, как будто произошла ошибка.
Вот полный код:
module divBy2UsingDFF(Q, Qn, C, D
);
output Q;
output Qn;
input C;
input D;
wire Qn;
d_flip_flop_edge_triggered DFFT(Q, Qn, C, Qn);
endmodule
Я новичок в Verilog, и я предполагаю, что это проблема синтаксиса.
1 ответ
Проверьте значение Q в симуляторе, так как красный цвет, вероятно, означает X
, что указывает на то, что значение данных триггера не определено, что обычно происходит после сброса.
Есть несколько способов решить эту проблему:
- Используйте триггер с асинхронным сбросом
- Добавить синхронную загрузку для данных триггера
Btw. вместо создания экземпляра DFFT вы могли бы написать триггер делителя с always
, Так же wire Qn;
не требуется.