Пример 6. Основная операция записи подчиненного устройства

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

Отдельная операция записи в синхронное внешнее устройство

Нет предустановленных циклов ожидания Write_Wait_States = "0"

Нет предустановки Setup_Time = "0"

Нет времени хранения Hold_Time = "0"

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

(A) Операция записи начинается на переднем фронте clk.

(B) Все выводы address, writedata, be_n и сигналы write_n от модуля шины Авалон, формируемые на регистрах – достоверны

(B)  Модуль шины Авалон декодирует адрес и устанавливает достоверный chipselect

подчиненному.

(D)  Модуль шины Авалон фиксирует writedata, address, write_n, be_n и chipselect на

переднем фронте clk, и операция заканчивается. Другое чтение или операция записи

могут следовать на следующем шина цикле.

Основная операция записи применяется только к соответствующим синхронным внешним устройствам, среди которых много внешних устройств, расположенных на кристалле, таких как PIO и таймеры, для процессора Nios™. Синхронизация для основной операции записи не соответствует требованиям, необходимым для асинхронных внешних устройств, потому что все выходные сигналы, включая write_n и chipselect сбрасываются в одно и то же время. Это может вызвать условие гонки фронтов, что вызовет ошибки в работе, например, в асинхронной памяти, расположенной вне кристалла. Для такой памяти, модуль шины Авалон обеспечивает несколько параметров времени хранения, которые будут обсуждены в последующих разделах.

НЕ нашли? Не то? Что вы ищете?

Сигналы разрешение байта - be_n могут быть связаны с подчиненным портом внешнего устройства, и могут использоваться, чтобы записать определенный байт данных, когда шина writedata более широкая, чем один байт. Шина сигналов разрешение байта be_n - с одним битом для каждого байта в байте данных шины writedata. Сигнал be_n обычно необходим для операций записи в подчиненные устройства, находящеся вне кристалла, или в устройства памяти на 32 бита или на 16 битов, которые являются словно-адресуемыми. При записи отдельного байта данных, адрес определяет только соответствующее слово или адрес слова половинной разрядности, в то время как сигнал be_n точно определяет который байт необходимо записать. В табл.3 приведены примеры использования сигнала be_n для варианта когда подчиненный порт - это внешняя 32-х битная память.

Таблица 3. Использование сигнала Разрешение Байта

be_n[3:0]

Действия при записи

0000

Запись полного 32-х битного слова

1100

Запись младших 2-х байт слова

0011

Запись старших 2-х байт слова

1110

Запись только одного байта – 0-ого

1011

Запись только одного байта – 2-ого

Когда сигнал chipselect – не установлен в активное состояние, то все подчиненные сигналы на входах порта должны игнорироваться. Когда подчиненный порт не выбран, то его выходы могут управляться или оставаться неопределенными. Обратите внимание, что сигнал chipselect от модуля шины Авалон может быть комбинаторный, и, поэтому, могут происходить сбои, вызванные переходными процессами на порте адреса. Кроме того, фронт перехода сигнала chipselect от низкого уровня к высокому, или фронт перехода сигнала write_n от высокого к низкому, не может использоваться как пусковой механизм для операции начала записи, потому что не гарантируется что такой фронт будет чистым. Если это не учтено, то подчиненный порт может интерпретировать ошибочные состояния как операции записи в неопределенные адреса.

Основная операция записи в подчиненное устройство с предустановленными циклами ожидания

Порты, используемые для операции записи с предустановленными циклами ожидания идентичны, тем, которые использубтся для основной операции записи. Единственное различие состоит в синхронизации сигналов. Например, модуль шины Авалон, с одним предустановленным циклом ожидания, ждет один дополнительный цикл синхрочастоты, прежде чем сигналы адреса, данных и сигналы управления будут переведены в неактивное состояние. Циклы ожидания определены в соответствии с назначениями, сделанными в файле PTF. Они будут установлены, потому что модуль шины Авалон вставляет для каждой операции шины, то же самое число циклов ожидания, которое ему задано в файле PTF. Обычно операции записи с циклами ожидания используются для внешних устройств, которые не могут фиксировать данные от модуля шины Авалон в единственном цикле шины. В этом режиме работы, модуль шины Авалон выставляет address, writedata, be_n, write_n и chipselect в течение первого шина цикла, подобно началу основной операции записи. В течение циклов ожидания, эти сигналы держится постоянными. Наконец, подчиненный фиксирует данные от модуля шины Авалон в пределах установленного номера циклов ожидания. Тогда операция заканчивается, и модуль шины Авалон сбрасывает все сигналы в одно то же время. В примере 7 показана операция записи в подчиненное устройство с одним установленным циклом ожидания.

Пример 7. Операция записи в подчиненное устройство с одним установленным циклом ожидания.

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

Операция записи с циклами ожидания к синхронному подчиненному внешнему устройству

Один предустановленный цикл ожидания Write_Wait_States = "1"

Нет предустановки Setup_Time = "0"

Нет времени хранения Hold_Time = "0"

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

(A)  Операция записи начинается на переднем фронт clk.

(B)  Все выводы address, writedata, be_n и сигналы write_n от модуля шины Авалон, формируемые на регистрах – достоверны.

(C) Модуль шины Авалон декодирует адрес и устанавливает достоверный chipselect подчиненному.

(D) Один (и только) цикл ожидания заканчивается на переднем фронте clk. Все сигналы от модуля шины Авалон остаются постоянными.

(E) Периферийное устройство принимает данных writedata, address, be_n, write_n и chipselect на переднем фронте или перед передним фронтом clk, и операции записи заканчивается.

Основная операция записи в подчиненное устройство с циклами ожидания, управляемыми внешним устройством

Управляемые внешним устройством циклы ожидания позволяют целевому внешнему устройству останавливать модуль шины Авалон на столько циклов шины, сколько ему требуется, чтобы принять данные с шины writedata. Эта особенно полезно для внешних устройств, которые могут требовать неопределенного числа циклов шины, чтобы принять пишущиеся данные, в зависимости от состояний, которые изменяются от операции, к операции.

Управляемый внешним устройством режим циклов ожидания, использует сигнал запроса ожидания, который является выходом от подчиненного порта. Модуль шины Авалон представляет адрес, writedata, be_n, write_n и chipselect в течение первого шина цикла, подобно началу основной операции записи. Если подчиненный порт нуждается в дополнительном времени, чтобы фиксировать данные, то он должен установить запрос ожидания перед следующим передним фронтом синхрочастоты. Когда запрос ожидания будет установлен, он останавливает модуль шины Авалон, и вынуждает постоянно удерживать адрес, writedata, be_n, write_n и chipselect. После того как подчиненный сбросит запрос ожидания, операция шины заканчивается на следующем переднем фронте синхрочастоты.

Модуль шины Авалон не имеет встроенной блокировки времени, чтобы ограничить то, как долго подчиненное внешнее устройство может останавливать шину. Когда модуль шины Авалон остановлен, где-нибудь в Системном Модуле есть внешнее устройство мастер, которое также остановлено, и оно ждет когда подчиненный порт примет пишущиеся данные. Подчиненное внешнее устройство может постоянно «завешивать» внешнее устройство мастер. Поэтому, разработчик периферии должен гарантировать, что подчиненный порт не будет устанавливать запрос ожидания неопределенно долго.

Пример 8. Основная операция записи в подчиненное устройство с циклами ожидания, управляемыми внешним устройством.

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

Операция записи в синхронное внешнее устройство

Больше, чем один управляемый внешним устройством цикл ожидания Write_Wait_States = "peripheral_controlled"

Нет предустановки Setup_Time = "0"

Нет времени хранения Hold_Time = "0"

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

(A) Первый цикл шины начинается на переднем фронте clk.

(C)  Все выводы address, writedata, be_n и сигналы write_n от модуля шины Авалон, формируемые на регистрах – достоверны.

(D)  Модуль шины Авалон декодирует адрес, затем устанавливает chipselect.

(D) Внешнее устройство устанавливает запрос ожидания - waitrequest перед следующим передним фронтом clk.

(E) Модуль шины Авалон производит выборку запроса ожидания на переднем фронте clk. Если запрос ожидания установлен, то следующий цикл шины становится циклом ожидания, и сигналы address, writedata, be_n, write_n и chipselect остаются постоянным.

(F-G) Поскольку во всех этих циклах установлен запрос ожидания, то проходит произвольное, неограниченное число циклов шины.

(H) Наконец, подчиненный порт фиксирует writedata.

(I) Подчиненный порт сбрасывает запрос ожидания.

(J) Операция записи заканчивается на следующем переднем фронте clk. Следующий цикл шины мог бы быть началом другой операции шины.

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

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

Основная операция записи в подчиненное устройство с предустановкой и временем хранения.

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

Установка и время хранения вообще используются для внешних устройств, находящихся вне кристалла, которым требуется чтобы сигналы address, be_n, writedata, и chipselect оставались устойчивыми в течении некоторого времени прежде и/или после импульса write_n. Время предустановки отличное от нуля и равное М означает, что, после того, как сигналы address, be_n, writedata и сигналы chipselect подчиненному внешнему устройству будут установлены, то произойдет задержка на М циклов шины прежде, чем сигнал write_n будет установлен. Аналогично, время хранения отличное от нуля N означает, что после того как сигнал write_n будет сброшен, сигналы address, be_n, writedata и chipselect останутся постоянными в течение N или большего количества циклов шины. Обратите внимание, что сигнал chipselect не меняет свою форму при задании времени хранения или предустановки. Если внешнее устройство требует времени предустановки, или времени хранения и для write_n и для chipselect, то проектировщик должен вручную добавить соответствующую логику (один И вентиль) к интерфейсу. Общее количество циклов шины, требуемых для того, чтобы завершить операцию зависит от предустановки, циклов ожидания и циклов хранения. Например, внешнее устройство с Setup_Time = "2" и Write_Wait_States = "3" и Hold_Time = "2" будет требовать 8 циклов шины, чтобы завершить операцию:

¦ 2 цикла шины для предустановки плюс;

¦ 3 цикла шины цикла для ожидания;

¦ 2 цикла шины для хранения;

¦ 1 цикл шины, чтобы фиксировать данные.

Подчиненный порт не должен одновременно использовать и предустановку и время хранения. Выгоднее использовать операции только с предустановкой или только с временем хранения. В примере 9 показана операция записи и с предустановкой и с временем хранения.

Пример 9. Основная операция записи в подчиненное устройство с предустановкой и временем хранения.

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

Операция записи к синхронному внешнему устройству

Нет предустановленных циклов ожидания Write_Wait_States = "0"

1 цикл шины времени установки Setup_Time = "1"

1 цикл шины времени хранения Hold_Time = "1"

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

(A) Первый цикл шины начинается на переднем фронте clk.

(B) Все выводы address, writedata, be_n и сигналы write_n от модуля шины Авалон, формируемые на регистрах – достоверны. Сигнал write_n остается не установленным.

(C) Модуль шины Авалон декодирует адрес, затем устанавливает chipselect.

(D) Передний фронт из clk отмечает конец цикла предустановки.

(E) Модуль шины Авалон устанавливает write_n.

(F) Модуль шины Авалон deasserts write_n после следующего переднего фронта clk, сигналы address, be_n, writedata и chipselect остается постоянным, поскольку начинается один цикл хранения.

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

Когда для подчиненного порта на шине Авалон, циклы предустановки и/или времени хранения определены, следующие ограничения применяются к другим режимам операции шины. . Эти ограничения применяются только для данного подчиненного порта, но не для других внешних устройств, связанных с модулем шины Авалон.

Если время предустановки определено для подчиненного внешнего устройства, то то же самое время предустановки применяется, и в операциях чтения и в операциях записи. Предустановка и время хранения не могут использоваться, если подчиненный порт использует управляемые внешним устройством циклы ожидания.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5