Перейти к содержанию
    

Вопрос по VHDL

Есть код инициализации дисплея и вывод на него символов с клавы - это всё работает

ВОПРОС : после ввода информации после нажатия Ентера осуществляется сдвиг вправо\влево в зависимости от тумблера, так вот как мне в elsife осуществить зацикливание ( знаю что при помощи while loop, но как это сочитать? )

elsif A = '1' and B = '1' then
        if k = 0 then
                if RESET = '1'    then
                    A0 <= '0';
                    RW <= '0';
                    INDATA <= "00000001";
                    k := 1;
                elsif dout = "00000000"    then
                    d1 := dout;
                elsif dout = "11111111" and S = '0 then  -- проверка на ентер и команда Сдвиг вправо
                    A0 <= '0';
                    RW <= '0';
                    INDATA <= "00011100";
                    k := 1;
                elsif dout = "11111111" and S = '1' then -- Сдвиг влево
                    A0 <= '0';
                    RW <= '0';
                    INDATA <= "00011000";
                    k := 1;            
                elsif dout /= d1 then 
                    A0 <= '1';
                    RW <= '0';
                    INDATA <= dout;
                    d1 := dout;
                    k := 1;
                end if;
                    
            elsif k = 8 then
                E <= '0';       -- команда пишется в ЖК дисплей по спаду сигнала Е 
                k := k + 1;
            elsif k = 28 then
                E <= '1';
                k := k + 1;
            elsif k = 3528 then 
                k := 0;
            else k := k + 1;
            end if;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть код инициализации дисплея и вывод на него символов с клавы - это всё работает

ВОПРОС : после ввода информации после нажатия Ентера осуществляется сдвиг вправо\влево в зависимости от тумблера, так вот как мне в elsife осуществить зацикливание ( знаю что при помощи while loop, но как это сочитать? )

elsif A = '1' and B = '1' then
        if k = 0 then
                if RESET = '1'    then
                    A0 <= '0';
                    RW <= '0';
                    INDATA <= "00000001";
                    k := 1;
                elsif dout = "00000000"    then
                    d1 := dout;
                elsif dout = "11111111" and S = '0 then  -- проверка на ентер и команда Сдвиг вправо
                    A0 <= '0';
                    RW <= '0';
                    INDATA <= "00011100";
                    k := 1;
                elsif dout = "11111111" and S = '1' then -- Сдвиг влево
                    A0 <= '0';
                    RW <= '0';
                    INDATA <= "00011000";
                    k := 1;            
                elsif dout /= d1 then 
                    A0 <= '1';
                    RW <= '0';
                    INDATA <= dout;
                    d1 := dout;
                    k := 1;
                end if;
                    
            elsif k = 8 then
                E <= '0';       -- команда пишется в ЖК дисплей по спаду сигнала Е 
                k := k + 1;
            elsif k = 28 then
                E <= '1';
                k := k + 1;
            elsif k = 3528 then 
                k := 0;
            else k := k + 1;
            end if;

 

VHDL(да и Verilog) - язык описания функционирования. Фактически вы на языке рисуете схему. И зациклить опрос в том виде как это делается на языках программирования(С, Pascal...) нельзя. Структура языка while loop фактически размножает некую типовую конструкцию.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...