Здравствуйте! Только начинаю знакомиться с тем, что такое ПЛИС и как заставить её работать. В процессе ознакомления возникает много вопросов.
После прочтения основ по простейшим логическим элементам, триггерам и составлению из них регистров/счётчиков, решил перейти непосредственно к практике и попробовать написать маленький проектик в пакете Quartus II. Программировать решил на Verilog'e, т.к. он мне показался наиболее интуитивно понятным.
Первый мой опыт - реализация делителя частоты:
Код: Выделить всё
// Делитель частоты на 10 [f/10]
// Получение от кварцевого резонатора частотой 28 МГц частоту 2,8 МГц
module freq_2800
(
clk,
freq_2800
);
input clk;
output freq_2800;
reg out = 0;
reg [2:0] count = 0;
always @ (negedge clk)
begin
if (count == 3'b100)
begin
count <= 0;
out <= !out;
end
else count <= count + 1'b1;
end
assign freq_2800 = out;
endmodule
Сделал симуляцию в Квартусе (до МоделСим руки не дошли). Вроде как, программа работает корректно, хотя сомневаюсь, что сам код оптимален.
Вопрос возник вот в чём: структурную схему проекта можно посмотреть в Tools/Netlist Viewers/RTL Viewer.
Захотелось понять как эта программа выглядит на логических элементах и триггерах и тут у меня пока тупик. Не совсем понятно как Квартус это реализует, синхронный счётчик на каких триггерах он реализует (JK или D) и вообще как эта программа выглядит в виде схемы.
Заранее спасибо всем откликнувшимся!