Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 79
Текст из файла (страница 79)
Таким образом, правило моделирования состоит в том, что в случае, когда последним оператором в теле ЧНРЬ-архитектуры изменяется сигнал, используемый в первом операторе данной архитектуры, программа должна вернуться назад к первому оператору и скорректировать его результаты, приведя нх в соответствие с только что изменившимся сигналом. На самом деле моделирующая программа будет осуществлять множественные изменения и обновления результатов до тех пор, пока моделируемая схема не стабилизируется; подробнее мы рассмотрим этот вопрос в разделе 4,7,9, В языке ЧНРЬ есть несколько параллельных операторов, а также механизм связывания в один узел набора последовательных операторов с тем, чтобы они исполнялись, как один параллельный оператор.
Различное использование параллельных операторов привело к возникновению трех стилей проектирования н описания схем, слегка отличающихся один от другого; об этом и пойдет речь в данном разделе и двух следующих. Самым главным параллельным оператором в языке ЧНРЬ является оператор согароп ел с (сопропел глаз«тенг), синтаксис которого указан в табл. 4 41. Здесь сотропелллате — имя определенного ранее объекта, который должен быть использован или подвергнут обработке (Глиалг(ще) в теле данной архитектуры. Для каждого оператора сог«ропепг. с обращением к названному объекту создается одна копия этого объекта; каждая копия должна иметь уникальную метку !аЬ«Ь 4.7.
Язык опиоаими схем ЧНРЬ 337 Табл. 4.41. Синтаксис оператора сотропопс в языке ЧНРЬ МЬ«П сатрапа лг-лате ротс лар(яяпа)1, иллан...., »ылаГп); )ав«1. а»троп«полата рагс аар(роп1 >Мяла)1, роп2 >а)япа)2, ..., ролл >тяпа)л); Ключевое слово розг вар вводит список, посредством которого портам названного объекта ставятся в соответствие сигналы данной архитектуры, Список может быть представлен одним из лвух различных способов. Первый нз ннх является позиционным: как и в обычных языках программирования, сигналы, упоминаемые в списке, связываются с портами объекта в том же самом порядке, в каком порты перечислены в определении обьекта. Второй способ записи — явный: каждый порт объекта связывается с сигналом посредством оператора"=>", и зтн соответствия могут следовать в любом порядке. до того как компонент будет подвергнут обработке внутри архитектуры, он должен быть декларировал объявлением компонента (сотропепг йес1а абоп) в определении архитектуры (см.
табл. 4.28). Как видно из табл. 4.42, объявление компонента является по существу таким же, что и часть объявления соответствующего объекта, где объявляются порты: приводятся имя, режим и тип каждого порта. Табл. 4.42. Синтаксис объяв- ления компонента в языке )/НРЬ совропвпт сотропепг-пате роге Ь1уа1-папыл: пии1е з18па1-гуре; з18па1-пател: тос1е »18па1-гуре; з18па1-пател: ти1е з18па!-Ьра); авд совровевс; Используемые в архитектуре компоненты могут быть либо ранее определенными элементами данного проекта, либо библиотечными элементами. Табл.4.43 представляет собой пример ЧНОЬ-объекта и его архитектуры, в которой ис пользуются компоненты «устройства для обнаружения простых чисел», структурно идентичные отдельным вентилям в схеме на рис.
4.30(с). В объявлении объекта названы входы схемы и ее выход. В части архитектуры, отведенной под объявления, присваиваются имена всем сигналам н компонентам, которые используются внутри данной архитектуры, Этот пример был разработан и с ком пил ирован в программной среде Х!!!пх говпда!юп !.5 1см. Обзор литературы), где 1))ч, А)4Р2, А))РЗ и Огс4 являются предопределенными компонентами. Заметьте, что операторы сожропепг в табл. 4.43 исполняются параалеаьно. Даже в том случае, когда операторы расположены в другом порядке, результатом синтеза будет та же самая схема н моделирование ее работы будет приво- лить к одному и тому же.
УНОЬ-архитектуру, в которой используются компоненты, часто называют структурным описанием 1зггисгига1 Ыелсг1рг)оп) или струюиурной моделью 333 Глава 4. Принципы проекгироеаиин комбинационных логических окем (г(гис(вга1 с(ез(у~), поскольку ею задается реализующая данный объект точная конфигурация соединений, по которым сигналы передаются от одного элемеищ к другому. В этом отношении ясное структурное описание эквивалентно схеме устройства или списку соединений в нем.
Табл. 4.43. Структурная ЧН0~-программа для устройства, обнаруживающего простые числа у 1ЗЯК; иее ТЯЯЛ.аса 1оя(с 11ее.а11; евстоу рг(ае 1а роги ( И; 1д ЯТО 10010 УЕСТСЯ (3 еоивоо О); Р: с ЗтО ЬОСТС ): еи4 рг1ае; агсазтассита рт1ве1 атсь о1 ртгве та втяиа1 ЬЗ Ь, Иг 1, М( гл Зтв 10010; е1яда1 Кзь ИО, ИЗ). М2(. И1, МЗЬ М1 МО, И2 И11 МО: ЯТР ЫСТС; совровевс тву роге (1: ти ЗТО ЬОСТС; С: оие ЗТО 10010); ево совроведт; соаровеы АМР2 роги (10,11; 1и ЯТР ЫС1С; 0: оис ЗТР ЬОСТС); еде совроиеви; совроиеит АМРЗ рога (10,11,12: 1и ЯТР (.ОС1С; О: оиг ЗТР ЫС1С); еде совроиеии; соароведс 034 ротс ЫО, 11,12, 13: 1в ято 1лс1с; 0: оис ято ыстс)) еие совродеит; Ьеягд 01: 1ИУ роге аар (М(3), МЗ 1); 02: 1МУ р С р (И(2), М2 Ы; РЗ; ТМУ ротс аар (И(1). М1 Ы; 04: АИО2 роги аар (ИЗ 1., И(0), МЗ( МО)1 СЗ: АИРЗ ротс аар (МЗ„Ь, М2 1., М(1), ИЗЬ И2).„М1); СЗ: АМОЗ ротс аер (М2 1, М(1), М(О), И21.„М1 МО); 07: АМОЭ ротс аар (М(2), И1 1., И(О), И2 М11.
ИО); 08; 034 роге аар (И31.„ИО, ИЗ). И21. В1, И21. И1 МО, И2 И11 ИО, Р); еое рг1ае1 егсь; В некоторых приложениях бывает необходимо создать несколько копий определенного блока внутри архитектуры. В разделе 5. ) 0.2 мы увидим, например, что и-разрядный «сумматор со сквозным переносом» можно образовать каскадным включением и «полных сумматоров».
В языке ЧИ01. имеется олерал)ср делеза се (депега ге я(с!етел)), который позволяет создавать такие повторяющиеся блоки посредством своего рода цикла а)о(" без необходимости выписывать все копии по отдельности. Синтаксис простого итеративного цикла депе гасе показан в табл.4.44. Идентификатор 14(еп))1)ег объявляется явно как переменная, тип который совместим с диапазоном галле. параллельный оператор солсвггел1 зга(еп)ел( исполняется однократно для каждого возможного значения переменной 1((епл))ег в пределах диапазона; переменную 1((енду)ег можно использовать внутри параллельного оператора. В табл. 4.45 показано, как можно построить 8-разрядный инвертор. Табл.
4.44. Синтаксис цикла Гст-депетаге налзыкеЧН01 1СЬе1; 1ог н(елгфег 1а галяе кепегаеа Голгвггеп(-3(а(стел( ева кааатасе; 4Л. язык описания схем ЧНРЬ 339 Табл. 4.45. ЧН()Ь-объект и его архитектура для 8-разрядного инвертора 11ьгегу ХЕЕЕ; вве ХЕЕЕ.ага Хо81с 1164.аХХ; еве1су 1а«8 Хв роге ( Х: гл БТ0 ЬОСХС ТЕСТОК (1 Го 8); У: онс БТО ЬООХС тЕСТОК (1 Го 8) ); ева Хлч8; агсЬ1твсъаге 1в»8 агсЬ о1 1пт8 1е сояровелс ХИУ роге (Х: зл БТО 1.0СХС; О: опт БТО ЫИХС); еа1 сояровеат; Ьейьа 81: тог Ь Хп 1 Ео 8 Еепегасе 01: Хит роге яар (Х(Ь), У(Ь)); еп6 Еепегаге; впа 1пт8 агсЬ; Табл.4.46. Синтаксис объявления общности в объявлении объекта еве1еу епп1у-пате 1а Ееаегтс (сапзгат-пател: Сапхгапг-Гуре; сал«1ап1-натек: сопзвтИуре; саптапг-пател: сапзгапг-гуре) 1 роге (х1«па1-патее: тле е1япа!-гуре; тяпа!нштез: тг«1е хгйпайгуре; «1«па!-потех: таг(е ияпа1-гуре); епн епйп-пате; Значение константы должно быть известно к моменту компиляции программы, написанной на языке ЧН?>Ь.
Во многих приложениях бывает полезно разработать и откомпилировать объект и его архитектуру, оставляя некоторые нз его параметров не заданными, например, разрядность шины. Сделать это позволяет имеющийся в языке ЧНХ) Ь инструмент "яепепс". С помощью оба«еле«и» общности (яепег(с Иес1агаг(оп) в объявлении объекта можно определить одну нли большее число «астраиваемых «опстант (яепег1с сап«ганг) это необходимо сделать до объявления портов согласно синтаксису, указанному в табл. 4.46. Каждую поименованную константу можно использовать в определении архитектуры данного обьекта, а задание ее значения откладывается до того момента, когда этот объект будет подвергаться обработке оператором согаропег т нз другой архитектуры.
Значения прнсваиваются настраиваемым константам в этом операторе сомропепГ с помощью предложения делег?с тартаким же способом, какой употреблен в предложении рогг вар. В табл. 4.47 приведен пример, в котором одновременно используются инструмент яепег1с и оператор делегате для создания «шинного ннвертора» с задаваемой пользователем разрядностью. В программе, представленной в табл. 4.48, обрабатывается несколько копий такого инвертора, каждый со своим числом сигнальных линий. 340 Глава 4. Принципы проектирования комбннацнонньвс логических схем Табл.
4.47. ЧНО(.-объект и его архитектура для шинного инвертора с произ- вольной разрядностью 11Ьтету 1ЕЕЕ; иве 1ЕЕЕ.в»4 1о81с 1164.а11; еп»1»у Ьивтпч Тв Бепет1с (710ТН: ров1»1че); рот» ( Х: 1а БТВ 10010 7ЕСТОК (710ТН-1 аочп»о О); у: ои» ЯТР ЫС1С„ЧИСТОК (ИТВТН"1 г(овп»о О) ); еаа Ьив1пч: етсЬт»ес»иге Ьив1ач атсЬ ог Ьив1пч 1в сошропеа» 1И7 рот» (1: 1а БТР РОСТС; О: ои» БТВ РОСХС); епа сошроаеи»; Ье81а 81: Тот Ь Хп 710-1 г)очп»о 0 Беаетаге 01: 1ИЧ рот» шар (Х(Ь), 7(Ь)); еаг( Напета»е; епа Ьив1пч атсЬ; Табл. 4.48. НН0(.-объект и его архитектура, в которой используется шинный инвертор с произвольной разрядностью 11Ьтвту 1ЕЕЕ; иве 1ЕЕЕ.в»6 1оБХс 1164.а11; еа»1»у Ьивапч ехашр1е 1в рот» ( 1И8: Ха БТВ 00010 7ЕСТОК (7 ггова»о О); ООТ8: ои» БТВ 1001С ЧЕСТОК (7 г(оча»о 0); 1И16: 1а БТВ РОС1С ЧЕСТОК (1Б ггояа»о 0); ООТ16: ои» БТВ РОСТС ЧЕСТОК (1Б г)ова»о 0); 1И32: 1а ЯТВ РОС10 ЧЕСТОК (31 аочп»о О); ООТ32: ои» БТВ ЬОСТС 7ЕСТОК (31 г(оча»о 0) ); еЫ Ьив1пч ехашр1е; атсЬХ»ес»иге Ьивапч ех атсЬ о1 Ьив1ач ехашр1е 1в сошроаеп» Ьив1ач Бепет1с (ИТРТН: ров1»1че); Рот» ( Х: Ха БТР РОС1С ЧЕСТОК (710ТН-1 доча»о 0); У: ои» БТВ 0001С УЕСТОК (ИТРТН-1 оояа»о 0) )' епгг сошропеп»; ЬеБ1п 01: Ьив»пч Еепет1с шаР (М10ТН=>8) Рот» шар (1И8, ООТ8); 02: Ьив»пч Беаетас шар (И1РТН=>16) рот» шар (1И16, ООТ16); 03: Ьив1пч Беаетас шар (Ы10ТН >32) рот» шар (1И32, ООТ32); еаа Ьиваач ех атсЬ; 4.т.
язык описания схем ЧНЮЬ 341 4Л.7. Элементы потокового проектирования Если бы операторы согьропепг были единственными параллельными операторами языка ЧНТЗЬ, то он лишь немногим отличался бы от простого иерархического языка описания соединений со строгим соблюдением типов. Несколько дополнительных параллельных операторов языка ЧН1зЬ позволяют описывать схему в терминах потока данных и выполняемых схемой операций над этими данными.
Такой подход носит название потокового описания (!!а!а)(озз аехсирйол) или потокового проектирования (зЫа()ои з(ез1ял). В потоковых проектах используются два дополнительных параллельных оператора; они приведены в табл. 4.49. Чаще всего используется первый из них; он называется параллельным сигнальным операторам присваивания (сопсиггеп! з!арпа!-азз!интел! лагетеп!). Его можно прочесть так: «Сигнал с именем х(ела!- пате принимает значение выражения ехргехх1олл. Поскольку в языке ЧНВЬ необходимо строго соблюдать типы, тип выражения ехргезз)оп должен быть совместим с типом сигнала з(яла1-пате.
В общем случае это означает, что типы должны быть либо тождественно одинаковыми, либо тип ехргехз1ол должен являться подтипом типа з)яла1-лате. В случае массивов, тип элементов и длина должны быть согласованными, однако множество значений и направление изменения индекса могут не совпадать. Табл. 4.49. Синтаксис параллельных сигнальных операторов присваивания в языке ЧНОЬ з1)!ла1-пате < ехргехпоп; х(япа1-пате < гхргехиоп и)зеп Ьоо!еаг!-ехргехх!ол е1ев ехргехз!оп идеп Ьоо1еал-ехргеззюп е1ве ехргеххюп икал Ьоа1еал-ехргезз!оп е1яе ехргехзюп; В табл. 4 50 представлена архитектура объекта для устройства, обнаруживающего простые числа (см.