Подписка на новости

Опрос

Нужны ли комментарии к статьям? Комментировали бы вы?

Реклама

 

2011 №7

Разработка VHDL-описаний цифровых устройств, проектируемых на основе ПЛИС фирмы Xilinx, с использованием шаблонов САПР ISE Design Suite. Часть 18

Зотов Валерий


Продолжение. Начало в № 2`2010

Восемнадцатая часть статьи продолжает ознакомление с шаблонами VHDLописаний элементов, выполненных на основе экземпляров библиотечных примитивов, которые предназначены для непосредственной реализации на базе соответствующих аппаратных ресурсов кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT [22–32].

Post-configuration CRC error detection (POST_CRC_INTERNAL) содержит образец описания элемента, предназначенного для организации проверки конфигурационной последовательности после завершения процесса ее загрузки в кристалл программируемой логики семейств Spartan-6 LX и Spartan-6 LXT при помощи циклического избыточного кода (Cyclic Redundancy Checking, CRC):

-- POST_CRC_INTERNAL : In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the body of the design code. The instance name
-- declaration : (POST_CRC_INTERNAL_inst) and/or the port declarations after the
-- code : “=>” declaration maybe changed to properly reference and
-- : connect this function to the design. All inputs and outputs
-- : must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
--POST_CRC_INTERNAL: Post-configuration CRC error detection
--Spartan-6
--Xilinx HDL Language Template, version 12.4
--
POST_CRC_INTERNAL_inst : POST_CRC_INTERNAL
port map (
CRCERROR => CRCERROR -- 1-bit output Post-configuration CRC error output
);
-- End of POST_CRC_INTERNAL_inst instantiation

Основой приведенного шаблона является экземпляр библиотечного примитива POST_CRC_INTERNAL, который предоставляет доступ к результату проверки циклического избыточного кода конфигурационной последовательности, загруженной в ПЛИС серии Spartan-6, после выполнения операции обратного чтения конфигурационных данных. Система условных обозначений, используемых в описании интерфейса элемента, формируемого с помощью шаблона Post-configuration CRC error detection (POST_CRC_INTERNAL), включает в себя единственный идентификатор выходного порта CRCERROR. Логический уровень сигнала на этом выходе информирует о достоверности конфигурационных данных после завершения их загрузки в кристалл указанной серии. При совпадении значения циклического избыточного кода конфигурационного потока данных, считанного из ПЛИС, с аналогичным параметром исходной конфигурационной последовательности сигнал на выходе CRCERROR принимает значение низкого логического уровня. В случае обнаружения ошибки в считанной конфигурационной последовательности сигнал на указанном выходе переключается в состояние высокого логического уровня.

Условный графический образ элемента, описание которого создается на основе шаблона Post-configuration CRC error detection (POST_CRC_INTERNAL) для последующего применения в проектах, реализуемых на базе кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, изображен на рис. 237.

Графический образ компонента на основе примитива POST_CRC_INTERNAL

Рис. 237. Условный графический образ компонента, создаваемого на основе примитива POST_CRC_INTERNAL

STARTUP Block (STARTUP_SPARTAN6) включает в себя шаблон описания компонента, предоставляющего возможность управления глобальными цепями сброса/установки и переключения выходов ПЛИС серии Spartan-6 в состояние высокого импеданса, а также выбора тактового сигнала, используемого при активизации логических ресурсов в процессе конфигурирования кристалла (на фазе Start-Up) [24]. Основу этого шаблона образует оператор создания экземпляра библиотечного примитива STARTUP_SPARTAN6:

-- STARTUP_SPARTAN6 : In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the body of the design code. The instance name
-- declaration : (STARTUP_SPARTAN6_inst) and/or the port declarations after the
-- code : “=>” declaration maybe changed to properly reference and
-- : connect this function to the design. All inputs and outputs
-- : must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- STARTUP_SPARTAN6: STARTUP Block
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
--
STARTUP_SPARTAN6_inst : STARTUP_SPARTAN6
port map (
CFGCLK => CFGCLK, -- 1-bit output Configuration logic main clock output.
CFGMCLK => CFGMCLK, -- 1-bit output Configuration internal oscillator clock output.
EOS => EOS, -- 1-bit output Active high output signal indicates the End Of Configuration.
CLK => CLK, -- 1-bit input User startup-clock input
GSR => GSR, -- 1-bit input Global Set/Reset input (GSR cannot be used for the port name)
GTS => GTS, -- 1-bit input Global 3-state input (GTS cannot be used for the port name)
KEYCLEARB => KEYCLEARB -- 1-bit input Clear AES Decrypter Key input from Battery-Backed RAM (BBRAM)
);
-- End of STARTUP_SPARTAN6_inst instantiation

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

  • CFGCLK — выход сигнала синхронизации для процесса загрузки битовой последовательности в кристалл программируемой логики серии Spartan-6, соответствующего выбранному режиму конфигурирования ПЛИС;
  • CFGMCLK — выход тактового сигнала с частотой приблизительно 50 МГц, формируемого внутренним генератором;
  • EOS — выход сигнала End Of Configuration, информирующего о завершении фазы Start-Up процесса конфигурирования ПЛИС;
  • CLK — вход сигнала синхронизации, используемого при активизации логических ресурсов в процессе конфигурирования кристалла программируемой логики (на фазе Start-Up);
  • GSR — вход глобального сигнала сброса/установки триггеров в ПЛИС семейств Spartan-6 LX и Spartan-6 LXT;
  • GTS — вход глобального сигнала управления состоянием выходов кристалла программируемой логики серии Spartan-6;
  • KEYCLEARB — вход сигнала очистки памяти Battery-Backed RAM (BBRAM), используемой для хранения ключа шифрования конфигурационных данных AES Decrypter Key кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT.

На рис. 238 показан условный графический образ компонента, формируемого с помощью шаблона STARTUP Block (STARTUP_SPARTAN6), который применяется для управления глобальными цепями сброса/установки и переключения выходов в состояние высокого импеданса, а также для выбора тактового сигнала при активизации логических ресурсов ПЛИС серии Spartan-6.

Графический образ компонента, формируемого с помощью шаблона STARTUP Block

Рис. 238. Условный графический образ компонента, формируемого с помощью шаблона STARTUP Block (STARTUP_SPARTAN6)

SelectMap Configuration Simulation Model (SIM_CONFIG_S6) предоставляет образец VHDL-описания компонента, предназначенного для моделирования параллельного конфигурационного интерфейса SelectMap в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT:

-- SIM_CONFIG_S6 : In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the architecture body of the design code. The
-- declaration : (SIM_CONFIG_S6_inst) and/or the port declarations
-- code : after the “=>” assignment maybe changed to properly
-- : reference and connect this function to the design.
-- : All inputs and outputs must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- SIM_CONFIG_S6: Behavioral Simulation-only Model of FPGA SelectMap Configuration
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
--
SIM_CONFIG_S6_inst : SIM_CONFIG_S6
generic map (
DEVICE_ID => X“00000000”) -- Specifies the Pre-programmed Device ID value
port map (
BUSY => BUSY, -- 1-bit output Busy pin
CSOB => CSOB, -- 1-bit output chip select pin
DONE => DONE, -- 1-bit bi-directional Done pine
CCLK => CCLK, -- 1-bit input configuration clock
D => D, -- 8-bit bi-directional configuration data
INITB =>INITB, -- 1-bit bi-directional INIT status pin
M => M, -- 3-bit input Mode pins
PROGB => PROGB, -- 1-bit input Program pin
RDWRB => RDWRB, -- 1-bit input Read/Write pin
CSIB => CSIB -- 1-bit input chip select pin
);
-- End of SIM_CONFIG_S6_inst instantiation

Основу приведенного шаблона образует экземпляр библиотечного примитива SIM_CONFIG_S6, в котором используется единственный параметр настройки DEVICE_ID. Этому параметру присваивается значение идентификационного кода используемой ПЛИС серии Spartan-6. Значение настраиваемого параметра DEVICE_ID задается в форме 8-разрядного шестнадцатеричного числа.

В систему условных обозначений, используемых в описании интерфейса компонента, формируемого с помощью шаблона SelectMap Configuration Simulation Model (SIM_CONFIG_S6), входят следующие идентификаторы входных и выходных портов:

  • BUSY — выход одноименного сигнала, используемого в процессе обратного чтения конфигурационных данных из кристалла программируемой логики семейств Spartan-6 LX и Spartan-6 LXT;
  • CSOB — выход сигнала Chip Select параллельной daisy-цепочки ПЛИС серии Spartan-6;
  • DONE — вход/выход одноименного сигнала, информирующего о состоянии процесса конфигурирования кристалла программируемой логики;
  • CCLK — вход тактового сигнала конфигурационного интерфейса;
  • D — двунаправленная 8-разрядная шина конфигурационных данных;
  • INITB — вход/выход одноименного сигнала конфигурационного интерфейса;
  • M — входная 2-разрядная шина, комбинация значений сигналов которой определяет режим конфигурирования кристалла программируемой логики;
  • PROGB — вход сигнала Program конфигурационного интерфейса;
  • RDWRB — вход сигнала выбора режима записи или чтения конфигурационных данных (направления передачи по шине D);
  • CSIB — вход сигнала Chip Select (сигнала разрешения шины данных конфигурационного интерфейса SelectMap).

Условный графический образ компонента, для подготовки описания которого применяется шаблон SelectMap Configuration Simulation Model (SIM_CONFIG_S6), изображен на рис. 239.

Графический образ компонента на основе примитива SIM_CONFIG_S6

Рис. 239. Условный графический образ компонента, формируемого на основе примитива SIM_CONFIG_S6

Serial Configuration Simulation Model (SIM_CONFIG_S6_SERIAL) является шаблоном VHDL-описания компонента, предназначенного для моделирования последовательного конфигурационного интерфейса в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT:

-- SIM_CONFIG_S6_SERIAL : In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the architecture body of the design code. The
-- declaration : (SIM_CONFIG_S6_SERIAL_inst) and/or the port declarations
-- code : after the “=>” assignment maybe changed to properly
-- : reference and connect this function to the design.
-- : All inputs and outputs must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- SIM_CONFIG_S6_SERIAL: Behavioral Simulation-only Model of FPGA Serial Configuration
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
--
SIM_CONFIG_S6_SERIAL_inst : SIM_CONFIG_S6_SERIAL
generic map (
DEVICE_ID => X”00000000”) -- Specifies the Pre-programmed Device ID value
port map (
DONE => DONE, -- 1-bit bi-directional Done pine
CCLK => CCLK, -- 1-bit input configuration clock
DIN => DIN, -- 1-bit input configuration data
INITB =>INITB, -- 1-bit bi-directional INIT status pin
M => M, -- 3-bit input Mode pins
PROGB => PROGB, -- 1-bit input Program pin
DOUT => DOUT 1-bit output configuration data
);
-- End of SIM_CONFIG_S6_SERIAL_inst instantiation

В качестве основы рассматриваемого шаблона используется экземпляр библиотечного примитива SIM_CONFIG_S6_SERIAL, в котором применяется тот же настраиваемый параметр DEVICE_ID, что и в предыдущем шаблоне. Большинство идентификаторов, входящих в состав системы условных обозначений интерфейсных портов указанного библиотечного примитива, имеет то же предназначение, что и в шаблоне SelectMap Configuration Simulation Model (SIM_CONFIG_S6), рассмотренном выше. Кроме того, в шаблоне Serial Configuration Simulation Model (SIM_CONFIG_S6_SERIAL) используются следующие условные обозначения входного и выходного портов конфигурационных данных:

  • DIN — последовательный вход конфигурационных данных;
  • DOUT — последовательный выход конфигурационных данных.

Условный графический образ компонента, формируемого на основе экземпляра библиотечного примитива SIM_CONFIG_S6_SERIAL для последующего применения в процессе моделирования проектируемых устройств, реализуемых на базе ПЛИС серии Spartan-6, представлен на рис. 240.

Графический образ компонента на основе примитива SIM_CONFIG_S6_SERIAL

Рис. 240. Условный графический образ компонента, формируемого на основе примитива SIM_CONFIG_S6_SERIAL

Suspend Mode Access (SUSPEND_SYNC) содержит образец описания компонента, предоставляющего доступ к приостановленному (ждущему) режиму (Suspend Mode) функционирования кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT [33]. Для подготовки описания этого компонента используется оператор создания экземпляра библиотечного примитива SUSPEND_SYNC, который образует основу рассматриваемого шаблона:

-- SUSPEND_SYNC : In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the body of the design code. The instance name
-- declaration : (SUSPEND_SYNC_inst) and/or the port declarations after the
-- code : “=>” declaration maybe changed to properly reference and
-- : connect this function to the design. All inputs and outputs
-- : must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- SUSPEND_SYNC: Suspend Mode Access
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
--
SUSPEND_SYNC_inst : SUSPEND_SYNC
port map (
SREQ => SREQ, -- 1-bit output Suspend request output
CLK => CLK, -- 1-bit input User clock input
SACK => SACK -- 1-bit input SUSPEND acknowledgement output
);
-- End of SUSPEND_SYNC_inst instantiation

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

  • SREQ — выход сигнала запроса переключения ПЛИС в приостановленный режим Suspend Mode;
  • CLK — вход сигнала синхронизации;
  • SACK — вход сигнала подтверждения запроса переключения кристалла в приостановленный режим Suspend Mode.

На рис. 241 приведен условный графический образ компонента, формируемого на основе шаблона Suspend Mode Access (SUSPEND_SYNC) для последующего применения в составе проектов, реализуемых на базе ПЛИС серии Spartan-6.

Графический образ компонента с помощью Suspend Mode Access

Рис. 241. Условный графический образ компонента, формируемого с помощью шаблона Suspend Mode Access (SUSPEND_SYNC)

Differential Buffer with Differential Output (IBUFDS_DIFF_OUT) включает в себя шаблон VHDL-описания входного буферного элемента с дифференциальными входами и выходами, используемого в составе устройств, разрабатываемых на основе кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, для подключения внешних сигналов, представленных в соответствии с одним из поддерживаемых дифференциальных стандартов ввода/вывода. В качестве основы этого шаблона используется оператор создания экземпляра библиотечного примитива IBUFDS_DIFF_OUT, представляющего соответствующий вариант конфигурирования входных буферных элементов, входящих в состав ресурсов ввода/вывода ПЛИС серии Spartan-6 [25]:

--IBUFDS_DIFF_OUT: In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the architecture body of the design code. The
-- declaration : instance name (IBUFDS_DIFF_OUT_inst) and/or the port declarations
-- code : after the “=>” assignment maybe changed to properly
-- : reference and connect this function to the design.
-- : All inputs and outputs must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- IBUFDS_DIFF_OUT: Differential Input Buffer with Differential Output
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
--
IBUFDS_DIFF_OUT_inst : IBUFDS_DIFF_OUT
generic map (
DIFF_TERM => FALSE, -- Differential Termination
IOSTANDARD => “DEFAULT”) -- Specify the input I/O standard
port map (
O => O, -- Buffer diff_p output
OB => OB, -- Buffer diff_n output
I => I, -- Diff_p buffer input (connect directly to top-level port)
IB => IB -- Diff_n buffer input (connect directly to top-level port)
);
-- End of IBUFDS_DIFF_OUT_inst instantiation

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

  • DIFF_TERM — управляет использованием внутренних согласующих элементов;
  • IOSTANDARD — определяет применяемый дифференциальный стандарт ввода/вывода.

В описании интерфейса буферных элементов, создаваемых с помощью шаблона Differential Buffer with Differential Output (IBUFDS_DIFF_OUT), используется следующая система условных обозначений входных и выходных портов:

  • O — прямой выход дифференциальной пары сигналов;
  • OB — инверсный выход дифференциальной пары сигналов;
  • I — прямой вход дифференциальной пары сигналов;
  • IB — инверсный вход дифференциальной пары сигналов.

Условный графический образ входного буферного элемента с дифференциальными входами и выходами, для подготовки описания которого используется шаблон Differential Buffer with Differential Output (IBUFDS_DIFF_OUT), показан на рис. 242.

Графический образ входного буферного элемента

Рис. 242. Условный графический образ входного буферного элемента с дифференциальными входами и выходами

Differential Global Clock Buffer with Differential Output (IBUFGDS_DIFF_OUT) представляет собой образец описания входного глобального буферного элемента с дифференциальными входами и выходами, который применяется для подключения внешних сигналов синхронизации, представленных в соответствии с указанными стандартами ввода/вывода, в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT. В основе этого шаблона лежит использование экземпляра библиотечного примитива IBUFGDS_DIFF_OUT, представляющего соответствующий вариант конфигурирования входных глобальных буферных элементов [25, 26]:

--IBUFGDS_DIFF_OUT: In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the architecture body of the design code. The
-- declaration : instance name (IBUFGDS_DIFF_OUT_inst) and/or the port declarations
-- code : after the “=>” assignment maybe changed to properly
-- : reference and connect this function to the design.
-- : All inputs and outputs must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- IBUFGDS_DIFF_OUT: Differential Global Clock Buffer with Differential Output
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
--
IBUFGDS_DIFF_OUT_inst : IBUFGDS_DIFF_OUT
generic map (
DIFF_TERM => FALSE, -- Differential Termination
OSTANDARD => “DEFAULT”) -- Specify the input I/O standard
port map (
O => O, -- Buffer diff_p output
OB => OB, -- Buffer diff_n output
I => I, -- Diff_p buffer input (connect directly to top-level port)
IB => IB -- Diff_n buffer input (connect directly to top-level port)
);
-- End of IBUFGDS_DIFF_OUT_inst instantiation

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

Условный графический образ входного глобального буферного элемента с дифференциальными входами и выходами, создаваемого с помощью шаблона Differential Global Clock Buffer with Differential Output (IBUFGDS_DIFF_OUT), изображен на рис. 242.

Input SERial/DESerializer (ISERDES2) является шаблоном VHDL-описания входного последовательно-параллельного преобразователя, реализуемого на базе соответствующих аппаратных ресурсов ввода/вывода SelectIO ПЛИС серии Spartan-6 [25].

Структура ресурсов ввода/вывода кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT включает в себя следующие основные элементы:

  • блоки ввода/вывода (Input/Output block, IOB);
  • логические ячейки ввода/вывода (Input/Output LOGIC Tile, IOLOGIC Tile).

Эти элементы сгруппированы в секции ввода/вывода, которые содержат два блока ввода/вывода и одну логическую ячейку ввода/вывода (рис. 243).

Структура ПЛИС Spartan-6 LX и Spartan-6 LXT

Рис. 243. Структура ресурсов ввода/вывода ПЛИС семейств Spartan-6 LX и Spartan-6 LXT

Блоки ввода/вывода включают в себя входные и выходные буферные элементы, сопряженные с выводами ПЛИС. Детализированная функциональная схема логических ячеек ввода/вывода, применяемых в кристаллах семейств Spartan-6 LX и Spartan-6 LXT, приведена на рис. 244. В их составе представлены входная/выходная логика IOLOGIC (входные и выходные триггеры), программируемые схемы входной и выходной задержек, а также программируемые последовательно-параллельные и параллельно-последовательные преобразователи входных и выходных данных соответственно. Разрядность параллельного кода в этих преобразователях можно выбирать в диапазоне от 2 до 4 бит. Каждая логическая ячейка ввода/вывода содержит две части с одинаковой структурой: основную (Master) и подчиненную (Slave). Такая организация необходима для реализации дифференциальных интерфейсов ввода/вывода с использованием параллельно-последовательных и последовательно-параллельных преобразователей данных.

Схема логической ячейки ввода/вывода в ПЛИС серии Spartan-6

Рис. 244. Функциональная схема логической ячейки ввода/вывода в ПЛИС серии Spartan-6

Подробная структурная схема программируемого входного преобразователя последовательного кода в параллельный представлена на рис. 245.

Структура входного последовательно-параллельного преобразователя ПЛИС серии Spartan-6

Рис. 245. Структура входного последовательно-параллельного преобразователя ПЛИС серии Spartan-6

Временные диаграммы сигналов, поясняющие работу последовательно-параллельного преобразователя, представленного в составе логических ячеек ввода/вывода ПЛИС серии Spartan-6, показаны на рис. 246.

Временные диаграммы последовательно-параллельного преобразователя

Рис. 246. Временные диаграммы входных и выходных сигналов последовательно-параллельного преобразователя

Для подготовки описаний программируемых входных преобразователей последовательного кода в параллельный, реализуемых на базе соответствующих ресурсов логических ячеек ввода/вывода в кристаллах семейств Spartan-6 LX и Spartan-6 LXT, предоставляется библиотечный примитив ISERDES2. На основе экземпляра этого примитива выполнен рассматриваемый шаблон:

-- ISERDES2 : In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the body of the design code. The instance name
-- declaration : (ISERDES2_inst) and/or the port declarations after the
-- code : “=>” declaration maybe changed to properly reference and
-- : connect this function to the design. All inputs and outputs
-- : must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- ISERDES2: Input SERial/DESerializer
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
--
ISERDES2_inst : ISERDES2
generic map (
BITSLIP_ENABLE => FALSE, -- Enable Bitslip Functionality (TRUE/FALSE)
DATA_RATE => “SDR”, -- Data-rate (“SDR” or “DDR”)
DATA_WIDTH => 2, -- Parallel data width selection (2-8)
INTERFACE_TYPE => “NETWORKING”, -- “NETWORKING”, “NETWORKING_PIPELINED” or “RETIMED”
SERDES_MODE => “NONE” -- “NONE”, “MASTER” or “SLAVE”
)
port map (
CFB0 => CFB0, -- 1-bit output Clock feed-through route output
CFB1 => CFB1, -- 1-bit output Clock feed-through route output
DFB => DFB, -- 1-bit output Feed-through clock output
FABRICOUT => FABRICOUT, -- 1-bit output Unsynchrnonized data output
INCDEC => INCDEC, -- 1-bit output Phase detector output
-- Q1 - Q4: 1-bit (each) output Registered outputs to FPGA logic
Q1 => Q1,
Q2 => Q2,
Q3 => Q3,
Q4 => Q4,
SHIFTOUT => SHIFTOUT, -- 1-bit output Cascade output signal for master/slave I/O
VALID => VALID, -- 1-bit output Output status of the phase detector
BITSLIP => BITSLIP, -- 1-bit input Bitslip enable input
CE0 => CE0, -- 1-bit input Clock enable input
CLK0 => CLK0, -- 1-bit input I/O clock network input
CLK1 => CLK1, -- 1-bit input Secondary I/O clock network input
CLKDIV => CLKDIV, -- 1-bit input FPGA logic domain clock input
D => D, -- 1-bit input Input data
IOCE => IOCE, -- 1-bit input Data strobe input
RST => RST, -- 1-bit input Asynchronous reset input
SHIFTIN => SHIFTIN -- 1-bit input Cascade input signal for master/slave I/O
);
-- End of ISERDES2_inst instantiation

В библиотечном примитиве ISERDES2 предусмотрены следующие параметры настройки:

  • BITSLIP_ENABLE — позволяет задействовать функцию Bitslip при преобразовании входного последовательного кода данных в параллельный.
  • DATA_RATE — используется для указания режима (скорости) передачи данных.
  • DATA_WIDTH — применяется для определения разрядности выходного параллельного кода данных.
  • INTERFACE_TYPE — предоставляет возможность выбора интерфейса передачи выходных данных.
  • SERDES_MODE — устанавливает режим функционирования формируемого входного последовательно-параллельного преобразователя.

При создании законченного описания входного последовательно-параллельного преобразователя на основе шаблона Input SERial/ DESerializer (ISERDES2) в первую очередь целесообразно указать требуемый вариант режима (скорости) передачи данных с помощью настраиваемого параметра DATA_RATE. Список возможных значений этого параметра включает в себя два варианта — SDR и DDR. Значение SDR, установленное по умолчанию для параметра DATA_RATE, соответствует обычной скорости передачи данных. При организации передачи данных с удвоенной скоростью следует этому параметру присвоить значение DDR.

Затем необходимо задать требуемое количество двоичных разрядов в формируемом параллельном коде, воспользовавшись параметром настройки DATA_WIDTH. Этот параметр может принимать целочисленные значения в диапазоне от 2 до 8. При этом следует учитывать, что для формирования выходного параллельного кода данных с числом разрядов более четырех необходимо каскадное соединение двух модулей последовательно-параллельного преобразования ISERDES2. По умолчанию для параметра DATA_WIDTH предлагается значение, равное двум.

Далее нужно выбрать режим функционирования формируемого входного преобразователя последовательного кода данных в параллельный, используя настраиваемый параметр SERDES_MODE. В списке возможных значений этого параметра представлены три варианта: NONE, MASTER и SLAVE. Вариант NONE, предлагаемый по умолчанию для параметра SERDES_MODE, соответствует автономному режиму работы создаваемого последовательно-параллельного преобразователя. Если формируемый элемент предназначен для применения в составе каскадного соединения в качестве ведущего, то указанному параметру следует присвоить значение MASTER. При подготовке описания последовательно-параллельного преобразователя, используемого в составе каскадного соединения в качестве подчиненного, для параметра SERDES_MODE необходимо установить значение SLAVE.

После этого следует указать требуемый вариант организации интерфейса передачи выходных данных, воспользовавшись параметром настройки INTERFACE_TYPE. Этот параметр может принимать одно из трех возможных значений: NETWORKING, NETWORKING_PIPELINED и RETIMED. При использовании значения NETWORKING, установленного по умолчанию для параметра настройки INTERFACE_TYPE, результат преобразования входного последовательного кода данных в параллельный поступает с выходов регистра B (рис. 245). В случае выбора варианта NETWORKING_PIPELINED сформированный параллельный код данных считывается с выходов регистра C. Если для параметра настройки INTERFACE_TYPE указано значение RETIMED, то результат преобразования поступает с выходов регистра D. При выборе последних двух вариантов может быть активизирована функция Bitslip. Для этого настраиваемому параметру BITSLIP_ENABLE нужно присвоить значение TRUE. По умолчанию для указанного параметра установлено значение FALSE, блокирующее функцию Bitslip. Применение этой функции поясняют временные диаграммы сигналов, приведенные на рис. 247.

Временные диаграммы сигналов

Рис. 247. Временные диаграммы сигналов, поясняющие применение функции Bitslip

Система условных обозначений входов и выходов, используемая в описании интерфейса входных преобразователей последовательного кода в параллельный, создаваемых с помощью шаблона Input SERial/DESerializer (ISERDES2), включает в себя следующие идентификаторы:

  • CFB0 — выход первого сигнала синхронизации;
  • CFB1 — выход второго сигнала синхронизации;
  • DFB — выход задержанного сигнала синхронизации;
  • FABRICOUT — выход несинхронизированных данных;
  • INCDEC — выход сигнала фазового детектора, информирующего о необходимости увеличения или уменьшения величины задержки принимаемых данных;
  • Q1 — выход первого разряда формируемого параллельного кода;
  • Q2 — выход второго разряда формируемого параллельного кода;
  • Q3 — выход третьего разряда формируемого параллельного кода;
  • Q4 — выход четвертого разряда формируемого параллельного кода;
  • SHIFTOUT — выход данных, предназначенный для организации каскадного соединения последовательно-параллельных преобразователей;
  • VALID — выход сигнала фазового детектора, информирующего о достоверности переключения входных данных;
  • BITSLIP — вход сигнала управления функцией Bitslip;
  • CE0 — вход сигнала разрешения синхронизации для выходного регистра преобразователя;
  • CLK0 — вход первого сигнала синхронизации;
  • CLK1 — вход второго сигнала синхронизации;
  • CLKDIV — вход сигнала синхронизации, предназначенного для тактирования логических ресурсов ПЛИС, сопряженных с выходом последовательно-параллельного преобразователя;
  • D — вход данных, поступающих в виде последовательного двоичного кода;
  • IOCE — вход сигнала стробирования данных;
  • RST — вход сигнала асинхронного сброса;
  • SHIFTIN — вход данных, предназначенный для организации каскадного соединения последовательно-параллельных преобразователей.

На рис. 248 приведен условный графический образ входного преобразователя последовательного кода данных в параллельный, выполняемого на базе соответствующих аппаратных ресурсов логических ячеек ввода/вывода в ПЛИС серии Spartan-6, описание которого формируется с помощью шаблона Input SERial/DESerializer (ISERDES2).

Образ входного преобразователя последовательного кода в параллельный

Рис. 248. Условный графический образ входного преобразователя последовательного кода в параллельный

Input and Output Fixed or Variable Delay Element (IODELAY2) предоставляет образец описания элементов программируемой входной и выходной задержки, реализуемых на базе соответствующих аппаратных модулей ресурсов ввода/вывода SelectIO кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT. Основу программируемых модулей входной и выходной задержки, входящих в состав логических ячеек ввода/вывода ПЛИС серии Spartan-6 (рис. 244), образуют линии задержки, структурная схема которых изображена на рис. 249. Значение задержки входных данных определяется 8-разрядным двоичным кодом, представленным на шине управления. Таким образом, возможный диапазон изменения значений задержек (количество эквивалентных отводов линии задержки) находится в пределах от 0 до 255.

Схема линий задержки SelectIO ПЛИС серии Spartan-6

Рис. 249. Структурная схема линий задержки, представленных в составе ресурсов ввода/вывода SelectIO ПЛИС серии Spartan-6

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

Схема включения двух линий задержки SelectIO ПЛИС серии Spartan-6

Рис. 250. Схема включения двух линий задержки, представленных в составе ресурсов ввода/вывода SelectIO ПЛИС серии Spartan-6

Шаблон описания элементов программируемой входной и выходной задержки, предназначенных для реализации на основе ресурсов ввода/вывода SelectIO ПЛИС серии Spartan-6, содержит следующий VHDL-код:

-- IODELAY2 : In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the body of the design code. The instance name
-- declaration : (IODELAY2_inst) and/or the port declarations after the
-- code : “=>” declaration maybe changed to properly reference and
-- : connect this function to the design. All inputs and outputs
-- : must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- IODELAY2: Input and Output Fixed or Variable Delay Element
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
--
IODELAY2_inst : IODELAY2
generic map (
COUNTER_WRAPAROUND => “WRAPAROUND”, -- “STAY_AT_LIMIT” or “WRAPAROUND”
DATA_RATE => “SDR”, -- “SDR” or “DDR”
DELAY_SRC => “IO”, -- “IO”, “ODATAIN” or “IDATAIN”
IDELAY2_VALUE => 0, -- Delay value when IDELAY_MODE=”PCI” (0-255)
IDELAY_MODE => “NORMAL”, -- “NORMAL” or “PCI”
IDELAY_TYPE => “DEFAULT”, -- “FIXED”, “DEFAULT”, “VARIABLE_FROM_ZERO”, “VARIABLE_FROM_HALF_MAX” or “DIFF_PHASE_DETECTOR”
IDELAY_VALUE => 0, -- Amount of taps for fixed input delay (0-255)
ODELAY_VALUE => 0, -- Amount of taps fixed output delay (0-255)
SERDES_MODE => “NONE”, -- “NONE”, “MASTER” or “SLAVE”
SIM_TAPDELAY_VALUE => 75 -- Per tap delay used for simulation in ps
)
port map (
BUSY => BUSY, -- 1-bit output Busy output after CAL
DATAOUT => DATAOUT, -- 1-bit output Delayed data output to ISERDES/input register
DATAOUT2 => DATAOUT2, -- 1-bit output Delayed data output to general FPGA fabric
DOUT => DOUT, -- 1-bit output Delayed data output
TOUT => TOUT, -- 1-bit output Delayed 3-state output
CAL => CAL, -- 1-bit input Initiate calibration input
CE => CE, -- 1-bit input Enable INC input
CLK => CLK, -- 1-bit input Clock input
IDATAIN => IDATAIN, -- 1-bit input Data input (connect to top-level port or I/O buffer)
INC => INC, -- 1-bit input Increment / decrement input
IOCLK0 => IOCLK0, -- 1-bit input Input from the I/O clock network
IOCLK1 => IOCLK1, -- 1-bit input Input from the I/O clock network
ODATAIN => ODATAIN, -- 1-bit input Output data input from output register or OSERDES2.
RST => RST, -- 1-bit input Reset to zero or 1/2 of total delay period
T => T -- 1-bit input 3-state input signal
);
-- End of IODELAY2_inst instantiation

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

  • COUNTER_WRAPAROUND — определяет алгоритм функционирования формируемого элемента входной/выходной задержки при выходе значения счетчика числа эквивалентных отводов линии задержки за границы допустимого интервала.
  • DATA_RATE — используется для установки режима (скорости) передачи данных.
  • DELAY_SRC — устанавливает источник данных для схемы программируемой задержки.
  • IDELAY2_VALUE — указывает величину фиксированной задержки при конфигурировании модуля IODELAY2 в виде элемента входной задержки, если параметру IDELAY_MODE присвоено значение PCI.
  • IDELAY_MODE — позволяет выбрать режим функционирования создаваемого элемента входной и/или выходной задержки.
  • IDELAY_TYPE — используется для установки типа формируемого элемента программируемой задержки.
  • IDELAY_VALUE — определяет величину фиксированной задержки при конфигурировании модуля IODELAY2 в виде элемента входной задержки.
  • ODELAY_VALUE — задает величину фиксированной задержки при конфигурировании модуля IODELAY2 в виде элемента выходной задержки.
  • SERDES_MODE — определяет режим функционирования входного преобразователя последовательного кода данных в параллельный, который используется совместно с создаваемым элементом программируемой задержки.
  • SIM_TAPDELAY_VALUE — позволяет указать номинальное значение задержки для одного эквивалентного отвода, используемое при моделировании формируемого элемента.

В состав системы условных обозначений, применяемых в описании интерфейса элементов входной и выходной задержки, формируемых на основе шаблона Input and Output Fixed or Variable Delay Element (IODELAY2), входят следующие идентификаторы входов и выходов:

  • BUSY — выход сигнала, информирующего о завершении процесса калибровки или коррекции значения задержки;
  • DATAOUT — выход сигнала задержанных данных, подключаемый ко входу преобразователя последовательного кода в параллельный;
  • DATAOUT2 — выход сигнала задержанных данных, предназначенный для подключения к основным логическим ресурсам ПЛИС;
  • DOUT — выход сигнала задержанных данных формируемого элемента выходной задержки;
  • TOUT — тристабильный выход сигнала задержанных данных формируемого элемента выходной задержки;
  • CAL — вход сигнала активизации процедуры калибровки;
  • CE — вход сигнала разрешения инкремента или декремента задержки;
  • CLK — вход глобального тактового сигнала;
  • IDATAIN — вход данных;
  • INC — вход сигнала инкремента или декремента задержки;
  • IOCLK0 — вход первого сигнала синхронизации входных данных;
  • IOCLK1 — вход второго сигнала синхронизации входных данных;
  • ODATAIN — вход данных, подключаемый к выходу регистра или преобразователя параллельного кода в последовательный;
  • RST — вход сигнала сброса;
  • T — вход сигнала переключения тристабильного выхода в состояние высокого импеданса.

Чтобы сформировать на основе шаблона Input and Output Fixed or Variable Delay Element (IODELAY2) законченное описание элемента задержки, рекомендуется, в первую очередь, указать его назначение (входной, выходной или переключаемый), воспользовавшись параметром настройки DELAY_SRC. Для этого параметра предусмотрены три возможных варианта значений, определяющих источник входных данных для формируемого элемента задержки: IO, ODATAIN и IDATAIN. При подготовке описания элемента входной задержки нужно параметру DELAY_SRC присвоить значение IDATAIN. В этом случае данные на вход создаваемого элемента будут подаваться с соответствующих выводов ПЛИС. Если формируемый элемент должен осуществлять функцию выходной задержки, то для параметра DELAY_SRC следует указать значение ODATAIN. При этом данные на вход элемента задержки будут поступать с выхода регистра или параллельно-последовательного преобразователя ячейки ввода/вывода. По умолчанию в качестве значения параметра DELAY_SRC предлагается вариант IO, который соответствует элементу переключаемой задержки. В этом случае назначение создаваемого элемента задержки (источник входных данных) будет определяться уровнем сигнала на входе управления T.

Затем необходимо выбрать тип формируемого элемента задержки, указав соответствующее значение для настраиваемого параметра IDELAY_TYPE. Список возможных значений этого параметра включает в себя пять вариантов: DEFAULT, FIXED, VARIABLE_FROM_ZERO, VARIABLE_FROM_HALF_MAX и DIFF_PHASE_DETECTOR. Значение DEFAULT, установленное по умолчанию, соответствует элементу задержки, который обеспечивает достижение времени удержания данных, близкого к нулю. Для создания элемента с фиксированным значением задержки нужно параметру IDELAY_TYPE присвоить значение FIXED. Чтобы сформировать описание элемента с изменяемой величиной задержки, следует в качестве значения параметра IDELAY_TYPE указать один из двух вариантов — VARIABLE_FROM_ZERO или VARIABLE_FROM_HALF_MAX. Отличие этих вариантов проявляется в значении задержки, устанавливаемом при подаче активного уровня сигнала на вход сброса RST. Для варианта VARIABLE_FROM_ZERO это значение равно нулю, а для варианта VARIABLE_FROM_HALF_MAX — половине максимального значения задержки. В случае выбора одного из значений VARIABLE_FROM_ZERO или VARIABLE_FROM_HALF_MAX величина задержки в формируемом элементе может корректироваться при подаче соответствующего сигнала на вход управления INC. Временные диаграммы сигналов, приведенные на рис. 251, иллюстрируют процесс коррекции значения задержки в формируемом элементе.

Временные диаграммы сигналов

Рис. 251. Временные диаграммы сигналов, иллюстрирующие процесс коррекции значения задержки

Значение DIFF_PHASE_DETECTOR указывается для параметра настройки IDELAY_TYPE при каскадном соединении двух элементов задержки.

При формировании описаний элементов фиксированной задержки необходимо указать ее значение с помощью настраиваемых параметров IDELAY_VALUE (для элемента входной задержки) и ODELAY_VALUE (для элемента выходной задержки).

Затем нужно выбрать требуемый режим передачи данных, используя параметр настройки DATA_RATE. По умолчанию для этого параметра предлагается значение SD″, соответствующее режиму передачи данных с обычной скоростью. При подготовке описания элемента задержки данных, передаваемых с удвоенной скоростью, необходимо для параметра настройки DATA_RATE указать значение DDR.

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

Условный графический образ элементов программируемой входной и выходной задержки, реализуемых на основе соответствующих аппаратных модулей ресурсов ввода/вывода SelectIO кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, для подготовки описаний которых используется шаблон Input and Output Fixed or Variable Delay Element (IODELAY2), изображен на рис. 252.

Графический образ элемента задержки, создаваемого с  IODELAY2

Рис. 252. Условный графический образ элемента задержки, создаваемого с помощью примитива IODELAY2

Output SERial/DESerializer (OSERDES2) содержит шаблон VHDL-описания выходного преобразователя параллельного кода данных в последовательный, реализуемого на основе соответствующих аппаратных ресурсов ввода/вывода SelectIO ПЛИС серии Spartan-6 [25]. Детализированная структурная схема программируемого выходного параллельно-последовательного преобразователя данных, представленного в составе логических ячеек ввода/вывода кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, изображена на рис. 253. Ее основу составляют два 4-разрядных параллельных регистра и два 4-разрядных регистра сдвига с параллельной загрузкой данных.

Структура выходного преобразователя ПЛИС серии Spartan-6

Рис. 253. Структура выходного параллельно-последовательного преобразователя ПЛИС серии Spartan-6

На рис. 254 представлены временные диаграммы сигналов, демонстрирующие процесс функционирования выходного преобразователя параллельного кода данных в последовательный, выполненного на базе соответствующих аппаратных ресурсов ввода/вывода SelectIO ПЛИС серии Spartan-6.

Временные диаграммы параллельно-последовательного преобразователя ПЛИС серии Spartan-6

Рис. 254. Временные диаграммы входных и выходных сигналов параллельно-последовательного преобразователя ПЛИС серии Spartan-6

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

-- OSERDES2 : In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the body of the design code. The instance name
-- declaration : (OSERDES2_inst) and/or the port declarations after the
-- code : “=>” declaration maybe changed to properly reference and
-- : connect this function to the design. All inputs and outputs
-- : must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- OSERDES2: Output SERial/DESerializer
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
--
OSERDES2_inst : OSERDES2
generic map (
BYPASS_GCLK_FF => FALSE, -- Bypass CLKDIV syncronization registers (TRUE/FALSE)
DATA_RATE_OQ => “DDR”, -- Output Data Rate (“SDR” or “DDR”)
DATA_RATE_OT => “DDR”, -- 3-state Data Rate (“SDR” or “DDR”)
DATA_WIDTH => 2, -- Parallel data width (2-8)
OUTPUT_MODE => “SINGLE_ENDED”, -- “SINGLE_ENDED” or “DIFFERENTIAL”
SERDES_MODE => “NONE”, -- “NONE”, “MASTER” or “SLAVE”
TRAIN_PATTERN => 0 -- Training Pattern (0-15)
)
port map (
OQ => OQ, -- 1-bit output Data output to pad or IODELAY2
SHIFTOUT1 => SHIFTOUT1, -- 1-bit output Cascade data output
SHIFTOUT2 => SHIFTOUT2, -- 1-bit output Cascade 3-state output
SHIFTOUT3 => SHIFTOUT3, -- 1-bit output Cascade differential data output
SHIFTOUT4 => SHIFTOUT4, -- 1-bit output Cascade differential 3-state output
TQ => TQ, -- 1-bit output 3-state output to pad or IODELAY2
CLK0 => CLK0, -- 1-bit input I/O clock input
CLK1 => CLK1, -- 1-bit input Secondary I/O clock input
CLKDIV => CLKDIV, -- 1-bit input Logic domain clock input
-- D1 - D4: 1-bit (each) input Parallel data inputs
D1 => D1,
D2 => D2,
D3 => D3,
D4 => D4,
IOCE => IOCE, -- 1-bit input Data strobe input
OCE => OCE, -- 1-bit input Clock enable input
RST => RST, -- 1-bit input Asynchrnous reset input
SHIFTIN1 => SHIFTIN1, -- 1-bit input Cascade data input
SHIFTIN2 => SHIFTIN2, -- 1-bit input Cascade 3-state input
SHIFTIN3 => SHIFTIN3, -- 1-bit input Cascade differential data input
SHIFTIN4 => SHIFTIN4, -- 1-bit input Cascade differential 3-state input
-- T1 - T4: 1-bit (each) input 3-state control inputs
T1 => T1,
T2 => T2,
T3 => T3,
T4 => T4,
TCE => TCE, -- 1-bit input 3-state clock enable input
TRAIN => TRAIN -- 1-bit input Training pattern enable input
);
-- End of OSERDES2_inst instantiation

В качестве основы представленного шаблона используется оператор создания экземпляра библиотечного примитива OSERDES2, в котором для установки требуемой конфигурации формируемого параллельно-последовательного преобразователя данных предусмотрена следующая совокупность настраиваемых параметров:

  • BYPASS_GCLK_FF — позволяет блокировать использование глобального тактового сигнала для синхронизации регистров.
  • DATA_RATE_OQ — определяет режим (скорость) передачи данных на выходе OQ.
  • DATA_RATE_OT — устанавливает режим (скорость) передачи данных на тристабильном выходе OT.
  • DATA_WIDTH — указывает разрядность входного параллельного кода данных.
  • OUTPUT_MODE — применяется для выбора типа выхода последовательных данных (однополюсный или дифференциальный).
  • SERDES_MODE — задает режим функционирования создаваемого выходного параллельно-последовательного преобразователя.
  • TRAIN_PATTERN — предоставляет возможность определения настроечной комбинации данных.

В описании интерфейса выходных преобразователей параллельного кода данных в последовательный, создаваемых с помощью шаблона Output SERial/DESerializer (OSERDES2), применяется следующая система условных обозначений входов и выходов:

  • OQ — выход данных, представленных в виде последовательного кода.
  • SHIFTOUT1 — выход, предназначенный для организации каскадного соединения формируемых преобразователей (используется только при разрядности входного параллельного кода данных более четырех).
  • SHIFTOUT2 — выход, используемый для каскадного соединения формируемых преобразователей с тристабильным выходом данных (задействуется только при разрядности входного параллельного кода данных более четырех).
  • SHIFTOUT3 — дифференциальный выход, предназначенный для организации каскадного соединения формируемых преобразователей.
  • SHIFTOUT4 — дифференциальный выход, используемый для каскадного соединения формируемых преобразователей с тристабильным выходом данных.
  • TQ — тристабильный выход данных, представленных в виде последовательного кода.
  • CLK0 — вход первого сигнала синхронизации.
  • CLK1 — вход второго сигнала синхронизации.
  • CLKDIV — вход глобального сигнала синхронизации, используемого для тактирования логических ресурсов ПЛИС, сопряженных с параллельно-последовательным преобразователем.
  • D1–D4 — входы данных, представленных в виде параллельного двоичного кода.
  • IOCE — вход сигнала стробирования данных.
  • OCE — вход сигнала разрешения синхронизации для входных параллельных регистров.
  • RST — вход сигнала асинхронного сброса.
  • SHIFTIN1 — вход, предназначенный для организации каскадного соединения формируемых преобразователей (используется только при разрядности входного параллельного кода данных более четырех).
  • SHIFTIN2 — вход, используемый для каскадного соединения формируемых преобразователей с тристабильным выходом данных (задействуется только при разрядности входного параллельного кода данных более четырех).
  • SHIFTIN3 — дифференциальный вход данных, используемый для каскадного соединения формируемых преобразователей.
  • SHIFTIN4 — дифференциальный вход данных, используемый для каскадного соединения формируемых преобразователей с тристабильным выходом.
  • Т1–T4 — входы данных, представленных в виде параллельного двоичного кода, подключаемые к тристабильным выходам.
  • TCE — вход сигнала разрешения синхронизации для входных параллельных регистров, подключаемых к тристабильным выходам.
  • TRAIN — вход сигнала разрешения передачи настроечной комбинации данных.

Для формирования законченного описания выходного параллельно-последовательного преобразователя на основе шаблона Output SERial/DESerializer (OSERDES2) нужно выбрать требуемое значение разрядности входного параллельного кода данных, используя настраиваемый параметр DATA_WIDTH. В качестве значения этого параметра могут указываться целые числа в интервале от 2 до 8. При этом необходимо принимать во внимание, что преобразование входного параллельного кода с числом разрядов более четырех может быть реализовано только с помощью каскадного соединения двух модулей OSERDES2. По умолчанию параметру DATA_WIDTH присваивается значение, равное двум.

Затем следует установить режим передачи выходных данных, воспользовавшись параметрами настройки DATA_RATE_OQ и DATA_RATE_OT. Эти параметры могут принимать одно из двух возможных значений — SDR и DDR. Значение DDR, предлагаемое по умолчанию для указанных параметров, соответствует режиму передачи выходных данных с удвоенной скоростью. Для установки режима передачи данных с обычной скоростью параметрам DATA_RATE_OQ и DATA_RATE_OT следует присвоить значение SDR.

Далее с помощью настраиваемого параметра OUTPUT_MODE необходимо выбрать тип выхода последовательных данных создаваемого преобразователя. По умолчанию для этого параметра установлено значение SINGLE_ENDED, которое соответствует обычному (однополюсному) выходу данных. Для формирования выходного преобразователя параллельного кода данных в последовательный с дифференциальным выходом следует для параметра OUTPUT_MODE указать вариант DIFFERENTIAL.

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

Если в создаваемом выходном преобразователе кода предполагается передача настроечной последовательности данных, то необходимо определить соответствующую комбинацию в виде значения параметра настройки TRAIN_PATTERN. Этот параметр может принимать любые целочисленные значения в диапазоне от 0 до 15.

На рис. 255 показан условный графический образ выходного параллельно-последовательного преобразователя данных, реализуемого на базе соответствующих аппаратных ресурсов логических ячеек ввода/вывода в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, для подготовки описания которого применяется шаблон Output SERial/DESerializer (OSERDES2).

Графический образ преобразователя параллельного кода в последовательный

Рис. 255. Условный графический образ выходного преобразователя параллельного кода в последовательный

16k-bit Data and 2k-bit Parity Configurable Synchronous Dual Port Block RAM with Optional Output Registers (RAMB16BWER) включает в себя образец параметризированного варианта описания 2-портового ОЗУ информационной емкостью 16 384 бита, с программируемой организацией каждого порта, возможностью использования выходных регистров, контролем четности и поддержкой режима побайтной записи. Это ОЗУ предназначено для реализации на основе модуля блочной памяти ПЛИС серии Spartan-6:

-- RAMB16BWER : In order to incorporate this function into the design,
-- VHDL : the following instance declaration needs to be placed
-- instance : in the body of the design code. The instance name
-- declaration : (RAMB16BWER_inst) and/or the port declarations after the
-- code : “=>” declaration maybe changed to properly reference and
-- : connect this function to the design. All inputs and outputs
-- : must be connected.
--
-- Library : In addition to adding the instance declaration, a use
-- declaration : statement for the UNISIM.vcomponents library needs to be
-- for : added before the entity declaration. This library
-- Xilinx : contains the component declarations for all Xilinx
-- primitives : primitives and points to the models that will be used
-- : for simulation.
--
-- Copy the following two statements and paste them before the
-- Entity declaration, unless they already exist.
--
Library UNISIM;
use UNISIM.vcomponents.all;
--
-- <-----Cut code below this line and paste into the architecture body---->
--
-- RAMB16BWER: 16k-bit Data and 2k-bit Parity Configurable Synchronous Dual Port Block RAM with Optional Output Registers
-- Spartan-6
-- Xilinx HDL Language Template, version 12.4
RAMB16BWER_inst : RAMB16BWER
generic map (
-- DATA_WIDTH_A/DATA_WIDTH_B: 0, 1, 2, 4, 9, 18, or 36
DATA_WIDTH_A => 0,
DATA_WIDTH_B => 0,
-- DOA_REG/DOB_REG: Optional output register (0 or 1)
DOA_REG => 0,
DOB_REG => 0,
-- EN_RSTRAM_A/EN_RSTRAM_B: Enable/disable RST
EN_RSTRAM_A => TRUE,
EN_RSTRAM_B => TRUE,
-- INITP_00 to INITP_07: Initial memory contents.
INITP_00 => X”0000000000000000000000000000000000000000”,
INITP_01 => X”0000000000000000000000000000000000000000”,

INITP_06 => X“0000000000000000000000000000000000000000”,
INITP_07 => X“0000000000000000000000000000000000000000”,
-- INIT_00 to INIT_3F: Initial memory contents.
INIT_00 => X“00000000000000000000000000000000000000000”,
INIT_01 => X“00000000000000000000000000000000000000000”,

INIT_3E => X“00000000000000000000000000000000000000000”,
INIT_3F => X“00000000000000000000000000000000000000000”,
-- INIT_A/INIT_B: Initial values on output port
INIT_A => X“000000000”,
INIT_B => X“000000000”,
-- INIT_FILE: Optional file used to specify initial RAM contents
INIT_FILE => “NONE”,
-- RSTTYPE: “SYNC” or “ASYNC”
RSTTYPE => “SYNC”,
-- RST_PRIORITY_A/RST_PRIORITY_B: “CE” or “SR”
RST_PRIORITY_A => “CE”,
RST_PRIORITY_B => “CE”,
-- SIM_COLLISION_CHECK: Collision check enable “ALL”, “WARNING_ONLY”, “GENERATE_X_ONLY” or “NONE”
SIM_COLLISION_CHECK => “ALL”,
-- SIM_DEVICE: Must be set to “SPARTAN6” for proper simulation behavior
SIM_DEVICE => “SPARTAN6”,
-- SRVAL_A/SRVAL_B: Set/Reset value for RAM output
SRVAL_A => X“000000000”,
SRVAL_B => X“000000000”,
-- WRITE_MODE_A/WRITE_MODE_B: “WRITE_FIRST”, “READ_FIRST”, or “NO_CHANGE”
WRITE_MODE_A => “WRITE_FIRST”,
WRITE_MODE_B => “WRITE_FIRST”
)
port map (
-- Port A Data: 32-bit (each) output Port A data
DOA => DOA, -- 32-bit output A port data output
DOPA => DOPA, -- 4-bit output A port parity output
-- Port B Data: 32-bit (each) output Port B data
DOB => DOB, -- 32-bit output B port data output
DOPB => DOPB, -- 4-bit output B port parity output
-- Port A Address/Control Signals: 14-bit (each) input Port A address and control signals
ADDRA => ADDRA, -- 14-bit input A port address input
CLKA => CLKA, -- 1-bit input A port clock input
ENA => ENA, -- 1-bit input A port enable input
REGCEA => REGCEA, -- 1-bit input A port register clock enable input
RSTA => RSTA, -- 1-bit input A port register set/reset input
WEA => WEA, -- 4-bit input Port A byte-wide write enable input
-- Port A Data: 32-bit (each) input Port A data
DIA => DIA, -- 32-bit input A port data input
DIPA => DIPA, -- 4-bit input A port parity input
-- Port B Address/Control Signals: 14-bit (each) input Port B address and control signals
ADDRB => ADDRB, -- 14-bit input B port address input
CLKB => CLKB, -- 1-bit input B port clock input
ENB => ENB, -- 1-bit input B port enable input
REGCEB => REGCEB, -- 1-bit input B port register clock enable input
RSTB => RSTB, -- 1-bit input B port register set/reset input
WEB => WEB, -- 4-bit input Port B byte-wide write enable input
-- Port B Data: 32-bit (each) input Port B data
DIB => DIB, -- 32-bit input B port data input
DIPB => DIPB -- 4-bit input B port parity input
);
-- End of RAMB16BWER_inst instantiation

Основу приведенного шаблона образует оператор создания экземпляра библиотечного примитива RAMB16BWER, который предоставляет возможность применения в элементах 2-портовой оперативной памяти, формируемых на его основе, выходных регистров, режима побайтной записи информации и выполнения операций записи и чтения данных с использованием контроля четности для каждого порта. В этом библиотечном примитиве предусмотрены следующие параметры настройки, значения которых определяют конфигурацию формируемого элемента 2-портового ОЗУ:

  • DATA_WIDTH_A — устанавливает разрядность данных первого порта (порта A).
  • DATA_WIDTH_B — определяет разрядность данных второго порта (порта B).
  • DOA_REG — разрешает или запрещает использование регистра на выходе первого порта.
  • DOB_REG — позволяет задействовать регистр на выходе второго порта.
  • EN_RSTRAM_A — разрешает или запрещает использование режима сброса/установки для первого порта (порта A).
  • EN_RSTRAM_B — управляет использованием режима сброса/установки для второго порта (порта B).
  • INITP_00–INITP_07 — применяются для инициализации содержимого ячеек памяти, используемых для организации контроля четности.
  • INIT_00–INIT_3F — предоставляют возможность инициализации содержимого соответствующих ячеек основной памяти (по умолчанию во все ячейки ОЗУ заносится нулевое значение).
  • INIT_A — указывает начальное значение для выходного порта данных A.
  • INIT_B — устанавливает начальное значение для выходного порта данных B.
  • INIT_FILE — позволяет задать идентификатор файла, предназначенного для определения содержимого элемента оперативной памяти после завершения процесса конфигурирования ПЛИС.
  • RSTTYPE — определяет вид режима сброса/установки (синхронный или асинхронный).
  • RST_PRIORITY_A — устанавливает приоритет сигнала на входе сброса/установки первого порта (порта A).
  • RST_PRIORITY_B — задает приоритет сигнала на входе сброса/установки второго порта (порта B).
  • SIM_COLLISION_CHECK — предназначен для выбора режима обработки различных конфликтных ситуаций при осуществлении операций записи и чтения данных в процессе моделирования.
  • SIM_DEVICE — определяет семейство кристалла для процесса моделирования.
  • SRVAL_A — задает состояние выходного порта данных A при активном уровне сигнала сброса/установки.
  • SRVAL_B — указывает состояние выходного порта данных B при активном уровне сигнала сброса/установки.
  • WRITE_MODE_A и WRITE_MODE_B — устанавливают порядок выполнения операций записи и чтения данных при обращении к ячейкам памяти для первого и второго порта данных соответственно.

Система условных обозначений входов и выходов, используемая в описании интерфейса элементов 2-портовой оперативной памяти, формируемых на основе библиотечного примитива RAMB16BWER в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, включает в себя те же идентификаторы, что и в аналогичном шаблоне, предназначенном для ПЛИС семейства Spartan-3A DSP, который был рассмотрен в 16-й части статьи.

Чтобы сформировать описание конкретного элемента 2-портового ОЗУ, поддерживающего режим побайтной записи и возможность применения выходных регистров, на основе шаблона 16k-bit Data and 2k-bit Parity Configurable Synchronous Dual Port Block RAM with Optional Output Registers (RAMB16BWER), вначале следует указать разрядность шин информационных данных для каждого порта, воспользовавшись настраиваемыми параметрами DATA_WIDTH_A и DATA_WIDTH_B. Список допустимых значений каждого из этих параметров включает в себя следующие варианты: 1, 2, 4, 9, 18 и 36. В зависимости от выбранных значений параметров DATA_WIDTH_A и DATA_WIDTH_B в формируемом элементе 2-портовой оперативной памяти автоматически устанавливается соответствующая разрядность шин адресов, сигналов разрешения записи, а также всех входных и выходных шин информационных данных, включая шины, предназначенные для осуществления контроля четности.

Затем с помощью параметров DOA_REG и DOB_REG нужно разрешить или запретить применение выходного регистра для каждого порта создаваемого запоминающего устройства. Эти параметры могут принимать одно из двух возможных значений — нулевое или единичное. При использовании нулевых значений, предлагаемых по умолчанию для параметров DOA_REG и DOB_REG, формируемые элементы 2-портовой оперативной памяти не содержат выходных регистров. Для того чтобы задействовать выходной регистр в составе какого-либо порта создаваемого ОЗУ, необходимо присвоить единичное значение соответствующему параметру настройки (DOA_REG или DOB_REG).

Если в каком-либо из портов формируемого запоминающего устройства не предполагается использование режима сброса/установки, то рекомендуется для соответствующего параметра (EN_RSTRAM_A или EN_RSTRAM_B) указать значение FALSE. По умолчанию этим параметрам присваивается значение TRUE, которое разрешает режим сброса/установки. В этом случае нужно выбрать вид этого режима (синхронный или асинхронный), воспользовавшись параметром настройки RSTTYPE. Для подготовки описания элемента 2-портового ОЗУ с асинхронным сбросом/установкой следует этому параметру присвоить значение ASYNC. По умолчанию для параметра RSTTYPE предлагается значение SYNC, которое соответствует синхронному режиму сброса/установки.

При использовании входов сброса/установки необходимо определить их приоритет по отношению к входам разрешения синхронизации выходных регистров или разрешения первого и второго порта с помощью параметров RST_PRIORITY_A и RST_PRIORITY_B соответственно. Список возможных значений этих параметров содержит два варианта — SR и CE. Чтобы установить более высокий приоритет входов сброса/установки, следует для параметра RST_PRIORITY_A или RST_PRIORITY_B указать значение SR. При использовании варианта CE, предлагаемого по умолчанию для этих параметров, входам сброса/установки присваивается меньший приоритет по сравнению с входами разрешения синхронизации выходных регистров или разрешения первого и второго порта.

Если для какого-либо выходного порта данных нужно определить состояние при активном уровне соответствующего сигнала сброса/установки, то следует присвоить требуемое значение параметру SRVAL_A или SRVAL_B. По умолчанию этим параметрам присваиваются нулевые значения.

Далее, воспользовавшись настраиваемыми параметрами WRITE_MODE_A и WRITE_MODE_B, нужно установить требуемый режим записи информации (порядок выполнения операций записи и чтения данных при обращении к ячейкам памяти) для каждого порта формируемого 2-портового оперативного запоминающего устройства. По умолчанию для этих параметров предлагается значение WRITE_FIRST, при котором информационные данные, поступающие в соответствующий входной порт, записываются в ячейку памяти, адрес которой задается комбинацией сигналов на адресных входах, после чего сразу передаются на выходы. Для формирования элемента 2-портового ОЗУ, в котором какой-либо порт функционирует в режиме предварительного чтения данных из указанной ячейки перед записью новых данных в эту ячейку, следует соответствующему параметру присвоить значение READ_FIRST. Чтобы для какого-либо порта создаваемого элемента 2-портовой оперативной памяти задействовать режим блокировки выходов при осуществлении операции записи данных, нужно соответствующему параметру (WRITE_MODE_A или WRITE_MODE_B) присвоить значение NO_CHANGE. При этом в течение всего цикла записи информации в такой порт запоминающего устройства его выходы остаются в зафиксированном состоянии, которое соответствует последним считанным данным, присутствовавшим в момент появления активного уровня сигнала на входе разрешения записи этого порта.

Для определения информации, которая должна автоматически записываться в ячейки формируемого элемента 2-портовой оперативной памяти после завершения процесса конфигурирования кристалла программируемой логики, следует воспользоваться соответствующими параметрами настройки INIT_00–INIT_3F и INITP_00–INITP_07 или указать название файла инициализации с помощью параметра настройки INIT_FILE.

В заключение, при необходимости, следует задать начальные значения для каждого выходного порта данных, используя настраиваемые параметры INIT_A и INIT_B. По умолчанию для этих параметров предлагаются нулевые значения.

Условный графический образ элемента 2-портового ОЗУ с поддержкой побайтной записи информации и применения выходных регистров, реализуемого на базе модуля блочной памяти Block RAM в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, описание которого создается с помощью шаблона 16k-bit Data and 2k-bit Parity Configurable Synchronous Dual Port Block RAM with Optional Output Registers (RAMB16BWER), совпадает с изображением, представленным на рис. 211 (КиТ № 5`2011, стр. 77).

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

Литература

  1. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx. М.: Горячая линия – Телеком, 2004.
  2. Бибило П. Н. Основы языка VHDL. М.: Солон-Р, 2000.
  3. Бибило П. Н. Синтез логических схем с использованием языка VHDL. М.: Солон-Р, 2002.
  4. Уэйкерли Дж. Ф. Проектирование цифровых устройств. Т. 1. М.: Постмаркет, 2002.
  5. Поляков А. К. Языки VHDL и Verilog в проектировании цифровой аппаратуры. М.: Солон-Пресс, 2003.
  6. Зотов В. Инструментальный комплект Spartan-3 Starter Kit для практического освоения методов проектирования встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2005. № 7.
  7. Зотов В. Новый инструментальный комплект Spartan-3E Starter Kit для практического освоения методов проектирования встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2006. № 10.
  8. Зотов В. Новый инструментальный комплект Spartan-3A Starter Kit для практического освоения методов проектирования и отладки цифровых устройств с аппаратной и программной реализацией операций, реализуемых на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2007. № 9.
  9. Зотов В. Новый инструментальный комплект от компании Avnet на основе ПЛИС FPGA семейства Spartan-3A фирмы Xilinx // Компоненты и технологии. 2008. № 8.
  10. Зотов В. Инструментальный модуль компании Avnet для отладки проектов встраиваемых систем, разрабатываемых на базе нового семейства ПЛИС FPGA фирмы Xilinx Virtex-5 FXT // Компоненты и технологии. 2008. № 9.
  11. Зотов В. Особенности архитектуры нового поколения высокопроизводительных ПЛИС FPGA фирмы Xilinx серии Virtex-6 // Компоненты и технологии. 2009. № 8.
  12. Зотов В. Особенности архитектуры нового поколения ПЛИС FPGA фирмы Xilinx серии Spartan-6 // Компоненты и технологии. 2009. № 9.
  13. Зотов В. Новое семейство высокопроизводительных ПЛИС с архитектурой FPGA фирмы Xilinx Virtex-6 HXT // Компоненты и технологии. 2010. № 1.
  14. IEEE Standard VHDL Language Reference Manual. IEEE Std 1076-2002.
  15. Суворова Е. А., Шейнин Ю. Е. Проектирование цифровых систем на VHDL. СПб.: БХВ-Петербург, 2003.
  16. Сергиенко A. M. VHDL для проектирования вычислительных устройств. Киев: ЧП «Корнейчук», ООО «ТИД «ДС», 2003.
  17. Зотов В. Проектирование цифровых устройств, реализуемых на базе ПЛИС FPGA фирмы Xilinx, с использованием средств CORE Generator // Компоненты и технологии. 2006. № 12. 2007. № 1.
  18. Зотов В. Разработка компонентов устройств цифровой обработки сигналов, реализуемых на базе аппаратных модулей DSP48E в ПЛИС FPGA серии Virtex-5, с помощью «мастера» Architecture Wizard САПР серии Xilinx ISE // Компоненты и технологии. 2008. № 12. 2009. № 1, 4–7.
  19. Spartan-3 Generation FPGA User Guide. Xilinx, 2009.
  20. Spartan-3 FPGA Family: Complete Data Sheet. Xilinx, 2009.
  21. Spartan-3 Generation Configuration User Guide. Xilinx, 2009.
  22. Зотов В. Особенности архитектуры нового поколения ПЛИС FPGA фирмы Xilinx серии Spartan-6 // Компоненты и технологии. 2009. № 9.
  23. Spartan-6 Family Overview. Xilinx, 2009.
  24. Spartan-6 FPGA Configuration User Guide. Xilinx, 2009.
  25. Spartan-6 FPGA SelectIO Resources User Guide. Xilinx, 2009.
  26. Spartan-6 FPGA Clocking Resources User Guide. Xilinx, 2009.
  27. Spartan-6 FPGA Block RAM User Guide. Xilinx, 2009.
  28. Spartan-6 FPGA Configurable Logic Block User Guide. Xilinx, 2009.
  29. Spartan-6 FPGA GTP Transceivers User Guide. Xilinx, 2009.
  30. Spartan-6 FPGA Memory Controller User Guide. Xilinx, 2009.
  31. Spartan-6 FPGA DSP48A1 User Guide. Xilinx, 2009.
  32. Spartan-6 FPGA Data Sheet: DC and Switching Characteristics. Xilinx, 2009.
  33. Spartan-6 FPGA Power Management User Guide. Xilinx, 2009.

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

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5
Часть 6 Часть 7 Часть 8 Часть 9 Часть 10
Часть 11 Часть 12 Часть 13 Часть 14 Часть 15
Часть 16 Часть 17 Часть 18 Часть 19 Часть 20
Часть 21

Скачать статью в формате PDF  Скачать статью Компоненты и технологии PDF

 


Другие статьи по данной теме:

Сообщить об ошибке