Страница 1 из 1
Нужно заменить программируемую логику :)
Добавлено: Сб июл 03, 2010 20:02:14
Starp
Добрый всем вечер.
Есть значит одна схемка (ADS адаптер).

Там используется программируемая логика, нужно её заменить. Помогите пожалуйста. Вот список функций:
PIN12 = /PIN2
PIN13 = /PIN4
/PIN14 = PIN6 * PIN3 * /PIN9 + PIN6 * PIN5
/PIN15 = / (/PIN2 * PIN3 * /PIN9) + PIN9
PIN16 = /PIN2 * /PIN3 * /PIN9 + /PIN2 * PIN9
PIN17 = GND
PIN18 = PIN5
PIN19 = /PIN5
Ну или хоть объясните как вообще к этой проблеме подойти?

Re: Нужно заменить программируемую логику :)
Добавлено: Сб июл 03, 2010 20:45:23
NiTr0
Starp писал(а):PIN12 = /PIN2
PIN13 = /PIN4
PIN14 = PIN6 * PIN3 * /PIN9 + PIN6 * PIN5
PIN15 = / (/PIN2 * PIN3 * /PIN9) + PIN9
PIN16 = /PIN2 * /PIN3 * /PIN9 + /PIN2 * PIN9
PIN17 = GND
PIN18 = PIN5
PIN19 = /PIN5
Ну или хоть объясните как вообще к этой проблеме подойти?

А в чем проблема? Банальные операции И (*), ИЛИ (+), НЕ (/).
Ну и ессно выражения прекрасно можно упростить...
Re: Нужно заменить программируемую логику :)
Добавлено: Сб июл 03, 2010 21:46:37
Negor
Если делать глобально, не под конкретную задачу то моё предложение таково - вам нужно взять любой доступный контроллер(AVR или PIC) и превратеть его в PLC-контроллер. Каким образом? Эта задача не нова. Если что. вот
ссылка
Re: Нужно заменить программируемую логику :)
Добавлено: Вс июл 04, 2010 01:56:31
Starp
Про заменить микроконтроллером можно поподробнее?
Тоесть в главном цикле написать SWITCH со всеми возможными вариантами и все?

Re: Нужно заменить программируемую логику :)
Добавлено: Вс июл 04, 2010 07:59:47
Meteor
А вас скорость работы на МК устроит потом?
Re: Нужно заменить программируемую логику :)
Добавлено: Вс июл 04, 2010 08:19:28
uldemir
Как-то не уверен что это прокатит. Все-таки palce имеет задержку распространения сигнала 25нс. На микроконтроллере такое не получишь. Т.е. в общем случае такая замена неадекватна. Такая замена допустима, только при анализе работы всей схемы и наличии дополнительных условий допускающих такую замену.
Ну или хоть объясните как вообще к этой проблеме подойти?
Чтобы что посоветовать, надо знать ваши возможности. Я бы зашил xc9536 (из пушки по воробьям, но ведь главное результат?). Или в стародавние времена один горелый контроллер с PAL22xxxx заменил тремя микросхемами простой логики.
Однако приведенные вами выражения не особо и сложные, думаю, тоже можно уложиться в 3 микросхемы простой логики, если их есть где разместить. 12, 13 и 19 - по одному инвертору от ЛН1. 17, 18 - просто перемычки. только надо подумать над 14-16 как по-компактнее уложить во что-нибудь.
Re: Нужно заменить программируемую логику :)
Добавлено: Вс июл 04, 2010 11:52:55
Jack_A
Starp писал(а):Про заменить микроконтроллером можно поподробнее?
Тоесть в главном цикле написать SWITCH со всеми возможными вариантами и все?

Я не знаю, каким боком тут SWITCH, но если задержка в 1 мкс не критична, то это делается в пол-пинка ( весь цикл - 4 команды ) :
Например, для AVR :
ldi r16,0
out DDRA,r16 ; порт А на ввод
ldi r16,0xFF
out DDRB,r16 ; порт B на вывод
ldi ZH,high (CODE_TAB<<1) ; кодовую таблицу размещаем на границе страницы
loop: in ZL,PINA
lpm
out PORTB,r0
rjmp loop
.org 0x200
CODE_TAB:
.db ....... ; здесь выходные коды
Выходную кодовую таблицу, чтоб не мучиться и не ошибаться, можно сгенерировать простейшей
программой.
Re: Нужно заменить программируемую логику :)
Добавлено: Вс июл 04, 2010 13:11:00
DrWatson
Starp писал(а):Ну или хоть объясните как вообще к этой проблеме подойти?

Взять учебник по цифровой схемотехнике и почитать про синтез цифровых схем, ну и изучить булеву логику и преобразования булевых функций.
Для реализации на логике потребуется максимум 3 микросхемы: 6xНЕ (ЛН1), 3x3И-НЕ (ЛА4) - для PIN14, сдвоенный мультиплексор 4х1 (КП2) - для PIN15, PIN16
Re: Нужно заменить программируемую логику :)
Добавлено: Пн июл 05, 2010 12:02:51
Pe3ucTop
И ещё - проверте правильно ли у вас записаны уравнения..
На схеме приведенной вами некоторые уравнения для инверсных выходов, в вашем случае для прямых.
К примеру PIN14 = SG_TX_OUT ; а уравнение на схеме для /SG_TX_OUT ..
Re: Нужно заменить программируемую логику :)
Добавлено: Пн июл 05, 2010 13:22:53
kypatop
Добрый день!
Форумчане, проверьте, пожалуйста, правильно ли я заменил ПЛИС логикой:
/16=/2*/3*/9+/2*9
в этом выражении незнаю правильно ли сделать так:
16=2*3*9+2*/9
и еще одно
15=2+/3+9
ну и соббстенно логика :

Re: Нужно заменить программируемую логику :)
Добавлено: Пн июл 05, 2010 14:20:50
uldemir
Проверка элементарна. Составьте таблицы истинности для обоих формул. Если совпадают - правильно, если нет... то увы. Тем более, что там всего 3 аргумента и, соответственно, только 8 комбинаций. У мене не совпали.
Более того, с приведенным в начале темы листком не совпадает.
для 16 пина: /p2*/p3*/p9 + /p2*p9 => /(p2+p3+p9) + /(p2+/p9) => /((p2+p3+p9)*(p2+/p9)) => /((p2+p3+p9)*/(/p2*p9)) - 2 элемента 2И-НЕ и 1 элемент 3ИЛИ
Re: Нужно заменить программируемую логику :)
Добавлено: Вт июл 06, 2010 10:41:06
kypatop
А так?

Re: Нужно заменить программируемую логику :)
Добавлено: Вт июл 06, 2010 15:00:00
uldemir
А вы по каким формулам схемы-то рисуете?
Re: Нужно заменить программируемую логику :)
Добавлено: Вт июл 06, 2010 19:12:04
kypatop
по вашей, в предыдущем посте, только вместо 15 нада поставить 16 на моей схеме
Re: Нужно заменить программируемую логику :)
Добавлено: Вт июл 06, 2010 19:56:05
uldemir
У меня получается так:

Не знаю есть ли 3ИЛИ в TTL микросхемах, поэтому использовал 3ИЛИ-НЕ и следом еще один элемент НЕ.
disclaimer: входные линии нарисованы не по порядку и от балды.