Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003), страница 34
Описание файла
DJVU-файл из архива "Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003)", который расположен в категории "". Всё это находится в предмете "микропроцессорные системы (мпс)" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "микропроцессорные системы" в общих файлах.
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 34 - страница
Такое описание позволяет создать один или более файловых объектов заданного типа. При описании объекта файлового типа после слова 1в может следовать не только имя типа, но и непосредственное описание этого типа. Например: Ше Ш11 1в в11е ов 1пведвв Сехп.с]ае; В результате будет создан логический файл а1111, связанный с физическим файлом сехс.с]ас. После ключевого слова орет может быть указан режим открытия файла: хаас] толе (открыт для чтения), вхасе тес]е (открыт для записи), аррепа тес]е (открыт для продолжения записи, для присоединения). Эти значения включены во встроенный тип 111е ореп хъпс]. В стандорте ~НОВ 87 формат описания файла другой и имеет следующий синтаксис: в11е Ыепсагьех: впЬсуре 1пс]ъсасаоп 1в [1п[опв] впв1пд ехрхевваоп; Режим чтения определяется по умолчанию.
базовые конструкции моделей на языке МНГ)1 Работа с Файлами При открытии файла работа с ним выполняется последовательно, начиная с первого элемента. Ч(ление из файла. По прочтении очередного элемента указатель позиции автоматически перемещается на следующий элемент. Чтение выполняется с помощью процедуры геей. Для определения окончания файла используется фуНКцИя епй111е.
Если файл описан следующим образом: гуре 111е суре 1в х11в ог е1епепс хурез рхооезаоге геей (х11е гз 111е хурез ззе1иез опе е1епепс суре) еппог1оп епй111е (Шв 1з 111е Суре) гегззгп Ъоо1ееп) то возможен, например, фрагмент, приведенный в листинге 3.4б гуре 1оай.
Ше Суре 1в х11в ох ззохйз 111е 1оай 111ез Хоай Ше Суре орел хеай пзойе 1в 'ХЫйах чпг1еЫв аЫопйз ыохйз чаг1еЫе 1пйехз 1пгерег зпйехз=о; пЫ1е поп епй111е (1оас). Ше) 1оор хеай (1оай Ше, аЬ1оай)з впй 1оор; Элементы файла могут иметь не строго определенную длину: Фуре Ых чесхох Ше 1в г11е ое Ыс чесхохз Для таких файлов процедура чтения определена следующим образом: рхоовйпгв хеай (г11в ез 111е туре; ча1пез опг е1езпепх Хурез 1епосиз опе пвепгв1) з Например, чтение из файла может осуществляться так, как показано в лис- тинге 3.47. Лретйтнзт В:47.':,:",„,';;:-- '';-- .::-:,"; =-,;"::::-",:::-:::: 111е чеспогпз ЫС чессох 111е ореп хеай пзойе 1в 'чеспог.йеп'; чаг1еЫв пехт чесхогз ЫЕ чеогог (63 йовппо О); чаг1вЫе асеиа1 1епз пвгззгв1з хевй(чесхохп, пехх честог, астпе1 1еп)з Юб Глава 3 Такое описание позволяет читать из файла векторы длиной до 64 элементов.
Если действительная длина очередного вектора в файле не больше 64, то читаемый вектор будет размещен в левой части пехс чесссс, в противном случае в этой переменной будут размещены первые 64 элемента вектора, а остальные утеряны. После выполнения процедуры чтения переменная ассса1 1ел будет содержать фактическую длину читаемого вектора. Зались в файл. Если файл открыт в режиме для записи (ег1се пюре), то запись в него осуществляется с помощью процедуры етдее(й11е г: е11е суре, ча1ие: де е1етепе суре~; Если непустой файл открывается в режиме нгьсе посте, то он автоматически очищается от содержащейся в нем информации.
Если необходимо выполнить дозапись в файл, не теряя имеющююся в нем информацию, то его необходимо открыть в режиме еррепа ьоне. В этом случае процедура 1ее будет добавлять данные в конец файла. Соответствие между физическими и логическими файлами С одним физическим файлом одновременно должно быть связано не более одного логического файла. Если один физический файл связан с несколькими логическими, то при моделировании могут возникнуть непредсказуемые ситуации. Необходимо проявлять особенную внимательность, если данное типа файл описано в архитектурном теле объекта моделирования, который может неоднократно включаться в качестве компонента (экземпляров компонента) в некоторый другой объект моделирования.
В этом случае лля каждого из блоков, использующего одно и то же данное типа файл, будет порожден свой логический файл. Все эти логические файлы будут связаны с одним и тем же физическим. Для исключения таких ситуаций возможно два подхода (3~: О если все экземпляры такого объекта должны выполнять запись в один и тот же файл, то этот файл необходимо описать в пакете. В этом случае обращения от различных экземпляров объекта к этому файлу будут автоматически скоординированы средой проектирования, т. е, во всех экземплярах объекта будет происходить обращение к одному логическому файлу; П если каждый экземпляр объекта с таким архитектурным телом должен работать с отдельным файлом, то имя физического файла не должно быть константой. базовые конструкции моделей на языке кНО!.
Видимость описаний и автоматическое открытие/закрытие файлов в модели файлы, при описании которых указывается режим их открытия (секция арке в описании файла), автоматически открываются и закрываются по следующим правилам: П если объект типа файл описывается в архитектурном теле объекта моделирования или в процессе, файл открывается при начале моделирования и закрывается в конце моделирования автоматически. Также автоматически открываются и закрываются файлы, описанные в пакетах; П если файл описывается в подпрограмме, он автоматически открывается при вызове этой подпрограммы и закрывается по окончании ее работы.
В подпрограммах файлы могут использоваться для определения значений констант. Например, может быть организована функция, которая читает из файла значения, передаваемые затем массиву констант как его начальные значения [31 Открытие и закрытие файлов без использования автоматических режимов Всли при описании логического файла не указывать режим его открытия, то он не будет автоматически открываться и закрываться во время моделирования. Для открытия файла используется процедура дьзе срее.
Например, обращение к процедуре может выглядеть так: Шв срем(чессоте и, "1са<25.чае",итгсе аккре); В этом случае логический файл засеете связывается с физическим файлом 1сац5. пас, открытие файла производится лля записи, на что указывает режим исьее пюсе. Использование этой процедуры предоставляет большую свободу програмчисту.
Можно определить, насколько успешно прошло открытие файла, просмотрев значение есасие'. П асасие ок — успешное открытие; П асаеие естес — этот файловый объект уже открыт и связан с другим физическим объектом; П папе ет ест — при чтении: файла с таким именем не существует; при записи или добавлении: файл с таким именем не существует и не может быть создан; П исае ет ссс — попытка открыть файл для записи, когда он открыт только для чтения. (ев Глава 3 Например, Хт Ше преп(частоте е, "1оас)5.с)ат",етые пес)е) =опатов от сЬев Взвв Использование такой конструкции позволяет проверить, успешно ли он открылся.
Для закрытия файла может быть использована процедура Шв о1ове (т11в й~ Шв туре) ) Использование комбинации таких процедур позволяет связывать один логический файл с различными физическими файлами в различные моменты времени [31. Файлы как параметры подпрограмм Файлы могут использоваться в качестве параметров подпрограмм. Описание формального параметра файлового типа имеет следуюший синтаксис: т11е Ыептьтьет (,...) впЬеуре ьпЖсатгоп; Например: туре ттапвтотп Ше 1в т11в от гва1; ргооеаигв теас) ттапвтоттп (т11в т: ттапвтотта 511е); Над объектом файлового типа внутри процедуры могут производиться вес вышеописанные действия.
Когда производится вызов процедуры, в нее, т качестве параметра, передается фактический объект файлового типа. Автоматическое открытие в начале работы процедуры и автоматическое закрытие в конце работы процедуры лля него не выполняется. В стандарте УНШ 87, в описании формального параметра файлового типа ПЕрЕд файЛОМ НЕ СтаВИтСя КЛЮЧЕВОЕ СЛОВО Е11в, ОН раССМатрИВаЕтоя КаК ПЕ- ременная файлового типа. Глава 4 Проектирование на ЧН01 3 этой главе будут рассмотрены особенности использования конструкций языка УНР1.
для моделирования поведения и синтеза. Использование конструкций ЧН0~ для моделирования Особенности использования временных задержек в операторе присваивания значения сигналу при поведенческом моделировании Рассмотрим некоторый объект, имееющий входной и выходной сигнал типа (агадег. Функцией этого объекта является задержка выходного сигнала по отношению к входному на 5 нс. Для моделирования объекта воспользуемся яеханизмом задержек в операторе присваивания значения сигналу. Модель иожет выглядеть следующим образом (листинг 4.1), ~й еп~аеу с)е1 ав рога (Ъпп: ап Ъпеедег) сии: опе апеедег); ва) епеаау с)е1; егсЬЫасаиге Ьеьаоаог ог с)е1 Ъв Ьадап Заосевв (Ъпп) Ьедап сии< = Ъпп аяаег 5 пв; епа ргосевв; епй агсьл.аасапге Ьеьачаог; Глава и Ьеддл елтт атспзсесготе Ьсеьаозокя В данном примере использование конструкции рассеяв не обязательнон Можно использовать параллельный оператор присваивания.
Пример функционирования модели приведен на рис. 4.1. Описанная в операторе присваивания задержка является (по умолчанию) задержкой инерционной. На состоянии выходного сигнала не сказываются входные импульсы, длительность которых (иными словами — длительность сохранения неизменным значения входного сигнала) меньше задержки, заданной в операторе.
Они отфильтровываются схемой. Здесь секция ахает 5 пв задает задержку в 5 нс., так что значения '4' и 'б', которые держатся нг входе 'лл меньше 5 нс., будут отфильтрованы. Выходной сигнал принимает значение 'О' через 5 нс. после начала моделирования. Значение нн на выходя появляется через 5 нс. после его появления на входе, однако значения '4' я 'б' с входа на выход не поступают. В терминах транзакций ситуацию можно описать следуюшим образом. Когда в момент модельного времени 5 происходит событие изменения состоянию зло, и входной сигнал принимает значение '4', то на момент времени 1О планируется транзакция присваивания выходному сигналу значения '4'.
Однако я момент времени 8 входной сигнал принимает значение 'б', в результате че1о планируется новая транзакция присваивания выходному сигналу значения 8 в момент времени 13. Между моментом модельного времени 5 и моментон времени 8 прошло меньше 5 нс. Появление новой транзакции приводит я уничтожению еше находяшейся в буфере, связанной с этим сигналом транзакции, запланированной на время 1О. Когда в момент времени 12 входною сигнал снова меняет свое значение, транзакцию, запланированную на время ! 3, постигает та же участь. Рис.
4.1. Временная диаграмма, соответствующая функционированию модели устройства с листинга 4Л При моделировании большинства устройств этот механизм отражает реальную ситуацию и оказывается довольно удобным. Однако иногда необходимо, чтобы на выходе наблюдалась реакция на входной сигнал независимо от его длительности. В таких случаях можно воспользоваться механизмов Екапвросе.