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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Дешифратор для семисегментников, немного не ясен вывод реализации на VHDL ..
Kuzmi4
сообщение May 22 2008, 12:18
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 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.

Да и не ясно откуда видно что у нас "произведение сумм"..
1111493779.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 12:45
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



чё-то я не понял в чём тут фишка.
В любом случае в конечном итоге таблица получится.
Какой смысл расписывать её в виде крутых циклических алгоритмов?
тем более что таблица 7-сегментного дешифратора нециклическая, в отличие от шифратора 3х8


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 22 2008, 12:52
Сообщение #3


Гуру
******

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



2 MrYuran - оно то конечно можно через таблицу, но Уэйкерли откуда-то стало видно что это будет "произведение сумм" - вот и спрашиваю - может кто знает - откуда это видно.. А там рядом должна лежать и реализация...
wacko.gif
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 13:04
Сообщение #4


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kuzmi4 @ May 22 2008, 15:52) *
2 MrYuran - оно то конечно можно через таблицу, но Уэйкерли откуда-то стало видно что это будет "произведение сумм" - вот и спрашиваю - может кто знает - откуда это видно.. А там рядом должна лежать и реализация...
wacko.gif

а то что вы кружочком обвели это что - не произведение сумм?
можно и по другому сказать - конъюнкция дизъюнкций (или наоборот, точно уже не помню, что чего означает, "и" или "или")
Короче: в булевой алгебре произведение - это "и", сложение - "или"


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 22 2008, 13:18
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 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) *
а то что вы кружочком обвели это что - не произведение сумм?

Именно оно!
Мне просто трудно увидеть откуда автору вдруг стало видно до построения на вентилях ( через мин/макс-термы), что мы имеем дело с произведениями сумм...
Во это собственно и вопрос..
Вопрос так же в том - как будет выглядеть поведенческое описание..
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 13:29
Сообщение #6


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



чё-то не понимаю я, чего вы хотите добиться. Туповат стал...
Да и логическое описание для меня как-то роднее, чем разные там HDL...
а схема - это как раз-таки логическая реализация таблицы состояний


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 22 2008, 13:37
Сообщение #7


Гуру
******

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



2 MrYuran - для меня непонятно как написать поведенческое описнание схемы на VHDL - судя из книги Уэйкерли - главная идея в том, что у нас
Цитата
сигнал дешифратора, относящийся к соответствующему сегменту, является минимальным выражением вида "произведение сумм", значения которого при недесятичных входных комбинациях"безразличны"...

Мне вот невидно откудова автор это увидел до начала построения схемы на вентилях.
Потому прошу объяснить или тыкануть носом в источник где это описывается.
А там рядом и лежить поведенческое описание.

--
приведу пример с простым шифратором 3х8 - идея в том что бы выставить соответствующую лапку в зависимости от бинарного значения на входе - то есть другими словами - нам надо взять значение входного числа ( CONV_INREGER ) и выставить лапку с номером числа в массиве выходных лапок...
Это ж и реализовано в поведенческом описании , что я привёл выше...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 13:49
Сообщение #8


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



В моём понимании синтез комбинационного устройства происходит таким образом:
Пишется таблица состояний.
По таблице строятся функции выходов с форме СКНФ или СДНФ (как раз пресловутые произведения сумм или суммы произведений).
Потом они минимизируются и при желании приводятся к базису (и-не, к примеру).
По крайней мере меня так в школе учили.
Не знаю, может за 15 лет наука далеко вперёд ушла и я чего-то не понимаю...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
XVR
сообщение May 22 2008, 13:49
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Kuzmi4 @ May 22 2008, 17:37) *
2 MrYuran - для меня непонятно как написать поведенческое описнание схемы на VHDL - судя из книги Уэйкерли - главная идея в том, что у нас


сигнал дешифратора, относящийся к соответствующему сегменту, является минимальным выражением вида "произведение сумм", значения которого при недесятичных входных комбинациях"безразличны"...

Мне вот невидно откудова автор это увидел до начала построения схемы на вентилях.
Любая логическая функция (читай - чисто комбинаторная схема) может быть представленна в виде "произведение сумм" (т.н. 'нормальная конъюктивная форма').
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 22 2008, 13:54
Сообщение #10


Гуру
******

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



2 MrYuran - это да , тут я не спорю, но есть есчё поведенческое описание на всяких HDL`ях.. Вот его я пытаюсь уразуметь..
2 XVR - согласен, или суммы произведений..

Ладно пойдём другим путём, может кто то дать поведенческое описание , что б я неразумный понял ??
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение May 23 2008, 05:07
Сообщение #11


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



чего непонятного

под процессом
if input = "0001" then
output <= "01010101" ;
elsif input = "0010" then
output <= "01110101" ;


-- ********

else
output <= "00000000" ;
end if;
Go to the top of the page
 
+Quote Post
Maverick
сообщение May 23 2008, 05:26
Сообщение #12


я только учусь...
******

Группа: Модераторы
Сообщений: 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.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 23 2008, 07:25
Сообщение #13


Гуру
******

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



Понимаете , это получается не что иное как табличное описание - я прcото загоняю таблицу истинностей в VHDL да и всё...

Ладно, пришёл к выводу что нестандартный дешифраторы загонять таблицей, делать компонент и не мучаться...
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение May 23 2008, 07:54
Сообщение #14


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(Kuzmi4 @ May 23 2008, 11:25) *
Понимаете , это получается не что иное как табличное описание - я прcото загоняю таблицу истинностей в VHDL да и всё...

Ладно, пришёл к выводу что нестандартный дешифраторы загонять таблицей, делать компонент и не мучаться...


то что ты пытаешься сделать за тебя сделает компиллятор
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение May 23 2008, 08:11
Сообщение #15


Гуру
******

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



Цитата(rv3dll(lex) @ May 23 2008, 10:54) *
то что ты пытаешься сделать за тебя сделает компиллятор


Вот так всегда -
Цитата
Тефаль - думает за нас...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 23 2008, 10:45
Сообщение #16


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Kuzmi4 @ May 23 2008, 11:11) *

Как ни пиши, конечный результат будет один и тот же с точностью до вентиля.
Так что писать надо так, чтобы было понятнее и удобнее потом работать.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 4th August 2025 - 21:54
Рейтинг@Mail.ru


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