![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation операнд-фантом Обычно в реальных ИС типа CPLD имеются только двухвходовые мультиплексоры выбора выходного сигнала, так что выход . FB, указанный на рис. 7.104, бывает опущен. Если в уравнении возникает обращение к сигналу с признаком . FB, -го компилятор использует соответствующий сигнал с признаком . Q, осуществляя, если это необходимо, его инвертирование. Основная идея нового подхода заключается в отказе от состояния, ответственного за последнее значение сигнала А, и введении вместо этого отдельного триггера LASTA для хранения этой информации. Тогда должны быть определены только два состояния, помимо первоначального состояния INIT: LOOKING ( ожидание пары одинаковых значений сигнала А ) и ОК ( поступили два одинаковых значения сигнала А, либо сигнал В остается равным 1 с последнего момента поступления пары одинаковых значений сигнала А ). Сигнал на выходе Z - это результат простого комбинационного декодирования состояния ОК. *7.11.3. Внешняя память состояния Бывают случаи, когда информация о состоянии конечного автомата, построенного на основе ПЛУ, хранится во внешних по отношению к ПЛУ триггерах. В языке ABEL есть специальный вариант оператора state diagram для такой ситуации: state diagram current-state-variables -> next-state-variables Здесь current-state-variables - ABEL-набор, в котором перечислены входные сигналы, представляющие в совокупности текущее состояние, а next-state-variables - набор соответствующих выходных сигналов, подаваемых на входы внешних D-триггеров, в которых хранится состояние автомата; например, state diagram [CURQ1,CURQ2]->[NEXTQ1, NEXTQ2] *7.11.4. Задание выходных сигналов автомата Мура в рассматриваемом примере конечный автомат является автоматом Мура, так что его выходной сигнал Z зависит только от состояния, что и было нами реализовано с помощью соответствующих равенств в разделах equations профамм, приведенных в табл. 7.25 и 7.27. Но можно было поступить и иначе; язык ABEL позволяет задавать выходные сигналы автомата Мура одновременно с определением самих состояний. Оператору перехода в определении состояния state может предшествовать одно или большее число необязательных равенств, как показано в табл. 7.28. Чтобы воспользоваться этой возможностью, например, в случае автомата, описываемого профаммой в табл. 7.27, следует исключить относящееся к сигналу Z равенство из раздела equations и переписать диафамму состояний так, как это сделано в табл. 7.29. state diagraja state-variables Табл. 7.28. Структура диаграммы состояний state xtate-value J : языке ABEL, в которой задаются значения , .. выходных сигналов автомата Мура. optional equation i optional equation; tramition statement; state state-value 2 : optional equation; optional equation; transition statement; state state-value 2 : optional equation; optbnal equation; transition statement; Табл. 7.29. Конечный автомат Мура со встроенными определениями выходных сигналов state.diagram QSTATE state IHT: Z = 0; IF RESET THEN INIT ELSE LOOKISG; state LOOKING: Z = 0; IF RESET THEN INIT ELSE IF (A === LASTA) THEN OK ELSE LOOKISG; state OK: Z = 1; IF RESET THEN ISIT ELSE IF В THEN OK ELSE IF (A == USTA) THEN OK ELSE LOOKING; state XTRA: Z = 0; GOTO INIT; Если такая переменная, как z, встречается в левой части нескольких соотношений, то так же, как это имеет место и в отношении других равенств в ABEL-профамме, результирующее значение данной переменной получается путем обьединения правых частей по правилам операщ1и ИЛИ (подробнее это было объяснено в разделе 4.6.3). Заметьте, что все сказанное относилось к случаю, когда выход Z является комбинационным, не регисфовым. Если бы выход Z бьш регистровым, то желаемые значения сигнала возникали на выходе лишь на следующем такте, то есть на один такт позднее, после того как автомат побывал в соответствующем состоянии. next-.stase WITH { equation; equation; Табл. 7.30. Структура оператора with в языке ABEL в разделе 7.4.6 мы рассмофели в качестве примера конечного автомата с выходом Мили кодовый замок и пришли к табл. 7.14. Тот же самый конечный автомат представлен в виде профаммы на языке ABEL в табл. 7.31, где для выходов типа Мили использованы операторы WITH. Заметьте, что при этом определения состояний оканчиваются закрывающими скобками, а не точками с запятой, которыми обычно оканчиваются операторы переходов. Согласно словесному описанию кодового замка, выходные сигналы UNLK и HINT не могут быть конвейерными, поскольку их значения зависят от текущего значения входного сигнала X. Если же переопределить состояния, положив, что UNLK - это полностью незапертое состояние, а HINT - само рекомендуемое следующее значение х, то можно посфоить новый автомат с конвейерными выходами, как это сделано в табл. 7.32. Важно не потерять из виду, что здесь значения сигналов UNLK и HINT другие, нежели в примере с выходом типа Мили, поскольку в данном случае эти сигналы вычисляются с предвидением на один такт вперед. *7.11-5 Задание сигналов на выходах типа Мили и на конвейерных выходах с пош>щью оператора with Выходные сигналы конечных автоматов могут зависеть не -только от состояния, но также и от входных сигналов. В разделе 7.3.2 мы назвали выходы таких автомагов выходами типа Мил и или конвейерными выходами в зависимости от того, возникают ли соответствующие сигналы на выходе сразу же после изменения входных сигналов или только на очередном фронте тактового сигнала. Оператор WITH (WITH statement) языка ABEL позволяет задавать эти выходные сигналы одновременно со следующими состояниями, а не в разделе профаммы equations. Синтаксис оператора WITH очень прост, как это видно из табл. 7.30. За именем любого следующего состояния, являющимся частью оператора перехода, может следовать ключевое слово WITH и заключенный в скобки список равенств, которые исполняются при данном переходе. Формально процедуру можно описать так: пусть Е - выражение возбуждения, истинное только при осуществлении данного перехода; тогда в каждом равенстве, содержащемся во взятом в скобки списке оператора WITH, результат объединения правой части с Е по правилам логической операции И присваивается сигналу, указанному в левой части. В равенствах можно использовать как нетактируемое, так и тактируемое присваивание для получения сигнала на выходе Мили и на конвейерном выходе соответственно. ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |