Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 187
Текст из файла (страница 187)
В бачьшинстве случаев для образования 8-разрядного массива из 7-разрядного подмножества 1О и еще одного бита применяется оператор конкатенации "5'1 Из-за строгих требований языка ЧНРЬ к согласованию типов в операторе САяе используется определенная в разделе 4.7.4 функция сонч 1нте6ее для преобразования входного сигнала выбора я типа ята ь031с чеСТОе в целое число, Можно было бы сделать иначе, записав метку каждого случая как элемент типа Ята ьОЯ1с честОЯ [например! ('0', ' 1', ' 1'), а не целое число 31. В табл. 8.32 приведена поведенческая ЧНРЬ-программа для регистра сдвига с расширенными функциями.
Как и в предыдущих примерах, определяется процесс н для обеспечения желаемого переключения по фронту тактового сигнала используется признак еуепш Заслуживают внимание следующие особенности этой программы: 880 Глава 8. Практическая разработка схем последовательной логики Табл. 8.32. ЧНРЬ-программа для 8-разрядного регистра сдвига с расширен- ными функциями 11ьхеху ТЕЕЕ; иве 1ЕЕЕ.вхй 1о61с 1164.а11; еюихху Чвьтигек 1в рога ( СЬК, СОК, КТК, 11Я: ха БТО 10010; Б: 1ю Бтп 10010„честОк (2 йочюио 0); — хипсс1ою ве1есс О: 1и БТО ЫИ1С ЧЕСтОК (7 йочпсо О); — йаса хю ц: оис Бтв 10010 честок (7 йочпео О) — йаса оии ); епй Чвьгхх«6; ахсЬхеессихе Чвьтгхек агсЬ оу Чвьтохеб хв в16па1 Щ; ЗТО 10010 ЧЕСТОК (7 йочпхо О); Ье61п рхосевв (СЬК, С1.К, 1Ц) Ье61п 11 (СЬК ' 1') Хьеп 1Ц <= (оекехв >'0');— етвхт (СЬК'ечеюг аюй Ськ='1') Сьеп саве СОКЧ 1КТЕОЕК(З) хв «Ьеп 0 > юи11; чьею 1 > 1Ц < О; «Ьеи 2 => 1Ц <= К1И К Щ(7 йочюво 1); чьею 3 > 10 <" 1Ц(6 йочпео 0) Ф 11К; чЬею 4 => 1Ц < 1Ц(0) Ф 1Ц(7 йочпсо 1) «Ьею 6 => 1Ц <= 1Ц(6 йочпхо О) К Щ(7) «Ьеп 6 > 1Ц <= 1Ц(7) К 1Ц(7 йо«пес 1) «Ьею 7 => 1Ц < 1Ц(6 йс«юго 0) В '0'; чвеп осЬехв > пи)1; епй саве; еюй 11; Ц <= 1Ц; епй ргосевв) еюй Чвьтьхеб ахсЬ; Авупсьхопоив с)еаг — Но1й — Ьоай — БЬ(ГЬ -- ЗЬгас — ЗЬ111 — БЬ(ГŠ— Бкьгв — ЗЬ11с г16ЬХ 1е1с стхсиьах х16ЬХ <1хси)ах 1егь агйсьветьс г16ьи ах(С вайс 1еги Одно из применений регистров сдвига — это кольцевые счетчики; примером такого применения служит рассмотренный в предыдущем разделе генератор шестифазных колебаний, изображенных на рис.
8.7 Ь В табл. 8.33 приведена ЧНРЬ- программа, обеспечивающая такое же поведение устройства. Как и в предыдущем ЧНРЬ-примере для чтения и записи используется внутренний сигнальный вектор 1Р с высоким активным уровнем, становящийся в конце концов выходным сигналом устройства, чтобы получить требуемый выходной сигнальный вектор с низким активным уровнем, удобно инвертировать этот внутренний сигнал в последнем операторе. Остальная часть программы не содержит никаких особенностей, но заметьте, что у вложенного оператора 1 Р имеются три уровня. 8.8.
Регистры сдвига 861 Табл. 8 33. ЧН()(.-программа для генератора шестифазных колебаний '1ъкаку 1ЕЕЕ; озе !ЬЕЕ.заб !об1с„!1БЕ.а!1; еваьсу Тззаезоб кв ровс ( ВЕЯТЗЯТ: 1а ЯТО ЬОО!С; — <1осз, сового! караке Р (.; оос ятс сос!с местоа (1 со б) — асааее-!ое рлаве оасрссз аксшсески е тсьаеяаб акса ог ч!каеяаб кз акява1 ТР: ятз ь0010 тесток (! зо б); — 1овекза! аск(те-ькяь рьаве зкяаа з з)коа! Т1: ЯТО ЬОСТС; — Тккзс ззск в!свао рьазв Ьеб'о ркссезз (ИС! К, ТР) Ьея1о (ИСЬК'еоезс аоо НС!.К '!') 11 (ВЕЯЕТ='1'; *Ьев е!в11 ((!Р ('О','0','0','О',*О','О')) ак (ВЕЯТАВТ '1')) ткеа 61з11 (ВОВ ''. ", *вел т! < оса т1; 11 (т1='О') сьев ТР < ТР(б) а !Р(! сс 5); еаб 11; его зт; еоб 11; Р ' < зсс ТР! еаб ркасевв; еьб тз1векаб акс!и Возможной модификацией рассмотренного приложения является устройство, выходные колебания которого удерживаются на активном уровне только во втором такте каждой фазы длительностью в два талч а; эти колебания были показаны на рис.
8.72. Один из способов достичь этого заключается в создании 12-разрядного кольцевого счетчика и использовании выходов только каждого второго триггера. При реализации такого устройства ЧН()!.-Средствами в определении объелта фигурировали бь! только шесть фазовых выходных сигналов Р е (1 со б) . шесть дополнительных сигналов, названных)Оехт Р (1 со 6) „объявлены в определении архитектуры и являются локальными. На рис. 8.73 показано соотношение между этими сигналами при выполнении операции сдвига, а в табл.
8.34 приведена соответствующая ЧН()).-программа. ИЕХТ (! (ов) ~Р(1 Юз) (Р ( <=со!!Р) Рис. 8.73. Последовательность сдвигов в генераторе шестифазиых колебаний на основе 12-разрядного кольцевого счетчика 882 Глава 8. Практическая разработка схем последовательной логики Табл. 8.34. ЧНО).-программа для модифицированного генератора шестифая- ных колебаний 11Ь»агу <ЕЕК; пее ХЕЕЕ.е»б хебгс;Ме.вм) еп»г»у У»»ввб)2 1в ИГ).х, НЕВЕТ, НСИ, КЕВТАРЛ: 1» ЯТО ЬО010; — с1оса, сов»го):гр|п:е Р ы осз ятб 1лс1с„уес(бк (1 »о б) — ас»!уе 1ое РЬаее о»»ро»в Епб У»»пвб)2; агсь»»ес»пге 7»»вее12 агсЬ оу У»)аее12 »в «»Епа1 1Р, ЯЕХТР: ЯТО 10010 УЕСТОН (1 »о б); — га»егпа) а<*ага-МЕЬ Рпаее а Впа1в Ьевгп ргосевв (КСЕК, 1Р, ИРХТР) »аг»вые та<Р: ятб Ощс 7кстбн (1»о б); — »еврогагу 1»г мкпа1 «мт» сове»ап» ТОЬЕ: ЯТО 1001С 7ЕСТОН П»о б):,''С,ТС', 'О', 'С','б,'О'); сове»ап» 71нятр: Втс ш012»ж, Ок (1»о б):" ('1', 'О', О,'О', 'с','О'); Ьеб»п 11 (ис(х еееп» апб ис к='г') »ьеп 17 (неяет- 1.) »ьеп хр <- пи е; яехтр = Хсье; е1е11 (КЕВТАКТ.
'1*) ог (1Р 1ЬЪЕ впб ИЕХТР ХОЕЕ] »Ьеп 1» < 1ОЬЕ; ИЕХ)Р < РТНЕТР; е)е11 (РЛИ '1')»Ье <7 (1Р ОЬЕ) апб (ИЕХТР 1ОЕЕ) сЬев ИРХТР <» РАКЯТР; ехеа Тае»: 17) хр <: )НЕХТР) ИЕХтр = теир(м и тк<Р(1 »о Ы; епб 11; впб »1) вы 11; Р!,< по.1Р; ееб ргосева; ага 7»»веб12 агсь; Как и в предыдущей программе, в теле архитектуры объявлен 6-разрядный сигнал 1Р с высоким активным уровнем, который используется для чтения и записи и становится в конце концов выходным сигналом устройства Р 1 с низким активным уровнем.
Добавочный 6-разрядный сигнал мехт Р хранит остаю(циеся 6 двоичных переменных состояния. Константы 1ЕЕЕ и Р1ЕЕТР делают программу более удобочитаемой. Заметьте, что 6-разрядная переменная ТЕМР используется только как место временного хранения старого значения 1Р при осуществлении сдвига: в 1Р загружается содержимое мехтР, а в мехтР— сдвинутое старое значение 1Р. Поскольку операторы присваивания в процессе выполняются лослвдоватеуьно, мы НЕ МОГЛИ бЫ ОбОйтИСЬ ПрОСтОй ЗаПИСЬЮ в1Р <= МЕХТР; МЕХТР <= 1Р ( б) 01Р (1 т э 5 ) 1".
Если бы мы так сделали, то в мехтР попало бы новое значение 1 Р, а не старое. Обратите также внимание на следующее: так как ТЕМР является локальной переменной, а не сигналом, ее значение вне процесса не видно. Кроме того, при очередном обращении к процессу никогда не используется значение ТЕМР образовавшееся при предыдущем вызове процесса Поэтому )(НОЕ-компилятору не нужно синтезировать никаких триггеров для хранения значения темР. 8.6.
Итерационные и последовательностные схемы 863 *В.б. Итерационные и последовательностные схемы С итерационными схемами мы познакомились в разделе 5.9.2. Функцию итерационной схемы, состоящей из и модулей, может выполнить последовательностная схема, в которой модуль имеется лишь в одном экземпляре, но ей требуется совершить и шагов (за и тактов), чтобы получить нужный результат. Это блестящий пример пространственно-временного обмена при цифровом проектировании Как видно из рис. 8.74, в последовательностной схеме для сохранения значений сигналов в межкаскадном соединении в конце каждого шага используются триггеры: именно их выходные сигналы служат входными сигналами межкаскадного соединения в начале следующего шага.
Перед началом первого такта триггеры необходимо загрузить граничными значениями входных сигналов; по окончании и-го такта они содержат граничные значения выходных сигназов. сьОск Рис. 8.74. Общая структура последовательиостной схемы, эквивалентной итерационной схеме Поскольку итерационная схема является комбинационной, все ее первичные и граничные входные сигналы можно подать одновременно, а все ее первичные и граничные выходные сигналы доступны спустя время, равное комбинационной задержке. В последовательностной схеме первичные входные сигналы должны поступать последовательно, по одному комплекту на каждом такте, и первичные выходные сигналы должны вырабатываться в соответствующие моменты времени. Поэтому входные сигналы часто формируют с помощью регистров сдвига с последовательным выводом, а выходные сигналы собирают в регистрах сдвига с последовательным вводом. По этой причине часто говорят, что в последовательно стной схеме состояния итерационной схемы поочередно следуют одно за другим.