Потоковые операции подчиненного устройства


Пример 17. Операция чтения с латентностью для подчиненного устройства



страница2/2
Дата29.05.2018
Размер0,63 Mb.
1   2

Пример 17. Операция чтения с латентностью для подчиненного устройства


Этот пример демонстрирует соответствующие PTF параметры:

Латентность - два цикла шины

Время ожидания - управляемое внешним периферийным устройством

States:


Read_Latency = "2"

Read_Wait_States = "peripheral_controlled"





Описание временных соотношений сигналов

(A) Модуль шины Авалон инициализирует операцию чтения, представляя chipselect, read_n и address для стадии адреса новой операции.

(B) Подчиненный порт устанавливает waitrequest, так что предыдущий цикл шины становится циклом ожидания.

Модуль шины Авалон удерживает сигналы chipselect, read_n и address постоянными.

(C) waitrequest не установлен, так что модуль шины Авалон фиксирует readdata на переднем фронте синхрочастоты. Стадия адреса заканчивается и здесь начинается стадия данных.

(D) Первый цикл латентности (времени ожидания) заканчивает на этом переднем фронте синхрочастоты.

(E) Второй цикл латентности (времени ожидания) заканчивает на этом переднем фронте синхрочастоты. Подчиненный порт выдает достоверные данные на readdata, и здесь операция заканчиваются. Этот фронт clk также будет началом новой операции чтения.

(F) Модуль шины Авалон устанавливает address, read_n и chipselect для следующей операции чтения.

(G) Модуль шины Авалон начинает другую операцию чтения в течение следующего цикла шина, перед тем как возвратятся данные от предыдущей операции.

(H) Модуль шины Авалон фиксирует readdata после двух циклов латентности (ожидания)



  1. Модуль шины Авалон фиксирует readdata после двух циклов латентности (ожидания)



Операция чтения с латентностью для мастера.

Внешнее устройство - мастер, которое использует однобитовый входной сигнал datavalid, по определению работает с латентностью (с временем ожидания). Внешнее устройство – мастер, работающий с латентными подчиненными устройствами, способен к инициализации новой операции чтения прежде, чем он получит достоверные данные от предыдущей операции. Учтите, что мастер шины Авалон, не работающий с латентными подчиненными устройствами, закончит операцию чтения только тогда, когда он зафиксирует данные от модуля шины Авалон. Поэтому мастер шины Авалон, не работающий с латентными подчиненными устройствами, может обрабатывать только одну операцию одновременно. Мастер шины Авалон, работающий с латентными подчиненными устройствами, может иметь произвольное число операций чтения, ожидаемых в любое время.

Об операции чтения, выполняемой мастером, работающим с латентными подчиненными устройствами, можно думать о как двух различных стадиях: стадии адреса и стадии латентности (времени ожидания). Аналогично, о логике, которая управляет портом мастера, можно думать как о двух полуавтономных портах:

Порт адреса(адресная часть порта мастера), который инициализирует операцию, и порт данных, который фиксирует результаты предыдущих операций.

Синхронизация и последовательность сигналов в течение стадии адреса идентичны таковым для не латентных операций шины Авалон, кроме сигнала readdata. Порт адреса мастера должен представить address, read_n и, в случае необходимости, be_n, и должен удерживать эти сигналы постоянными до тех пор, пока установлен сигнал запроса ожидания - waitrequest. Стадия адреса заканчивается на первом переднем фронте синхрочастоты, сигнал запроса ожидания будет сброшен. Учтите, что для не латентных операций чтения, достоверные readdata всегда доступны на предыдущем переднем фронте синхрочастоты. Для операций с латентностью, отличной от нуля, readdata не обязательно будут возвращены в течение стадии адреса. Однако, данные могут возвратиться сразу после стадии адреса. Немедленно после того, как стадия адреса завершается, адресная часть порта мастера может инициализировать другое чтение или операцию записи. Даже, в то время как адресная часть порта мастера – находится в активном состоянии выдачи адреса, порт данных мастера может фиксировать достоверные данные от текущей операции или предыдущей операции, или находиться в состоянии ожидания модуля шины Авалон, который должен представить достоверные данные. Модуль шины Авалон устанавливает datavalid, когда он представляет достоверные readdata. Достоверные данные представленные на readdata должны находиться в требуемом порядке first-in-first-out (FIFO). Порт данных мастера должен фиксировать readdata на переднем фронте синхрочастоты, когда сигнал datavalid установлен. Это - единственное время, когда гарантируется что сигнал readdata, будет установлен. Поэтому, если может возникать состояние, в котором мастер не может немедленно обрабатывать приход readdata, то внешнее устройство мастера должно быть разработано с FIFO связанным с портом ввода readdata, чтобы гарантировать, что данные от модуля шины Авалон не будут потеряны.

Число циклов синхрочастоты времени ожидания для порта мастер не установлено. Поэтому, порт данных мастер должен быть разработан так, чтобы принять произвольное число циклов времени ожидания, независимо от установленного времени ожидания любых целевых подчиненных портов. Это включает возможность циклов с нулевым временем ожидания. Обратите внимание на то, что модуль шины Авалон может предоставлять циклы времени ожидания вне тех циклов, которые требуются подчиненному порту, работающему с латентностью. Например, дополнительное время латентности (ожидания) может быть представлено, когда к внешнему устройству необходимо обращаются через трехстабильный мост Авалон. Трехстабильный мост содержит внутренние регистры, которые добавляют латентность(время ожидания), но при этом улучшается максимальная частота работы системы - fMax и упрощается подключение к устройствам, расположенным вне кристалла.

Мастер, работающий с латентными подчиненными устройствами, может обращаться к не латентному подчиненному порту без любых специальных доработок проекта. С точки зрения порта мастера, в этом случае латентность - ноль. Readdata будут представлены немедленно на переднем фронте синхрочастоты, что будет окончанием стадии адреса, и что происходит точно так же, как стандартная операция шины Авалон. Нет никаких специальных требований для проекта при одновременной работе нескольких мастеров (режим мультимастера). В случае, когда несколько мастеров сосуществует в системе и производят операции чтения к латентным и/или не латентным подчиненным портам, модуль шины Авалон, исполняет арбитраж, и гарантирует, что каждый мастер получает свои требуемые данные. Это включает случай, когда порт мастера может выдавать адрес к одному подчиненному порту, и при этом фиксировать readdata от другого подчиненного порта.

Могут быть случаи, в которых внешнее устройство - мастер решит, что ему не требуются данные от операции, которая уже началась. В таком случае, порт мастера может использовать сигнал flush, чтобы отменить любые операции чтения, находящиеся в состоянии ожидания. Например, порт мастера, работающий с латентными подчиненными устройствами, производящий выборки команд для CPU может выдать несколько операций чтения, чтобы осуществлять предвыборку инструкций команд, которые затем помещаются в конвейер команд, но, если должна выполниться команда ветвления, то все выбирающиеся инструкции команды будут несоответствующими. Порт данных мастера может устанавливать сигнал flush на переднем фронте синхрочастоты, чтобы сбросить все операции, находящиеся в состоянии ожидания. Данные на шине datavalid будут сброшены до тех пор, пока данные следующей операции чтения не будут готовы на readdata. Модуль шины Авалон может фиксировать новое значение на шине address в то же самое время, когда установлен сигнал flush. Данные, соответствующие этому адресу становятся следующими достоверными данными, которые возвратяться на readdata.



В примере 18 показана передача данных с латентностью между модулем шины Авалон портом мастера, работающим с латентными подчиненными устройствами. В этом примере сигналы waitrequest и datavalid установлены в произвольное время, независимо от синхронизации, а порт мастера должен ответить соответственно, и на waitrequest и datavalid. В этом примере, вторая от конца операция производит сброс ожидающей операции, используя сигнал flush, но учтите, что нежелательные данные могли появиться на readdata, если по некоторым причинам время ожидания для этой операции было короче, чем время появления сигнала flush.

Пример 18. Операция чтения с латентностью для мастера




Описание временных соотношений сигналов

(A) Мастер инициализирует операцию чтения, представляя address и readdata для стадии адреса новой операции.

(B) Модуль шины Авалон установил waitrequest, так что порт мастера ждет и удерживает address и read_n постоянными для следующего цикла шина.

(C) waitrequest сброшен, так что модуль шины Авалон фиксирует address по переднему фронту синхрочастоты. Сигнал datavalid не установлен, так что мастер не фиксирует readdata.

(D) Модуль шины Авалон фиксирует новый address по переднему фронту синхрочастоты. Сигнал datavalid сброшен, так что мастер не фиксирует readdata.

(E) Модуль шины Авалон фиксирует новый address по переднему фронту синхрочастоты (в общем количестве выполнив три пустые операции). Сигнал datavalid сброшен, так что мастер не фиксирует readdata.

(F) Сигнал datavalid установлен, так что мастер фиксирует достоверные readdata.

(G) Сигнал datavalid сброшен, так что мастер не фиксирует readdata.

(H) Сигнал datavalid установлен, так что мастер фиксирует достоверные readdata.

(I) Мастер выставляет сигналы address и read_n для новой операции чтения.

(J) Сигнал datavalid сброшен, так что мастер не фиксирует readdata, сигнал flush установлен, так что модуль шины Авалон сбрасывает ожидающую операцию. Модуль шины Авалон фиксирует новый address.


  1. Сигнал datavalid установлен, так что мастер фиксирует достоверные readdata.

Большее нет операций, ожидающих выполнения.

Сигналы Управления шины Авалон.

Модуль шины Авалон имеет сигналы управления системного уровня, которые непосредственно не могут быть связаны с функциональными возможностями индивидуальных передач данных.



Сигнал запроса прерывания.

Большинство систем микропроцессора требует генерации сигналов прерывания и логики, устанавливающей приоритет обслуживания. Системный модуль осуществляет эти функции как для внешних устройств, так и для процессоров, связанных с модулем шины Авалон.

Каждый подчиненный порт может использовать свой выходной сигнал irq, который устанавливается всякий раз, когда внешнему устройству необходимо генерировать прерывание. Спецификация Шины Авалон не определяет, когда и почему сигнал irq может быть установлен. Сигнала irq – асинхронный, по отношению к любой операции шины, и может быть установлен в любое время. В наиболее часто встречающихся случаях, подчиненное устройство должно установить irq и сохранять установленное значение этого сигнала тех пор, пока порт мастера явно не сбросит этот запрос на прерывание. Приоритет прерывания назначен на каждый подчиненный порт, который использует irq. Приоритеты irq для каждого подчиненного порта определены в системе PTF файла.

Чтобы обработать запросы на прерывание, порты мастера могут использовать два входных сигнала: irq и irqnumber. Сигналы выходов от всех подчиненных портов - Irq, взяты все вместе по «ИЛИ» в системном модуле, и направлены к порту мастера, так, что когда любой подчиненный порт генерирует прерывание, сигнал irq на порте(ах) мастера будет установлен. Логика внутри модуля шины Авалон представляет закодированное значение IRQ (от 0 до 63) с самым высоким приоритетом на 6-ти битный порт irqnumber. Если несколько мастеров используют irq и сигналы irqnumber, то каждый мастер получает те же самые значения на irq и irqnumber. Спецификация Шины Авалон не определяет, когда или как внешнее устройство(а) мастера в системном модуле должно ответить на сигнал irq. В наиболее часто встречаемых случаях, мастер должен отреагировать на IRQ и, затем, «вручную» сбросить IRQ в том подчиненном устройстве, которое его выставляло.



Логика управления сигналом сброса.

Системный модуль имеет отдельный входной порт сброса, который может использовать пользовательская логика, внешняя к системному модулю. Это вход позволяет производить сброс системного модуля и любых внешних устройств, которые он содержит. Этот глобальный сигнал сброса объединен с другой логикой сброса внутри системного модуля, и, затем, распределен по всем внешним устройствам Авалон, которые могут использовать сигнал типа reset. Каждое внешнее устройство Авалон может интерпретировать (или игнорировать) reset, в зависимости от требований проекта периферийных устройств.

Внутри системного модуля, есть три условия, которые могут заставлять установить сигнал reset:

1. PLD был переконфигурирован, и сразу после того, как PLD завершает конфигурацию, модуль шины Авалон обнаруживает это состояние, и устанавливает сигнал reset на всех внешних устройствах Авалон на один, по крайней мере, цикл синхрочастоты. Для модуля шины Авалон, полезно обрабатывать этот случай автоматически. После того, как PLD завершает процесс конфигурации, PLD находится в состоянии сброса. Однако, это не гарантирует, что все внешние устройства Авалон находятся в их состояниях, определенных по сбросу.

2. Глобальный ввод сброса на системном модуле был установлен.

3. Порт подчиненного устройства Авалон установил свой сигнал resetrequest (определенный ниже).

Вообще, внешние устройства, которые исполняют операции, охватывающие многократные циклы синхрочастоты, должны встать в четкое состояние сброса всякий раз, когда reset установлен. Сигнала reset – асинхронный и не имеет никаких отношений к какой либо операции шины, и может быть установлен в любое время.

Подчиненные порты могут использовать сигнал resetrequest, чтобы заставить системный модуль произвести полный сброс. Сигнал resetrequest полезен для функций подобных сторожевым таймерам, которые могут произвести сброс всей система, в том случае, если их не обслужат в пределах гарантируемого периода времени. Почему и когда внешнее устройство должно установить сигнал resetrequest, в Спецификации Шины Авалон не определено. Обратите внимание, что resetrequest - не сигнал запроса подобно irq, который может обслужиться в более позднее время. resetrequest заставляет модуль шины Авалон немедленно устанавливать сигнал reset на всех внешних устройствах Авалон, которые используют сигнал reset, и не позволяет другим внешним устройствам Авалон заканчивать операции, находящиеся в состоянии ожидания, перед подтверждением сброса.



Сигнал начала операции.

Входной сигнал порта подчиненного устройства - begintransfer предлагает простой для понимания индикатор того, что была инициализирована новая операция подчиненного устройства Авалон. Внешние устройства Авалон, по определению, соблюдают Спецификацию Шины Авалон, и должны выдавать и принимать сигналы шины Авалон в соответствующей последовательности. Это может быть трудно для логики, не связанной непосредственно с интерфейсом Авалон (включая собственный мозг проектировщика) чтобы точно определить, когда начинается операция подчиненного устройства Авалон, потому что адрес, сигнал разрешения чтения, сигнал разрешения записи, и сигналы chipselect не обязательно меняются в начале каждой операции. Модуль шины Авалон устанавливает сигнал begintransfer в течение первого цикла шина каждой операции подчиненного устройства Авалон. Использование этого сигнала зависит от периферии. Сигнал begintransfer может быть полезным для отладки и расшифровки временных диаграмм при моделировании операций Авалон. Сигнал begintransfer может также упростить проект менее интеллектуальных периферийных устройств, которые выполняют операций типа «сброс при чтении», «установка значения при записи», или других операций, и которые не требуют, чтобы их логика исполняла все аспекты операций Авалон.
Каталог: pub -> binary -> altera -> nios tut -> Avalon
pub -> Учебно-методический комплекс «Современный терроризм: сущность, причины, модели и механизмы противодействия»
pub -> Обзор портовой инфраструктуры Каспийского моря и порта Оля
pub -> О состоянии и мерах по созданию основной экспозиции в музее икн по истории возникновения и развития города Зеленодольска и района
pub -> 9. примерный перечень вопросов, входящих в экзаменационные билеты государственного экзамен
pub -> Михаил смирнов
pub -> Конституционно-правовой статус республики южная осетия и вариативные модели его развития
Avalon -> Краткий обзор Термины и Концепции Цикл шины Передача данных по шине Передача данных потоком по шине
Avalon -> Операции мастера Авалон


Поделитесь с Вашими друзьями:
1   2


База данных защищена авторским правом ©grazit.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал