Разработка базовых компонентов цифровых устройств, реализуемых на базе ПЛИС FPGA фирмы Xilinx, с помощью генератора параметризированных модулей CORE Generator. Часть 4

№ 5’2007
Основным инструментом разработки мультиплексоров при использовании средств CORE Generator является параметризированный модуль Bit Multiplexer.

Создание мультиплексоров с помощью генератора параметризированных модулей CORE Generator

Все статьи цикла:

Основным инструментом разработки мультиплексоров при использовании средств CORE Generator является параметризированный модуль Bit Multiplexer. Этот модуль предназначен для формирования N-входовых мультиплексоров (N в 1), которые осуществляют передачу данных с одного из входов (номер которого определяется значением кода (состоянием сигналов) на входах выбора) на выход мультиплексора. Входы данных и выбора представлены в виде шин соответствующей разрядности. Все мультиплексоры, создаваемые с помощью параметризированного модуля Bit Multiplexer, рассчитаны на оптимальную реализацию в ПЛИС следующих семейств: Spartan-II; Spartan-IIE; Spartan-3; Spartan-3E; Virtex; Virtex-E; Virtex-II; Virtex-II PRO и Virtex-4.

Особенности данного модуля:

  • поддержка широкого диапазона разрядности входного сигнала (количества информационных входов) — от 2 до 256;
  • возможность формирования выходов различного типа (комбинационного и/или регистрового);
  • наличие в выходном регистре синхронных и асинхронных входов сброса и/или установки, а также входа разрешения синхронизации, включаемых в состав разрабатываемого мультиплексора по выбору пользователя;
  • инициализация начального состояния выходного регистра при включении питания;
  • применение технологии Xilinx Smart-IP, обеспечивающей наилучшую реализацию генерируемого мультиплексора в выбранном кристалле;
  • возможность генерации мультиплексоров в виде макросов с относительным размещением Relationally Placed Macro (RPM).

«Мастер» настройки параметров рассматриваемого ядра мультиплексора содержит две диалоговые панели, одна из которых является основной, а другая — дополнительной. В основной диалоговой панели, вид которой представлен на рис. 29, определяются значения ключевых параметров формируемого мультиплексора.

Основная диалоговая панель «мастера» настройки параметров ядра мультиплексора Bit Multiplexer (страница Parameters)
Рис. 29. Основная диалоговая панель «мастера» настройки параметров ядра мультиплексора Bit Multiplexer (страница Parameters)

Идентификатор для генерируемого вида мультиплексора задается в поле редактирования Component Name. Количество информационных входов в создаваемом мультиплексоре следует указать в поле редактирования Number of Inputs. По умолчанию в данном поле редактирования указано значение 2. Информация о допустимом диапазоне значений этого параметра приведена справа от поля редактирования Number of Inputs в виде строки Valid Range… После ввода значения, определяющего количество информационных входов мультиплексора, производится автоматическое вычисление разрядности шины выбора в соответствии с формулой К = Log2 (Number of Inputs). Если полученный результат вычислений не является целым числом, то он округляется в большую сторону до ближайшего целого значения.

Для выбора типа выходов в создаваемом мультиплексоре нужно воспользоваться группой кнопок с зависимой фиксацией Output Options (рис. 29). Если в формируемом мультиплексоре необходим только обычный (комбинационный) выход, то в нажатом состоянии должна быть зафиксирована кнопка Non Registered. Чтобы включить в состав генерируемого мультиплексора выходной регистр (точнее, выходной триггер), следует переключить в нажатое состояние кнопку Registered. В том случае, когда требуется сформировать мультиплексор с обычным и регистровым выходами, нужно установить в нажатое состояние кнопку Both. Если выбран вариант мультиплексора с использованием выходного регистра, то становится доступной клавиша Register Options… С помощью этой клавиши можно открыть дополнительную диалоговую панель «мастера» настройки параметров формируемого мультиплексора, назначение и структура которой рассматриваются далее.

Параметр Create RPM позволяет изменить форму представления создаваемого мультиплексора для последующей реализации. Если необходимо сгенерировать мультиплексор в виде макроса с относительным размещением, нужно установить одноименный индикатор, расположенный во встроенной панели Layout (рис. 9), в состояние «включено».

Дополнительная диалоговая панель «мастера» настройки параметров ядра мультиплексора Bit Multiplexer предназначена для выбора параметров выходного регистра (триггера). Вид этой панели представлен на рис. 30.

Дополнительная диалоговая панель «мастера» настройки параметров ядра мультиплексора Bit Multiplexer
Рис. 30. Дополнительная диалоговая панель «мастера» настройки параметров ядра мультиплексора Bit Multiplexer

Если в выходном регистре генерируемого мультиплексора необходимо задействовать вход разрешения синхронизации и определить его приоритет по отношению к входам синхронного сброса и установки, следует воспользоваться индикатором состояния и кнопками, которые расположены во встроенной панели Clock Enable (рис. 30). Для использования входа разрешения синхронизации нужно установить индикатор Clock Enable в состояние «включено». При этом если в выходном регистре также предусмотрены режимы синхронного сброса и/или установки, то следует определить соотношение приоритетов сигналов на входах разрешения синхронизации и сброса/установки с помощью группы кнопок с зависимой фиксацией CE Overrides. Когда в нажатом состоянии находится кнопка CE overrides Sync Control, сигнал на входе разрешения синхронизации будет иметь более высокий приоритет по сравнению с сигналами на входах синхронного сброса/установки. Для изменения соотношения приоритетов указанных сигналов на противоположное необходимо нажать кнопку Sync Controls override CE.

Чтобы предусмотреть в выходном регистре формируемого мультиплексора режимы и соответствующие входы асинхронного сброса и/или установки, нужно воспользоваться кнопками с зависимой фиксацией, расположенными во встроенной панели Asynchronous Settings (рис. 30). Активизация входов асинхронной установки или сброса в составе генерируемого описания мультиплексора осуществляется при переключении в нажатое состояние кнопки SET или Clear соответственно. Если в выходном регистре необходимо предусмотреть режимы и асинхронного сброса, и асинхронной установки, то следует зафиксировать в нажатом состоянии кнопку Set and Clear. При отсутствии входов асинхронного сброса и асинхронной установки (когда нажата кнопка None) можно определить начальное состояние выходного регистра при включении питания. Для этого нужно воспользоваться полем редактирования Power On Reset Value, которое становится доступным после нажатия кнопки None.

Чтобы задействовать в выходном регистре генерируемого мультиплексора режимы и соответствующие входы синхронного сброса и/или установки, следует использовать аналогичные кнопки с зависимой фиксацией, которые находятся во встроенной панели Synchronous Settings (рис. 30). При одновременном присутствии входов синхронного сброса и синхронной установки нужно с помощью группы кнопок с зависимой фиксацией SET/Clear Priority определить приоритеты соответствующих сигналов. Для назначения более высокого приоритета сигналу на входе синхронного сброса по сравнению с сигналом на входе синхронной установки необходимо переключить в нажатое состояние кнопку Clear overrides SET. При нажатии кнопки SET overrides Clear более высокий приоритет будет иметь сигнал на входе синхронной установки.

В рассматриваемом параметризированном модуле мультиплексора Bit Multiplexer используется следующая система условных обозначений интерфейсных портов:

  • M[N:0] — информационные входы;
  • S[К:0] — входы выбора;
  • CLK — вход тактового сигнала;
  • CE — вход сигнала разрешения синхронизации;
  • ACLR — вход сигнала асинхронного сброса;
  • ASET — вход сигнала асинхронной установки;
  • SCLR — вход сигнала синхронного сброса;
  • SSET — вход сигнала синхронной установки;
  • O — комбинационный выход;
  • Q — регистровый выход.

Из всех перечисленных выше идентификаторов в составе описания интерфейса сгенерированного мультиплексора и, соответственно, в его условном графическом образе будут присутствовать названия только тех входных и выходных портов, которые были указаны разработчиком в процессе определения его параметров. В качестве примера, демонстрирующего применение параметризированного модуля Bit Multiplexer, далее приводится VHDL-описание мультиплексора «32 в 1» с входом разрешения синхронизации, синхронным сбросом и синхронной установкой, комбинационным и регистровым выходами:

Декларация сформированного мультиплексора mux_32 в составе VHDL-описания проектируемого устройства выполняется следующим образом:

Для создания экземпляров мультиплексора вида mux_32 нужно использовать следующий оператор:

Формирование параллельных регистров с помощью генератора параметризированных модулей CORE Generator

Генератор параметризированных модулей CORE Generator позволяет формировать параллельные регистры с различной разрядностью, выполненные на основе триггеров с динамическим или потенциальным управлением (защелок). Для создания регистров на базе D-триггеров следует применять параметризированный модуль FD-based Parallel Register. Генерация параллельных регистров, построенных на основе триггеров-защелок, осуществляется с помощью параметризированного модуля LD-based Parallel Latch. Данные модули входят в состав группы базовых элементов цифровых устройств Basic Elements. Каждый из этих параметризированных модулей позволяет формировать соответствующие регистры для оптимальной реализации в ПЛИС широкого спектра семейств: Spartan-II; Spartan-IIE; Spartan-3; Spartan-3E; Spartan-3A; Virtex; QPRO Virtex Rad-Hard; QPRO Virtex Hi-Rel; Virtex-E; QPRO Virtex-E Military; Virtex-II; Virtex-II PRO и Virtex-4.

Ядра параллельных регистров FD-based Parallel Register и LD-based Parallel Latch обладают следующими функциональными возможностями. Это:

  • поддержка широкого диапазона разрядности генерируемых регистров (от 1 до 256);
  • возможность применения по выбору разработчика синхронных и асинхронных входов сброса и/или установки, входов инициализации, а также входа разрешения синхронизации;
  • выбор способа представления формируемых регистров, в том числе в виде макросов с относительным размещением RPM.

«Мастер» настройки параметров указанных ядер включает в себя одну основную диалоговую панель и одну дополнительную. Вид основной диалоговой панели для параметризированных модулей FD-based Parallel Register и LD-based Parallel Latch представлен на рис. 31 и 32 соответственно.

Основная диалоговая панель «мастера» настройки параметров ядра параллельного регистра FD-based Parallel Register
Рис. 31. Основная диалоговая панель «мастера» настройки параметров ядра параллельного регистра FD-based Parallel Register
Основная диалоговая панель «мастера» настройки параметров ядра параллельного регистра LD-based Parallel Register
Рис. 32. Основная диалоговая панель «мастера» настройки параметров ядра параллельного регистра LD-based Parallel Register

Основная диалоговая панель позволяет определить с помощью соответствующих полей редактирования название формируемого вида регистра Component Name и его разрядность Data Width. В этой же панели в виде индикатора состояния указывается значение параметра Create RPM, который определяет форму представления создаваемого регистра для последующей реализации. Состояние «включено» соответствует генерации создаваемого регистра в виде макроса с относительным размещением.

Дополнительная диалоговая панель «мастера» настройки параметров ядер FD-based Parallel Register и LD-based Parallel Latch предназначена для выбора режимов и соответствующих управляющих входов генерируемого регистра. Чтобы открыть эту панель, нужно воспользоваться кнопкой Register Options… или Latch Options…, расположенной на основной диалоговой панели «мастера» настройки (рис. 31, 32). Вид дополнительной панели аналогичен виду вспомогательной панели «мастера» настройки параметров ядра двоичного дешифратора, рассмотренного в первой части данной статьи (рис. 7, см. «КиТ» № 2 ‘2007, стр. 63). Выбор режимов и соответствующих входов сброса, установки или инициализации в создаваемом параллельном регистре осуществляется так же, как и в выходном регистре двоичного дешифратора.

В параметризированных модулях параллельных регистров FD-based Parallel Register и LD-based Parallel Latch приняты следующие условные обозначения интерфейсных портов:

  • D [N:0] — информационные входы регистра;
  • CLK — динамический вход тактового сигнала;
  • G — статический вход тактового сигнала;
  • CE — вход сигнала разрешения синхронизации;
  • GE — вход разрешения тактового сигнала;
  • ACLR — вход сигнала асинхронного сброса;
  • ASET — вход сигнала асинхронной установки;
  • SCLR — вход сигнала синхронного сброса;
  • SSET — вход сигнала синхронной установки;
  • AINIT — вход сигнала асинхронной инициализации;
  • SINIT— вход сигнала синхронной инициализации;
  • Q[N:0] — выходы регистра.

В качестве примера параллельного регистра, выполненного на базе D-триггеров, далее приводится описание 48-разрядного регистра fd_reg_48 с входами разрешения синхронизации, синхронного сброса и синхронной установки, который сгенерирован с помощью параметризированного модуля FD-based Parallel Register:

Чтобы использовать сформированный регистр fd_reg_48 в качестве компонента в составе VHDL-описания разрабатываемого устройства, необходимо поместить в раздел деклараций архитектурного тела следующие выражения:

Для создания конкретного экземпляра регистра fd_reg_48 нужно использовать оператор, который имеет следующий вид:

Применение параметризированного модуля LD-based Parallel Latch для формирования параллельных регистров, выполненных на основе триггеров-защелок, демонстрирует представленное далее описание 56-разрядного регистра ld_reg_56 с входами разрешения тактового сигнала, асинхронного сброса и асинхронной установки:

Для декларации компонента ld_reg_56 в составе описания проектируемого устройства необходимо поместить в соответствующий раздел архитектуры следующую конструкцию:

Создание экземпляров регистров вида ld_reg_56 в составе архитектуры разрабатываемого устройства осуществляется с помощью следующего оператора:

Подготовка описаний сдвиговых регистров с помощью генератора параметризированных модулей CORE Generator

В состав средств CORE Generator включены два параметризированных модуля, предназначенных для автоматической генерации сдвиговых регистров, которые имеют различную структуру, функциональные возможности и форму реализации в ПЛИС. Эти модули относятся к группе базовых элементов цифровых устройств Basic Elements. Для формирования обычных регистров сдвига, выполняемых на базе D-триггеров, следует использовать ядро FD-based Shift Register.

Отличия данного параметризированного модуля:

  • возможность формирования регистров с различным направлением сдвига данных, в том числе и двунаправленных (реверсивных);
  • поддержка широкого диапазона разрядности сдвигаемых данных (от 2 до 64);
  • возможность использования в формируемом регистре сдвига как последовательного, так и параллельных входов данных;
  • возможность формирования сдвиговых регистров не только с последовательным, но и параллельным выходом;
  • инициализация начального состояния формируемого регистра сдвига при включении питания;
  • возможность использования в создаваемом сдвиговом регистре синхронных и асинхронных входов сброса и/или установки, а также входа разрешения синхронизации;
  • применение технологии Xilinx Smart-IP, обеспечивающей наилучшую реализацию генерируемого регистра сдвига в выбранном кристалле ПЛИС;
  • возможность генерации сдвиговых регистров в виде макросов с относительным размещением RPM.

Выбор параметров формируемого регистра сдвига осуществляется с помощью соответствующего «мастера» настройки, в составе которого используются две диалоговые панели, одна из которых является основной, а другая — дополнительной. Вид страницы Parameters основной диалоговой панели представлен на рис. 33. Данная страница диалоговой панели позволяет определить название создаваемого типа сдвигового регистра, его разрядность, направление сдвига, состав информационных входов и выходов, а также способ заполнения регистра при выполнении операции сдвига.

Основная диалоговая панель «мастера» настройки параметров ядра сдвигового регистра FD-based Shift Register (страница Parameters)
Рис. 33. Основная диалоговая панель «мастера» настройки параметров ядра сдвигового регистра FD-based Shift Register (страница Parameters)

Идентификатор формируемого типа регистра сдвига и его разрядность указываются в полях редактирования Component Name и Register Width соответственно. Для определения направления сдвига данных в создаваемом регистре следует воспользоваться группой кнопок с зависимой фиксацией Operation (рис. 33). Если необходимо сформировать регистр, выполняющий сдвиг данных в направлении от младшего к старшему значащему разряду, то необходимо зафиксировать в нажатом состоянии кнопку LSB to MSB. Чтобы создать регистр, осуществляющий сдвиг записываемых данных в обратном направлении (от старшего значащего разряда к младшему), нужно переключить в нажатое состояние кнопку MSB to LSB. Для генерации двунаправленного сдвигового регистра следует установить в нажатое состояние кнопку Bidirectional. В этом случае в формируемом регистре автоматически добавляется дополнительный вход управления LSB_2_MSB, уровень сигнала на котором определяет направление сдвига данных. Наличие сигнала высокого логического уровня на этом входе соответствует сдвигу данных, выполняемому в сторону старшего значащего разряда. При поступлении на данный вход сигнала низкого логического уровня сдвиг данных будет осуществляться в противоположном направлении (в сторону младшего значащего разряда).

Выбор информационных входов в генерируемом регистре сдвига осуществляется с помощью двух индикаторов состояния, расположенных во встроенной панели Input Options (рис. 33). Чтобы задействовать в создаваемом сдвиговом регистре последовательный вход данных, нужно установить в состояние «включено» индикатор Serial Data Input. Для использования в формируемом регистре входов параллельной загрузки данных необходимо переключить в состояние «включено» индикатор Parallel Data Input. При этом кроме шины параллельной загрузки данных, разрядность которой совпадает с разрядностью генерируемого регистра, добавляется вход управления параллельной загрузкой. Высокий логический уровень сигнала на этом входе разрешает запись в регистр информации, представленной на входах параллельной загрузки данных. После установки активного уровня сигнала на входе разрешения параллельной записи соответствующая информация заносится в регистр по следующему фронту сигнала синхронизации.

Тип выходов, формируемых в создаваемом сдвиговом регистре, выбирается с помощью двух индикаторов состояния, представленных во встроенной панели Output Options (рис. 33). Для генерации регистра сдвига с последовательным выходом следует установить в состояние «включено» индикатор Serial Data Output. При необходимости использования параллельных выходов в генерируемом регистре нужно перевести в активное состояние индикатор Parallel Data Output.

Чтобы задействовать в формируемом регистре сдвига режимы и соответствующие входы синхронного и асинхронного сброса и/или установки, а также вход разрешения сигнала синхронизации, следует воспользоваться дополнительной диалоговой панелью «мастера» настройки рассматриваемого ядра. Эта панель открывается при нажатии кнопки Register Options…, которая также находится во встроенной панели Output Options. Структура дополнительной панели «мастера» настройки параметров ядра сдвигового регистра FD-based Shift Register аналогична структуре вспомогательной панели «мастера» настройки параметров ядра двоичного дешифратора (рис. 7). Выбор требуемых режимов и соответствующих входов управления в создаваемом сдвиговом регистре производится таким же образом, как и в выходном регистре двоичного дешифратора.

Группа кнопок с зависимой фиксацией Fill Data, расположенных в одноименной встроенной панели (рис. 33), предназначена для выбора источника данных, записываемых в освобождающийся при сдвиге разряд регистра. Число и состав доступных кнопок в этой группе зависит от наличия или отсутствия в формируемом сдвиговом регистре последовательного входа данных и выбранного направления сдвига. Если последовательный вход данных не задействован, то кнопки Fill with Zeros, Fill with Ones, Wrap from LSB и Wrap from MSB находятся в доступном состоянии. При этом если в нажатом состоянии зафиксирована кнопка Fill with Zeros, то в освобождающийся разряд регистра при выполнении сдвига данных записывается нулевое значение. Когда в нажатое состояние переключается кнопка Fill with Ones, в этот разряд регистра будет загружаться единичное значение. При установке в нажатое состояние кнопки Wrap from LSB освобождающийся разряд регистра будет заполняться значением, поступающим с выхода младшего значащего разряда этого регистра. При фиксации в нажатом состоянии кнопки Wrap from MSB в освобождающийся разряд регистра будет записываться значение, поступающее с выхода старшего значащего разряда. Кнопка Wrap Dynamic доступна только при отсутствии последовательного входа данных в генерируемом двунаправленном сдвиговом регистре. При переключении данной кнопки в нажатое состояние источник данных, записываемых в освобождающийся при сдвиге разряд, определяется уровнем сигнала на входе установки направления сдвига. Если сигнал на этом входе управления соответствует высокому логическому уровню, то в освобождающийся разряд регистра сдвига записывается значение младшего значащего разряда. Если на входе установки направления сдвига — низкий логический уровень сигнала, то в освобождающийся при сдвиге разряд заносится значение старшего значащего разряда этого регистра. При использовании в составе создаваемого регистра последовательного входа данных доступной является только кнопка Fill from Pin, которая автоматически устанавливается во включенное состояние. Тогда разряд регистра, освобождающийся при сдвиге данных, будет заполняться значением, которое поступает на последовательный вход.

Выбор формы представления создаваемого сдвигового регистра для последующей реализации осуществляется с помощью индикатора состояния Create RPM, расположенного во встроенной панели Layout (рис. 33), тем же способом, что и в рассмотренных ранее параметризированных модулях.

В VHDL-описаниях сдвиговых регистров, подготовленных с помощью параметризированного модуля FD-based Shift Register, применяется следующая система условных обозначений интерфейсных портов:

  • SDIN — последовательный вход данных;
  • D [N:0] — входы параллельной загрузки данных;
  • CLK — вход тактового сигнала;
  • CE — вход сигнала разрешения синхронизации;
  • P_LOAD — вход разрешения параллельной загрузки данных;
  • LSB_2_MSB — вход установки направления сдвига данных в регистре;
  • ACLR — вход сигнала асинхронного сброса;
  • ASET — вход сигнала асинхронной установки;
  • SCLR — вход сигнала синхронного сброса;
  • SSET — вход сигнала синхронной установки;
  • AINIT — вход сигнала асинхронной инициализации;
  • SINIT — вход сигнала синхронной инициализации;
  • SDOUT — последовательный выход регистра;
  • Q[N:0] — параллельные выходы регистра.

Примером сдвигового устройства, сформированного с помощью параметризированного модуля FD-based Shift Register, является 32-разрядный реверсивный регистр сдвига fd_sh_reg32. В составе данного сдвигового регистра используются последовательные и параллельные входы и выходы данных, входы разрешения сигнала синхронизации, синхронного сброса, синхронной установки и асинхронной инициализации содержимого. При включении напряжения питания в данный регистр автоматически записывается значение F0F0F0F0. Сгенерированное VHDL-описание регистра fd_sh_reg32 выглядит следующим образом:

При использовании сформированного регистра сдвига fd_sh_reg32 в качестве компонента необходимо для его декларации поместить в соответствующий раздел VHDL-описания проектируемого устройства следующую последовательность выражений:

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

Параметризированный модуль RAM-based Shift Register предназначен для генерации сдвиговых регистров, реализуемых на базе таблиц преобразования LUT конфигурируемых логических блоков CLB кристаллов семейств FPGA. При этом используемые таблицы преобразования конфигурируются в форме распределенного ОЗУ, построенного на основе регистров сдвига SRL16 или SRL32 (в зависимости от применяемого семейства ПЛИС). В отличие от рассмотренного ранее ядра сдвигового регистра FD-based Shift Register, параметризированный модуль RAM-based Shift Register позволяет создавать устройства, выполняющие операцию сдвига (задержки на определенное количество тактов) одновременно для нескольких последовательных потоков данных. Иными словами, создаваемые устройства осуществляют операции сдвига (задержки) многоразрядных данных, представленных в параллельном двоичном коде. Поэтому последовательные входы и выходы данных в таком устройстве представляют собой шины, количество разрядов в которых определяется разрядностью ячеек распределенной памяти, используемой для реализации регистров. При этом необходимо различать понятия разрядности (длины) сдвигового регистра, которая определяет величину задержки появления информации на выходах, и разрядности входных и выходных данных. По сути, регистры сдвига, генерируемые с помощью ядра RAMbased Shift Register, представляют собой запоминающие устройства, работающие по принципу «первый вошел — первый вышел» (FIFO — first-in, first-out).

Параметризированный модуль RAM-based Shift Register формирует высокоскоростные устройства сдвига данных, которые оптимальным образом реализуются в ПЛИС следующих семейств: Spartan-II, Spartan-IIE, Spartan-3, Automotive Spartan3, Spartan3E, Automotive Spartan3E, Spartan-3A, Virtex, QPro Virtex Rad-Hard, QPro Virtex Hi-Rel, Virtex-E, QPro VirtexE Military, Virtex-II, Virtex-II PRO, Virtex-4 и Virtex-5. Данное ядро обладает следующими отличиями. Это:

  • возможность формирования регистров сдвига с фиксированной или переменной длиной (задержкой поступающих данных);
  • поддержка широкого диапазона разрядности входной шины данных (от 1 до 256);
  • поддержка расширенного диапазона разрядности (длины) генерируемых регистров сдвига (от 1 до 1024 для регистров с переменной задержкой поступающих данных, от 1 до 1088 — для регистров с фиксированной задержкой);
  • возможность создания сдвиговых регистров с входом разрешения синхронизации;
  • инициализация начального состояния формируемых сдвиговых регистров при включении питания;
  • возможность применения в составе генерируемого сдвигового устройства выходного регистра, реализуемого на основе D-триггеров;
  • возможность использования в выходном регистре синхронных и асинхронных входов сброса и/или установки;
  • возможность выбора одного из двух критериев оптимизации генерируемых сдвиговых регистров: достижение максимального быстродействия или минимизация объема используемых ресурсов.

«Мастер» настройки параметров ядра RAMbased Shift Register включает в себя три диалоговые панели. Стартовая диалоговая панель, вид которой приведен на рис. 34, предназначена для выбора типа создаваемого сдвигового регистра, его разрядности, разрядности поступающих данных, критерия оптимизации и параметров тактирования.

Стартовая диалоговая панель «мастера» настройки параметров ядра сдвигового регистра RAM-based Shift Register, реализуемого на основе распределенной памяти ПЛИС
Рис. 34. Стартовая диалоговая панель «мастера» настройки параметров ядра сдвигового регистра RAM-based Shift Register, реализуемого на основе распределенной памяти ПЛИС

Выбор типа создаваемого регистра сдвига производится с помощью группы кнопок с зависимой фиксацией Register Type. Для генерации сдвигового регистра с фиксированной разрядностью (длиной) нужно установить в нажатое состояние кнопку Fixed Length. Чтобы сформировать регистр сдвига, в котором количество последовательно сдвигаемых разрядов (количество тактов задержки) может изменяться в процессе функционирования, следует переключить в нажатое состояние кнопку Variable-Length Lossless или Variable-Length Lossy. В этом случае в состав создаваемого сдвигового устройства добавляется входная адресная шина, количество разрядов которой соответствует максимальному значению задержки появления данных на выходах регистра (максимальной длине регистров). Совокупность значений сигналов, представленных на адресных входах, определяет длительность задержки (выраженной в количестве тактов) слова данных, поступающих на информационные входы сдвигового регистра. При нажатой кнопке Variable-Length Lossless на выходах формируемого регистра сдвига будет всегда представлена достоверная информация, в том числе и при изменении данных на адресных входах. Если в нажатом состоянии находится кнопка Variable-Length Lossy, то достоверность выходных данных при изменении сигналов на адресных входах не гарантируется.

Критерий оптимизации формируемого сдвигового устройства выбирается с помощью группы кнопок с зависимой фиксацией Optimization (рис. 34). При нажатой кнопке Resources генерируется описание сдвигового регистра с учетом минимизации используемых ресурсов ПЛИС. Чтобы сформировать регистр сдвига с максимальным быстродействием, нужно переключить в нажатое состояние кнопку Speed.

Для включения в состав сдвигового устройства выходного регистра, реализуемого на основе D-триггеров, следует установить в состояние «включено» индикатор Register Last Bit, расположенный во встроенной панели Clocking Options (рис. 34). При создании регистров сдвига с фиксированной разрядностью (задержкой), то есть при нажатой кнопке Fixed Length, данный индикатор автоматически переводится в активное состояние. Чтобы задействовать в формируемом регистре сдвига вход разрешения сигнала синхронизации, следует переключить в состояние «включено» индикатор CE, также находящийся во встроенной панели Clocking Options.

Разрядность создаваемого регистра сдвига и записываемых данных определяется с помощью полей редактирования, которые расположены во встроенной панели Dimensions (рис. 34). Значение разрядности входной и, соответственно, выходной шины данных указывается в поле редактирования Width. Разрядность (длина) генерируемого сдвигового регистра задается в поле редактирования Depth. Допустимые диапазоны значений данных параметров показываются справа от соответствующих полей редактирования и автоматически корректируются при изменении типа создаваемых регистров сдвига.

Информация о вносимой дополнительной задержке выходных данных автоматически отображается во встроенной панели Latency Information. Значение задержки выражается в количестве периодов тактового сигнала.

Вторая диалоговая панель «мастера» настройки параметров ядра сдвигового устройства RAM-based Shift Register, реализуемого на основе распределенной памяти ПЛИС, позволяет определить начальное состояние генерируемого регистра сдвига при включении напряжения питания. Вид этой диалоговой панели изображен на рис. 35.

Вторая диалоговая панель «мастера» настройки параметров ядра сдвигового регистра RAM-based Shift Register, реализуемого на основе распределенной памяти ПЛИС
Рис. 35. Вторая диалоговая панель «мастера» настройки параметров ядра сдвигового регистра RAM-based Shift Register, реализуемого на основе распределенной памяти ПЛИС

Данная диалоговая панель предоставляет разработчику два способа определения данных, которые будут автоматически загружены в сформированные регистры после завершения конфигурирования ПЛИС. С помощью поля редактирования Default Data, расположенного во встроенной панели Initialization Options (рис. 35), можно указать значение, которое записывается по умолчанию во все ячейки формируемого сдвигового устройства. Указываемое значение может быть представлено в двоичной или шестнадцатеричной форме. Формат представления данных (основание системы счисления), записываемых по умолчанию в ячейки создаваемого устройства сдвига, задается с помощью поля выбора Radix, которое также находится во встроенной панели Initialization Options. Выпадающий список значений этого параметра включает в себя два возможных варианта — 2 и 16, которые соответствуют указанным ранее форматам представления данных. Количество двоичных или шестнадцатеричных символов, указываемых в поле редактирования Default Data, должно соответствовать разрядности входной шины данных генерируемого устройства сдвига.

Кроме того, информацию, которая должна быть записана в устройство сдвига при его инициализации, может быть представлена в виде файла формата COE. Для этого нужно, прежде всего, установить в состояние «включено» индикатор Use COE File, который находится во встроенной панели COE File (рис. 35). После этого станет доступным поле редактирования Initialization File, которое расположено в этой же встроенной панели. Идентификатор требуемого файла COE, описывающего содержимое создаваемого сдвигового устройства, может быть непосредственно указан в этом поле редактирования с помощью клавиатуры или найден в стандартной панели диалога открытия файла, которая открывается при нажатии кнопки Browse, расположенной справа от поля редактирования Initialization File. Для быстрого просмотра содержимого выбранного файла предназначена кнопка Show, расположенная несколько правее кнопки Browse. Если указанный файл инициализации не полностью описывает содержимое генерируемого устройства сдвига, то все оставшиеся неинициализированными ячейки заполняются по умолчанию значением, заданным в поле редактирования Default Data.

Заключительная диалоговая панель «мастера» настройки параметров ядра сдвигового регистра RAM-based Shift Register, реализуемого на основе распределенной памяти ПЛИС, используется в том случае, если в состав создаваемого устройства сдвига включен выходной регистр. Вид этой диалоговой панели представлен на рис. 36.

Заключительная диалоговая панель «мастера» настройки параметров ядра сдвигового регистра RAM-based Shift Register, реализуемого на основе распределенной памяти ПЛИС
Рис. 36. Заключительная диалоговая панель «мастера» настройки параметров ядра сдвигового регистра RAM-based Shift Register, реализуемого на основе распределенной памяти ПЛИС

Чтобы задействовать в выходном регистре режимы и входы асинхронного сброса, асинхронной установки и инициализации, следует перевести в состояние «включено» соответственно индикаторы Clear, SET и Init, расположенные во встроенной панели Asynchronous Settings. Значение данных, записываемое в выходной регистр устройства сдвига при асинхронной инициализации, указывается в поле редактирования Asynchronous Init Value. При этом формат представления данных (основание системы счисления), указываемых в данном поле редактирования, задается с помощью поля выбора Radix, которое находится в этой же встроенной панели.

Для применения в выходном регистре режимов и входов синхронного сброса, синхронной установки и инициализации нужно воспользоваться аналогичными индикаторами состояния и полем редактирования Synchronous Init Value, которые расположены во встроенной панели Synchronous Settings (рис. 36). При одновременном использовании входов синхронного сброса и синхронной установки нужно с помощью группы кнопок с зависимой фиксацией SET/Clear Priority определить приоритеты соответствующих сигналов. Чтобы сигнал на входе синхронного сброса имел более высокий приоритет по сравнению с сигналом на входе синхронной установки, следует зафиксировать в нажатом состоянии кнопку Clear overrides SET. Для назначения обратного соотношения приоритетов указанных сигналов нужно переключить в нажатое состояние кнопку SET overrides Clear.

При одновременном применении входов разрешения сигнала синхронизации и синхронного сброса/установки в выходном регистре необходимо указать соотношение приоритетов сигналов на этих входах. Для этой цели предназначены две кнопки с зависимой фиксацией — CE Overrides Sync Controls и Sync Controls Overrides CE, которые находятся во встроенной панели CE/Sync Priority (рис. 36). При нажатой кнопке CE overrides Sync Control сигнал на входе разрешения синхронизации будет иметь более высокий приоритет по сравнению с сигналом на входе синхронного сброса или установки. Присвоение противоположного соотношения приоритетов данных сигналов осуществляется фиксацией в нажатом состоянии кнопки Sync Control overrides CE.

В описаниях сдвиговых устройств, создаваемых с помощью параметризированного модуля RAM-based Shift Register, применяется следующая система условных обозначений входных и выходных портов:

  • d[N:0] — входная шина данных;
  • a[M:0] — адресная шина;
  • clk — вход тактового сигнала;
  • ce — вход сигнала разрешения синхронизации;
  • aclr — вход сигнала асинхронного сброса;
  • asset — вход сигнала асинхронной установки;
  • sclr — вход сигнала синхронного сброса;
  • sset — вход сигнала синхронной установки;
  • ainit — вход сигнала асинхронной инициализации;
  • sinit — вход сигнала синхронной инициализации;
  • q [N:0] — выходная шина данных регистра.

Примером сдвигового регистра, сформированного на основе ядра RAM-based Shift Register, является 64-разрядное устройство сдвига 32-разрядных данных с изменяемой величиной задержки (сдвигаемых разрядов), VHDL-описание которого выглядит следующим образом:

В составе сгенерированного сдвигового устройства используется вход разрешения сигнала синхронизации, а также выходной регистр с входами синхронного сброса и синхронной установки, а также входом асинхронной инициализации. Для декларации данного регистра сдвига в VHDL-описании разрабатываемого устройства нужно использовать следующую конструкцию:

Конкретные экземпляры сгенерированного сдвигового регистра, используемые в составе проектируемого устройства, описываются с помощью оператора, который имеет следующий вид:

Продолжение следует

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *