Verilog. Как это культурно пишется?

Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить
FPGAlover
Прорезались зубы
Сообщения: 210
Зарегистрирован: Пн окт 21, 2013 07:33:45

Verilog. Как это культурно пишется?

Сообщение FPGAlover »

Доброго дня! Решаю следующую подзадачу: подсистема ничего не делает пока не получит сигнал 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
Шоб я польку танцевал..
Реклама
Ответить

Вернуться в «ПЛИС»