![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation При составлении уравнений для Q1 * и Q0* мы образуем сумму р-термов переходов для тех комбинаций состояние/выход, которые явным образом отмечены единицами в соответствующих столбцах списка переходов. Хотя мы и не принимаем во внимание неиспользуемые состояния, в этой процедуре неявно считается, что им соответствуют нули в столбцах Q1 * и Q0*. И наоборот, если мы записываем уравнение для Q2* в виде суммы р-термов переходов для комбинаций состояние/вход, имеющих нули в соответствующем столбце списка переходов, то в отношении неиспользуемых состояний неявно считается, что у них в столбце Q2* стоят единицы. Как следствие такого выбора, за всеми неиспользуемыми состояниями автомата для ифы на угадьшание следуют состояния с кодом 100 при любых входных комбинациях. Это не страшно: можно позволить автомату сбиться и войти в неиспользуемое состояние, поскольку кодовое имя 100 соответствует одному из нормальных состояний (SOK). Если бы мы хотели обрабатывать неиспользуемые состояния как истинные безразличные состояния, то нам следовало бы позволить им переходить в любые следующие состояния при каких-то комбинациях входных сигналов. Это простой принцип, но его реализация на практике может оказаться затруднительной. В конце раздела 7.4.4 мы показали, как можно обойтись с неиспользуемыми состояниями, которые полагаются безразличными , при выводе уравнений переходов и уравнений возбуждения методом карт Карно. К сожалению, карты Карно слишком фомоздки во всех случаях, кроме самых простейших задач. С большими задачами легко справляются имеющиеся в продаже профаммы логической минимизации, но многие из них не допускают наличия безразличных значений, либо требуют от разработчика введения для них специального кода. В профамме для конечного автомата на языке ABEL совсем легко указьшать состояния, следующие за безразличными состояниями, с помощью директивы @DCSET, как это объясняется в одном из замечаний в разделе 7.11.2. На языке VHDL это выглядит несколько неуклюже. *7.7.3. Кодирование состояний выходными комбинациями Давайте рассмофим другую реализацию автомата для ифы на угадывание. Сигналы на выходе автомата являются функциями только состояния; более того, в каждом из состояний f разными именами вырабатьшаются различные выходные комбинации. Поэтому можно воспользоваться выходными сигналами в качестве переменных состояния и присвоить каждому состоянию с именем кодовое обозначение в виде фебуемой комбинации выходных сигналов. Такого рода кодирование состояний выходными комбинациями {output-coded state assignment) иногда приводит к более простым уравнениям возбуждения, чем в случае, когда для кодирования состояний используется минимальное число переменных состояния. В табл. 7.19 приведен список переходов автомата для ифы на угадывание, возникающий при кодировании состояний выходными комбинациями. В каждом уравнении переход/возбуждение совсем мало р-термов перехода, поскольку число единиц в столбцах следующих состояний в списке переходов невелико: L1* = L2* L3* L4* ERR* L1L2L3L4ERR(G1-+ L1 L2- L3- L4- ERR - (01 + L1-L2L3L4ERR(Gr L1 L2- L3- L4- ERR - (GI-LI- L2- L3- L4- ERR- (G1 L1L2LЗL4 ERR (G1 LI L2 - L3 L4 ERR - (G2 + f L1-L2-L3-L4-ERR-(G1 + L1L2-L3-L4-ERR-(G1 f L1-L2L3L4-ERR-(G1 + L1-L2-L3-L4-ERR-(G1 G2 - G3 G4) - G2 G3 G4) G2 G3 G4) G2 G3 G4) G2 G3 G4) G2 G3 G4) G3 + G4) + G3 + G4) + G2 + G4) + G2 + G3) + G2 + G3 + G4). Уравнения выхода, естественно, отсутствуют Самым плохим из приведенных является выражение для ERR*; ему требуется 16 термов независимо от того, в каком минимальном виде оно представлено: в виде суммы произведений или в виде произведения сумм. Табл. 7.19. Список переходов автомата для игры на угадывание при использовании выходных сигналов в качестве переменных состояния Текущее состояние Выражение Следующее состояние
в совокупности выведенные здесь соотношения имеют примерно такую же сложность, как и уравнения переходов и уравнения выхода, получаемые из табл. 7.18. И хотя в данном примере кодирование состояний выходными комбинациями не приводит к более простому набору соотношений, все же при проектировании на основе ПЛУ можно сэкономить в стоимости, так как в целом оказываются необходимыми меньшее число макроячеек ПЛУ или выходов.
При таком подходе каждое неиспользуемое текущее состояние подобно ближайшему нормальному состоянию; эту идею иллюстрирует рис. 7.67. Ничего плохого не произойдет с автоматом, если он нечаянно попадет в неиспользуемое состояние: он перейдет в нормальное состояние . Вместе с тем, этот подход приводит к дальнейшему упрощению логики возбуждения и логики выхода благодаря введению символов безразличия в список переходов. При записи р-терма перехода, соответствующего данной строке, те переменные состояния, значения которых в текущем состоянии отмечены как безразличные, опускаются; например, ERR* = L1 (G2 + G3 +G4) + L1- L2(G1 +G3 +G4) + L1L2L3(G1 +G2 +G4) + L1-L2-L3-L4-(G1 +G2 + G3) + L1 L2 L3 L4 ERR (Gl + G2 + 03 + G4). Сравнивая это выражение с выражением, полученным для ERR* в предыдущем разделе, мы видим, что при представлении этого состояния в виде суммы произведений оно по-прежнему содержит 16 термов. Однако в виде минимального произведения *7.7.4. Ко/Ц1рование безразличных состояний Из 32 возможных кодов состояний при пяти переменных в табл. 7.19 используются только шесть. Остальные состояния являются неиспользуемыми, и следующим за ними состоянием будет состояние 00000, если автомат построен по уравнениям, приведенным в предыдущем разделе. Аккуратное использование соображений безразличия при отнесении кодов к текущим состояниям позволяет иначе распределить неиспользуемые состояния, нежели это было сделано нами в предыдущем разделе. В табл. 7.20 представлено одно из таких соответствий в автомате для ифы на угадьшание при кодировании состояний выходными комбинациями, о котором говорилось. В этом примере текущему состоянию с данным именем соответствует несколько возможных комбинаций переменных состояния (например: 10111=31, 00101 = S3). Однако следующему состоянию присваивается одна вполне определенная комбинация, как и в предыдущем разделе. В результате мы получаем список переходов, приведенный в табл. 7.21. Табл. 7.20. Кодирование текущих состояний в автомате для игры на угадывание при безразличном отношении к некоторым комбинациям выходных сигналов ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |