Научная статья на тему 'Разработка VHDL-описаний цифровых устройств, проектируемых на основе ПЛИС фирмы Xilinx, с использованием шаблонов САПР ise design suite'

Разработка VHDL-описаний цифровых устройств, проектируемых на основе ПЛИС фирмы Xilinx, с использованием шаблонов САПР ise design suite Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

CC BY
121
14
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по электротехнике, электронной технике, информационным технологиям, автор научной работы — Зотов Валерий

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по электротехнике, электронной технике, информационным технологиям , автор научной работы — Зотов Валерий

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Разработка VHDL-описаний цифровых устройств, проектируемых на основе ПЛИС фирмы Xilinx, с использованием шаблонов САПР ise design suite»

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

Разработка VHDL-описаний цифровых устройств,

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

Валерий ЗОТОВ

walerry@km.ru

Восемнадцатая часть статьи продолжает ознакомление с шаблонами VHDL-описаний элементов, выполненных на основе экземпляров библиотечных примитивов, которые предназначены для непосредственной реализации на базе соответствующих аппаратных ресурсов кристаллов программируемой логики семейств Spartan-6 LX и Бра^ап-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_CRCJNTERNALjnst) 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—>

--POSTjCRCjINTERNAL: Post-configuration CRC error detection --Spartan-6

--Xilinx HDL Language Template, version 12.4

POSTjCRCjINTERNALjinst : POST_CRC_INTERNAL port map (

CRCERROR => CRCERROR -- 1-bit output Postconfiguration CRC error output );

-- End of POSTJCRCJINTERNALJinst 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.

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

POST_CRC_INTERNAL CRCERROR

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

сурсов в процессе конфигурирования кристалла (на фазе Start-Up) [24]. Основу этого шаблона образует оператор создания экземпляра библиотечного примитива STARRTUP_ 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, информирующего о завершении фазы StartUp процесса конфигурирования ПЛИС;

• 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.

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

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

-- SIM_CONF!G_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 Preprogrammed 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.

Рис. 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

STARTUP. .SPARTAN6

CLK CFGCLK

GSR

CFGMCLK

GTS

KEYCLEARB EOS

SIM. _CONFIG_S6

DONE BUSY

CCLK

CSIB

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

D

INITB

M

PROGB CSOB

RDWRB

-- 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 Preprogrammed 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.

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

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

-- 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.

Differential Buffer with Differential Output (IBUFDS_DIFF_OUT) включает в себя шаблон VHDL-описания входного буферного элемента с дифференциальными входами и выходами, используемого в составе устройств, разрабатываемых на основе кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, для подключения внешних сигналов, представленных в соответствии с одним из поддерживаемых

SUSPEND_SYNC CLK SREQ SACK

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

дифференциальных стандартов ввода/вывода. В качестве основы этого шаблона используется оператор создания экземпляра библиотечного примитива 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 (

0 => O, -- Buffer diff_p output OB => OB, -- Buffer diff_n output

1 => I, -- Diff_p buffer input (connect directly to toplevel port)

IB => IB -- Diff_n buffer input (connect directly to toplevel 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 — инверсный вход дифференциальной пары сигналов.

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

SIM_CONFIG_S6_SERIAL

DONE DOUT

CCLK

DIN

INITB

M

PROGB

ми входами и выходами, для подготовки описания которого используется шаблон Differential Buffer with Differential Output (IBUFDS_DIFF_OUT), показан на рис. 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.aH;

-- <-----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 (

0 => O, -- Buffer diff_p output

OB => OB, -- Buffer diff_n output

1 => I, -- Diff_p buffer input (connect directly to toplevel port)

IB => IB -- Diff_n buffer input (connect directly to toplevel 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-описания входного последовательно-параллельного преобразо-

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

IBUFDS_DIFF_OUT IBUFGDS DIFF OUT

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

вателя, реализуемого на базе соответствующих аппаратных ресурсов ввода/вывода 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, приведена на рис. 244. В их составе представлены вход-

Программируемый модуль задержки I0DELAY2

Входная логика/ Последовательно-

параллельный преобразователь ILOGIC2/ISERDES2

Выходная логика/

Параллельно-последовательный преобразователь OLOGIC2/OSERDES2

Входная логика/ Последовательно-

параллельный преобразователь ILOGIC2/ISERDES2

Выходная логика/

Параллельно-последовательный преобразователь OLOGIC2/OSERDES2

Программируемый модуль задержки I0DELAY2

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

ная/выходная логика ЮLOGIC (входные и выходные триггеры), программируемые схемы входной и выходной задержек, а также программируемые последовательно-параллельные и параллельно-последовательные преобразователи входных и выходных данных соот-

Блок Вывод ПЛИС

ввода/ вывода Pad

ЮВ

Блок Вывод ПЛИС

ввода/ вывода Pad

ЮВ

Input Serial Data

I/O Clock

— >

С

Схема управления функцией BITSLIP

О D

> CE

-SerDes Strobe ЮСЕ

Bitsllp Enable

Выходы данных

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

I/O Clock Input Serial Data

SerDes Strobe IOCE

Register С X Global Clock Register D

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

ветственно. Разрядность параллельного кода в этих преобразователях можно выбирать в диапазоне от 2 до 4 бит. Каждая логическая ячейка ввода/вывода содержит две части с одинаковой структурой: основную (Master) и подчиненную (Slave). Такая организация необходима для реализации дифференциальных интерфейсов ввода/вывода с использованием параллельно-последовательных и последовательно-параллельных преобразователей данных.

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

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

I/O Clock J4/\A/VV\A/VVV^ Блок входных данных ТХЮф(Ю<1ХЮ(Ю(Ю®®®(^^

I/O Clock Enable __!__/ \_!__/ \_/ТД_/ТД_/~Д|_

Bitslip Enable /¡Л_/|Д_/|~Д_/|Д_/|~\_

Выходы регистра В }Г 0100 X 0100 X 0010 8С~ 0010 !Х 0001

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

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.

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

• CFB0 — выход первого сигнала синхронизации;

• CFB1 — выход второго сигнала синхронизации;

• DFB — выход задержанного сигнала синхронизации;

• FABRICOUT — выход несинхронизиро-ванных данных;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• INCDEC — выход сигнала фазового детектора, информирующего о необходимости увеличения или уменьшения величины задержки принимаемых данных;

• Q1 — выход первого разряда формируемого параллельного кода;

• Q2 — выход второго разряда формируемого параллельного кода;

• Q3 — выход третьего разряда формируемого параллельного кода;

• Q4 — выход четвертого разряда формируемого параллельного кода;

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

• SHIFTOUT — выход данных, предназначенный для организации каскадного соединения последовательно-параллельных преобразователей;

• VALID — выход сигнала фазового детектора, информирующего о достоверности переключения входных данных;

• BITSLIP — вход сигнала управления функцией Bitslip;

• CE0 — вход сигнала разрешения синхронизации для выходного регистра преобразователя;

• CLK0 — вход первого сигнала синхронизации;

• CLK1 — вход второго сигнала синхронизации;

• CLKDIV — вход сигнала синхронизации, предназначенного для тактирования логических ресурсов ПЛИС, сопряженных с выходом последовательно-параллельного преобразователя;

• D — вход данных, поступающих в виде последовательного двоичного кода;

• IOCE — вход сигнала стробирования данных;

• RST — вход сигнала асинхронного сброса;

• SHIFTIN — вход данных, предназначенный для организации каскадного соединения последовательно-параллельных преобразователей.

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

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

ISERDES2

BITSLIP CFB0

СЕ0 CFB1 DFB

CLK0 FABRICOUT

CLK1 INCDEC

CLKDIV Q1

D Q2 Q3

ЮСЕ 04

RST SHIFTOUT

SHIFTIN VALID

разом, возможный диапазон изменения значений задержек (количество эквивалентных отводов линии задержки) находится в пределах от 0 до 255.

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

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

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

-- 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

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

Основу приведенной конструкции образует экземпляр библиотечного примитива 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 — выход сигнала задержанных данных, предназначенный для подключения к основным логическим ресурсам ПЛИС;

Global Clock \ / \ = /- \ )

INCDEC (( х )

BUSY ( /-Ь -

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

• DOUT — выход сигнала задержанных данных формируемого элемента выходной задержки;

• TOUT — тристабильный выход сигнала задержанных данных формируемого элемента выходной задержки;

• CAL — вход сигнала активизации процедуры калибровки;

• CE — вход сигнала разрешения инкремента или декремента задержки;

• CLK — вход глобального тактового сигнала;

• IDATAIN — вход данных;

• INC — вход сигнала инкремента или декремента задержки;

• IOCLK0 — вход первого сигнала синхронизации входных данных;

• IOCLK1 — вход второго сигнала синхронизации входных данных;

• ODATAIN — вход данных, подключаемый к выходу регистра или преобразователя параллельного кода в последовательный;

• RST — вход сигнала сброса;

• T — вход сигнала переключения триста-бильного выхода в состояние высокого импеданса.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Чтобы сформировать на основе шаблона 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, иллюстрируют процесс коррекции значения задержки в формируемом элементе.

Значение 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.

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

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

IODELAY2

CAL BUSY

СЕ

CLK DATAOUT

IDATAIN

INC DATAOUT2

lOCLKO

IOCLK1

ODATAIN DOUT

RST

T TOUT

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

Global Clock Input Parallel Data Register A I/O Clock Serdes Strobe Register B Serial Output Data

IX X

¡X X

Рис. 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

ют два 4-разрядных параллельных регистра и два 4-разрядных регистра сдвига с параллельной загрузкой данных.

На рис. 254 представлены временные диаграммы сигналов, демонстрирующие процесс функционирования выходного преобразователя параллельного кода данных в последовательный, выполненного

на базе соответствующих аппаратных ресурсов ввода/вывода SelectЮ ПЛИС серии Spartan-6.

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

В качестве основы представленного шаблона используется оператор создания экземпляра библиотечного примитива 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-Т4 — входы данных, представленных в виде параллельного двоичного кода, подключаемые к тристабильным выходам.

• TCE — вход сигнала разрешения синхронизации для входных параллельных регистров, подключаемых к тристабильным выходам.

• TRAIN — вход сигнала разрешения передачи настроечной комбинации данных. Для формирования законченного описания

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Затем следует установить режим передачи выходных данных, воспользовавшись параметрами настройки 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. Условный графический образ выходного преобразователя параллельного кода в последовательный

OSERDES2

CLK0 OQ

CLK1

CLKDIV

D1

D2 SHIFTOUT1

D3

D4

ЮСЕ

ОСЕ SHIFTOUT2

RST

SHIFTIN1

SHIFTIN2

SHIFTIN3 SHIFTOUT3

SHIFTIN4

Т1

Т2

ТЗ SHIFTOUT4

Т4

ТСЕ

TRAIN TQ

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

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-портовой оперативной памяти автоматически устанавливается соответствующая разрядность шин адресов, сигналов разрешения записи, а также всех входных и выходных шин информационных данных, включая шины, предназначенные для осуществления контроля четности.

-- 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_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.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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-б FPGA Configuration User Guide. Xilinx, 2009.

25. Spartan-б FPGA SelectIO Resources User Guide. Xilinx, 2009.

26. Spartan-б FPGA Clocking Resources User Guide. Xilinx, 2009.

27. Spartan-б FPGA Block RAM User Guide. Xilinx, 2009.

28. Spartan-б FPGA Configurable Logic Block User Guide. Xilinx, 2009.

29. Spartan-б FPGA GTP Transceivers User Guide. Xilinx, 2009.

30. Spartan-б FPGA Memory Controller User Guide. Xilinx, 2009.

31. Spartan-б FPGA DSP48A1 User Guide. Xilinx, 2009.

32. Spartan-б FPGA Data Sheet: DC and Switching Characteristics. Xilinx, 2009.

33. Spartan-б FPGA Power Management User Guide. Xilinx, 2009.

i Надоели баннеры? Вы всегда можете отключить рекламу.