Например TDA7294

Форум РадиоКот :: Просмотр темы - Verilog. Как это культурно пишется?
Форум РадиоКот
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/