Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 50
Текст из файла (страница 50)
Признаком последнего такта текущей Фазы данных является значение '0 сигнала твох в момент тактирования. Если в этот момент сигнал твох не равен нулю, значит, Фаза данных продолжается, не завершается на этом такте. Таким образом, в транзакции шины РС1, вслед за Фазой адреса, может быть несколько Фаз данных, каждая из которых может занимать несколько тактов. Соответственно, для их представления в программе процесса, ставим ! цикла; внешний цикл с!ась рьезев — по Фазам данных, внутренний цикп с1скз хв сасарьеве — по тактам шины РС! внутри Фазы ланных.
В синхронных шинах сигналы проверяются в моменты тактирования, а меняют свои значения — между моментами тактирования. Чтобы состояние ~ сигнала могло надежно определяться в момент тактирования, сигнал дол-, жен начать меняться раньше, и к моменту тактирования иметь установив-, шееся значение. Из диаграмм в документах на шину РС! мы видим, что, значения данных на шине А0 появляются в тот момент, когда сигнал тввх ! переходит в состояние 'О', как и на нашем рисунке (рис. 5.1).
Здесь мы нь ' ставим себе задачу уточнять или лоопределять временные диаграммы из локументов на РС1, а хотим их только строго воспроизвести моделью на языкс ЧН01.. Соответственно, в соответствии с этими диаграммами, будем фор- ~ мировать значение "данные" (обозначаем 'и') сигнала лп тогда, когда сигнал ' тяпх принимает значение 'О'. В случае если твпх=о, сигнал лп устанавливается в состояние и, держится ~ в этом состоянии до ближайшего момента тактирования плюс время выдержки сигнала данных (параметр настройки сасс!с ьоы) после него. Нз этом текущая фаза данных заканчивается. При формировании на шине А0 Фазы данных важно, является ли эта Фаза данных последней в транзакции.
В соответствии со стандартом РС1, сигнал ' вялив, который устанавливался в 'О' в начале транзакции, переводится в '!' ~ перед последней Фазой данных транзакции. Последняя Фаза данных вы- ' полняется при значении вялив= '1'. ПрактиКа применения ЧНШ 267 Поэтому, при тяпу=о, по ветке еьее нам приходится разделять фиксацию значения сигнала лп= и до ближайшего момента тактирования и выдержку значения сигнала после момента тактирования.
В момент тактирования (здесь он соответствует последнему такту текущей Фазы данных) вставляем проверку значения сигнала гялмк для определения, — является ли вся эта Фаза данных последней в транзакции. Вообще-то, сигнал вялив указывает на то, что эта Фаза данных будет последней в текущей транзакции, уже на ее первом такте. Однако в процессе гст лп, ддя формирования диаграммы сигнала хп, это неважно. По ветке едее, что соответствует тяптиО, в лп заносится 'х' (обозначает неопределенное значение сигнала), после чего ждем изменения сигнала тяпу, и, по циклу сгоска тп стаеарьаае, вновь переходим на проверку тапх. Закончив формирование сигнала и> для текущей Фазы данных, по циклу дава рьааее переходим к формированию следующей Фазы данных, если текущая фаза не была последней.
С завершением последней Фазы данных завершается транзакция, а в нашей программе на ЧНИ. завершается выполнение процесса всг дп. Вновь этот процесс будет запущен при начале новой транзакции. Процесс вст с вв, формирующий временную диаграмму шины стввв, во иногом написан аналогично процессу вст лп. В нашем примере мы намеренно писали эти процессы как независимые друг от друга.
Как видно из программы, мы могли бы и объединить их в один (читателю несложно будет сделать это самому, в качестве упражнения). Процесс всг твпх выдает сигнал тяпу, который оказывает управляющее воздействие на формирование временных диаграмм других сигналов, определяет длительность фаз данных и, таким образом, длительность транзакции. Запускается процесс вот тяпу также один раз на транзакцию. Запустившись, тут же приостанавливается в ожидании перехода сигнала ввдмв с Т на '0', отмечающего начало транзакции. При обнаружении на последнем такте очередной фазы данных, что вялив=г (означает, что это была последняя фаза данных транзакции), процесс устанавливает твпх в 'Г, выходит из цикла, и завершается. Запустившись вновь, процесс вст тяпу остановится, ожидая начала следующей транзакции. 8 нашем примере считаем, что инициатор обмена постоянно находится в состоянии готовности (как и представлено диаграммами на рис.
5.1). Несколько по-другому построены процессы рсг гвттх, вст пвттэвь. В отличие, например, от процесса Рсг лп, срабатывающего один раз за транзакцию, процесс рст гвпх срабатывает несколько раз. При изменении сигнала вялив, если зто был нисходящий фронт, процесс сначала приостанавливается до ближайшего момента такгирования и еше на некоторое время сзе1ау (настраиваемый гвв Глава 3 сж о РВАМЕ '1' — — -+-- АО Х' х: ж; о; хз О': Х А гя х а све х ОЕЧВЕЬ'1' шоу тПОУ 1 Фаза Адреса Фаза Фаза Дан 1 д хг Фаза Данных 3 Фаза Данных 4 Рис.
5.2. Пример результатов моделирования сигналов шины РС! при транзакции параметр модели), после чего переводит сигнал твоу в состояние 'О' и завершает текущее срабатывание. Если процесс рст твоу сработал при изменении сигнала газдчв с 'О' на 'Г, то он приостанавливается до того момента тактировзния, в котором сигнал тког='О', что соответствует последнему такту последней фазы данных; поскольку сигнал вплыл переведен из 'О' в 'Г.
Как мы определили при рассмотрении процесса рот Ао, признаком последнего такта последней Фазы данных текущей транзакции будет равенство 'О' сигнала тяпу в момент тактирования (после того, как сигнал вялив перешел из 'О' в 'Г). Операнды в операции деления должны быть одного типа. При преобразовании действительного числа к целому производится округление до ближайшего целого, поэтому в выражении результат деления будет, при преобразовании в засадах, округлен до ближайшего целого. Обратите внимание, что для определения момента тактирования, т. е.
момента ВОСХОдящЕГО фрОНта СИГНаЛОВ С1)с, Рядил, В ПрОГраММЕ ИСПОЛЬЗуЕтСя фуихцня х'вглд ес)де(...) ИЗ ПаКЕта аМ 1одгс згв4, а, НаПрИМЕр, НЕ КОНСтруКцня (с1х емеле ала с1)с= 1'). Это связано с тем, что данные сигналы декларированы нами как всс) ц1одьс и могут иметь не два, а девять состояний.
Так, конструкция (с1х емеле алс) с1)с= 1') окажется истинной и при переходе, например, с1)с из 'х' в 'Г, что не соответствует восходящему фронту сигнала. Для формирования временных диаграмм с желаемыми параметрами используем компонент-экземпляр зсу сеас в архитектурном описании севсг тестового обьекта севе. Настройку параметров, определяющих характеристики формирования временных диаграмм, задаем с помощью оператора отображения делехье заар настраиваемых параметров модели. Практика применения ) ГНОЕ На временных диаграммах (рис.
5.2) приведен пример результатов моделирования для чтения четырех слов в транзакции (времена доступа в память— 20 нс., 20 нс., 40 нс. и 20 нс., при последовательном обращении к первому, второму, третьему и четвертому слову). Моделирование на ЧН0~ обмена данными между устройствами по шине РС! В организации современных вычислительных систем — модульных, развинаемых, с открытой архитектурой„важное место занимают средства взаимодействия компонентов системы, средства обеспечения информационных потоков между ними, координации и управления их согласованным функционированием Решение этих проблем во многих ВС возлагается на основную системную магистраль.
Унификация и стандартизация системной магистрали является необходимой предпосылкой создания открытых систем, развития независимо разработанных функциональных блоков, плат, модулей, способных к комплексированию и взаимодействию в разных комбинациях для построения законченных вычислительных систем. Среди стандартизованных шин современных высокопроизводительных систем важное место занимает шина РС1, которая получила широкое распространение в вычислительных системах различных классов — от персональных ЭВМ до рабочих станций, высокопроизводительных серверов, компьютеров промышленного применения и встраиваемых микропроцессорных систем. Шина РС1 является локальной, процессорно-независимой, предназначенной лля организации взаимодействия процессорных модулей и контроллеров в рамках одной платы.
Структура модели Промоделируем процесс обмена данными между несколькими ведущими устройствами и памятью по шине, с поддержанием упрощенного протокола шины РС1 [21!. В рассматриваемой модели не обеспечивается возможность блокировки фрагмента памяти, ведомое устройство не может запросить остановку текущего цикла обмена; не поддерживаются прерывания и обращения в пространство конфигурации. Пусть моделируемая система имеет структуру, представленную на рис. 5.3. В этой модели два ведущих устройства независимо друг от друга выполняют простые действия, связанные с чтением и записью в память.
Друг с другом абоненты — ведушие устройства — не взаимодействуют. Существует несколько способов описания такой модели на УН01.. Каждому из устройств, входящих в ее состав, может сопоставляться один или несколько процессов, или же устройство может быть описано как блок. Наиболее Глава 5 гго простой способ, с точки зрения написания и отладки, — реализовать эту модель в виде системы с двухуровневой иерархией.
На нижнем уровне иерархии каждое из устройств на шине реализуется в виде самостоятельного объекта, г на верхнем — они входят в состав модели в качестве компонентов. Модель написана для О)САО 7.0. Рис. В.З. Структура моделируемой системы Модель ведущего устройства Рассмотрим объект аавгег — ведущее устройство в цикле обмена по шине ) РСЕ Оба объекта типа славгег в модели имеют сходную структуру.
Объекты ) организованы как конечные автоматы, функционирование которых описывается следуюшимобразом: ведущее устройство прочитывает одно слово и) памяти, обрабатывает данные и записывает одно слово в память. Таким образом, устройство последовательно обрабатывет некоторый массив ячеек памяти. Если шина оказывается занятой в момент обращения к ней, то ве- ' дущее устройство ожидает ее освобождения.