IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Active HDL 7.2
Fanat
сообщение 8.12.2007 12:52
Сообщение #1


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Задача такая: необходимо написать декодер который взависимости от того что получает на свои 4 входа (нули или единички) выдаёт на 7 выходов тоже нули или единички. Как нибудь это можно сделать не через if'ы а то уж слишком длинный код получиться. Может как то через swith? Если он вообще есть в vhdl. Я тут совсем новичок.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Michael_Rybak
сообщение 9.12.2007 6:41
Сообщение #2


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Цитата
VHDL - это не алгоритмический язык


Ну я, прежде чем постить, в википедию заглянул; в примерах увидел там ифы, решил, что можно smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Fanat
сообщение 9.12.2007 13:11
Сообщение #3


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Спасибо всем за помошь...
Код

architecture Decoder73 of Decoder73 is
begin
   process(Input0, Input1,Input2, Input3)
   variable Eop : STD_LOGIC_Vector(3 downto 0);
   variable Eos : STD_LOGIC_Vector(6 downto 0);
   begin
       Eop(3):=Input0;
       Eop(2):=Input1;
       Eop(1):=Input2;
       Eop(0):=Input3;
      
        C1: case Eop is
                     when "0001" =>  Eos :=    "0000001";
         when "0010" =>  Eos :=    "0000010";
         when "0100" =>  Eos :=    "0000100";
                                 ........................
         when others =>  Eos := "0000000";
        end case C1;
        
      
       Output0 <= Eos(0);
       Output1 <= Eos(1);
       Output2 <= Eos(2);
       Output3 <= Eos(3);
       Output4 <= Eos(4);
       Output5 <= Eos(5);
       Output6 <= Eos(6);
        
   end process;
end Decoder73;


А я вот так сделал...Языка тоже незнаю...Но всё работает... good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 15.08.2025 10:59
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"