Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: never tri-state (Z)
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
sumerik
Всем привет!
Вопрос:
как сделать устройство, которое работает с несколькими источниками данных.

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

но как быть для технологии ASIC. Ведь в ASIC'e нельзя использовать буферы c Z состоянием.

говорят, что надо объединить по схеме ИЛИ, но как не могу сообразить .

если кто знает, поделитесь знаниями?!
Нажмите для просмотра прикрепленного файла
Doka
ну вообще говоря, как я себе представляю:
при отсутствиии буфферов с третьим состоянием (а это не только ASIC, наглядный пример такой FPGA - Spartan3)
это дело выливается в мультиплексоры
притом, при кодировании об этом не надо заботиться - всю работу сделает синтезатор, основываясь на инф. библиотеки примитивов конкретного семейства кристаллов
slawikg
Код
говорят, что надо объединить по схеме ИЛИ, но как не могу сообразить


Здесь скорее всего речь идёт о монтажном ИЛИ, которая подразумевают объединение по ИЛИ элементов с открытым коллектором навстречу друг с другом. Т.е. выходы выходят на один провод. Вместо элементов с 3 состояниями можно использовать И, на один вход которого подавать управление
Muxa
заранее прошу прощения, что может чего не допонял... но
Цитата
Здесь скорее всего речь идёт о монтажном ИЛИ, которая подразумевают объединение по ИЛИ элементов с открытым коллектором навстречу друг с другом

если выходы с ОК, то надо говорить о монтажном "И".. но не суть...
монтажное ИЛИ/И используют в случаях, когда:
- заранее неизвестно число источников сигнала
- когда ожидают определённого уровня на любом из входов. например, сигнал прерывания или аварии.
- когда нет возможности разместить схему выбора конкретного источника, например в кроссах, выполненных накруткой
- когда требуется двунаправленная передача по общей линии

в вашем случае, как я понял, имеется 2 или больше источников данных, которые надо по коду управления переправить на одну выходную линию. т. е. направление от входов к выходу не меняется, а число входов заранее известно. я не понимаю, зачем нужно использовать монтажное И, когда можно использовать обычное логическое И?

например вот так ->

DA и DB ваши информационные входы

SEL - сигнал выбора (0 - DA, 1 - DB)

OUT - выход мультиплексера



p.s. при работе с CPLD в среде MAX Plus допустимо использование шин на 3 состояния, однако компилятор всё равно преобразует их в комбинацию из нескольких мультиплексеров и именно её зашивает в микросхему. косвенно об этом свидетельствует расход ресурсов кристалла. стОит поставить 2-3 буфера на 3-сост. и вы потеряли существенное количество макроячеек ohmy.gif
sumerik
Цитата(Muxa @ Aug 13 2006, 04:46) *
заранее прошу прощения, что может чего не допонял... но
Цитата
Здесь скорее всего речь идёт о монтажном ИЛИ, которая подразумевают объединение по ИЛИ элементов с открытым коллектором навстречу друг с другом

если выходы с ОК, то надо говорить о монтажном "И".. но не суть...
монтажное ИЛИ/И используют в случаях, когда:
- заранее неизвестно число источников сигнала
- когда ожидают определённого уровня на любом из входов. например, сигнал прерывания или аварии.
- когда нет возможности разместить схему выбора конкретного источника, например в кроссах, выполненных накруткой
- когда требуется двунаправленная передача по общей линии

в вашем случае, как я понял, имеется 2 или больше источников данных, которые надо по коду управления переправить на одну выходную линию. т. е. направление от входов к выходу не меняется, а число входов заранее известно. я не понимаю, зачем нужно использовать монтажное И, когда можно использовать обычное логическое И?

например вот так ->

DA и DB ваши информационные входы

SEL - сигнал выбора (0 - DA, 1 - DB)

OUT - выход мультиплексера



p.s. при работе с CPLD в среде MAX Plus допустимо использование шин на 3 состояния, однако компилятор всё равно преобразует их в комбинацию из нескольких мультиплексеров и именно её зашивает в микросхему. косвенно об этом свидетельствует расход ресурсов кристалла. стОит поставить 2-3 буфера на 3-сост. и вы потеряли существенное количество макроячеек ohmy.gif


понял, спасибо!
а так как сказал Doka, тоже можно делать? т.е. оставить на "откуп" синтезатуру.
slawikg
Код
если выходы с ОК, то надо говорить о монтажном "И".. но не суть...
монтажное ИЛИ/И используют в случаях, когда:
- заранее неизвестно число источников сигнала
- когда ожидают определённого уровня на любом из входов. например, сигнал прерывания или аварии.
- когда нет возможности разместить схему выбора конкретного источника, например в кроссах, выполненных накруткой
- когда требуется двунаправленная передача по общей линии


1 Я лишь уточнил фразу «говорят, что надо объединить по схеме ИЛИ, но как не могу сообразить».
2.В данном случае логически будет ближе как раз монтажное ИЛИ, хотя и с отрицательной логикой НЕ- ИЛИ


Код
а так как сказал Doka, тоже можно делать? т.е. оставить на "откуп" синтезатуру.


Если вас устраивает результат синтеза, конечно же лучше отдать на "откуп".
Muxa
sumerik
рад, что чем то помог

slawikg
сейчас прочитал свой пост и заметил "менторский" тон.... вы уж извиняйте... не хотел...
кстати, если больше пользоваться схемным вводом, нежели описанием на языке, то буферы с ОК или на 3 састояния выглядят адекватнее, а схема понятней. в любом случае результаты будут похожи,- комбинация дешифраторов и мультиплексеров
sumerik
Цитата(Muxa @ Aug 14 2006, 01:41) *
slawikg
сейчас прочитал свой пост и заметил "менторский" тон.... вы уж извиняйте... не хотел...


Все ОК, я и сам не заметил его. хотя я не знаю что такое "менторский" тон. главное что Ваш пост мне помог.

А есть ли более общие принципы как это сделать?(Просто если шины будут *цати разрядными)

Кстати, недавно проходил практику. Там все сначала делают в схематике, только потом на Верилог.
Mad Makc
Цитата
Кстати, недавно проходил практику. Там все сначала делают в схематике, только потом на Верилог.

А в каком заведении, если не секрет, вы практиковались?Инетересует в общем следующий вопрос: сколько в процентном отношении уделялось времени схематику и верилогу?
sumerik
г. Москва - компания Мирантис

верилогу - ноль процентов!
все - хематехника. но я многого не понял, поэтому и задаю вопросы на форуме.

там сказали так, главное это схематехника. если будет ОНА, то на Верилоге - ее описать как 2 пальца.
если интересно, че изучали спроси у меня по адресу, могу сфоткать конспект и выслать
udav_ru(гав)yahoo(точка)com
TailWind
У вас будет перегружен сигнал SEL.

Я делал так:

Если устройство спит его выходные данные равны нулю.
Если активно выставляет свои данные.

Шины данных объединены по ИЛИ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.