Доброго времени суток!
Недавно начал разбираться с ПЛИС, осваиваю потихоньку семейство небольших CPLD MachXO2.
Возник вопрос к сообществу - как принято устанавливать дефолтные значения регистров данных внутри модулей (не массивов памяти)?
Может, кто подскажет из тех, кто знаком с кристаллами от Лэттиса.
К примеру, простой модуль:
Код
module counter_test(
input CLK,
input RESET_N,
output reg [7:0] LEDS
);
reg [20:0] counter;
reg [7:0] leds = 8'd64;
initial
begin
leds = 8'd64;
end
always @ (posedge CLK)
begin
counter <= counter + 21'd1;
LEDS <= leds;
end
always @ (posedge counter[19] or negedge RESET_N)
begin
if (!RESET_N)
begin
leds <= 8'd64;
end
else
begin
leds <= leds + 8'd1;
end
end
endmodule
Строка с инициализацией:
reg [7:0] leds = 8'd64; и блок
initial не синтезируются, к сожалению

Остаётся вариант со сбросом на начальные значения по внешнему сигналу RESET_N, если вывести его на ножку чипа.
Но всё же хотелось бы использовать внутренние ресурсы, мне сброс не нужен как таковой, нужна только начальная установка после подачи питания.
Хотел использовать внутренние сигналы GSR и PUR, но не пойму, как их задействовать, чтобы сработала ветка модуля по входу RESET_N?