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

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

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

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

В 21-й части статьи мы продолжим изучение образцов VHDL-описаний элементов, выполненных на основе экземпляров библиотечных примитивов, которые предназначены для реализации на базе соответствующих аппаратных ресурсов кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX [34-43]. Представлены шаблоны описаний компонентов, применяемых в составе блоков синхронизации разрабатываемых устройств и для организации периферийного сканирования в ПЛИС серии Virtex-4. Рассмотрены образцы описаний входных и выходных регистров с удвоенной скоростью передачи данных, а также элементов программируемой входной задержки.

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

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

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

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

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

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

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

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

walerry@km.ru

В 21-й части статьи мы продолжим изучение образцов VHDL-описаний элементов, выполненных на основе экземпляров библиотечных примитивов, которые предназначены для реализации на базе соответствующих аппаратных ресурсов кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 БХ и Virtex-4 FX [34—43]. Представлены шаблоны описаний компонентов, применяемых в составе блоков синхронизации разрабатываемых устройств и для организации периферийного сканирования в ПЛИС серии Virtex-4. Рассмотрены образцы описаний входных и выходных регистров с удвоенной скоростью передачи данных, а также элементов программируемой входной задержки.

Base DCM (DCM_BASE) является шаблоном VHDL-описания базового варианта конфигурирования цифрового модуля управления синхронизацией DCM кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX. В качестве основы этого шаблона используется оператор создания экземпляра библиотечного примитива DCM_BASE, который поддерживает наиболее часто востребованные функциональные возможности цифрового модуля управления синхронизацией. Компоненты, создаваемые с помощью шаблона Base DCM (DCM_BASE), можно применять для формирования тактовых сигналов с требуемыми значениями частоты и фиксированным фазовым сдвигом, а также для устранения временных перекосов при распространении сигналов синхронизации:

-- DCM_BASE : 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 : (DCM_BASE_inst) and/or the port declarations after the -- code : "=>" declaration maybe changed to properly reference and -- : connect this function to the design. All inputs -- : 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--->

-- DCM_BASE: Base Digital Clock Manager Circuit -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

DCM_BASE_inst : DCM_BASE generic map (

CLKDV_DIVIDE => 2.0, -- Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4 .5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0 CLKFX_DIVIDE => 1, -- Can be any integer from 1 to 32 CLKFX_MULTIPLY => 4, -- Can be any integer from 2 to 32 CLKIN_DIVIDE_BY_2 => FALSE, -- TRUE/FALSE to enable CLKIN divide by two feature

CLKIN_PERIOD => 10.0, -- Specify period of input clock in ns from 1.25 to 1000.00

CLKOUT_PHASE_SHIFT => "NONE", -- Specify phase shift mode of NONE or FIXED

CLK_FEEDBACK => "1X", -- Specify dock feedback of NONE or 1X DCM_PERFORMANCE_MODE => "MAX_SPEED", -- Can be MAX_SPEED or MAX_RANGE

DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", --SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or an integer from 0 to 15

DFS_FREQUENCY_MODE => "LOW", -- LOW or HIGH frequency mode for frequency synthesis

DLL_FREQUENCY_MODE => "LOW", -- LOW, HIGH, or HIGH_SER frequency mode for DLL

DUTY_CYCLE_CORRECTION => TRUE, -- Duty cycle correction, TRUE or FALSE

FACTORY_JF => X"F0F0", -- FACTORY JF Values Suggested to be set to X"F0F0"

PHASE_SHIFT => 0, -- Amount of fixed phase shift from -255

to 1023

STARTUP_WAIT => FALSE) -- Delay configuration DONE until DCM LOCK, TRUE/FALSE port map (

CLK0 => CLK0, -- 0 degree DCM CLK ouptput CLK180 => CLK180, -- 180 degree DCM CLK output CLK270 => CLK270, -- 270 degree DCM CLK output CLK2X => CLK2X, -- 2X DCM CLK output CLK2X180 => CLK2X180, -- 2X, 180 degree DCM CLK out CLK90 => CLK90, -- 90 degree DCM CLK output CLKDV => CLKDV, -- Divided DCM CLK out (CLKDV_DIVIDE) CLKFX => CLKFX, -- DCM CLK synthesis out (M/D) CLKFX180 => CLKFX180, -- 180 degree CLK synthesis out LOCKED => LOCKED, -- DCM LOCK status output CLKFB => CLKFB, -- DCM clock feedback CLKIN => CLKIN, -- Clock input (from IBUFG, BUFG or DCM) RST => RST -- DCM asynchronous reset input

);

-- End of DCM_BASE_inst instantiation

Настраиваемые параметры библиотечного примитива DCM_BASE имеют то же предназначение, что и в шаблоне DCM (DCM_ADV), который был рассмотрен в предыдущей части статьи. Система условных обозначений входных и выходных портов, используемых в описании интерфейса этого библиотечного примитива, содержит идентификаторы, назначение которых было представлено при рассмотрении шаблона DCM (DCM_ADV).

На рис. 304 приведен условный графический образ компонента, описание которого формируется с помощью шаблона Base DCM (DCM_BASE) для последующей реализации

DCM_BASE

CLKIN CLK0 -

CLK90 -

CLKFB CLK180 -

CLK270 -

RST CLK2X -

CLK2X180 -

CLKDV -

CLKFX -

CLKFX180 -

LOCKED -

Рис. 304. Условный графический образ компонентов, формируемых с помощью шаблона Base DCM (DCM_BASE)

на базе цифрового модуля управления синхронизацией ПЛИС серии Virtex-4.

Типовая схема включения компонента, создаваемого на базе библиотечного примитива DCM_BASE, изображена на рис. 305.

Эта схема позволяет формировать совокупность тактовых сигналов с заданным постоянным фазовым сдвигом. Временные диаграммы входных и выходных сигналов, поясняющие функционирование компонентов, реализующих базовый вариант конфигурирования цифрового модуля управления синхронизацией DCM в кристаллах программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX, для подготовки описаний которых используется шаблон Base DCM (DCM_BASE), показаны на рис. 306.

CLK2X • • LOCKED - f^™

Рис. 306. Временные диаграммы сигналов, поясняющие функционирование компонента, формируемого с помощью шаблона Base DCM (DCM_BASE)

Dynamic Phase Shift DCM (DCM_PS) содержит образец описания варианта конфигурирования цифрового модуля управления синхронизацией DCM в составе ПЛИС серии Virtex-4, предоставляющего возможность формирования тактовых сигналов с динамически изменяемым фазовым сдвигом. Этот вариант конфигурирования модуля DCM кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX отличается от базового поддержкой функции динамической коррекции величины фазового сдвига выходных сигналов. На рис. 307 представлены временные диаграммы входных и выходных сигналов цифрового модуля управления синхронизацией ПЛИС серии Virtex-4, соответствующие режиму динамического изменения фазового сдвига формируемых тактовых сигналов.

Рассматриваемый шаблон включает в себя следующую конструкцию:

-- DCM_PS : 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 : (DCM_PS_inst) and/or the port declarations after the -- code : "=>" declaration maybe changed to properly reference and -- : connect this function to the design. All inputs -- : 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

CLKIN_

1_____Г

CLKO_Г

PSCLK_Г

I~L_T

PSEN_ PSDONE_ PSINCDEC

1 DMCCK_PSEN

DMCCK_PSOONE

1 DMCCK_PSINCDEC

Рис. 307. Временные диаграммы сигналов, соответствующие режиму динамического изменения фазового сдвига тактовых сигналов, формируемых модулем DCM

-- Entity declaration, unless they already exist.

Library UNISIM;

use UNISIM.vcomponents.all;

-- <---Cut code below this line and paste into the architecture body--->

-- DCM_PS: Digital Clock Manager Circuit -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

DCM_PS_inst : DCM_PS generic map (

CLKDV_DIVIDE => 2.0, -- Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4 .5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0 CLKFX_DIVIDE => 1, -- Can be any integer from 1 to 32 CLKFX_MULTIPLY => 4, -- Can be any integer from 2 to 32 CLKIN_DIVIDE_BY_2 => FALSE, -- TRUE/FALSE to enable CLKIN divide by two feature

CLKIN_PERIOD => 10.0, -- Specify period of input clock in ns from 1.25 to 1000.00

CLKOUT_PHASE_SHIFT => "NONE", -- Specify phase shift mode of NONE, FIXED, -- VARIABLE_POSITIVE, VARIABLE_ CENTER or DIRECT

CLK_FEEDBACK => "1X", -- Specify clock feedback of NONE

or 1X

DCM_PERFORMANCE_MODE => "MAX_SPEED", -- Can be MAX_SPEED or MAX_RANGE

DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", --SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or an integer from 0 to 15

DFS_FREQUENCY_MODE => "LOW", -- HIGH or LOW frequency mode for frequency synthesis

DLL_FREQUENCY_MODE => "LOW", -- LOW, HIGH, or HIGH_SER frequency mode for DLL

DUTY_CYCLE_CORRECTION => TRUE, -- Duty cycle correction, TRUE or FALSE

FACTORYJF => X"F0F0", -- FACTORY JF Values Suggested to be set to X"F0F0"

PHASE_SHIFT => 0, -- Amount of fixed phase shift from -255

to 1023

STARTUP_WAIT => FALSE) -- Delay configuration DONE until DCM LOCK, TRUE/FALSE port map (

CLK0 => CLK0, -- 0 degree DCM CLK ouptput CLK180 => CLK180, -- 180 degree DCM CLK output CLK270 => CLK270, -- 270 degree DCM CLK output CLK2X => CLK2X, -- 2X DCM CLK output CLK2X180 => CLK2X180, -- 2X, 180 degree DCM CLK out CLK90 => CLK90, -- 90 degree DCM CLK output CLKDV => CLKDV, -- Divided DCM CLK out (CLKDV_DIVIDE) CLKFX => CLKFX, -- DCM CLK synthesis out (M/D) CLKFX180 => CLKFX180, -- 180 degree CLK synthesis out DO => DO, -- 16-bit data output for Dynamic Reconfiguration Port (DRP)

LOCKED => LOCKED, -- DCM LOCK status output PSDONE => PSDONE, -- Dynamic phase adjust done output CLKFB => CLKFB, -- DCM clock feedback CLKIN => CLKIN, -- Clock input (from IBUFG, BUFG or DCM) PSCLK => PSCLK, -- Dynamic phase adjust clock input PSEN => PSEN, -- Dynamic phase adjust enable input PSINCDEC => PSINCDEC, -- Dynamic phase adjust increment/ decrement

RST => RST -- DCM asynchronous reset input

);

-- End of DCM_PS_inst instantiation

Приведенный шаблон выполнен на основе экземпляра библиотечного примитива DCM_PS, который представляет указанный вариант конфигурирования цифрового модуля управления синхронизацией DCM в кристаллах программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX. Параметры настройки и идентификаторы входных и выходных портов, используемые в этом библиотечном примитиве, имеют то же назначение, что и в шаблоне DCM (DCM_ADV).

На рис. 308 представлен условный графический образ компонента, формируемого с помощью шаблона Dynamic Phase Shift DCM (DCM_PS) и реализуемого на базе цифрового модуля управления синхронизацией ПЛИС серии Virtex-4.

Phase-Matched Clock Divider (PMCD) представляет собой шаблон VHDL-описания делителей частоты тактового сигнала, применя-

DCM _PS

— CLKIN CLK0 -

_ CLKFB CLK90 -

CLK180 -

RST CLK270 _

-

CLK2X -

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

— PSINCDEC CLK2X180 -

— PSEN CLKDV -

_ PSCLK

CLKFX -

CLKFX180 -

LOCKED -

PSDONE -

D0[15:0] -

Рис. 308. Условный графический образ компонентов, формируемых с помощью шаблона Dynamic Phase Shift DCM (DCM_PS)

емых в кристаллах программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX. В состав архитектуры ПЛИС серии Virtex-4, за исключением кристаллов XC4VLX15, XC4VSX25, XC4VFX12 и XC4VFX20, входят делители частоты сигналов синхронизации, которые позволяют формировать выходные сигналы с жесткой привязкой по фазе к входным сигналам. Эти модули осуществляют 2-, 4- и 8-кратное деление частоты тактового сигнала, подаваемого на первый вход, а также фиксированную задержку сигналов синхронизации, поступающих на три других входа. На рис. 309 приведена типовая схема включения делителя частоты тактового сигнала PMCD.

Временные диаграммы входных и выходных сигналов, поясняющие функционирование делителя частоты сигнала синхронизации PMCD, показаны на рис. 310.

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

При необходимости формирования совокупности сигналов синхронизации с более разнообразным набором частот в разрабатываемом устройстве делители частоты тактового сигнала PMCD можно использовать совместно с цифровыми модулями управления синхронизацией DCM кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX. Вариант схемы блока синхронизации, выполненного на базе модулей PMCD и DCM, изображен на рис. 312.

Совместно с одним цифровым модулем управления синхронизацией DCM можно использовать два делителя частоты тактового сигнала PMCD, как показано на рис. 313.

PMCD

GCLK

юв

CLKA CLKA1

CLKA1D2

RST CLKA1D4

REL CLKA1D8

RST_DEASSERT_CLK = CLKA EN REL= FALSE

BUFG

-O—

—o—■ -c>—

Рис. 309. Типовая схема включения делителя частоты тактового сигнала PMCD

CLKD1

PMCCKO_CLKIN "

Рис. 310. Временные диаграммы входных и выходных сигналов делителя частоты сигнала синхронизации PMCD

RST_DEASSERT_CLK = CLKA RST_DEASSERT_CLK = CLKA

EN_REL = FALSE EN_REL = FALSE

Рис. 311. Схема последовательного соединения двух делителей частоты тактового сигнала PMCD

DCM

Reset

CLKIN CLK0

CLKFB

CLKDV

RST LOCKED

~L

CLKDV DIVIDE = 16

PMCD

n

CLKA

CLKB

RST

REL CLKB1

BUFGs

RST_DEASSERT_CLK = CLKB EN REL= FALSE

Рис. 312. Схема совместного применения делителя частоты сигнала синхронизации PMCD и модуля DCM

RST_DEASSERT_CLK = CLKB EN_REL = TRUE

Рис. 313. Схема совместного применения модуля DCM и двух делителей частоты сигнала синхронизации PMCD

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

Шаблон описания делителя частоты тактового сигнала выполнен на основе экземпляра библиотечного примитива PMCD:

В библиотечном примитиве PMCD предусмотрены два настраиваемых параметра —

EN_REL и RST_DEASSERT_CLK. Параметр EN_REL разрешает или запрещает использование сигнала на входе REL для управления выходами 2-, 4- и 8-кратного деления частоты входного сигнала синхронизации. Параметр RST_DEASSERT_CLK позволяет выбрать вход тактового сигнала, с которым синхронизируется выполнение операции сброса. Список возможных значений этого параметра включает в себя четыре варианта, которые соответствуют условным обозначениям соответствующих входов делителя частоты тактового сигнала — ^КА, ^КВ, ^КС и ^ГО. По умолчанию для параметра RST_DEASSERT_CLK указан вариант ^КА.

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

• ^КА1 — выход сигнала синхронизации, значение частоты которого совпадает с частотой тактового сигнала на входе ^КА.

• ^КАШ2 — выход двукратного делителя частоты тактового сигнала, подаваемого на вход ^КА.

• ^КАШ4 — выход 4-кратного делителя частоты сигнала синхронизации, поступающего на вход ^КА.

• ^КАШ8 — выход 8-кратного делителя частоты тактового сигнала, подаваемого на вход ^КА.

• ^КВ1, ^КС1 и — выходы задержанных сигналов синхронизации, поступающих на входы ^КВ, ^КС и ^ГО соответственно.

• ^КА — вход делителей частоты тактового сигнала.

• ^КВ, ^КС, ^ГО — входы схем задержки сигналов синхронизации.

• REL — вход сигнала управления выходами делителей частоты.

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

На рис. 314 приведен условный графический образ компонентов, описания кото-

-- PMCD : 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 (PMCD_inst) and/or the port declarations -- code : after the "=>" assignment maybe changed to properly -- : connect this function to the design. All inputs -- : 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.

-- : Note: This component can not be retargeted to future architectures

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

-- PMCD: Phase-Matched Clock Divider Circuit -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

PMCD_inst : PMCD generic map (

EN_REL => FALSE, -- TRUE/FALSE to allow synchronous deassertion of RST

RST_DEASSERT_CLK => "CLKA") -- Reset syncronization to which clock: CLKA, CLKB, CLKC or CLKD port map (

CLKA1 => CLKA1, -- Output CLKA divided by 1 CLKA1D2 => CLKA1D2, -- Output CLKA divided by 2 CLKA1D4 => CLKA1D4, -- Output CLKA divided by 4 CLKA1D8 => CLKA1D8, -- Output CLKA divided by 8 CLKB1 => CLKB1, -- Output phase matched CLKB CLKC1 => CLKC1, -- Output phase matched CLKC CLKD1 => CLKD1, -- Output phase matched CLKD CLKA => CLKA, -- Input CLKA CLKB => CLKB, -- Input CLKB CLKC => CLKC, -- Input CLKC CLKD => CLKD, -- Input CLKD REL => REL, -- PCMD release input RST => RST -- Active high reset input

);

-- End of PMCD_inst instantiation

PMCD

— CLKA CLKA1 -

CLKA1D2 -

- RST

CLKA1D4 -

- REL

CLKA1D8 -

— CLKB CLKB1 -

— CLKC CLKC1 -

— CLKD CLKD1 -

Рис. 314. Условный графический образ компонентов, формируемых с помощью шаблона Phase-Matched Clock Divider (PMCD)

рых создаются с помощью шаблона Phase-Matched Clock Divider (PMCD) для последующей реализации на базе делителей частоты тактового сигнала кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX.

Boundary Scan (BSCAN_VIRTEX4) включает в себя образец VHDL-описания компонента, предназначенного для осуществления операций периферийного сканирования в ПЛИС серии Virtex-4. В основе этого шаблона — оператор создания экземпляра библиотечного примитива BSCAN_VIRTEX4:

-- BSCAN_VIRTEX4: 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 instance name -- declaration : (BSC.AN_VIRTEX4_instt) and/or the port declarations after the -- code : "=>" assignment maybe changed to properly reference and connect this

-- : function to the design. All inputs 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;

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

-- <---Cut code below this line and paste into the architecture body--->

-- BSCAN_VIRTEX4: Boundary Scan primitve for connecting internal logic to

-- JTAG interface. -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

BSCAN_VIRTEX4_inst : BSCAN_VIRTEX4 generic map (

JTAG_CHAIN => 1) -- Value to set BSCAN site of device. Possible values: (1,2,3 or 4) port map (

CAPTURE => CAPTURE, -- CAPTURE output from TAP controller

DRCK => DRCK, -- Data register output for USER functions

RESET => RESET, -- Reset output from TAP controller

SEL => SEL, -- USER active output

SHIFT => SHIFT, -- SHIFT output from TAP controller

TDI => TDI, -- TDI output from TAP controller

UPDATE => UPDATE, -- UPDATE output from TAP controller

TDO => TDO -- Data input for USER function

);

-- End of BSCAN_VIRTEX4_inst instantiation

В библиотечном примитиве BSCAN_ VIRTEX4 применяется тот же параметр на-

стройки и условные обозначения входных и выходных портов, что и в шаблоне JTAG Boundary Scan Logic Control Circuit (BSCAN_ SPARTAN6), рассмотренном ранее.

Условный графический образ компонента, формируемого с помощью шаблона Boundary Scan (BSCAN_VIRTEX4) для выполнения операций периферийного сканирования в кристаллах программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX, показан на рис. 315.

BSCAN_VI RTEX4

CAPTURE

DRCK

RESET TD01 SEL

SHIFT

TD I

UPDATE

В библиотечном примитиве CAPTURE_ VIRTEX4 для ограничения количества выполняемых операций обратного чтения данных за один цикл предусмотрен настраиваемый параметр ONESHOT. По умолчанию этому параметру присваивается значение TRUE, соответствующее выполнению одной операции чтения данных в течение одного цикла.

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

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

• CLK — вход сигнала синхронизации.

На рис. 316 изображен условный графический образ элемента, предназначенного для организации обратного чтения конфигурационных данных из кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX, описание которого формируется с помощью шаблона CAPTURE (CAPTURE_VIRTEX4).

Рис. 315. Условный графический образ компонента, предназначенного для организации периферийного сканирования в ПЛИС серии Viгtex-4

CAPTURE (CAPTURE_VIRTEX4) является шаблоном описания элемента, предоставляющего возможность организации обратного чтения конфигурационных данных из кристаллов программируемой логики серии Virtex-4. Основу этого шаблона образует оператор создания экземпляра библиотечного примитива CAPTURE_VIRTEX4:

-- CAPTURE_VIRTEX4 : 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 : (CAPTURE_VIRTEX4_mst) and/or the port declarations after the

-- code : "=>" assignment maybe changed to properly reference and -- : connect this function to the design. All inputs 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--->

-- CAPTURE_VIRTEX4: Register State Capture for Bitstream Readback -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

CAPTURE_VIRTEX4_inst : CAPTURE_VIRTEX4 generic map (

ONESHOT => TRUE) -- TRUE or FALSE port map (

CAP => CAP, -- Capture input CLK => CLK -- Clock input

);

-- End of CAPTURE_VIRTEX4_inst instantiat

-- USR_ACCESS_VIRTEX4: Configuration Data Memory Access Port -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

USR_ACCESS_VIRTEX4_inst : USR_ACCESSS_VIRTEX4 port map (

DATA => DATA, -- 32-bit config data output DATAVALID => DATAVALID -- 1-bit data valid output

);

-- End of USR_ACCESS_VIRTEX4_inst instantiation

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

• DATA — 32-разрядная выходная шина данных;

• DATAVALID — выход сигнала, информирующего о достоверности конфигурационных данных, представленных на шине DATA.

Условный графический образ 32-разрядного регистра, обеспечивающего возможность прямого доступа к данным конфигурационной последовательности в кристаллах программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX, для подготовки описания которого используется шаблон Config Data Access (USR_ACCESS_VIRTEX4), приведен на рис. 317.

USR_ACCESS_VIRTEX4

DATA(31:0) DATAVALID

Config Data Access (USR_ACCESS_VIRTEX4) содержит образец VHDL-описания 32-разрядного регистра, предоставляющего прямой доступ к данным конфигурационной последовательности в ПЛИС серии Virtex-4. В качестве основы этого шаблона используется экземпляр библиотечного примитива USR_ACCESS_VIRTEX4.

--USR_ACCESS_VIRTEX4: 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 instance name -- declaration : (USR_ACCESS_VIRTEX4_inst) and/or the port declarations after the

-- code : "=>" assignment maybe changed to properly reference and connect this

-- : function to the design. All inputs 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-->

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

формируемого с помощью шаблона

Config Data Access (USR_ACCESS_VIRTEX4)

Config Frame Error Correction (FRAME_ ECC_VIRTEX4) представляет собой шаблон описания элемента, используемого для обнаружения ошибок в конфигурационной последовательности в процессе обратного чтения блока данных из ПЛИС серии Virtex-4. В составе кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX присутствует логика контроля и коррекции ошибок Frame error correction code (ECC) logic, которая позволяет осуществлять коррекцию одиночной ошибки и обнаружение двойной ошибки в считываемом блоке конфигурационной последовательности. Для описания элемента, реализуемого на базе этой логики, предусмотрен библиотечный примитив FRAME_ECC_VIRTEX4, который используется в качестве основы рассматриваемого шаблона.

--FRAME_ECC_VIRTEX4: 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 (FRAME_ECC_VIRTEX4_inst) and/ or the port declarations

-- code : after the "=>" assignment maybe changed to properly -- : 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-->

-- FRAME_ECC_VIRTEX4: Configuration Frame Error Correction Circuitry -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

FRAME_ECC_VIRTEX4_inst : FRAME_ECC_VIRTEX4 port map (

ERROR => ERROR, SYNDROME => SYNDROME, SYNDROMEVALID => SYNDROMEVALID

);

-- End of FRAME_ECC_VIRTEX4_inst instantiation

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

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

• SYNDROME — выходная 12-разрядная шина, совокупность значений сигналов которой указывает расположение ошибочных разрядов в считанном блоке данных.

• SYNDROMEVALID — выход сигнала, уведомляющего о достоверности результатов контроля блока конфигурационных данных.

На рис. 318 показан условный графический образ элемента, описание которого формируется с помощью шаблона Config Frame Error Correction (FRAME_ECC_VIRTEX4) для последующей реализации на базе логики контроля и коррекции ошибок ECC ПЛИС серии Virtex-4.

FRAM E_ECC_VI RTEX4

ERROR -

SYNDROME(11:0) -

SYNDROMEVALID -

Рис. 318. Условный графический образ элемента,

формируемого с помощью шаблона

Config Frame Error Correction (FRAME_ECC_VIRTEX4)

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

Internal Config Access Port (ICAP_VIRTEX4) включает в себя образец VHDL-описания внутреннего порта конфигурационного интерфейса кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX, предоставляющего возможность доступа к конфигурационным регистрам ПЛИС и обратного чтения данных:

-- ICAP_VIRTEX4 : 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 (ICAP_VIRTEX4_inst) and/or the port declarations

-- code : after the "=>" assignment maybe changed to properly -- : connect this function to the design. All inputs 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-->

-- ICAP_VIRTEX4: Internal Configuration Access Port -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

ICAP_VIRTEX4_inst : ICAP_VIRTEX4 generic map (

ICAP_WIDTH => "X8") -- "X8" or "X32" port map (

BUSY => BUSY, -- Busy output

0 => O, -- 32-bit data output CE => CE, -- Clock enable input CLK => CLK, -- Clock input

1 => I, -- 32-bit data input WRITE => WRITE -- Write input

);

-- End of ICAP_VIRTEX4_inst instantiation

В основе приведенной конструкции — оператор создания экземпляра библиотечного примитива ICAP_VIRTEX4, представляющего внутренний порт конфигурационного интерфейса, подобного SelectMAP [38]. В этом библиотечном примитиве используется настраиваемый параметр ICAP_WIDTH, значение которого определяет разрядность данных, записываемых и считываемых из конфигурационных регистров ПЛИС серии Virtex-4. Внутренний порт ICAP в кристаллах программируемой логики указанной серии может конфигурироваться как с 8-разрядными, так и с 32-разрядными шинами данных. По умолчанию для настраиваемого параметра ICAP_ WIDTH предлагается значение X8, которое соответствует 8-разрядному варианту конфигурирования внутреннего порта ICAP. Для реализации внутреннего порта конфигурационного интерфейса с 32-разрядными шинами данных следует параметру ICAP_WIDTH присвоить значение X32.

Система условных обозначений входных и выходных портов, используемых в описании интерфейса компонентов, описание которых создается на основе шаблона Internal Config Access Port (ICAP_VIRTEX4), включает в себя следующие идентификаторы:

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

• O — выходная 32-разрядная шина конфигурационных данных;

• CE — вход сигнала разрешения внутреннего конфигурационного интерфейса, аналогичного сигналу CSI_B интерфейса SelectMAP;

• CLK — вход тактового сигнала внутреннего конфигурационного интерфейса;

• I — входная 32-разрядная шина конфигурационных данных;

• WRITE — вход сигнала выбора выполняемой операции: записи или чтения данных. Условный графический образ компонента,

предназначенного для выполнения операции чтения и записи данных в конфигурационные регистры кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX, описание которого формируется с помощью шаблона Internal Config Access Port (ICAP_VIRTEX4), представлен на рис. 319.

Рис. 319. Условный графический образ компонента, создаваемого с помощью шаблона Internal Config Access Port (ICAP_VIRTEX4)

JTAG Simulation Model (JTAG_SIM_ VIRTEX4) является образцом VHDL-описа-ния компонента, применяемого для функционального моделирования контроллера порта JTAG-интерфейса в составе разрабатываемого устройства, реализуемого на базе ПЛИС серии Virtex-4. Основу этого шаблона образует оператор создания экземпляра библиотечного примитива JTAG_SIM_VIRTEX4:

-- JTAG_SIM_VIRTEX4 : In order to incorporate this simulation model, -- VHDL : the following instance declaration needs to be placed -- instance : in the architecture body of the testbench code. -- declaration : This should not be instantiated into the synthesizable design -- code : code. -- : The instance name

-- : (JTAG_SIM_inst) and/or the port declarations after the

-- : "=>" assignment maybe changed to properly reference and connect this

-- : function to the design. All inputs must be connected.

-- : Only one JTAG_SIM_VIRTEX4 should be instantiated per design.

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

-- JTAG_SIM_VIRTEX4: JTAG Interface Simulation Model

-- Virtex-4

-- Xilinx HDL Language Template, version 12.4 JTAG_SIM_VIRTEX4_inst : JTAG_SIM_VIRTEX4

ICAP_ VIRTEX4

l[7:0] 0[7:0]

WRITE BUSY

CE

> CLK

generic map (

PART_NAME => "LX15") -- Specify target V4 device. Possible values are: "LX15", "LX25", "LX40", "LX60", "LX80", "LX100", "LX160", "LX200", "SX25", "SX35", "SX55", "FX12", "FX20", port map (

TDO => TDO, -- JTAG data output (1-bit) TCK => TCK, -- Clock input (1-bit) TDI => TDI, -- JTAG data input (1-bit) TMS => TMS -- JTAG command input (1-bit)

);

-- End of JTAG_SIM_VIRTEX4_inst instantiation

В библиотечном примитиве JTAG_SIM_ VIRTEX4 используется параметр настройки PART_NAME, значение которого указывает тип кристалла программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX, для которого создается компонент. В списке возможных значений этого параметра представлены варианты сокращенных условных обозначений всех ПЛИС серии Virtex-4: LX15, LX25, LX40, LX60, LX80, LX100, LX160, LX200, SX25, SX35, SX55, FX12 и FX20. По умолчанию для параметра PART_NAME предлагается значение LX4, которое соответствует младшему представителю семейства Virtex-4 LX.

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

• TDO — выход сигнала тестовых данных цепочки периферийного сканирования;

• TCK — вход тактового сигнала;

• TDI — вход сигнала тестовых данных;

• TMS — вход одноименного сигнала. Условный графический образ компонента, формируемого на основе шаблона JTAG Simulation Model (JTAG_SIM_VIRTEX4), изображен на рис. 320.

JTAG_SI M_VI RTEX4 TCK TDO

TDI TMS

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

формируемого с помощью шаблона

JTAG Simulation Model (JTAG_SIM_VIRTEX4)

STARTUP (STARTUP_VIRTEX4) предоставляет шаблон описания компонента, предназначенного для управления глобальными цепями сброса/установки и переключения выходов кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX в состояние высокого импеданса, а также выбора тактового сигнала, применяемого при активизации логических ресурсов в процессе конфигурирования ПЛИС (на фазе Start-Up). В качестве основы этого шаблона используется оператор создания экземпляра библиотечного примитива STARTUP_VIRTEX4:

-- STARTUP_VIRTEX4 : 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 (STARTUP_VIRTEX4_inst) and/or the port declarations

-- code : after the "=>" assignment maybe changed to properly -- : connect this function to the design. All inputs 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_VIRTEX4: Startup primitive for GSR, GTS or startup sequence -- control. -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

STARTUP_VIRTEX4_inst : STARTUP_VIRTEX4 port map (

EOS => EOS, -- End of Startup 1-bit output CLK => CLK, -- Clock input for start-up sequence GSR => GSR_PORT, -- Global Set/Reset input (GSR cannot be used for the port name)

GTS => GTS_PORT, -- Global 3-state input (GTS cannot be used for the port name)

USRCCLKO => USRCCLKO, -- USRCCLKO 1-bit input USRCCLKTS => USRCCLKTS, -- USRCCLKTS 1-bit input USRDONEO => USRDONEO, -- USRDONEO 1-bit input USRDONETS => USRDONETS -- USRDONETS 1-bit input

);

-- End of STARTUP_VIRTEX4_inst instantiation

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

• EOS — выход сигнала End Of Configuration, информирующего о завершении фазы Start-Up процесса конфигурирования кристалла программируемой логики;

• CLK — вход сигнала синхронизации, используемого при активизации логических ресурсов в процессе конфигурирования ПЛИС (на фазе Start-Up);

• GSR — вход глобального сигнала сброса/установки триггеров в кристаллах программируемой логики серии Virtex-4;

• GTS — вход глобального сигнала управления состоянием выходов кристалла программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX;

• USRCCLKO — вход сигнала управления состоянием вывода CCLK;

• USRCCLKTS — тристабильный вывод CCLK;

• USRDONEO — вход сигнала управления состоянием вывода DONE;

• USRDONETS — тристабильный вывод DONE.

На рис. 321 приведен условный графический образ компонента, описание которого создается на основе шаблона STARTUP (STARTUP_VIRTEX4) для управления глобальными цепями сброса/установки и переключения выходов в состояние высокого им-

STARTU P_VI RTEX4

— CLK

— GSR

— GTS

EOS -

— USRCCLKO

— USRCCLKTS

— USRDONEO

— USRDONETS

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

создаваемого с помощью шаблона

STARTUP (STARTUP_VIRTEX4)

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

педанса, а также для выбора тактового сигнала при активизации логических ресурсов ПЛИС серии Virtex-4.

InputDDR Register (IDDR) содержит образец описания входного триггера с удвоенной скоростью передачи данных DDR (Double Data Rate), входом разрешения тактового сигнала, программируемыми (синхронными или асинхронными) входами сброса и установки и поддержкой возможности привязки выходных информационных сигналов к фронту тактового сигнала, который предназначен для применения в составе проектируемых устройств, реализуемых на базе кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX.

Логические ресурсы блоков ввода/вывода ILOGIC ПЛИС серии Virtex-4 предоставляют возможность конфигурирования трех вариантов входных триггеров с удвоенной скоростью передачи данных DDR, которые отличаются режимами синхронизации операций записи и чтения данных. На рис. 322 показана структурная схема первого варианта

входного триггера с удвоенной скоростью передачи данных, поддерживающего режим OPPOSITE_EDGE Mode. В этом режиме запись информационных данных осуществляется по фронту и спаду тактового сигнала. При этом данные на выходах DDR-триггера также обновляются с привязкой соответственно к фронту и спаду сигнала синхронизации.

Временные диаграммы сигналов, поясняющие функционирование входного триггера с удвоенной скоростью передачи данных, поддерживающего режим OPPOSITE_EDGE Mode, представлены на рис. 323.

Второй вариант конфигурирования входного триггера с удвоенной скоростью передачи данных, в котором реализован режим SAME_EDGE Mode, демонстрирует структурная схема, изображенная на рис. 324.

На рис. 325 приведены временные диаграммы сигналов, соответствующие режиму функционирования SAME_EDGE Mode входного DDR-триггера. В этом режиме обновление информационных данных на выходах происходит по фронту тактового сигнала. При этом данные, представленные на выходах DDR-триггера, смещены друг относительно друга на один период сигнала синхронизации.

Структурная схема, представляющая третий вариант конфигурирования входного триггера с удвоенной скоростью передачи данных, поддерживающего режим SAME_EDGE_ PIPELINED Mode, показана на рис. 326. В этом режиме обновление выходных информационных данных входного DDR-триггера осуществляется с привязкой к фронту тактового сигнала. Но при этом, в отличие от режима SAME_EDGE Mode, отсутствует сдвиг данных относительно друг друга.

На рис. 327 представлены временные диаграммы сигналов, демонстрирующие функционирование входного триггера с удвоенной скоростью передачи данных в режиме SAME EDGE PIPELINED Mode.

СЕ

Q1

Q2

J

1 D OA | D1A | D !A | D3A | D' A | D5A | D >A | D7A | D !A | D9A | D1 OA | D11A | D1 2A | D13A |

| DOA | D2A | D4A | D6A | D8A | D10A | D12A

D1A | D3A | D5A | D7A | D9A | D11A |

Рис. 323. Временные диаграммы сигналов входного триггера с удвоенной скоростью передачи данных, функционирующего в режиме OPPOSITE_EDGE Mode

СЕ

Q1

Q2

J

I D OA | D1A | D !A | D3A | D' A | D5A | D )A | D7A | □ )A | D9A | D1 OA | D11A |

| DOA | D2A | D4A | D6A | D8A | D10A

Don't care | D1A | D3A | D5A | D7A | D9A | D11A

Рис. 325. Временные диаграммы сигналов входного триггера с удвоенной скоростью передачи данных, функционирующего в режиме SAME_EDGE Mode

СЕ

Q1 Q2

J

I D OA | D1A | D IA | D3A | D^ A | D5A | □ ¡A | D7A | D IA | D9A | D1 OA | D11A | D1 2A | D13A |

| DOA | D2A | D4A | D6A | D8A | D10A

| D1A | D3A | D5A | D7A | D9A | D11A

Рис. 327. Временные диаграммы сигналов входного триггера с удвоенной скоростью передачи данных, функционирующего в режиме SAME_EDGE_PIPELINED Mode

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

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

• DDR_CLK_EDGE — определяет режим функционирования создаваемого входного DDR-триггера (по умолчанию предлагается вариант OPPOSITE_EDGE).

• INIT_Q1, INIT_Q2 — предназначены для установки начального состояния выходов DDR-триггера (по умолчанию им присваиваются нулевые значения).

• SRTYPE — указывает тип входов сброса и установки создаваемого входного DDR-триггера (по умолчанию предлагается значение SYNC, соответствующее синхронным режимам сброса и установки). Система условных обозначений интерфейсных портов входного триггера с удвоенной скоростью передачи данных, для подготовки описания которого применяется шаблон Input DDR Register (IDDR), включает в себя следующие идентификаторы:

• Q1 — выход, ассоциированный с фронтом тактового сигнала;

• Q2 — выход, ассоциированный со спадом тактового сигнала;

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

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

• D — информационный вход;

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

• S — вход сигнала установки. Условный графический образ входного

DDR-триггера со входом разрешения тактового сигнала, программируемыми входами сброса и установки и возможностью привязки выходных информационных сигналов к фронту тактового сигнала, описание которого создается на основе шаблона Input DDR Register (IDDR) для последующей реализации на базе ресурсов ввода/вывода ILOGIC кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX, изображен на рис. 328.

Рис. 328. Условный графический образ входного DDR-триггера, реализуемого на базе ресурсов ввода/вывода ILOGIC

Output DDR Register (ODDR) включает в себя шаблон описания выходного триггера с удвоенной скоростью передачи данных, входом разрешения тактового сигнала, программируемыми (синхронными или асинхронными) входами сброса и установки, поддержкой возможности захвата входных данных по фронту сигнала синхронизации, реализуемого на базе ресурсов ввода/вывода ПЛИС серии Virtex-4.

Логические ресурсы блоков ввода/вывода OLOGIC кристалловпрограммируемойлогики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX позволяют формировать два варианта выходных DDR-триггеров, которые различаются режимами синхронизации операций захвата данных, представленных на его входах. На рис. 329 приведена структурная схема первого варианта выходного триггера с удвоенной скоростью передачи данных, в котором реализован режим OPPOSITE_EDGE Mode. В этом режиме запись информационных данных, поступающих на первый и второй входы триггера, производится соответственно по фронту и спаду тактового сигнала.

Временные диаграммы сигналов, поясняющие режим функционирования OPPOSITE_ EDGE Mode выходного триггера с удвоенной скоростью передачи данных, показаны на рис. 330.

Структурная схема второго варианта конфигурирования выходного триггера с удвоенной скоростью передачи данных, поддерживающего режим SAME_EDGE Mode, изображена на рис. 331. В этом режиме захват информационных данных на входах DDR-триггера происходит по фронту тактового сигнала.

На рис. 332 представлены временные диаграммы сигналов, соответствующие режиму функционирования SAME_EDGE Mode выходного DDR-триггера.

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

-- ODDR : 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 (ODDR_inst) and/or the port declarations -- code : after the "=>" assignment maybe changed to properly -- : 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-->

-- ODDR: Output Double Data Rate Output Register with Set, Reset -- and Clock Enable. -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

ODDR_inst : ODDR generic map(

DDR_CLK_EDGE => "OPPOSITE_EDGE", -- "OPPOSITE_ EDGE" or "SAME_EDGE"

INIT => '0', -- Initial value for Q port ('1' or '0') SRTYPE => "SYNC") -- Reset Type ("ASYNC" or "SYNC") port map (

Q => Q, -- 1-bit DDR output

C => C, -- 1-bit clock input

CE => CE, -- 1-bit clock enable input

D1 => D1, -- 1-bit data input (positive edge)

D2 => D2, -- 1-bit data input (negative edge)

R => R, -- 1-bit reset input

S => S -- 1-bit set input

);

-- End of ODDR_inst instantiation

Библиотечный примитив ODDR предоставляет возможность выбора одного из двух вариантов конфигурирования выходных DDR-триггеров ПЛИС серии Virtex-4, рассмотренных выше. Выбор требуемого варианта и типа входов сброса и установки, а также инициализация создаваемого выходного триггера с удвоенной скоростью передачи данных осуществляется с помощью следующих параметров настройки указанного библиотечного примитива:

• DDR_CLK_EDGE — устанавливает режим синхронизации процесса захвата входных данных (по умолчанию предлагается вариант "OPPOSITE_EDGE").

• INIT — задает начальное состояние выхода DDR-триггера (по умолчанию выход сбрасывается в состояние низкого логического уровня).

-- IDDR : 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 (IDDR_inst) and/or the port declarations -- code : after the "=>" assignment maybe changed to properly -- : connect this function to the design. All inputs 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-->

-- IDDR: Double Data Rate Input Register with Set, Reset -- and Clock Enable. -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

IDDR_inst : IDDR generic map (

DDR_CLK_EDGE => "OPPOSITE_EDGE", -- "OPPOSITE, EDGE", "SAME_EDGE" or "SAME_EDGE_PIPELINED" INIT_Q1 => '0', -- Initial value of Q1: '0' or '1' INIT_Q2 => '0', -- Initial value of Q2: '0' or '1' SRTYPE => "SYNC") -- Set/Reset type: "SYNC" or "ASYNC" port map (

Q1 => Q1, -- 1-bit output for positive edge of clock

Q2 => Q2, -- 1-bit output for negative edge of clock

C => C, -- 1-bit clock input

CE => CE, -- 1-bit clock enable input

D => D, -- 1-bit DDR data input

R => R, -- 1-bit reset

S => S -- 1-bit set

);

-- End of IDDR_inst instantiation

s

D Q1

CE IDDR С 02

R

Гс1>

Сс>

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

\Ж> ГР2>

ODDR

D R

СЕ >CLK

D R СЕ

> CLK

D R СЕ

> CLK

S

DDR MUX

Рис. 329. Структурная схема входного триггера с удвоенной скоростью передачи данных, поддерживающего режим OPPOSITE_EDGE Mode

Рис. 331. Структурная схема выходного триггера с удвоенной скоростью передачи данных, реализующего режим SAME_EDGE Mode

С СЕ . D1 D2 OQ

J

D1A | D1B | D1C | D1D |

| D2A | D2B | D2C | D2D

| D1A | DjA I D1B | D$B | D1C | D$C | D1D |

С СЕ D1 D2 OQ

J

D1A | D1B | D1C | D1D |

D2A | D2B | D2C | D2D |

| D1A | D^A I D1B | D£B I D1C | DjC | D1D |

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

выходного DDR-триггера в режиме OPPOSITE_EDGE Mode выходного DDR-триггера в режиме SAME_EDGE Mode

• SRTYPE — используется для выбора типа входов сброса и установки (по умолчанию формируется триггер с синхронными режимами сброса и установки).

В состав системы условных обозначений интерфейсных портов выходных DDR-триг-геров, формируемых на основе библиотечного примитива ODDR, кроме идентификаторов, представленных при рассмотрении шаблона Input DDR Register (IDDR), входят также следующие наименования входов и выхода:

• Q — выход триггера;

• D1 — информационный вход, ассоциированный с фронтом сигнала синхронизации;

• D2 — информационный вход, ассоциированный со спадом тактового сигнала. Условный графический образ выходного

триггера с удвоенной скоростью передачи данных, со входом разрешения тактового сигнала, программируемыми входами сброса и установки и возможностью захвата входных данных по фронту сигнала синхронизации, для подготовки описания которого используется шаблон Output DDR Register (ODDR), приведен на рис. 333.

DCI Reset Component (DCIRESET) представляет собой образец описания компонента, используемого для сброса схемы цифрового управления импедансом DCI (Digitally

Controlled Impedance) в кристаллах программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 FX. В основе этого шаблона — оператор создания экземпляра библиотечного примитива DCIRESET:

-- DCIRESET : 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 (DCIRESET_inst) and/or the port declarations -- code : after the "=>" assignment maybe changed to properly -- : 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-->

-- DCIRESET: DCI reset component -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

DCIRESET_inst : DCIRESET port map (

LOCKED => LOCKED, -- DCIRESET LOCK status output RST => RST -- DCIRESET asynchronous reset input

);

-- End of DCIRESET_inst instantiation

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

• LOCKED — выход сигнала, информирующего о состоянии схемы цифрового управления импедансом DCI;

• RST — вход сигнала асинхронного сброса. Условный графический образ компонента, формируемого с помощью шаблона DCI Reset Component (DCIRESET) для применения в составе проектируемых устройств,

-Q

Рис. 333. Условный графический образ выходного DDR-триггера, реализуемого на базе ресурсов ввода/вывода OLOGIC ПЛИС серии Viгtex-4

на базе соответствующих аппаратных ресурсов ввода/вывода SelectЮ кристаллов программируемой логики семейств Virtex-4 LX, Virtex-4 SX и Virtex-4 БХ. В состав входных логических ячеек ввода/вывода ILOGIC ПЛИС серии Virtex-4, структура которых представлена на рис. 335, входят элементы, позволяющие осуществлять задержку сигналов, поступающих с выводов кристалла, на постоянную (заданную) или изменяемую величину.

Основу этих элементов образуют 64-сту-пенчатые линии задержки. Таким образом, допустимый диапазон изменения значений входной задержи (количество эквивалентных отводов линии задержки) находится в пределах от 0 до 63. В элементах с переменной ве-

реализуемых на базе ПЛИС серии Virtex-4, показан на рис. 334.

Input Delay Element (IDELAY) является шаблоном VHDL-описания элементов программируемой входной задержки, реализуемых

личиной задержки изменение значения последней осуществляется в инкрементном или декрементном режиме. Выбор режима подстройки значения задержки производится подачей соответствующего уровня сигнала на вход управления INC. Высокий логический уровень сигнала на этом входе соответствует инкрементному режиму, а низкий логический уровень напряжения — декре-ментному. Изменение значения входной задержки производится по фронту сигнала синхронизации при наличии высокого логического уровня напряжения на входе сигнала разрешения коррекции CE. При наличии сигнала низкого логического уровня на входе разрешения коррекции значение входной задержки остается без изменений. В случае подачи напряжения высокого логического уровня на вход асинхронного сброса, независимо от уровней сигналов на других входах, устанавливается начальное значение задержки, которое определяется при подготовке описания элемента. На рис. 336 показаны временные диаграммы сигналов, демонстрирующие процесс изменения значения задержки сигнала, поступающего с вывода ПЛИС, с помощью элемента программируемой входной задержки.

В качестве основы шаблона описания элементов программируемой входной задержки используется оператор создания экземпляра библиотечного примитива IDELAY:

-- IDELAY : 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 (IDELAY_inst) and/or the port declarations -- code : after the "=>" assignment maybe changed to properly -- : connect this function to the design. All inputs -- : 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;

-- Put the following attribute before the 'begin' statement

-- to specify the group name for associated IDELAY and IDELAYCTRLs

attribute IODELAY_GROUP : string;

attribute IODELAY_GROUP of <label_name>: label is "<iodelay_ group_name>";

-- <---Cut code below this line and paste into the architecture body--->

-- IDELAY: Input Delay Element -- Virtex-4

-- Xilinx HDL Language Template, version 12.4

IDELAY_inst : IDELAY generic map (

IOBDELAY_TYPE => "FIXED", -- "FIXED" or "VARIABLE"

IOBDELAY_VALUE => 0) -- Any value from 0 to 63 port map (

0 => O, -- 1-bit output

C => C, -- 1-bit clock input

CE => CE, -- 1-bit clock enable input

1 => I, -- 1-bit data input

INC => INC, -- 1-bit increment input

RST => RST -- 1-bit reset input

);

-- End of IDELAY_inst instantiation

Рис. 337. Условный графический образ элемента входной задержки, формируемого с помощью шаблона Input Delay Element (IDELAY)

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

• IOBDELAY_TYPE — позволяет выбрать тип создаваемого элемента входной задержки.

• IOBDELAY_VALUE — определяет величину начальной или фиксированной задержки формируемого элемента.

В процессе подготовки законченного описания элемента входной задержки на основе шаблона Input Delay Element (IDELAY) необходимо, прежде всего, указать его тип, воспользовавшись параметром настройки IOBDELAY_TYPE. По умолчанию для этого

параметра предлагается значение FIXED, соответствующее элементу фиксированной входной задержки. Для создания описания элемента с изменяемой задержкой следует параметру настройки IOBDELAY_TYPE присвоить значение VARIABLE. Начальная величина задержки указывается в виде соответствующего значения параметра IOBDELAY_VALUE. Этот параметр может принимать целочисленные значения в диапазоне от 0 до 63. По умолчанию для параметра IOBDELAY_VALUE установлено нулевое значение.

Система условных обозначений входов и выходов, используемых в описании интерфейса элементов программируемой входной задержки, формируемых с помощью шаблона Input Delay Element (IDELAY), включает в себя следующие идентификаторы:

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

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

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

• INC — вход сигнала выбора режима изменения задержки (инкрементный или декрементный);

• RST — вход сброса.

Условный графический образ элементов входной задержки, для подготовки описаний которых используется шаблон Input Delay Element (IDELAY), представлен на рис. 337. ■ Примечание. Полный список литературы смотрите в предыдущих частях статьи. Продолжение следует

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