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

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

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

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

В семнадцатой части статьи представлена информация о шаблонах VHDLописаний элементов, выполненных на основе экземпляров библиотечных примитивов, которые предназначены для непосредственной реализации на базе соответствующих аппаратных ресурсов кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT [22-32]. Образцы описаний указанных элементов сосредоточены в разделе Spartan-6 каталога Device Primitive Instantiation шаблонов языка VHDL. Структура этого раздела включает в себя те же подразделы, что и каталог Spartan-3, рассмотренный ранее (рис. 51, КиТ № 8`2010, стр. 101). Содержание большинства шаблонов раздела Spartan-6 совпадает с текстом одноименных шаблонов, рассмотренных ранее при изучении образцов VHDL-описаний компонентов, содержащихся в папках Spartan-3, Spartan-3A и Spartan-3A DSP. Поэтому далее приводятся сведения только о тех шаблонах, которые отсутствуют в этих папках.

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

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

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

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

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

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

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

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

walerry@km.ru

В семнадцатой части статьи представлена информация о шаблонах VHDL-описаний элементов, выполненных на основе экземпляров библиотечных примитивов, которые предназначены для непосредственной реализации на базе соответствующих аппаратных ресурсов кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT [22—32]. Образцы описаний указанных элементов сосредоточены в разделе Spartan-6 каталога Device Primitive Instantiation шаблонов языка VHDL. Структура этого раздела включает в себя те же подразделы, что и каталог Spartan-3, рассмотренный ранее (рис. 51, КиТ № 8 2010, стр. 101). Содержание большинства шаблонов раздела Spartan-6 совпадает с текстом одноименных шаблонов, рассмотренных ранее при изучении образцов VHDL-описаний компонентов, содержащихся в папках Spartan-3, Spartan-3A и Spartan-3A DSP. Поэтому далее приводятся сведения только о тех шаблонах, которые отсутствуют в этих папках.

48-it Multi-Functional Arithmetic Block (DSP48A1) представляет собой образец VHDL-описания элементов, конфигурируемых на основе аппаратных секций цифровой обработки сигналов DSP48A1 [22, 31], которые входят в состав архитектуры кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT. Эти секции ЦОС являются результатом дальнейшего усовершенствования

аппаратных блоков DSP48A, применяемых в ПЛИС семейства Spartan-3A DSP, шаблоны описаний которых были рассмотрены в предыдущей части статьи. Модифицированные аппаратные секции цифровой обработки сигналов DSP48A1 обладают более широкими функциональными возможностями по сравнению с базовым вариантом DSP48A. В частности, архитектура и взаимное распо-

всоит MFOUT

ссоит cfout рсоит

PCIN CIN

opmode[3:2]

Рис. 214. Структурная схема аппаратной секции ЦОС DSP48А1

ложение усовершенствованных секций ЦОС DSP48A1 предоставляют возможность их каскадного соединения практически без использования основных трассировочных ресурсов кристаллов программируемой логики серии Spartan-6. Тем самым создаются предпосылки для повышения производительности разрабатываемых многозвенных устройств цифровой обработки сигналов.

Детальная структурная схема аппаратной секции ЦОС DSP48А1, применяемой в ПЛИС семейств Spartan-6 LX и Spartan-6 LXT, изображена на рис. 214. Основные элементы структуры этой секции: предварительный 18-разрядный сумматор, умножитель двух 18-разрядных операндов, основной 48-разрядный сумматор/аккумулятор и совокупность буферных регистров, предназначенных для организации конвейерной обработки данных. Кроме того, в структуре модернизированного варианта аппаратной секции цифровой обработки сигналов предусмотрена дополнительная выходная шина данных, на которую поступает результат выполнения операции умножения. Эта шина предназначена для подключения к стандартным логическим ресурсам ПЛИС. В аппаратных модулях ЦОС DSP48А1 также усовершенствована логика формирования сигнала выходного переноса. В структуре указанных

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

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

-- DSP48A1 : 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 : (DSP48A1_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.aH;

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

-- DSP48A1: 48-bit Multi-Functional Arithmetic Block -- Spartan-6

-- Xilinx HDL Language Template, version 12.4

DSP48A1_inst : DSP48A1 generic map (

A0REG => 0, -- First stage A input pipeline register (0/1) A1REG => 1, -- Second stage A input pipeline register (0/1) B0REG => 0, -- First stage B input pipeline register (0/1) B1REG => 1, -- Second stage B input pipeline register (0/1) CARRYINREG => 1, -- CARRYIN input pipeline register (0/1) CARRYINSEL => "OPMODE5", -- Specify carry-in source, "CARRYIN" or "OPMODE5"

CARRYOUTREG => 1, -- CARRYOUT output pipeline register

(0/1)

CREG => 1, -- C input pipeline register (0/1) DREG => 1, -- D pre-adder input pipeline register (0/1) MREG => 1, -- M pipeline register (0/1) OPMODEREG => 1, -- Enable=1/disable=0 OPMODE input pipeline registers

PREG => 1, -- P output pipeline register (0/1) RSTTYPE => "SYNC" -- Specify reset type, "SYNC" or "ASYNC" )

port map (

-- Cascade Ports: 18-bit (each) output Ports to cascade from one DSP48 to another

BCOUT => BCOUT, -- 18-bit output B port cascade output PCOUT => PCOUT, -- 48-bit output P cascade output (if used, connect to PCIN of another DSP48A1)

-- Data Ports: 1-bit (each) output Data input and output ports CARRYOUT => CARRYOUT, -- 1-bit output carry output (if used, connect to CARRYIN pin of another DSP48A1)

CARRYOUTF => CARRYOUTF, -- 1-bit output fabric carry

output

M => M, -- 36-bit output fabric multiplier data output P => P, -- 48-bit output data output

-- Cascade Ports: 48-bit (each) input Ports to cascade from one DSP48 to another

PCIN => PCIN, -- 48-bit input P cascade input (if used, connect to PCOUT of another DSP48A1)

-- Control Input Ports: 1-bit (each) input Clocking and operation

mode

CLK => CLK, -- 1-bit input clock input OPMODE => OPMODE, -- 8-bit input operation mode input -- Data Ports: 18-bit (each) input Data input and output ports A => A, -- 18-bit input A data input

B => B, -- 18-bit input B data input (connected to fabric or BCOUT of adjacent DSP48A1)

C => C, -- 48-bit input C data input

CARRYIN => CARRYIN, -- 1-bit input carry input signal (if used, connect to CARRYOUT pin of another DSP48A1) D => D, -- 18-bit input B pre-adder data input -- Reset/Clock Enable Input Ports: 1-bit (each) input Reset and enable input ports

CEA => CEA, -- 1-bit input active high clock enable input for A registers

CEB => CEB, -- 1-bit input active high clock enable input for B registers

CEC => CEC, -- 1-bit input active high clock enable input for C registers

CECARRYIN => CECARRYIN, -- 1-bit input active high clock enable input for CARRYIN registers

CED => CED, -- 1-bit input active high clock enable input for D registers

CEM => CEM, -- 1-bit input active high clock enable input for multiplier registers

CEOPMODE => CEOPMODE, -- 1-bit input active high clock enable input for OPMODE registers

CEP => CEP, -- 1-bit input active high clock enable input for P registers

RSTA => RSTA, -- 1-bit input reset input for A pipeline registers

RSTB => RSTB, -- 1-bit input reset input for B pipeline registers

RSTC => RSTC, -- 1-bit input reset input for C pipeline registers

RSTCARRYIN => RSTCARRYIN, -- 1-bit input reset input for CARRYIN pipeline registers

RSTD => RSTD, -- 1-bit input reset input for D pipeline registers

RSTM => RSTM, -- 1-bit input reset input for M pipeline registers

RSTOPMODE => RSTOPMODE,-- 1-bit input reset input for OPMODE pipeline registers

RSTP => RSTP -- 1-bit input reset input for P pipeline registers );

-- End of DSP48A1_inst instantiation

В библиотечном примитиве DSP48A1 используется совокупность параметров настройки, назначение которых было рассмотрено при изучении шаблона DSP Block (DSP48A). В дополнение к представленным параметрам настройки в шаблоне 48-it MultiFunctional Arithmetic Block (DSP48A1) применяется также параметр CARRYOUTREG, значение которого разрешает или запрещает применение буферного регистра в цепи сигнала выходного переноса.

Система условных обозначений, используемых в описании интерфейса библиотечного примитива DSP48A1, кроме идентификаторов, используемых в шаблоне DSP Block (DSP48A), включает в себя следующие наименования выходных портов:

• CARRYOUTF — дополнительный выход сигнала переноса, предназначенный для подключения к стандартным логическим ресурсам ПЛИС серии Spartan-6;

• M — 36-разрядная выходная шина данных аппаратного умножителя, входящего в состав секции цифровой обработки сигналов DSP48A1.

На рис. 215 показан условный графический образ элементов, описания которых создаются с помощью шаблона 48-it MultiFunctional Arithmetic Block (DSP48A1) для последующей реализации на основе аппаратных секций ЦОС DSP48A1 в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT.

BASE Phase Locked Loop (PLL_BASE) является образцом VHDL-описания автономного варианта конфигурирования модуля фазовой автоподстройки частоты Phase-Locked-Loop (PLL) в ПЛИС серии Spartan-6. Каждый блок управления синхронизацией Clock Management Tile (CMT) кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT

DSP48A1

— А[17:0] BCOUT[17:0] -

— В[17:0] PCOUT[47:0] -

— D[17:0]

— С[47:0]

— CLK РЧ7:°]

— CIN MFOUT[35:0] -

— OPMODE[7:0]

— RSTA ссоит -

— RSTB CFOUT -

— RSTM

— RSTP

— RSTC

— RSTD

— RSTCY

— RSTO

— CEA

— CEB

— CEM

— CEP

— CEC

— CED

— CECY

— CEO

— PCIN[47:0]

Рис. 215. Условный графический образ элементов, формируемых на основе секций ЦОС DSP48A1

включает в себя два цифровых модуля Digital Clock Manager (DCM) и модуль фазовой автоподстройки частоты PLL [22, 26]. Модули фазовой автоподстройки частоты PLL могут осуществлять функции синтеза выходных сигналов с различными значениями частоты, а также повышения стабильности выходных сигналов блоков управления синхронизацией CMT. Эти модули поддерживают широкий диапазон частот входных сигналов, который составляет от 19 до 500 МГц. При этом генератор, управляемый напряжением (Voltage-Controlled Oscillator, VCO), который является основным элементом модулей фазовой автоподстройки частоты, позволяет формировать выходные сигналы со значениями частот, достигающими 1 ГГц.

Функциональная схема модуля фазовой автоподстройки частоты PLL, представленного в составе блока управления синхронизацией CMT ПЛИС серии Spartan-6, изображена на рис. 216. Основные элементы этой схемы: программируемый счетчик/делитель (Counter/Divider, D), фазо-частотный детектор (Phase-Frequency Detector, PFD), генератор, управляемый напряжением VCO, который формирует 8 сигналов с различными значениями фазы (0°, 45°, 90°, 135°, 180°, 225°, 270° и 315°), интегрирующий источник тока (Charge Pump, CP), петлевой фильтр (Loop Filter, LF) и счетчик в цепи обратной связи (Multiply, M). Все сигналы, вырабатываемые генератором VCO, поступают на соответствующие выходные счетчики/делители (Output Counter0 - Output Counter5, 00-05), коэффициент деления каждого из которых программируется в соответствии с требованиями проектируемого устройства.

Модули DCM и PLL можно использовать для формирования необходимой совокупно-

Переключатель тактового сигнала

CLKIN1 -CLKIN2-

Программируемый

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

счетчик/делитель ■ □

Детектор выхода из фазового синхронизма LD

Фазо-частотный детектор Источник тока - Петлевой фильтр -

PFD CP LF

Генератор, управляемый напряжением VCO

Счетчик цепи обратной связи М

Выходной счетчик/ делитель ОО

Выходной счетчик/ делитель 01

Выходной счетчик/ делитель 02

Выходной счетчик/ делитель 03

Выходной счетчик/ делитель 04

Выходной счетчик/ делитель 05

Рис. 216. Функциональная схема модуля фазовой автоподстройки частоты PLL

сти тактовых сигналов как независимо друг от друга, так и в виде каскадных соединений DCM-PLL или PLL-DCM. Для автономного варианта конфигурирования модуля фазовой автоподстройки частоты PLL предусмотрен библиотечный примитив PLL_BASE. Этот примитив поддерживает только базовые функции модуля PLL, которые реализуются без применения цифровых модулей DCM. На основе использования библиотечного примитива PLL_BASE выполнен шаблон BASE Phase Locked Loop (PLL_BASE), который включает в себя соответствующий оператор создания экземпляра этого компонента:

CLKOUT1_DIVIDE => 1, CLKOUT2_DIVIDE => 1, CLKOUT3_DIVIDE => 1, CLKOUT 4_DIVIDE => 1, CLKOUT5_DIVIDE => 1,

-- CLKOUT0_DUTY_CYCLE - CLKOUT5_DUTY_CYCLE: Duty cycle for CLKOUT# clock output (0.01-0.99). CLKOUT0_DUTY_CYCLE => 0.5, CLKOUT1_DUTY_CYCLE => 0.5, CLKOUT2_DUTY_CYCLE => 0.5, CLKOUT3_DUTY_CYCLE => 0.5, CLKOUT 4_DUTY_CYCLE => 0.5, CLKOUT5_DUTY_CYCLE => 0.5, -- CLKOUT0_PHASE - CLKOUT5_PHASE: Output phase relationship for CLKOUT# clock output (-360.0-360.0). CLKOUT0_PHASE => 0.0, CLKOUT 1_PHASE => 0.0, CLKOUT2_PHASE => 0.0, CLKOUT3_PHASE => 0.0, CLKOUT 4_PHASE => 0.0, CLKOUT5_PHASE => 0.0,

CLK_FEEDBACK => "CLKFBOUT", -- Clock source to drive CLKFBIN ("CLKFBOUT" or "CLKOUT0")

COMPENSATION => "SYSTEM_SYNCHRONOUS", --"SYSTEM_SYNCHRONOUS", "SOURCE_SYNCHRONOUS", "EXTERNAL"

DIVCLK_DIVIDE => 1, -- Division value for all output clocks

(1-52)

REFJITTER => 0.1, -- Reference Clock Jitter in UI (0.000-0.999). RESET_ON_LOSS_OF_LOCK => FALSE -- Must be set to FALSE

)

port map (

CLKFBOUT => CLKFBOUT, -- 1-bit output PLL_BASE feedback output

-- CLKOUT0 - CLKOUT5: 1-bit (each) output Clock outputs

CLKOUT0 => CLKOUT0,

CLKOUT 1 => CLKOUT 1,

CLKOUT2 => CLKOUT2,

CLKOUT3 => CLKOUT3,

CLKOUT 4 => CLKOUT4,

CLKOUT5 => CLKOUT5,

LOCKED => LOCKED, -- 1-bit output PLL_BASE lock status

output

CLKFBIN => CLKFBIN, -- 1-bit input Feedback clock input CLKIN => CLKIN, -- 1-bit input Clock input RST => RST -- 1-bit input Reset input );

-- End of PLL_BASE_inst instantiation

В библиотечном примитиве PLL_BASE для установки требуемого режима работы формируемого модуля фазовой автоподстройки частоты PLL предусмотрены следующие настраиваемые параметры: • BANDWIDTH — используется для выбора алгоритма функционирования, соответствующего требуемым характеристикам формируемого сигнала.

• CLKFBOUT_MULT — указывает значение множителя в коэффициенте, определяющем значение частоты выходных сигналов.

• CLKFBOUT_PHASE — задает значение фазового сдвига тактового сигнала в цепи обратной связи.

• CLKIN_PERIOD — определяет значение периода входного сигнала синхронизации.

• CLKOUT0_DIVIDE - CLKOUT5_DIVIDE — указывают значения индивидуального делителя в коэффициенте, определяющем значение частоты сигнала синхронизации, формируемого на соответствующем выходе модуля (00-05).

• CLKOUT0_DUTY_CYCLE - CLKOUT5_ DUTY_CYCLE — устанавливают значения коэффициента заполнения для тактовых сигналов, вырабатываемых на соответствующих выходах модуля (00-05).

• CLKOUT0_PHASE - CLKOUT5_PHASE — позволяют выбрать значение фазового сдвига для соответствующих выходных сигналов синхронизации.

• CLK_FEEDBACK — применяется для выбора тактового сигнала, подаваемого на вход обратной связи модуля.

• COMPENSATION — определяет вид коррекции фазы для поступающего сигнала синхронизации.

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

• REF_JITTER — задает ожидаемое значение джиттера опорного тактового сигнала для оптимизации работы формируемого модуля.

• RESET_ON_LOSS_OF_LOCK — в текущей версии не поддерживается (следует использовать значение FALSE, предлагаемое по умолчанию).

В систему условных обозначений, применяемых в описании интерфейса библио-

-- PLL_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 : (PLL_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 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—>

-- PLL_BASE: Phase Locked Loop (PLL) Clock Management Component -- Spartan-6

-- Xilinx HDL Language Template, version 12.4

PLL_BASE_inst : PLL_BASE generic map (

BANDWIDTH => "OPTIMIZED", -- "HIGH", "LOW" or "OPTIMIZED"

CLKFBOUT_MULT => 1, -- Multiply value for all CLKOUT clock outputs (1-64)

CLKFBOUT_PHASE => 0.0, -- Phase offset in degrees of the clock feedback output -- (0.0-360.0).

CLKIN_PERIOD => "0", -- Input clock period in ns to ps resolution (i.e. 33.333 is 30 -- MHz).

-- CLKOUT0_DIVIDE - CLKOUT5_DIVIDE: Divide amount for CLKOUT# clock output (1-128) CLKOUT0_DIVIDE => 1,

Вход сигнала синхронизации

Рис. 218. Структурная схема блока формирования сигнала синхронизации, выполненного на базе модуля PLL или DCM

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

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

• CLKOUTO — CLKOUT5 — выходы тактовых сигналов, формируемых модулем фазовой автоподстройки частоты.

• LOCKED — выход сигнала, информирующего о достижении режима фазового синхронизма.

• CLKFBIN — вход сигнала обратной связи.

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

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

Для программирования режима работы модуля фазовой автоподстройки частоты PLL, формируемого с помощью шаблона BASE Phase Locked Loop (PLL_BASE), в первую очередь, рекомендуется задать значение периода для входного сигнала синхронизации, используя параметр настройки CLKIN_ PERIOD. Значение этого параметра указывается в наносекундах с точностью до пикосекунд. Допустимый диапазон значений параметра CLKIN_PERIOD составляет от 1408 до 52 630.

Далее необходимо указать значения множителя CLKFBOUT_MULT и делителей CLKOUT0_DIVIDE - CLKOUT5_DIVIDE, DIVCLK_DIVIDE в коэффициентах, определяющих частоты требуемых выходных сигналов создаваемого модуля. Значение параметра CLKFBOUT_MULT (целочисленного типа) можно выбирать в диапазоне от 1 до 64. Параметры CLKOUT0_DIVIDE - CLKOUT5_ DIVIDE могут принимать целочисленные значения в интервале от 1 до 128. Для параметра DIVCLK_DIVIDE диапазон возможных значений находится в пределах от 1 до 52. По умолчанию для всех параметров настройки, определяющих частоту вырабатываемых сигналов синхронизации, предлагается единичное значение.

После определения значений частот формируемых тактовых сигналов нужно установить их скважность с помощью параметров CLKOUT0_DUTY_CYCLE-CLKOUT5_ DUTY_CYCLE. Значения этих параметров задают коэффициенты заполнения для соответствующих выходных сигналов синхронизации и указываются в процентном соотношении к их периоду. Таким образом, значения параметров CLKOUT0_DUTY_ CYCLE - CLKOUT5_DUTY_CYCLE можно выбирать в диапазоне от 0,01 до 0,99. По умолчанию для этих параметров установлено значение 0,5, соответствующее 50%-ному заполнению (скважности 2).

Затем, при необходимости, следует определить значения фазового сдвига для сигналов синхронизации, формируемых на выходах CLKOUT0 - CLKOUT5, воспользовавшись соответствующими параметрами

PLL_ BASE

CLKIN CLKOUTO -

CLKOUT1 -

CLKOUT2 -

CLKOUT3 -

CLKOUT4 -

CLKOUT5 -

CLKFBIN CLKFBOUT -

RST LOCKED -

Рис. 217. Условный графический образ модуля фазовой автоподстройки частоты PLL

настройки CLKOUT0_PHASE - CLKOUT5_ PHASE. Значения этих параметров можно выбирать в диапазоне от -360 до +360. По умолчанию данным параметрам присвоено нулевое значение, при котором фазовый сдвиг отсутствует.

Алгоритм работы системы фазовой автоподстройки частоты PLL выбирается с помощью параметра настройки BANDWIDTH, для которого по умолчанию предлагается значение "OPTIMIZED". Это значение соответствует оптимизированному алгоритму функционирования модуля PLL. При необходимости параметру BANDWIDTH могут быть присвоены значения "HIGH" или "LOW", определяющие соответствующие полосы захвата и удержания системы фазовой автоподстройки частоты.

Далее нужно указать ожидаемое значение джиттера опорного тактового сигнала, используя параметр REF_JITTER. Это значение задается в процентном отношении к аналогичному параметру входного сигнала синхронизации в диапазоне от 0 до 0,999. По умолчанию параметру REF_JITTER присваивается значение 0,1.

Для выбора тактового сигнала, подаваемого на вход обратной связи CLKFBIN, следует воспользоваться параметром настройки CLK_ FEEDBACK, который может принимать одно из двух возможных значений: "CLKFBOUT" или "CLKOUT0". По умолчанию для этого параметра предлагается значение "CLKFBOUT", которое соответствует выходному сигналу генератора, управляемого напряжением. При выборе значения "CLKOUT0" на вход обратной связи будет подан сигнал с одноименного выхода модуля PLL.

Условный графический образ элемента, выполняющего функции фазовой автоподстройки частоты, описание которого создается на базе шаблона BASE Phase Locked Loop (PLL_BASE) для последующей реализации на основе соответствующего модуля блока

управления синхронизацией CMT кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, изображен на рис. 217.

DCM/PLL Feedback Clock Buffer (BUFIO2FB) содержит образец описания буферного элемента, предназначенного для организации обратной связи тактового сигнала при использовании модуля фазовой автоподстройки частоты PLL или цифрового модуля управления синхронизацией DCM ПЛИС серии Spartan-6. Применение этого буферного элемента обеспечивает компенсацию задержки входного сигнала синхронизации, вносимой буферным элементом BUFIO2. На рис. 218 приведена структурная схема блока формирования сигнала синхронизации, выполненного на базе модуля PLL или DCM, которая поясняет назначение рассматриваемого буферного элемента.

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

-- BUFIO2FB : 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 : (BUFIO2FB_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—>

-- BUFIO2FB: DCM/PLL Feedback Clock Buffer

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

-- Spartan-6

-- Xilinx HDL Language Template, version 12.4

BUFIO2FB_inst : BUFIO2FB

generic map (

DIVIDE_BYPASS => TRUE -- Bypass divider (TRUE/FALSE)

)

port map (

0 => O, -- 1-bit output Output feedback clock (connect to feedback input of DCM/PLL)

1 => I -- 1-bit input Feedback clock input (connect to input port) );

-- End of BUFIO2FB_inst instantiation

Основой приведенного шаблона является экземпляр библиотечного примитива BUFIO2FB, который представляет указанный буферный элемент. В этом примитиве используется единственный параметр настройки DIVIDE_BYPASS, который позволяет выбрать тип задержки в формируемом буферном элементе. Если для данного параметра указывается значение FALSE, то величина задержки создаваемого буферного элемента BUFIO2FB будет соответствовать задержке сигнала на выходе DIVCLK буферного элемента BUFIO2. При использовании значения TRUE, предлагаемого по умолчанию для параметра DIVIDE_BYPASS, величина задержки будет эквивалентна значению задержки буферного элемента BUFIO2 на выходе IOCLK.

Система условных обозначений, используемых в описании интерфейса буферных элементов, формируемых с помощью шаблона DCM/PLL Feedback Clock Buffer (BUFIO2FB), включает в себя те же идентификаторы, что и в буферном элементе, создаваемом на базе шаблона Global Clock Buffer (BUFG).

Условный графический образ буферного элемента, описание которого создается на основе библиотечного примитива BUFIO2FB для последующего применения в проектах, реализуемых на базе кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, отличается от изображения, приведенного на рис. 43 (КиТ № 7Ч2010, стр. 103), только названием.

Digital Clock Manager Frequency Aligned Clock Generator (DCM_CLKGEN) включает в себя шаблон описания компонента, предоставляющего расширенные возможности синтеза тактовых сигналов в цифровых модулях управления синхронизацией DCM ПЛИС серии Spartan-6. Основу этого шаблона образует оператор создания экземпляра библиотечного примитива DCM_CLKGEN. Компоненты, формируемые на базе этого примитива, в отличие от элементов, создаваемых с помощью шаблона Spartan Digital Clock Manager (DCM_ SP), поддерживают возможность динамического изменения характеристик формируемых сигналов синхронизации. Для динамического изменения параметров синтезируемых тактовых сигналов используется последовательный интерфейс SPI. На рис. 219 приведена структурная схема блока синхронизации, выполненного на базе трех модулей DCM, параметры цифровых синтезаторов которых могут программироваться во время функционирования через интерфейс SPI. При этом контроллер последовательного интерфейса реализуется на базе стандартных логических ресурсов кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT.

SPI Master (FPGA Logic)

DCMO LOCKED

DCM1 LOCKED

DCM2 LOCKED

DCM_CLKGEN (#0)

PROGEN

PROGCLK

PROGDATA

PROGDONE

LOCKED

CLKIN CLKFX

DCM_CLKGEN (#1)

PROGEN

PROGCLK

PROGDATA

PROGDONE

LOCKED

CLKIN CLKFX

DCM_CLKGEN (#2)

PROGEN

PROGCLK

PROGDATA

PROGDONE

LOCKED

CLKIN CLKFX

Рис. 219. Структурная схема блока синхронизации, выполненного на базе трех модулей DCM

Текст шаблона Digital Clock Manager Frequency Aligned Clock Generator (DCM_ CLKGEN) выглядит следующим образом:

PROGDATA => PROGDATA, -- 1-bit input Serial data input for M/D reconfiguration

PROGEN => PROGEN, -- 1-bit input Active high program enable RST => RST -- 1-bit input Reset input pin );

-- End of DCM_CLKGEN_inst instantiation

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

• CLKFXDV_DIVIDE — указывает значение дополнительного делителя частоты сигнала синхронизации, генерируемого цифровым синтезатором частот DFS модуля DCM.

• CLKFX_DIVIDE — устанавливает значение знаменателя дробного коэффициента, используемого для вычисления частоты выходного сигнала, формируемого цифровым синтезатором частот DFS в соответствии с выражением (2).

• CLKFX_MD_MAX — определяет максимальное значение дробного коэффициента, используемого для вычисления частоты синтезируемого сигнала при динамическом программировании модуля DCM.

• CLKFX_MULTIPLY — задает значение числителя коэффициента умножения частоты входного тактового сигнала, определяющего характеристики сигнала синхронизации, генерируемого на выходе цифрового синтезатора частот, в соответствии с выражением (2).

• CLKIN_PERIOD — указывает значение периода входного сигнала синхронизации.

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

• STARTUP_WAIT — управляет включением паузы в процессе конфигурирования ПЛИС до момента нормального захвата следящей системы схемы автоподстройки задержек.

-- DCM_CLKGEN : 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_CLKGEN_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—>

-- DCM_CLKGEN: Frequency Aligned Digital Clock Manager -- Spartan-6

-- Xilinx HDL Language Template, version 12.4

DCM_CLKGEN_inst : DCM_CLKGEN generic map (

CLKFXDV_DIVIDE => 2, -- CLKFXDV divide value (2, 4, 8,

16, 32)

CLKFX_DIVIDE => 1, -- Divide value - D - (1-256) CLKFX_MD_MAX => 0.0, -- Specify maximum M/D ratio for timing anlysis

CLKFX_MULTIPLY => 4, -- Multiply value - M - (2-256) CLKIN_PERIOD => 0.0, -- Input clock period specified in nS SPREAD_SPECTRUM => "NONE", -- Spread Spectrum mode "NONE", "CENTER_LOW_SPREAD", "CENTER_HIGH_SPREAD", "VIDEO_LINK_M0", "VIDEO_LINK_M1" or "VIDEO_LINK_M2" STARTUP_WAIT => FALSE -- Delay config DONE until DCM_CLKGEN LOCKED (TRUE/FALSE) )

port map (

CLKFX => CLKFX, -- 1-bit output Generated clock output CLKFX180 => CLKFX180, -- 1-bit output Generated clock output 180 degree out of phase from CLKFX.

CLKFXDV => CLKFXDV, -- 1-bit output Divided clock output LOCKED => LOCKED, -- 1-bit output Locked output PROGDONE => PROGDONE, -- 1-bit output Active high output to indicate the successful re-programming

STATUS => STATUS, -- 2-bit output DCM_CLKGEN status CLKIN => CLKIN, -- 1-bit input Input clock FREEZEDCM => FREEZEDCM, -- 1-bit input Prevents frequency adjustments to input clock

PROGCLK => PROGCLK, -- 1-bit input Clock input for M/D reconfiguration

При использовании шаблона Digital Clock Manager Frequency Aligned Clock Generator (DCM_CLKGEN) для подготовки описаний цифровых модулей управления синхронизацией необходимо прежде всего задать значение периода входного тактового сигнала с помощью параметра настройки CLKIN_ PERIOD. Значение этого параметра указывается в наносекундах.

Затем следует определить значение дробного коэффициента умножения частоты входного тактового сигнала, которое необходимо для получения требуемой частоты сигнала синхронизации, формируемого на выходе цифрового синтезатора частот DFS модуля DCM. Числитель и знаменатель этого коэффициента задаются в виде значений параметров настройки CLKFX_MULTIPLY и CLKFX_DIVIDE. Допустимые значения этих параметров находятся в диапазонах от 2 до 256 и от 1 до 256 соответственно. По умолчанию параметру CLKFX_MULTIPLY присваивается значение, равное четырем, а параметру CLKFX_ DIVIDE — единичное значение.

Если на выходе синтезатора частот предполагается задействовать дополнительный делитель, то нужно указать его коэффициент деления, воспользовавшись параметром CLKFXDV_DIVIDE. Указанный параметр может принимать одно из пяти возможных значений: 2, 4, 8, 16, 32. По умолчанию для этого параметра предлагается значение, равное двум.

В тех случаях, когда необходимо снизить уровень электромагнитного излучения за счет расширения спектра сигнала, следует выбрать соответствующее значение для параметра настройки SPREAD_SPECTRUM, то есть один из шести вариантов: "NONE", "CENTER_LOW_SPREAD", "CENTER_ HIGH_SPREAD", "VIDEO_LINK_M0", "VIDEO_LINK_M1" или "VIDEO_LINK_ M2". Значения "CENTER_LOW_SPREAD" и "CENTER_HIGH_SPREAD" соответствуют режимам фиксированного расширения спектра с различной полосой. Варианты "VIDEO_LINK_M0", "VIDEO_LINK_M1" и "VIDEO_LINK_M2" устанавливают режимы изменяемого расширения спектра. При выборе значения "NONE", предлагаемого по умолчанию, функция расширения спектра сигнала не используется.

Система условных обозначений, используемых в описании интерфейса компонентов, формируемых с помощью шаблона Digital Clock Manager Frequency Aligned Clock Generator (DCM_CLKGEN), включает в себя следующие идентификаторы входных и выходных портов:

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

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

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

• LOCKED — выход сигнала, информирующего о достоверности выходных сигналов создаваемого экземпляра модуля DCM.

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

• STATUS — выходная шина состояния создаваемого экземпляра цифрового модуля управления синхронизацией.

• CLKIN — вход исходного тактового сигнала.

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

• PROGCLK — вход тактового сигнала интерфейса, предназначенного для динамического программирования параметров цифрового синтезатора частот DFS.

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

• PROGEN — вход сигнала управления, разрешающего операцию динамического программирования параметров цифрового синтезатора частот DFS.

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

На рис. 220 показан условный графический образ компонентов, формируемых с помощью шаблона Digital Clock Manager Frequency Aligned Clock Generator (DCM_ CLKGEN) для последующей реализации на базе цифрового модуля управления синхронизацией ПЛИС серии Spartan-6.

Dual Input Differential Clock Buffer (BUFIO2_2CLK) включает в себя образец VHDL-описания буферного элемента тактового сигнала с дифференциальными входами, формирующего входные сигналы

Рис. 220. Условный графический образ компонентов, реализуемых на базе модуля DCM

синхронизации для глобальных буферных элементов, модулей управления синхронизацией, параллельно-последовательных и последовательно-параллельных преобразователей ячеек ввода/вывода в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT:

-- BUFIO2_2CLK : 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 : (BUFIO2_2CLK_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—>

-- BUFIO2_2CLK: Dual Input Differential Clock Buffer -- Spartan-6

-- Xilinx HDL Language Template, version 12.4

BUFIO2_2CLK_inst : BUFIO2_2CLK generic map (

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

DIVIDE => 2 -- DIVCLK divider (1-8)

)

port map (

DIVCLK => DIVCLK, -- 1-bit output Divided clock output IOCLK => IOCLK, -- 1-bit output I/O output clock SERDESSTROBE => SERDESSTROBE, -- 1-bit output Output SERDES strobe (connect to ISERDES2/OSERDES2)

I => I, -- 1-bit input Clock input (connect to IBUFG) IB => IB -- 1-bit input Secondary clock input );

-- End of BUFIO2_2CLK_inst instantiation

Основу представленного шаблона образует экземпляр библиотечного примитива BUFIO2_2CLK, в котором используются единственный параметр настройки DIVIDE. Этот параметр определяет значение делителя частоты входного сигнала для выхода DIVCLK. Частота сигнала на указанном выходе вычисляется по следующей формуле:

FDIVCLK = (2FIN)/DIVIDE, (3)

где FIN — значение частоты входного сигнала.

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

В систему условных обозначений, используемых в описании интерфейса буферных элементов, формируемых с помощью шаблона Dual Input Differential Clock Buffer (BUFIO2_2CLK), входят следующие идентификаторы входов и выходов: • DIVCLK — выход тактового сигнала, формируемого встроенным делителем частоты, используемого в качестве входного для глобальных буферных элементов, модулей фазовой автоподстройки частоты и цифровых модулей управления синхронизацией.

DCM. CLKGEN

CLKIN CLKFX

RST CLKFX180

CLKFXDV

FREEZEDCM

PROGEN STATUS[2:1]

PROGDATA LOCKED

PROGCLK PROGDONE

BUFI02 2CLK

DIVCLK

SERDESSTROBE

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

IBUFGDS_DIFF_OUT BUFI02_2CLK

■ SERDESSTROBE

■ IOCLKO

BUFI02

I INVERT=TRUE

RXCLK

IOCLKO

IOCLK1

DIVIDE=2 DIVCLK

SERDESSTROBE

SERDESSTROBE

SERDESSTROBE

SERDESSTROBE

jljljnjljljljnjnjljljnjljbr

JTJTJTJTJTJTJTJTJTJTJTJ^

ijijijnjbrmjijnjbrijnjn^

JTJTJTJTJTJTJTJTJTJTJTJ^

jTJTJTJTJTJiJxmxnjTJTJ^

SERDESSTROBE

SERDESSTROBE

DIVIDE=8 DIVCLK

SERDESSTROBE

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

Рис. 223. Временные диаграммы сигналов синхронизации на выходах буферного элемента BUFЮ2_2CLK

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

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

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

• IB — инверсный вход дифференциальной пары сигналов.

Условный графический образ буферного элемента тактового сигнала с дифференциальными входами, для подготовки описания которого применяется шаблон Dual Input Differential Clock Buffer (BUFIO2_2CLK), изображен на рис. 221.

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

Временные диаграммы сигналов синхронизации, поясняющие функционирование буферного элемента тактового сигнала с дифференциальными входами, формируемого на основе шаблона Dual Input Differential Clock Buffer (BUFIO2_2CLK) в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, при различных значениях параметра настройки DIVIDE, представлены на рис. 223.

Конфигурируемые логические блоки

Модули блочной памяти

Секции ЦОС

Модули блочной памяти

Секции ЦОС

Block RAM (18kb)

Block RAM (18kb)

Block RAM (18kb)

Block RAM (18kb)

DSP48A1 Slices

DSP48A1 Slices

DSP48A1 Slices

DSP48A1 Slices

Block RAM (18kb)

Block RAM (18kb)

Block RAM (18kb)

Block RAM (18kb)

DSP48A1 Slices

DSP48A1 Slices

DSP48A1 Slices

Модули блочной памяти

Block RAM (18kb)

Block RAM (18kb)

Block RAM (18kb)

Block RAM (18kb)

Логические ячейки ввода/вывода

—| SelectIO Logic

Рис. 224. Структура горизонтальной магистрали тактовых сигналов

HROW Clock Buffer for a Single Clocking Region (BUFH) является шаблоном VHDL-описания буферных элементов, предоставляющих доступ к горизонтальным линиям передачи тактовых сигналов (Horizontal Clock Row, HCLK ROW) в ПЛИС серии Spartan-6. К каждой горизонтальной магистрали HCLK ROW подключено 16 буферных элементов BUFH, которые обеспечивают минимизацию временных перекосов при распределении сигналов синхронизации в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT. Структура горизонтальной магистрали тактовых сигналов в ПЛИС указанных семейств, включающая в себя буферные элементы BUFH, показана на рис. 224.

Текст шаблона описания буферного элемента BUFH имеет следующий вид.

-- BUFH : 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 : (BUFH_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—>

-- BUFH: HROW Clock Buffer for a Single Clocking Region

-- Spartan-6

-- Xilinx HDL Language Template, version 12.4

BUFH_inst : BUFH

port map (

0 => O, -- 1-bit output Clock output

1 => I -- 1-bit input Clock input );

-- End of BUFH_inst instantiation

BUFI02

BUFI02

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

^ÎÎÎ ÎÎt^:

BUFPLL

Логическая ячейка Логическая ячейка

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

BUFPLL

Логическая ячейка ввода/вывода

Логическая ячейка ввода/вывода

Рис. 225. Структура сети распределения региональных тактовых сигналов в ПЛИС серии Spaгtan-6

В качестве основы рассматриваемого шаблона используется экземпляр библиотечного примитива BUFH, который представляет соответствующие буферные элементы, входящие в состав инфраструктуры распределения тактовых сигналов в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT. Система условных обозначений интерфейсных портов буферных элементов, описание которых создается на основе шаблона HROW Clock Buffer for a Single Clocking Region (BUFH), включает в себя те же идентификаторы, что и в буферном элементе, формируемом с помощью шаблона Global Clock Buffer (BUFG).

Условный графический образ буферного элемента, формируемого на основе экземпляра библиотечного примитива BUFH для последующего применения в проектах, реализуемых на базе ПЛИС серии Spartan-6, отличается от изображения, приведенного на рис. 43 (КиТ № 7Ч2010, стр. 103), только названием.

High-speed I/O PLL clock buffer (BUFPLL) представляет собой образец описания высокоскоростного буферного элемента, используемого для подключения сигналов синхронизации, формируемых модулями фазовой автоподстройки частоты PLL, к логическим ячейкам ввода/вывода кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT. Все логические ресурсы блоков ввода/вывода каждого региона ПЛИС серии Spartan-6 (входные и выходные регистры, параллельно-последовательные и последовательно-параллельные преобразователи) тактируются сигналами синхронизации, поступающими с выходов буферных элементов BUFIO2 и BUFPLL этого региона (рис. 225).

Для подготовки описания буферного элемента BUFPLL используется оператор создания экземпляра одноименного библиотечного примитива, который образует основу рассматриваемого шаблона:

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

-- BUFPLL: High-speed I/O PLL clock buffer -- Spartan-6

-- Xilinx HDL Language Template, version 12.4

BUFPLL_inst : BUFPLL generic map (

DIVIDE => 1, -- DIVCLK divider (1-8) ENABLE_SYNC => TRUE -- Enable synchronization between PLL and GCLK (TRUE/FALSE) )

port map (

IOCLK => IOCLK, -- 1-bit output Output I/O clock LOCK => LOCK, -- 1-bit output Synchronized LOCK output SERDESSTROBE => SERDESSTROBE, -- 1-bit output Output SERDES strobe (connect to ISERDES2/OSERDES2)

GCLK => GCLK, -- 1-bit input BUFG clock input LOCKED => LOCKED, -- 1-bit input LOCKED input from PLL PLLIN => PLLIN -- 1-bit input Clock input from PLL );

-- End of BUFPLL_inst instantiation

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

• DIVIDE — устанавливает значение делителя частоты входного сигнала для выхода SERDESSTROBE.

• ENABLE_SYNC — предоставляет возможность синхронизации сигнала на выходе SERDESSTROBE с тактовым сигналом на входе GCLK.

В составе системы условных обозначений, применяемых в описании интерфейса буферных элементов, создаваемых с помощью шаблона High-speed I/O PLL clock buffer (BUFPLL), представлены следующие идентификаторы входных и выходных портов:

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

мируемой логики семейств Spartan-6 LX и Spartan-6 LXT.

• LOCK — выход сигнала, информирующего о достижении режима синхронизма модуля фазовой автоподстройки частоты PLL.

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

• GCLK — вход сигнала синхронизации, поступающего с выходов глобальных буферных элементов (BUFG или GCLK).

• LOCKED — вход сигнала, информирующего о достижении режима синхронизма модуля фазовой автоподстройки частоты PLL.

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

При формировании законченного описания буферного элемента на основе шаблона High-speedI/O PLL clock buffer (BUFPLL) необходимо указать требуемое значение делителя частоты входного сигнала, воспользовавшись настраиваемым параметром DIVIDE. Этот параметр может принимать целочисленные значения в диапазоне от 1 до 8. По умолчанию для параметра DIVIDE предлагается единичное значение.

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

BUFPLL

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

-- BUFPLL : 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 : (BUFPLL_inst) and/or the port declarations after the -- code : "=>" declaration maybe changed to properly reference and

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

Типовая схема включения буферного элемента, формируемого с помощью шаблона High-speed I/O PLL clock buffer (BUFPLL), изображена на рис. 227. Выходные сигналы SERDESSTROBE и IOCLK подключаются соответственно к входам стробирования и тактового сигнала последовательно-параллельных и параллельно-последовательных преобразователей ячеек ввода/вывода.

На рис. 228 представлены временные диаграммы сигналов синхронизации, которые поясняют функционирование высокоскоростных буферных элементов тактового сигнала, создаваемых на основе шаблона High-speed I/O PLL clock buffer (BUFPLL) при различных значениях параметра настройки DIVIDE.

I/O Clock Buffer (BUFIO2) содержит шаблон VHDL-описания буферного элемента, предназначенного для организации тактирования параллельно-последовательных и последовательно-параллельных преобра-

HCLKjruojTJTJTJTJTJTJTJTJT^^ IOCLK jTJTJTJTJTJTJTJTjTJTJT_rLTLr DIVIDE=1

GCLKjrmjTJTJTjriJTJTJTJTJ^^ SERDESSTROBEJ" DIVIDE=2

DIVIDE=3 GCLK-f SERDESSTROBE_ DIVIDE=4 GCLKi

SERDESSTROBE. DIVIDE=5 GCLKj

SERDESSTROBE_

DIVIDE=6 GCLKJ

SERDESSTROBE_

DIVIDE=7 GCLKJ

SERDESSTROBE_

DIVIDE=8 GCLK-f SERDESSTROBE—

Рис. 228. Временные диаграммы сигналов синхронизации на выходах буферного элемента BUFPLL

зователей, представленных в составе логических ячеек ввода/вывода, с использованием сигналов синхронизации, поступающих с соответствующих входов кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, а также для подключения этих сигналов к глобальным буферным элементам, цифровым модулям управления синхронизацией DCM и фазовой автоподстройки частоты PLL. В качестве основы этого шаблона используется оператор создания экземпляра библиотечного примитива BUFIO2, представляющего одноименные буферные элементы тактовых сигналов, входящие в состав инфраструктуры распределения сигналов синхронизации ПЛИС серии Spartan-6 (рис. 225):

-- BUFIO2 : 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 : (BUFIO2_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—>

-- BUFIO2: I/O Clock Buffer

-- Spartan-6

-- Xilinx HDL Language Template, version 12.4

BUFIO2_inst : BUFIO2

generic map (

DIVIDE => 1, -- DIVCLK divider (1-8) DIVIDE_BYPASS => TRUE, -- Bypass the divider circuitry (TRUE/FALSE)

I_INVERT => FALSE, -- Invert clock (TRUE/FALSE) USE_DOUBLER => FALSE -- Use doubler circuitry (TRUE/ FALSE)

)

port map (

DIVCLK => DIVCLK, -- 1-bit output Divided clock output IOCLK => IOCLK, -- 1-bit output I/O output clock SERDESSTROBE => SERDESSTROBE, -- 1-bit output Output SERDES strobe (connect to ISERDES2/OSERDES2)

I => I -- 1-bit input Clock input (connect to IBUFG) );

-- End of BUFIO2_inst instantiation

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

• DIVIDE — задает значение делителя частоты входного сигнала для выходов DIVCLK и SERDESSTROBE.

• DIVIDE_BYPAS — предоставляет возможность исключения делителя частоты входного сигнала при формировании тактового сигнала на выходе DIVCLK.

• I_INVERT — позволяет инвертировать (сдвинуть по фазе на 180°) тактовый сигнал, формируемый на выходе IOCLK.

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

В описании интерфейса буферных элементов, создаваемых с помощью шаблона I/O Clock Buffer (BUFIO2), используется следующая система условных обозначений входных и выходных портов:

• DIVCLK — выход тактового сигнала, формируемого встроенным делителем частоты, используемый в качестве входного для глобальных буферных элементов, модулей фазовой автоподстройки частоты PLL и цифровых модулей управления синхронизацией DCM.

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

• SERDESSTROBE — выход сигнала строби-рования, используемого для управления работой последовательно-параллельных и параллельно-последовательных преобразователей.

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

Условный графический образ буферного элемента сигналов синхронизации, для подготовки описания которого используется шаблон I/O Clock Buffer (BUFIO2), показан на рис. 229.

На рис. 230 представлена типовая схема включения буферного элемента, создаваемого с помощью шаблона I/O Clock Buffer

BUFI02

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

"1_f I_Г

"1_f L

"1_f L

"1_Г

FPGA

Рис. 230. Типовая схема включения буферных элементов BUFIO2

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

Временные диаграммы сигналов синхронизации, которые поясняют применение высокоскоростных буферных элементов тактовых сигналов, формируемых на основе шаблона I/O Clock Buffer (BUFIO2), для организации работы параллельно-последовательных и последовательно-параллельных преобразователей с обычной скоростью при различных значениях параметра настройки DIVIDE, приведены на рис. 231.

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

ного примитива BUFЮ2. Один из возможных вариантов такой схемы изображен на рис. 232.

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

На рис. 233 показаны временные диаграммы сигналов синхронизации, форми-

руемых двумя буферными элементами, описания которых создаются на основе шаблона I/O Clock Buffer (BUFIO2), соответствующие режиму удвоенной скорости функционирования параллельно-последовательных и последовательно-параллельных преобразователей логических ячеек ввода/вывода.

Internal Configuration Access Port (ICAP_ SPARTAN6) включает в себя образец описания внутреннего порта конфигурационного интерфейса кристаллов программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, обеспечивающего доступ к конфигурационным регистрам ПЛИС и возможность обратного считывания данных. В основе этого шаблона лежит использование экземпляра библиотечного примитива ICAP_SPARTAN6, представляющего внутренний порт конфигурационного интерфейса, подобного SelectMAP [24].

_ FPGA Logic

ISERDES2 CLKDIV CLKO CLK1 ЮСЕ

IBUFG RXCLK -

IOCLKO

BUFG

GCLK

SERDESSTROBE

USE_DOUBLER=TRUE I INVERT=FALSE

DIVCLK

SERDESSTROBE

USE_DOUBLER=FALSE I INVERT=TRUE

DATA RATE=DDR

Рис. 232. Применение буферных элементов BUFIO2 для реализации удвоенной скорости преобразования данных

RXCLK jbrmJTJTJTJTJTJTJTJTJTJbT IOCLK JbTlJbrmJTJTJTJTJbri^^ DIVIDE=1

DIVCLK jnjijbrmjnjnjnjnjbrmjbr

SERDESSTROBE _Г

SERDESSTROBE

SERDESSTROBE J L

SERDESSTROBE J L

SERDESSTROBE J L

DIVIDE=6 DIVCLK i

SERDESSTROBE J L

DIVIDE=7 DIVCLK i

SERDESSTROBE J L

DIVIDE=8 DIVCLK i

SERDESSTROBE J L

J L

Рис. 231. Временные диаграммы сигналов синхронизации на выходах буферного элемента BUFЮ2

RXCLK

IOCLKO JTJbTlJTJTJTJTJTJTJTJTJTJn^ IOCLK1 TJTJTJTJTJTJTJ"LrmJTJT^ DIVIDE=2

DIVCLK JTJbTlJTJTJTJTJTJTJTJTJTJn^

SERDESSTROBE J-mjTJTJTJTJ-UTJTJ-L^^

SERDESSTROBE

SERDESSTROBE

SERDESSTROBE _П

SERDESSTROBE П

SERDESSTROBE Л

SERDESSTROBE _П

Рис. 233. Временные диаграммы сигналов синхронизации

на выходах буферных элементов BUFЮ2 при удвоенной скорости преобразования данных

-- ICAP_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 : (ICAP_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—>

-- ICAP_SPARTAN6: Internal Configuration Access Port -- Spartan-6

-- Xilinx HDL Language Template, version 12.4

ICAP_SPARTAN6_inst : ICAP_SPARTAN6 generic map (

DEVICE_ID => X"2000093", -- Specifies the pre-programmed Device ID value

SIM_CFG_FILE_NAME => "NONE" -- Specifies the Raw Bitstream (RBT) file to be parsed by the simulation model

)

port map (

BUSY => BUSY, -- 1-bit output Busy/Ready output

0 => O, -- 16-bit output Configuartion data output bus CE => CE, -- 1-bit input Active-Low ICAP Enable input CLK => CLK, -- 1-bit input Clock input

1 => I, -- 16-bit input Configuration data input bus WRITE => WRITE -- 1-bit input Read/Write control input );

-- End of ICAP_SPARTAN6_inst instantiation

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

• DEVICE_ID — определяет идентификационный код используемого типа кристалла программируемой логики.

• SIM_CFG_FILE_NAME — позволяет указать идентификатор файла конфигурационной последовательности, применяемого в процессе моделирования проектируемого устройства.

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

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

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

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

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

• I — входная шестнадцатиразрядная шина конфигурационных данных.

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

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

ICAP_SPARTAN6

1(15:0) 0(15:0)

СЕ

CLK

WRITE BUSY

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

Configuration Access Port (ICAP_SPARTAN6), который позволяет выполнять операции записи и чтения данных из конфигурационных регистров ПЛИС серии Spartan-6, изображен на рис. 234.

JTAG Boundary Scan Logic Control Circuit (BSCAN_SPARTAN6) является шаблоном VHDL-описания компонента, предоставляющего возможность выполнения операций периферийного сканирования в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT:

-- BSCAN_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 : (BSCAN_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—>

-- BSCAN_SPARTAN6: JTAG Boundary Scan Logic Control Circuit -- Spartan-6

-- Xilinx HDL Language Template, version 12.4

BSCAN_SPARTAN6_inst : BSCAN_SPARTAN6 generic map (

JTAG_CHAIN => 1 -- Value for USER command. Possible values: (1,2,3 or 4).

)

port map (

CAPTURE => CAPTURE, -- 1-bit output CAPTURE output from TAP controller.

DRCK => DRCK, -- 1-bit output Data register output for USER functions.

RESET => RESET, -- 1-bit output Reset output for TAP controller.

RUNTEST => RUNTEST, -- 1-bit output Output signal that gets asserted when TAP controller is in Run Test Idle state. SEL => SEL, -- 1-bit output USER active output. SHIFT => SHIFT, -- 1-bit output SHIFT output from TAP controller.

TCK => TCK, -- 1-bit output Scan Clock output. Fabric connection to TAP Clock pin.

TDI => TDI, -- 1-bit output TDI output from TAP controller.

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

TMS => TMS, -- 1-bit output Test Mode Select output. Fabric connection to TAP.

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

TDO => TDO -- 1-bit input Data input for USER function. );

-- End of BSCAN_SPARTAN6_inst instantiation

Основу представленной конструкции образует оператор создания экземпляра библиотечного элемента BSCAN_SPARTAN6, в котором используется единственный параметр настройки JTAG_CHAIN. Значение этого параметра определяет номер цепочки периферийного сканирования, для управления которой применяется создаваемый экземпляр библиотечного примитива. В составе проектируемого устройства, реализуемого на базе ПЛИС серии Spartan-6, может применяться до четырех компонентов, создаваемых на основе шаблона JTAG Boundary Scan Logic Control Circuit (BSCAN_SPARTAN6). Таким образом, параметр настройки JTAG_ CHAIN может принимать одно из четырех значений — 1, 2, 3, 4. По умолчанию данному параметру присваивается единичное значение.

Система условных обозначений входных и выходных портов, используемая в описании интерфейса компонентов, создаваемых с помощью шаблона JTAG Boundary Scan Logic Control Circuit (BSCAN_SPARTAN6), включает в себя следующие идентификаторы:

• CAPTURE — выход одноименного сигнала, поступающего от контроллера порта тестового доступа TAP (Test Access Port).

• DRCK — выход тактового сигнала для соответствующей цепочки периферийного сканирования.

• RESET — выход сигнала сброса, поступающего от контроллера TAP.

• RUNTEST — выход сигнала, информирующего о текущем состоянии контроллера TAP (Run Test/Idle).

• SEL — выход сигнала, информирующего о загрузке инструкции периферийного сканирования в регистр команд JTAG Instruction Register и ее исполнении.

• SHIFT — выход одноименного сигнала, поступающего от контроллера TAP.

• TCK — выход тактового сигнала, поступающего от контроллера порта тестового доступа.

• TDI — выход сигнала тестовых данных, поступающего от контроллера JTAG-порта.

• TMS — выход одноименного сигнала, поступающего от контроллера порта тестового доступа TAP.

• UPDATE — выход одноименного сигнала, поступающего от контроллера TAP.

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

На рис. 235 приведен условный графический образ компонента, предназначенного для организации периферийного сканирования в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, описание которого формируется с помощью шаблона JTAG Boundary Scan Logic Control Circuit (BSCAN_SPARTAN6).

JTAG Simulation Model (JTAG_SIM_ SPARTAN6) представляет собой образец описания компонента, предназначенного

BSCAN_SPARTAN6

- TDO CAPTURE -

DRCK -

RESET -

RUNTEST -

SEL -

SHIFT -

TCK -

TDI -

TMS -

UPDATE -

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

для функционального моделирования контроллера порта JTAG-интерфейса в составе разрабатываемого устройства, реализуемого на базе ПЛИС серии Spartan-6:

-- JTAG_SIM_SPARTAN6 : 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_SPARTAN6_inst) and/or the port declarations after the

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

-- : function to the design.

-- : Only one JTAG_SIM_SPARTAN6 should be

-- : instantiated per design.

-- : All inputs and output should 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—>

-- JTAG_SIM_SPARTAN6: JTAG Interface Simulation Model -- Spartan-6

-- Xilinx HDL Language Template, version 12.4

JTAG_SIM_SPARTAN6_inst : JTAG_SIM_SPARTAN6 generic map (

PART_NAME => "LX4") -- Specify target S6 device. Possible values are: "LX4","LX150","LX150T","LX16","LX45","LX45T" 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_SPARTAN6_inst instantiation

Основу приведенного шаблона образует экземпляр библиотечного примитива JTAG_ SIM_SPARTAN6. В этом элементе предусмотрен единственный параметр настройки PART_NAME, значение которого определяет тип кристалла программируемой логики семейств Spartan-6 LX и Spartan-6 LXT, применяемый для реализации моделируемого

JTAG_SIM_SPARTAN6

тек TDO

TDI

TMS

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

устройства. Список возможных значений указанного параметра содержит следующие варианты сокращенных условных обозначений ПЛИС серии Spartan-6: "LX4", "LX9", "LX16", "LX25", "LX25T", "LX45", "LX45T", "LX75", "LX75T", "LX100", "LX100T", "LX150", "LX150T". По умолчанию для параметра PART_NAME установлено значение "LX4", соответствующее младшему представителю семейства Spartan-6 LX.

Условный графический образ компонента, для подготовки описания которого используется шаблон JTAG Simulation Model (JTAG_ SM_SPARTAN6), изображен на рис. 236. ■

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

1. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx. М.: Горячая линия - Телеком, 2004.

2. Бибило П. Н. Основы языка VHDL. М.: Солон-Р, 2000.

3. Бибило П. Н. Синтез логических схем с использованием языка VHDL. М.: Солон-Р, 2002.

4. Уэйкерли Дж. Ф. Проектирование цифровых устройств. Т. 1. М.: Постмаркет, 2002.

5. Поляков А. К. Языки VHDL и Verilog в проектировании цифровой аппаратуры. М.: Солон-Пресс, 2003.

6. Зотов В. Инструментальный комплект Spartan-3 Starter Kit для практического освоения методов проектирования встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2005. № 7.

7. Зотов В. Новый инструментальный комплект Spartan-3E Starter Kit для практического освоения методов проектирования встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2006. № 10.

8. Зотов В. Новый инструментальный комплект Spartan-3A Starter Kit для практического освоения методов проектирования и отладки цифровых устройств с аппаратной и программной реализацией операций, реализуемых на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2007. № 9.

9. Зотов В. Новый инструментальный комплект от компании Avnet на основе ПЛИС FPGA семейства Spartan-3A фирмы Xilinx // Компоненты и технологии. 2008. № 8.

10. Зотов В. Инструментальный модуль компании Avnet для отладки проектов встраиваемых систем, разрабатываемых на базе нового семейства ПЛИС FPGA фирмы Xilinx Virtex-5 FXT // Компоненты и технологии. 2008. № 9.

11. Зотов В. Особенности архитектуры нового поколения высокопроизводительных ПЛИС FPGA фирмы Xilinx серии Virtex-6 // Компоненты и технологии. 2009. № 8.

12. Зотов В. Особенности архитектуры нового поколения ПЛИС FPGA фирмы Xilinx серии Spartan-6 // Компоненты и технологии. 2009. № 9.

13. Зотов В. Новое семейство высокопроизводительных ПЛИС с архитектурой FPGA фирмы Xilinx Virtex-6 HXT // Компоненты и технологии. 2010. № 1.

14. IEEE Standard VHDL Language Reference Manual. IEEE Std 1076-2002.

15. Суворова Е. А., Шейнин Ю. Е. Проектирование цифровых систем на VHDL. СПб.: БХВ-Петер-бург, 2003.

16. Сергиенко A. M. VHDL для проектирования вычислительных устройств. Киев: ЧП «Корнейчук», ООО «ТИД «ДС», 2003.

17. Зотов В. Проектирование цифровых устройств, реализуемых на базе ПЛИС FPGA фирмы Xilinx, с использованием средств CORE Generator // Компоненты и технологии. 2006. № 12. 2007. № 1.

18. Зотов В. Разработка компонентов устройств цифровой обработки сигналов, реализуемых на базе аппаратных модулей DSP48E в ПЛИС FPGA серии Virtex-5, с помощью «мастера» Architecture Wizard САПР серии Xilinx ISE // Компоненты и технологии. 2008. № 12. 2009. № 1, 4-7.

19. Spartan-3 Generation FPGA User Guide. Xilinx, 2009.

20. Spartan-3 FPGA Family: Complete Data Sheet. Xilinx, 2009.

21. Spartan-3 Generation Configuration User Guide. Xilinx, 2009.

22. Зотов В. Особенности архитектуры нового поколения ПЛИС FPGA фирмы Xilinx серии Spartan-6 // Компоненты и технологии. 2009. № 9.

23. Spartan-6 Family Overview. Xilinx, 2009.

24. Spartan-6 FPGA Configuration User Guide. Xilinx, 2009.

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

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

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

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

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

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

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

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

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