реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Вопрос по VHDL
Levard
сообщение Dec 20 2011, 16:34
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 20-12-11
Пользователь №: 68 992



Есть код инициализации дисплея и вывод на него символов с клавы - это всё работает
ВОПРОС : после ввода информации после нажатия Ентера осуществляется сдвиг вправо\влево в зависимости от тумблера, так вот как мне в 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;
Go to the top of the page
 
+Quote Post
nikolascha
сообщение Dec 20 2011, 20:21
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 376
Регистрация: 20-06-09
Из: BY
Пользователь №: 50 480



Не знаю как другие, а я не понял в чём ваш вопрос....
Go to the top of the page
 
+Quote Post
M@kar
сообщение Dec 20 2011, 21:39
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 30-10-09
Пользователь №: 53 318



Цитата
Не знаю как другие, а я не понял в чём ваш вопрос....
Присоединяюсь
Go to the top of the page
 
+Quote Post
tolik1
сообщение Dec 21 2011, 08:14
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 199
Регистрация: 2-03-05
Из: МОСКВА
Пользователь №: 3 016



Цитата(Levard @ Dec 20 2011, 19:34) *
Есть код инициализации дисплея и вывод на него символов с клавы - это всё работает
ВОПРОС : после ввода информации после нажатия Ентера осуществляется сдвиг вправо\влево в зависимости от тумблера, так вот как мне в 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 фактически размножает некую типовую конструкцию.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016