Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ПЛИС MAX II
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
pashkent
Подскажите, пожалуйста. У меня есть отладочная плата maxII EPM1270 CPLD. Хочу на ней освоить quartusII и varilog. Пытаюсь сейчас сделать чтобы светодиод включался и выключался по нажатию кнопки. Как это реализовать в Quartus? Я попробовал так(прикрепил файл), у меня на входе вырабатывается сигнал с частотой 66Мгц, потом я его на счетчик пускаю 25 разрядный, счет до 30 000 000. на выход идет 23 разряд...т.е где-то 2 Гц... а вот как реализовать кнопку не знаю. кнопка типа нажал и отпустил и она вернулась в исходное состояние.
stu
1) интересно, почему Вы решили, что Ваша схема имеет что-то общее с verilog?
2) на счет кнопки я не понял, Вам надо: а) нажали - мыргает, отпустили - не мыргает; б) нажали раз - мыргает, нажали два - не мыргает ??
3) при работе с кнопкой можно исключить дребезг используя тот же счетчик
Примитив для счетчика:
reg [2:0] a;
always @ (posedge clk)
begin
a <= a + 3'd1;
end

И совет, который любят давать новичкам на этом форуме: "Почитайте Иосиф К. "Краткий курс HDL – Verilog на русском и статьи." на КиТ" =)
pashkent
1)я сначала просто проектирую, а потом буду эту же задачу на верилоге делать...
2)мне надо вариант б)
3) а как использовать тот же счетчик?
Stewart Little
Изучать ПЛИС методом тыка, конечно, можно. Но это, имхо, весьма трансректальный способ. Для начала почитайте какой-нибудь приличный букварь, например "Проектирование устройств на микросхемах с программируемой структурой", авт. Грушвицкий, Мурсаев, Угрюмов и Ко.
pashkent
Я не только методом тыка. Пытаюсь разобраться с помощью "Цифровая схемотехника современный подход" Ашихмин, "Цифровая схемотехника" Угрюмов...спасибо за совет, попробую найти эту книжку.
stu
Цитата(pashkent @ Sep 6 2012, 10:52) *
1)я сначала просто проектирую, а потом буду эту же задачу на верилоге делать...
2)мне надо вариант б)
3) а как использовать тот же счетчик?

1) успехов в таком нелегком "пошаговом" деле
2) опишите Д-триггер, у которого состояние меняется по нажатию кнопки(+1 или 1<->0 - как хотите), и используйте его как Clk_En для мыргания
3) ну к примеру, стоит у Вас счетчик, который считает до 660 000, если он досчитал, переключаем значение Д-триггера кнопки, если кнопку нажали - сбрасываем счетчик, досчитываем до 660 000 и о5 меняем значение Д-триггера.

Чтоб привычную схему увидеть Вам на RTL, то на AHDL:
Код
Include "lpm_counter";

constant Coef = 660000;
constant C_Width = ceil(log2(Coef));

Subdesign Swt_Driver
(
   Clrn                :    input = vcc;
   Clk                    :    input = gnd;
   Clk_En                :    input = vcc;
   Swt_In                :    input = vcc;

   Swt_Out                :    output;
)

Variable

   1Cout                    :    dffe;
   Swt_Out                    :    dffe;
   Count                    :    lpm_counter with (
                            lpm_direction = "up",
                            lpm_width = C_Width,
                            lpm_modulus = Coef);
Begin

   Count.(clock, clk_en, cnt_en, sclr, aclr) = (Clk, Clk_En, !Count.cout, Swt_In, !Clrn);
   1Cout.(d, clk, ena, clrn) = (Count.cout, Clk, Clk_En, Clrn);
   Swt_Out.(d, clk, ena, clrn) = (Count.cout & !1Cout, Clk, Clk_En, Clrn);
End;

В результате по Swt_Out будет переключаться Д-триггер кнопки
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.