Здравствуйте. Надеюсь на помощь на данном форуме. Пришел сюда с Хабра, там в комментариях говорят, что все профи "обитают" здесь.
Прошу сильно не издеваться, если скажу что-то глупо или некорректно. Я далек от электроники и близок к программированию.
Передо мной поставлена задача запустить устройство. На нем стоит тактовый генератор 50 MHz из него надо сделать 1 MHz, путем программирования ПЛИС, так как ЦАП'ы не могут работать на таком быстром клоке.
Решил сперва реализовать эту задачу на ките Altera DE1 (c Altera Cyclone II на борту), чтобы проверить работоспособность.
Так как делать это в схематике наверное трудно, я почитал обучалки по Verilog'у и написал следующий код преобразователя частоты из 50 MHz в 1 MHz.
// Преобразует входной клок 50 MHz в выходной клок 1 MHz
module clock_50_to_1
(
input wire clk_50,
output reg clk_1
);
reg [5:0] counter;
initial
begin
counter<=0;
clk_1<=0;
end
always@(clk_50)
begin
if(counter<50)
begin
counter<=counter+1;
end
else if(counter==50)
begin
counter<=1;
end
if(counter==49)
begin
clk_1 <= ~clk_1;
end
end
endmodule
Прежде чем прошивать кит Altera DE1, подумал что надо просимулировать функционально. Искал что-нибудь бесплатное, нашел Icarus Verilog. Просимулировал в нем, вроде все работает как задумано.
Сначала решил просто проверить работу тактового генератора и вывел его через ПЛИС напрямую и проверил осциллографом - все нормально:
Потом решил проверить осциллографом мой преобразователь на Verilog'е.
Вывел на два пина IDC разъема кита Altera DE1:
1) на один пин [GPIO_1[1]] вывел клок 50 Mhz напрямую,
2) на другой пин [GPIO_1[3]] вывел клок 50 Mhz через мой преобразователь на Verilog'е.
В итоге на втором выводе, после моего модуля на Verilog'e сначала какая-то "каша" вместо клока 1 MHz, а через несколько секунд вообще никакого сигнала.
Очень хочу разобраться в этом вопросе. Все мои коллеги далеки от программирования и всю жизнь работают с ПЛИС через схематик. Они говорят, что твое программирование - лажа, нафиг Verilog/VHDL, проблемы в твоем коде, надо всегда делать через схематик.
Буду благодарен всем за помощь. Заранее спасибо.