Форум РадиоКот https://radiokot.ru/forum/ |
|
Verilog. Как это культурно пишется? https://radiokot.ru/forum/viewtopic.php?f=60&t=141616 |
Страница 1 из 1 |
Автор: | FPGAlover [ Пн фев 06, 2017 09:57:05 ] |
Заголовок сообщения: | Verilog. Как это культурно пишется? |
Доброго дня! Решаю следующую подзадачу: подсистема ничего не делает пока не получит сигнал start(передний фронт). Далее она ждет события trig. по приходу фронта выдает 640 клоков на DataLock и опять сваливается в ожидание start. Навоял я следующие, однако есть стойкое ощущение, что это можно написать компактнее и более читаемо. Практики программирования практически нет. Знатоки, прошу, поправьте нуба, покажите класс))) input clk; input start; input trig; output DataLock; reg wait_for_trig; reg [10:0] LockCounter; wire LockCounterNotZero; wire LoadCounter; assign DataLock = LockCounterNotZero ? clk : 0; assign LockCounterNotZero = (LockCounter!=0)? 1:0; assign LoadCounter = wait_for_trig & trig; always @ (posedge start or posedge LoadCounter) if (start) begin wait_for_trig<=1; end else begin if (LoadCounter) wait_for_trig<=0; end always @ (posedge clk or posedge LoadCounter) begin if (LoadCounter) begin LockCounter <=640; end else begin if (clk && LockCounterNotZero) LockCounter <= LockCounter-1; end end |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |