|
Дешифратор для семисегментников, немного не ясен вывод реализации на VHDL .. |
|
|
|
May 22 2008, 12:18
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
Здравствуйте. Есть у нас дешифратор для семисегментников.
Логика его проста - декодируем бинарный код на входе так чтоб на выходе 7-сегментник высвечивал нужные циферки (тобто выдавал нужные комбинации a,b,c,d....). Собсно реализация его на вентилях такова
И значит в книге Дк. Ф. Уэйкерли "Проектирование цифровых устройств" дано такое объяснение, которое приводит имеено к ячейке , что я обвёл красным : Цитата ...каждый выходной сигнал дешифратора, относящийся к соответствующему сегменту, является минимальным выражением вида "произведение сумм"[собсно что и являет собой обведённый красным кружок] , значения которого при недесятичных входных комбинациях"безразличны"... Реализация через таблицу в принципе ясна , тут нету трабла, однако должна быть реализация не через неё, вот как например в простом шифраторе 3х8 ():
Фунция CONV_INREGER(x) возвращает интергер с вектора std_logic_vector. Да и не ясно откуда видно что у нас "произведение сумм"..
|
|
|
|
|
May 22 2008, 13:18
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 'MrYuran' - Цитата(MrYuran @ May 22 2008, 16:04)  в булевой алгебре произведение - это "и", сложение - "или" Спасибо, знаю. Цитата(MrYuran @ May 22 2008, 16:04)  а то что вы кружочком обвели это что - не произведение сумм? Именно оно! Мне просто трудно увидеть откуда автору вдруг стало видно до построения на вентилях ( через мин/макс-термы), что мы имеем дело с произведениями сумм... Во это собственно и вопрос.. Вопрос так же в том - как будет выглядеть поведенческое описание..
|
|
|
|
|
May 22 2008, 13:37
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 MrYuran - для меня непонятно как написать поведенческое описнание схемы на VHDL - судя из книги Уэйкерли - главная идея в том, что у нас Цитата сигнал дешифратора, относящийся к соответствующему сегменту, является минимальным выражением вида "произведение сумм", значения которого при недесятичных входных комбинациях"безразличны"... Мне вот невидно откудова автор это увидел до начала построения схемы на вентилях. Потому прошу объяснить или тыкануть носом в источник где это описывается. А там рядом и лежить поведенческое описание. -- приведу пример с простым шифратором 3х8 - идея в том что бы выставить соответствующую лапку в зависимости от бинарного значения на входе - то есть другими словами - нам надо взять значение входного числа ( CONV_INREGER ) и выставить лапку с номером числа в массиве выходных лапок... Это ж и реализовано в поведенческом описании , что я привёл выше...
|
|
|
|
|
May 23 2008, 05:26
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Можно и так, только это описывается вне процесса (к Kuzmi4 она описывает твою схему нарисованную в схематике)
--HEX-to-seven-segment decoder -- HEX: in STD_LOGIC_VECTOR (3 downto 0); -- LED: out STD_LOGIC_VECTOR (6 downto 0); -- -- segment encoinputg -- 0 -- --- -- 5 | | 1 -- --- <- 6 -- 4 | | 2 -- --- -- 3 with HEX SELect LED<= "1111001" when "0001", --1 "0100100" when "0010", --2 "0110000" when "0011", --3 "0011001" when "0100", --4 "0010010" when "0101", --5 "0000010" when "0110", --6 "1111000" when "0111", --7 "0000000" when "1000", --8 "0010000" when "1001", --9 "0001000" when "1010", --A "0000011" when "1011", --b "1000110" when "1100", --C "0100001" when "1101", --d "0000110" when "1110", --E "0001110" when "1111", --F "1000000" when others; --0
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|