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

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

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

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

Двадцать восьмая часть статьи представляет образцы VHDL-описаний элементов, выполненных на основе экземпляров библиотечных примитивов, которые предназначены для реализации на базе соответствующих аппаратных ресурсов кристаллов программируемой логики серий Artix-7, Kintex-7 и Virtex-7 [69-84]. В этой части приведена информация о шаблонах описания аналого-цифрового модуля XADC и элементов, применяемых в составе систем формирования и распределения сигналов синхронизации ПЛИС перечисленных семейств.

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

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

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

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

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

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

walerry@km.ru

Двадцать восьмая часть статьи представляет образцы VHDL-описаний элементов, выполненных на основе экземпляров библиотечных примитивов, которые предназначены для реализации на базе соответствующих аппаратных ресурсов кристаллов программируемой логики серий АгШ-7, К^ех-7 и Virtex-7 [69—84]. В этой части приведена информация о шаблонах описания аналого-цифрового модуля XADC и элементов, применяемых в составе систем формирования и распределения сигналов синхронизации ПЛИС перечисленных семейств.

Разделы Virtex-7 и Kintex-7 каталога Device Primitive Instantiation шаблонов языка VHDL содержат образцы описаний компонентов, применяемых в составе устройств, реализуемых на базе ПЛИС одноименных серий. Эти разделы имеют одинаковую структуру, которая включает в себя, в основном, те же подразделы, что представлены в составе каталога Spartan-3 (рис. 51 в КиТ № 8Ч2010). В кристаллах программируемой логики серий Artix-7, Kintex-7 и Virtex-7 используется единая унифицированная архитектура, поэтому образцы описаний различных аппаратных

ресурсов этих ПЛИС, расположенные в этих разделах, по существу не отличаются друг от друга. Текст основной части большинства шаблонов, представленных в подразделах каталогов Virtex-7 и Kintex-7, совпадает с одноименными образцами описаний компонентов, расположенными в папках Spartan-3, Spartan-3A, Spartan-3A DSP, Spartan-3E, Spartan-6, Virtex-4, Virtex-5 и Virtex-6, которые были рассмотрены ранее. Поэтому далее приводится информация только о тех шаблонах, которые отсутствуют или отличаются от одноименных шаблонов в перечисленных папках.

Xilinx Analog-to-Digital Converter (XADC) является образцом описания аналого-цифрового модуля XADC, входящего в состав архитектуры кристаллов программируемой логики серий Artix-7, Kintex-7 и Virtex-7 [83]. Этот модуль предоставляет возможность преобразования в цифровую форму до семнадцати внешних аналоговых сигналов, поступающих на входы ПЛИС, а также мониторинга уровней напряжений питания и значений температуры кристаллов указанных серий. Обобщенная структурная схема аналого-цифрового модуля XADC представлена на рис. 450.

Основные функциональные блоки этой схемы:

• блок аналого-цифрового преобразования сигналов;

• входной мультиплексор внешних аналоговых сигналов;

• интегрированный датчик температуры;

• встроенные датчики питающих напряжений;

• регистры состояния;

• регистры управления;

• порт динамического реконфигурирования;

• встроенный источник опорного напряжения.

Блок АЦП, образующий основу аналого-цифрового модуля XADC, позволяет выполнять преобразование двух аналоговых сигналов в цифровую форму с максимальной частотой дискретизации, достигающей 1 Мвыборок/с, и 12-разрядным разрешением. В его состав входят два АЦП, каждый из которых обеспечивает выполнение операций оцифровки входного аналогового сигнала

Входы внешних аналоговых сигналов

VP а

VNO VAUXP[0]O VAUXN[0]O

VAUXP[12]o ^VAUXN[12]0 VAUXP[13]o VAUXN[13]° VAUXP[14]o VAUXN[14]0 VAUXP[15]o VAUXN[15]0

Датчик Датчики температуры напряжения

VREFP VREFN

_2_

Источник опорного напряжения

1,25 В

I

Аналого-цифровой модуль XADC

АЦП А

12-бит Регистры

управления

32*16 бит

АЦП В

12-бит

Регистры состояния

I

Порт динамического реконфигурирования DRP

FPGA Interconnect

Г

Рис. 450. Структура аналого-цифрового модуля XADC ПЛИС серий Artix-7, Kintex-7 и Virtex-7

Выходной код

FFF-FFE. FFD.

004003002. 001000

1 LSB = 1 В/4096 = 244 мкВ

Входное напряжение

Ubx, мВ

Рис. 451. Передаточная характеристика АЦП модуля XADC для однополярных входных сигналов

Выходной код

Ubx, мВ

Рис. 452. Передаточная характеристика АЦП модуля XADC для двухполярных входных сигналов

Выходной код

Рис. 454. Передаточная характеристика блока измерения напряжений питания Рис. 453. Передаточная характеристика блока измерения температуры модуля XADC модуля XADC

с точностью 0,1%. Эти АЦП поддерживают возможность аналого-цифрового преобразования однополярных входных сигналов в диапазоне от 0 до 1 В и двухполярных сигналов — в диапазоне от -500 до +500 мВ. Кроме того, предусмотрена возможность оцифровки входных сигналов, представленных в дифференциальном виде. Передаточные характеристики АЦП модуля XADC для однопо-лярных и двухполярных входных сигналов приведены на рис. 451 и 452 соответственно.

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

Интегрированный датчик температуры модуля XADC позволяет измерять соответствующий параметр кристаллов программируемой логики серий Агйх-7, ЮМех-7 и Virtex-7 в диапазоне от -40 до +125 °С с точностью ±4 °С. На рис. 453 показана передаточная характери-

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

Встроенные датчики напряжения модуля XADC служат для контроля уровней различных напряжений питания ПЛИС, включая напряжения VCCINT VCCAUX и VCCBRAM. Эти датчики обеспечивают возможность измерения уровней питающих напряжений в диапазоне от 0 до 3 В с точностью ±1%. Передаточная характеристика блока измерения напряжений питания аналого-цифрового модуля, в состав которого входят интегрированные датчики напряжения и АЦП, приведена на рис. 454.

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

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

Регистры управления Control Registers используются для выбора необходимого режима работы модуля XADC и выполняемых операций, установки требуемой последовательности подключения аналоговых входов и встроенных датчиков к входам АЦП, определения предельных значений температуры и питающих напряжений. Эти регистры доступны для чтения и записи команд и данных.

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

Vccaux(1,8 В ±5%)

О

vrefp i ^ccadc

—^HEh

АРС

-кн

Vrefn Tgndadc

10НФ

1,8-5 В

1,25 В ±0,2% 50 рртЛС

gnd

VCCaux(1,8 В ±5%)

О

^Vccadc

А0С

eh

Рис. 455. Схема подключения питания модуля XADC с применением встроенного источника опорного напряжения

Рис. 456. Схема подключения питания модуля XADC с применением внешнего источника опорного напряжения

сигналов. Типовые схемы подключения питания аналого-цифрового модуля XADC с применением встроенного и внешнего источника опорного напряжения изображены на рис. 455 и 456 соответственно.

Аналого-цифровой модуль кристаллов программируемой логики серий Аг^х-7, К^ех-7 и Virtex-7 поддерживает возможность коммутации входных аналоговых сигналов с помощью внешних (по отношению к ПЛИС) мультиплексоров. Для этой цели в модуле XADC предусмотрена дополнительная выходная адресная шина, предназначенная для управления выбором требуемого входного канала внешнего мультиплексора. Такой вариант коммутации входных аналоговых сигналов позволяет существенно сократить количество задействованных входов/выходов кристаллов программируемой логики. В качестве примера, поясняющего применение внешних мультиплексоров для организации многоканального подключения входных сигналов аналого-цифрового модуля, на рис. 457 представлена структурная схема 16-канального варианта устройства преобразования аналоговых сигналов.

Применение двух внешних мультиплексоров входных аналоговых сигналов предоставляет возможность реализации режима одновременной (параллельной) выборки в АЦП модуля XADC. Пример организации указанного режима демонстрирует структурная схема, приведенная на рис. 458.

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

Для формирования описания аналого-цифрового модуля XADC кристаллов программируемой логики серий АГ!х-7, К^ех-7 и Virtex-7 предлагается одноименный библиотечный примитив. Оператор создания экземпляра этого библиотечного примитива образует основу рассматриваемого шаблона:

Рис. 457. Схема подключения внешнего мультиплексора входных сигналов к модулю XADC

Рис. 458. Схема подключения внешних мультиплексоров входных сигналов к модулю XADC для реализации режима одновременной выборки

1819

104

dclk

adcclk

j?peMH установления ^'

)емя преобразования канала ^

busy

eoc/EOS

muxaddr[4:0]

Время подготовки данных канала n+1_

! 1

Х^ !

' ' 3anycj<

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

Завершение-^! преобразования выборки канала N выборки канала N

I

"

Канал n

п

Канал N+1

Рис. 459. Временные диаграммы сигналов модуля XADC, соответствующие режиму непрерывной выборки

-- XADC : 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 : (XADC_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--->

-- XADC: Dual 12-Bit 1MSPS Analog-to-Digital Converter -- Virtex-7

-- Xilinx HDL Language Template, version 13.3

XADC_inst : XADC generic map (

-- INIT_40 - INIT_42: XADC configuration registers

INIT_40 => X"0000",

INIT_41 => X"0000",

INIT_42 => X"0800",

-- INIT_48 - INIT_4F: Sequence Registers

INIT_48 => X"0000",

INIT_49 => X"0000",

INIT_4A => X"0000",

INIT_4B => X"0000",

INIT_4C => X"0000",

INIT_4D => X"0000",

INIT_4E => X"0000",

INIT_4F => X"0000",

-- INIT_50 - INIT_58, INIT5C: Alarm Limit Registers

INIT_50 => X"0000",

INIT_51 => X"0000",

INIT_52 => X"0000",

INIT_53 => X"0000",

INIT_54 => X"0000",

INIT_55 => X"0000",

INIT_56 => X"0000",

INIT_57 => X"0000",

INIT_58 => X"0000",

INIT_5C => X"0000",

-- Simulation attributes: Set for proepr simulation behavior SIM_DEVICE => "7SERIES", -- Select target device (values) SIM_MONITOR_FILE => "design.txt" -- Analog simulation data file name

)

port map (

-- ALARMS: 8-bit (each) output: ALM, OT ALM => ALM, -- 8-bit output: Output alarm for temp, Vccint, Vccaux and Vccbram

OT => OT, -- 1-bit output: Over-Temperature alarm -- Dynamic Reconfiguration Port (DRP): 16-bit (each) output: Dynamic Reconfiguration Ports

DO => DO, -- 16-bit output: DRP output data bus DRDY => DRDY, -- 1-bit output: DRP data ready -- STATUS: 1-bit (each) output: XADC status ports BUSY => BUSY, -- 1-bit output: ADC busy output CHANNEL => CHANNEL, -- 5-bit output: Channel selection outputs

EOC => EOC, -- 1-bit output: End of Conversion EOS => EOS, -- 1-bit output: End of Sequence JTAGBUSY => JTAGBUSY, -- 1-bit output: JTAG DRP transaction in progress output

JTAGLOCKED => JTAGLOCKED, -- 1-bit output: JTAG requested DRP port lock

JTAGMODIFIED => JTAGMODIFIED, -- 1-bit output: JTAG Write to the DRP has occurred

MUXADDR => MUXADDR, -- 5-bit output: External MUX channel decode

-- Auxiliary Analog-Input Pairs: 16-bit (each) input: VAUXP[15:0], VAUXN[15:0]

VAUXN => VAUXN, -- 16-bit input: N-side auxiliary

analog input

VAUXP => VAUXP, -- 16-bit input: P-side auxiliary

analog input

-- CONTROL and CLOCK: 1-bit (each) input: Reset, conversion start and clock inputs

CONVST => CONVST, -- 1-bit input: Convert start input CONVSTCLK => CONVSTCLK, -- 1-bit input: Convert

start input

RESET => RESET, -- 1-bit input: Active-high reset -- Dedicated Analog Input Pair: 1-bit (each) input: VP/VN VN => VN, -- 1-bit input: N-side analog input VP => VP, -- 1-bit input: P-side analog input -- Dynamic Reconfiguration Port (DRP): 7-bit (each) input: Dynamic Reconfiguration Ports

DADDR => DADDR, -- 7-bit input: DRP address bus DCLK => DCLK, -- 1-bit input: DRP clock DEN => DEN, -- 1-bit input: DRP enable signal DI => DI, -- 16-bit input: DRP input data bus DWE => DWE -- 1-bit input: DRP write enable );

-- End of XADC_inst instantiation

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

• INIT_40-INIT_42 — определяют содержимое конфигурационных регистров аналого-цифрового модуля XADC.

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

• INIT_50-INIT_58, INIT_5C — предоставляют возможность установки пороговых уровней температуры и питающих напряжений, при достижении которых автоматически вырабатывается сигнал тревоги для соответствующего параметра (производится переключение уровня сигнала на соответствующем выходе).

• SIM_DEVICE — указывает семейство ПЛИС, для которого формируется описание аналого-цифрового модуля (по умолчанию предлагается значение "7SERIES", соответствующее семействам Artix-7, Kintex-7 и Virtex-7).

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

входных и выходных портов, используемых в описании интерфейса аналого-цифрового модуля XADC, описание которого создается на основе шаблона Xilinx Analog-to-Digital Converter (XADC), входят следующие идентификаторы:

• ALM — выходная 8-разрядная шина, объединяющая сигналы тревоги, предупреждающие о выходе значений температуры и уровней питающих напряжений за пределы заданного диапазона.

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

• DO — выходная 16-разрядная шина данных порта динамического реконфигури-рования DRP.

• DRDY — выход сигнала готовности данных для порта динамического реконфигу-рирования DRP.

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

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

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

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

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

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

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

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

• VAUXN и VAUXP — входные 16-разрядные шины, объединяющие соответствующие линии дифференциальных пар дополнительных аналоговых входов рассматриваемого модуля.

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

• CONVSTCLK — вход сигнала, инициирующего процесс выборки сигнала в АЦП.

• RESET — вход сигнала сброса для управляющей логики аналого-цифрового модуля.

• VN и VP — основные дифференциальные входы аналоговых сигналов модуля XADC.

• DADDR — входная 7-разрядная адресная шина порта динамического реконфигури-рования DRP.

• DCLK — вход сигнала синхронизации для порта динамического реконфигурирова-ния DRP.

• DEN — вход сигнала разрешения порта динамического реконфигурирования DRP.

• DI — входная 16-разрядная шина данных порта динамического реконфигурирова-ния DRP.

• DWE — вход сигнала разрешения записи для порта динамического реконфигуриро-вания DRP.

Условный графический образ элемента, представляющего аналого-цифровой модуль XADC ПЛИС серий Artix-7, Kintex-7 и Virtex-7, для подготовки описания которого используется шаблон Xilinx Analog-to-Digital Converter (XADC), изображен на рис. 460.

XADC Monitor Simulation File предоставляет шаблон файла входных значений аналого-цифрового модуля XADC, предназначенного для использования в процессе его моделирования в составе проектируемых устройств, реализуемых на основе кристаллов программируемой логики семейств Artix-7, Kintex-7 и Virtex-7:

XADC

— D0[15:0]

- Dl[15:0]

- DADDR[6:0]

- DEN

- DWE ALM[7:0] -

_ DCLK ОТ

DRDY

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

- RST MUXADDR[4:0] _

- CONVST CHANNEL[4:0] -

CONVSTCLK EOC -

EOS -

BUSY -

— VP JTAGLOCKED -

- VN JTAGMODIFIED -

— VAUXP[15:0] JTAGBUSY -

- VAUXN[15:0]

Рис. 460. Условный графический образ элемента, представляющего модуль XADC ПЛИС серий Artix-7, Kintex-7 и Virtex-7

Блоки управления синхронизацией СМТ Блоки ввода/вывода

Рис. 461. Структура ресурсов распределения тактовых сигналов ПЛИС серий Aгtix-7, К^ех-7 и Viгtex-7

-- Must use valid headers on all columns -- Comments can be added to the stimulus file using '--'

TIME TEMP VCCAUX VCCINT VBRAM VP VN VAUXP[0] VAUXN[0]

00000 45 1.8 1.0 1.0 0.5 0.0 0.7 0.0

05000 85 1.77 1.01 1.01 0.3 0.0 0.2 0.0

-- Time stamp data is in nano seconds (ns) -- Temperature is recorded in C (degrees centigrade) -- All other channels are recorded as V (Volts) -- Valid column headers are:

-- TIME, TEMP, VCCAUX, VCCINT, VBRAM, VCCPINT, VCCPAUX, VCCDDRO, VP, VN,

-- VAUXP[0], VAUXN[0],........................VAUXP[15], VAUXN[15]

-- External analog inputs are differential so VP = 0.5 and VN = 0.1 the -- input on channel VP/VN in 0.5 - 0.1 = 0.4V

Multi-Region Clock Buffer (BUFMR) содержит образец описания буферного элемента, обеспечивающего возможность одновременного доступа к региональным линиям передачи тактовых сигналов нескольких регионов ПЛИС серий Artix-7, Kintex-7 и Virtex-7. Система распределения тактовых сигналов в кристаллах программируемой логики этих серий, в отличие от ПЛИС семейств Virtex-4 LX, Virtex-4 SX, Virtex-4 FX, Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT, Virtex-5 TXT, Virtex-5 FXT, Virtex-6 LXT, Virtex-6 CXT, Virtex-6 SXT и Virtex-6 HXT, кроме региональных буферных элементов BUFR включает в себя также мультирегиональные — BUFMR [77]. В каждом регионе ПЛИС серий Artix-7, Kintex-7 и Virtex-7 представлено два буферных элемента BUFMR. Рис. 461 поясняет топологию указанных буферных элементов в структуре ресурсов распределения тактовых сигналов.

Входы буферных элементов BUFMR связаны с выделенными выводами кристаллов программируемой логики, используемыми для подключения тактовых сигналов, которые имеют обозначение MRCC (Multi-Rregion Clock Capable). Выходы этих буферных элементов сопряжены с входами буферных элементов BUFR и BUFIO, относящихся к различным регионам. Сопряжение элементов BUFMR с различными буферными элементами регионального уровня и выводами ПЛИС серий Artix-7, Kintex-7 и Virtex-7 показано на рис. 462.

В качестве примера использования буферных элементов BUFMR на рис. 463 представлена схема распределения сигнала синхронизации, предназначенного для тактирования ячеек ввода/вывода, относящихся к трем различным регионам.

Буферные элементы BUFMR поддерживают два варианта конфигурирования: без входа разрешения синхронизации или с указанным входом. Для подготовки описания буферного элемента, предоставляющего возможность доступа к региональным линиям передачи тактовых сигналов нескольких регионов ПЛИС серий Artix-7, Kintex-7 и Virtex-7, без входа разрешения сигнала синхронизации предусмотрен библиотечный примитив BUFMR, на основании экземпляра которого выполнен шаблон Multi-Region Clock Buffer (BUFMR):

-- BUFMR : 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 : (BUFMR_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

±r0

MRCC

BUFMR Граница региона

BUFIO

Логические ресурсы ввода/вывода

Рис. 462. Сопряжение элементов В^М^ с буферными элементами Рис. 463. Применение буферного элемента В^М^ для организации

регионального уровня и выводами ПЛИС серий Aгtix-7, К^ех-7 и Viгtex-7 тактирования ячеек ввода/вывода, относящихся к различным регионам

Рис. 464. Схема организации тактирования ячеек ввода/вывода, относящихся к трем различным регионам ПЛИС серий Аг^х-7, К^ех-7 и Virtex-7

Рис. 465. Схема организации тактирования последовательно-параллельных и параллельно-последовательных преобразователей, относящихся к трем различным регионам ПЛИС

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

-- BUFMR: Multi-Region Clock Buffer -- Virtex-7

-- Xilinx HDL Language Template, version 13.3

BUFMR_inst : BUFMR port map (

0 => O, -- 1-bit output: Clock output (connect to BUFIOs/BUFRs)

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

-- End of BUFMR_inst instantiation

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

• O — выход, подключаемый к входам буферных элементов BUFR и/или BUFIO;

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

элемента, создаваемого с помощью шаблона Multi-Region Clock Buffer (BUFMR) для последующего применения в проектах, реализуемых на базе кристаллов программируемой логики серий Artix-7, Kintex-7 и Virtex-7, отличается от изображения, приведенного на рис. 43 (КиТ № 7Ч 2010), только названием.

Multi-Region Clock Buffer with Clock Enable (BUFMRCE) включает в себя шаблон VHDL-описания варианта конфигурирования буферного элемента, обеспечивающего воз-

можность одновременного доступа к региональным линиям передачи тактовых сигналов нескольких регионов ПЛИС серий Artix-7, Kintex-7 и Virtex-7, со входом разрешения синхронизации. Основой этого шаблона является оператор создания экземпляра библиотечного примитива BUFMRCE:

-- BUFMRCE : 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 : (BUFMRCE_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--->

-- BUFMRCE: Multi-Region Clock Buffer with Clock Enable -- Virtex-7

-- Xilinx HDL Language Template, version 13.3

BUFMRCE_inst : BUFMRCE generic map (

CE_TYPE => "SYNC", -- SYNC, ASYNC INIT_OUT => 0 -- Initial output and stopped polarity, (0-1)

)

port map (

0 => O, -- 1-bit output: Clock output (connect to BUFIOs/BUFRs)

CE => CE, -- 1-bit input: Active high buffer enable

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

-- End of BUFMRCE_inst instantiation

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

• CE_TYPE — указывает тип входа разрешения синхронизации в формируемом буферном элементе: синхронный или асинхронный (по умолчанию предлагается значение

"SYNC", соответствующее синхронному типу).

• INIT_OUT — определяет начальное состояние выхода создаваемого буферного элемента (по умолчанию при инициализации выход сбрасывается в состояние низкого логического уровня). В состав системы условных обозначений входных и выходных портов, применяемых в описании интерфейса буферных элементов BUFMR со входом разрешения сигнала синхронизации, формируемых с помощью библиотечного примитива BUFMRCE, входят идентификаторы, назначение которых было представлено при рассмотрении предыдущего шаблона. Кроме того, в буферных элементах, для подготовки описания которых применяется шаблон Multi-Region Clock Buffer with Clock Enable (BUFMRCE), есть вход сигнала разрешения синхронизации CE.

Условный графический образ буферного элемента, предоставляющего возможность одновременного доступа к региональным линиям передачи тактовых сигналов нескольких регионов кристаллов программируемой логики серий Artix-7, Kintex-7 и Virtex-7, со входом разрешения синхронизации, отличается от изображения, представленного на рис. 418 (КиТ № 3Ч2012), только названием.

Примером использования буферного элемента, создаваемого с помощью шаблона

Multi-Region Clock Buffer with Clock Enable (BUFMRCE), является схема организации тактирования ячеек ввода/вывода, относящихся к трем различным регионам ПЛИС, которая изображена на рис. 464.

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

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

Advanced Mixed Mode Clock Manager (MMCME2_ADV) — это образец VHDL-описания расширенного варианта конфигурирования комбинированного модуля управления синхронизацией Mixed-Mode Clock Managers (MMCM), представленного в составе архитектуры ПЛИС серий Artix-7, Kintex-7 и Virtex-7. Основу системы формирования тактовых сигналов в кристаллах программируемой логики этих серий составляют блоки управления синхронизацией CMT, структура которых существенно отличается от архитектуры аналогичных блоков, используемых в ПЛИС семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT, Virtex-5 TXT, Virtex-5 FXT, Virtex-6 LXT, Virtex-6 CXT, Virtex-6 SXT и Virtex-6 HXT. Обобщенная структура блоков CMT, применяемых в кристаллах программируемой логики серий Artix-7, Kintex-7 и Virtex-7, приведена на рис. 466. Основными элементами этой структуры являются комбинированный модуль управления синхронизацией MMCM и модуль фазовой автоподстройки частоты PLL.

Комбинированные модули управления синхронизацией MMCM в ПЛИС указанных серий выполнены в соответствии с той же функциональной схемой, что и аналогичные модули в кристаллах программируемой логики семейств Virtex-6 LXT, Virtex-6 CXT, Virtex-6 SXT и Virtex-6 HXT (рис. 409, КиТ № 7Ч2010). Эти модули поддерживают два варианта конфигурирования — расширенный и базовый. Расширенный вариант конфигурирования позволяет задействовать все функциональные возможности комбинированного модуля управления синхронизацией. Базовый вариант конфигурирования предоставляет возможность использования

только наиболее востребованных функций, выполняемых модулем ММСМ.

Для создания описания комбинированного модуля управления синхронизацией ММСМ с поддержкой всех функциональных возможностей, предназначенного для применения в составе устройств, проектируемых на базе ПЛИС серий Агйх-7, КПех-7 и Virtex-7, предлагается библиотечный примитив MMCME2_ADV, который представляет расширенный вариант конфигурирования указанного модуля. На основе оператора создания экземпляра этого библиотечного примитива выполнен рассматриваемый шаблон:

-- MMCME2_ADV : 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 : (MMCME2_ADV_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--->

-- MMCME2_ADV: Advanced Mixed Mode Clock Manager -- Virtex-7

-- Xilinx HDL Language Template, version 13.3

MMCME2_ADV_inst : MMCME2_ADV generic map (

BANDWIDTH => "OPTIMIZED", -- Jitter programming (OPTIMIZED, HIGH, LOW)

CLKFBOUT_MULT_F => 5.0, -- Multiply value for all CLKOUT (2.000-64.000).

CLKFBOUT_PHASE => 0.0, -- Phase offset in degrees of CLKFB (-360.000-360.000).

-- CLKIN_PERIOD: Input clock period in ns to ps resolution (i.e. 33.333 is 30 MHz).

CLKIN1_PERIOD => 0.0, CLKIN2_PERIOD => 0.0,

-- CLK0UT0_DIVIDE - CLKOUT6_DIVIDE: Divide amount for CLKOUT (1-128)

CLKOUT1_DIVIDE => 1, CLKOUT2_DIVIDE => 1, CLKOUT3_DIVIDE => 1, CLKOUT4_DIVIDE => 1, CLKOUT5_DIVIDE => 1, CLKOUT6_DIVIDE => 1,

CLKOUT0_DIVIDE_F => 1.0, -- Divide amount for CLKOUT0 (1.000-128.000).

-- CLKOUT0_DUTY_CYCLE - CLKOUT6_DUTY_ CYCLE: Duty cycle for CLKOUT outputs (0.01-0.99). CLKOUT0_DUTY_CYCLE => 0.5, CLKOUT1_DUTY_CYCLE => 0.5, CLKOUT2_DUTY_CYCLE => 0.5, CLKOUT3_DUTY_CYCLE => 0.5, CLKOUT4_DUTY_CYCLE => 0.5, CLKOUT5_DUTY_CYCLE => 0.5, CLKOUT6_DUTY_CYCLE => 0.5, -- CLKOUT0_PHASE - CLKOUT6_PHASE: Phase offset for CLKOUT outputs (-360.000-360.000).

CLKOUT0_PHASE => 0.0, CLKOUT1_PHASE => 0.0, CLKOUT2_PHASE => 0.0, CLKOUT3_PHASE => 0.0, CLKOUT4_PHASE => 0.0, CLKOUT5_PHASE => 0.0, CLKOUT6_PHASE => 0.0,

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

CLKOUT4_CASCADE => FALSE, -- Cascase CLKOUT4 counter with CLKOUT6 (FALSE, TRUE)

COMPENSATION => "ZHOLD", -- ZHOLD, BUF_IN, EXTERNAL, INTERNAL

DIVCLK_DIVIDE => 1, -- Master division value (1-106) -- REFJITTER: Reference input jitter in UI (0.000-0.999). REFJITTER1 => 0.0, REFJITTER2 => 0.0,

STARTUP_WAIT => FALSE, -- Delays DONE until MMCM is locked (FALSE, TRUE)

-- USE_FINE_PS: Fine phase shift enable (TRUE/FALSE) CLKFBOUT_USE_FINE_PS => FALSE, CLKOUT0_USE_FINE_PS => FALSE, CLKOUT1_USE_FINE_PS => FALSE, CLKOUT2_USE_FINE_PS => FALSE, CLKOUT3_USE_FINE_PS => FALSE, CLKOUT4_USE_FINE_PS => FALSE, CLKOUT5_USE_FINE_PS => FALSE, CLKOUT6_USE_FINE_PS => FALSE )

port map (

-- Clock Outputs: 1-bit (each) output: User configurable

clock outputs

CLKOUT0 => CLKOUT0, -- 1-bit output: CLKOUT0 CLKOUT0B => CLKOUT0B, -- 1-bit output: Inverted

CLKOUT0

CLKOUT1 => CLKOUT1, -- 1-bit output: CLKOUT1 CLKOUT1B => CLKOUT1B, -- 1-bit output: Inverted

CLKOUT1

CLKOUT2 => CLKOUT2, -- 1-bit output: CLKOUT2 CLKOUT2B => CLKOUT2B, -- 1-bit output: Inverted

CLKOUT2

CLKOUT3 => CLKOUT3, -- 1-bit output: CLKOUT3 CLKOUT3B => CLKOUT3B, -- 1-bit output: Inverted

CLKOUT3

CLKOUT4 => CLKOUT4, -- 1-bit output: CLKOUT4 CLKOUT5 => CLKOUT5, -- 1-bit output: CLKOUT5 CLKOUT6 => CLKOUT6, -- 1-bit output: CLKOUT6 -- DRP Ports: 16-bit (each) output: Dynamic reconfigration ports

DO => DO, -- 16-bit output: DRP data DRDY => DRDY, -- 1-bit output: DRP ready -- Dynamic Phase Shift Ports: 1-bit (each) output: Ports used for dynamic phase shifting of the outputs

PSDONE => PSDONE, -- 1-bit output: Phase shift done -- Feedback Clocks: 1-bit (each) output: Clock feedback ports CLKFBOUT => CLKFBOUT, -- 1-bit output: Feedback clock CLKFBOUTB => CLKFBOUTB, -- 1-bit output: Inverted

CLKFBOUT

-- Status Ports: 1-bit (each) output: MMCM status ports CLKFBSTOPPED => CLKFBSTOPPED, -- 1-bit output: Feedback clock stopped

CLKINSTOPPED => CLKINSTOPPED, -- 1-bit output: Input clock stopped

LOCKED => LOCKED, -- 1-bit output: LOCK -- Clock Inputs: 1-bit (each) input: Clock inputs CLKIN1 => CLKIN1, -- 1-bit input: Primary clock CLKIN2 => CLKIN2, -- 1-bit input: Secondary clock -- Control Ports: 1-bit (each) input: MMCM control ports CLKINSEL => CLKINSEL, -- 1-bit input: Clock select, High=CLKIN1 Low=CLKIN2

PWRDWN => PWRDWN, -- 1-bit input: Power-down RST => RST, -- 1-bit input: Reset -- DRP Ports: 7-bit (each) input: Dynamic reconfigration ports DADDR => DADDR, -- 7-bit input: DRP adrress DCLK => DCLK, -- 1-bit input: DRP clock DEN => DEN, -- 1-bit input: DRP enable DI => DI, -- 16-bit input: DRP data DWE => DWE, -- 1-bit input: DRP write enable -- Dynamic Phase Shift Ports: 1-bit (each) input: Ports used for dynamic phase shifting of the outputs

PSCLK => PSCLK, -- 1-bit input: Phase shift clock PSEN => PSEN, -- 1-bit input: Phase shift enable PSINCDEC => PSINCDEC, -- 1-bit input: Phase shift increment/decrement

-- Feedback Clocks: 1-bit (each) input: Clock feedback

ports

CLKFBIN => CLKFBIN -- 1-bit input: Feedback clock );

-- End of MMCME2_ADV_inst instantiation

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

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

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

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

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

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

• CLKOUT1_DIVIDE-CLKOUT6_DIVIDE — устанавливают значения индивидуального делителя CLKOUTi_DIVIDE в выражении, определяющем значение частоты сигнала синхронизации, формируемого на соответствующем выходе модуля (CLKOUT1-CLKOUT6).

• CLKOUT0_DIVIDE_F — указывает значение индивидуального делителя CLKOUTi_ DIVIDE в выражении, определяющем значение частоты тактового сигнала, формируемого на выходе CLKOUT0.

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

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

• CLKOUT4_CASCADE — предоставляет возможность применения каскадного соединения выходных счетчиков/делителей O4 и O6 для реализации значения коэффициента деления частоты, превышающего 128.

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

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

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

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

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

• CLKOUTO_USE_FINE_PS-CLKOUT6_USE_ FINE_PS — предоставляют возможность точного изменения значения фазового сдвига сигналов синхронизации, формируемых соответствующими выходными счетчиками/делителями O0-O6. Система условных обозначений, используемых в описании интерфейса библиотечного примитива MMCME2_ADV, представляющего расширенный вариант конфигурирования комбинированного модуля управления синхронизацией, включает в себя следующие идентификаторы входных и выходных портов:

• CLKOUTO-CLKOUT6 — выходы тактовых сигналов, формируемых соответствующими выходными счетчиками/делителями O0-O6 модуля MMCM;

• CLKOUTOB-CLKOUT3B — выходы инвертированных сигналов синхронизации, вырабатываемых соответствующими счетчиками/делителями O0-O3;

• DO — выходная 16-разрядная шина данных порта динамического реконфигури-рования DRP;

• DRDY — выход сигнала готовности данных порта динамического реконфигури-рования DRP;

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

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

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

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

• CLKINSTOPPED — выход сигнала, предупреждающего об отсутствии переключений входного тактового сигнала;

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

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

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

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

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

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

• DADDR — входная 7-разрядная адресная шина порта динамического реконфигури-рования DRP;

• DCLK — вход тактового сигнала для порта динамического реконфигурирования DRP;

• DEN — вход сигнала разрешения порта динамического реконфигурирования DRP;

• DI — входная 16-разрядная шина данных порта динамического реконфигурирова-ния DRP;

• DWE — вход сигнала разрешения записи данных в порт динамического реконфи-гурирования DRP;

• PSCLK — вход тактового сигнала интерфейса управления динамическим изменением фазового сдвига;

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

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

• CLKFBIN — вход сигнала обратной связи. На рис. 467 изображен условный графический образ элемента, представляющего расширенный вариант конфигурирования комбинированного модуля управления синхронизацией MMCM в кристаллах программируемой логики серий Artix-7, Kintex-7 и Virtex-7, для подготовки описания которого используется шаблон Advanced Mixed Mode Clock Manager (MMCME2_ADV).

Рис. 467. Условный графический образ модуля управления синхронизацией, формируемого с помощью шаблона Advanced Mixed Mode Clock Manager (MMCME2_ADV)

MMCME2_ADV

CLKIN1 CLKOUTO

CLKIN2 CLKOUTOB

CLKFBIN CLKOUT1

RST CLKOUT1B

PWRDWN CLKOUT2

CLKINSEL CLKOUT2B

□ADDR[6:0] CLKOUT3

Dl[15:0] CLKOUT3B

DWE

CLKOUT4

DEN

CLKOUT5

DCLK

PSINCDEC CLKOUT6

PSEN CLKFBOUT

PSCLK CLKFBOUTB

LOCKED

DO[15:0]

DRDY

PSDONE

CLKINSTOPPED

CLKFBSTOPPED

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

CLKIN1-»

CLKIN2-►

П рограм м и руем ы й счетчик/делитель D

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

Фазо-частотный детектор PFD

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

Чп в".

т °

с Й

S!?

с«-

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

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

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

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

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

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

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

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

• CLK0UT1

• CLKOUT2

• CLKOUT3

• CLKOUT4

Г

CLKFBOUT

Рис. 468. Функциональная схема модуля фазовой автоподстройки частоты PLL ПЛИС серий Aгtix-7, Kintex-7 и Viгtex-7

Advanced Phase Locked Loop (PLLE2_ADV) является шаблоном VHDL-описания расширенного варианта конфигурирования модуля фазовой автоподстройки частоты Phase-Locked-Loop (PLL) в ПЛИС серий Artix-7, Kintex-7 и Virtex-7. Функциональная схема модуля фазовой автоподстройки частоты PLL, представленного в составе блока управления синхронизацией CMT кристаллов программируемой логики этих семейств, показана на рис. 468. Основные элементы этой схемы: блок выбора входного тактового сигнала, программируемый счетчик/делитель, фазочастот-ный детектор, генератор, управляемый напряжением, который формирует восемь сигналов с различными значениями фазы (0°, 45°, 90°, 135°, 180°, 225°, 270° и 315°), интегрирующий источник тока, петлевой фильтр и семь выходных счетчиков/делителей (О0-О5). Все сигналы, вырабатываемые генератором VCO, поступают на соответствующие выходные счетчики/делители, коэффициент деления каждого из которых программируется в соответствии с требованиями разрабатываемого устройства.

Для подготовки описания модуля фазовой автоподстройки частоты в ПЛИС серий Artix-7, Kintex-7 и Virtex-7 предоставляются два библиотечных примитива PLLE2_ADV и PLLE2_BASE, которые соответствуют расширенному и базовому вариантам конфигурирования модуля PLL. Приведенный ниже шаблон выполнен на основе оператора создания экземпляра библиотечного примитива PLLE2_ADV, который позволяет задействовать все поддерживаемые функциональные возможности в формируемом модуле фазовой автоподстройки частоты:

-- PLLE2_ADV : 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 : (PLLE2_ADV_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--->

-- PLLE2_ADV: Advanced Phase Locked Loop (PLL) -- Virtex-7

-- Xilinx HDL Language Template, version 13.3

PLLE2_ADV_inst : PLLE2_ADV generic map (

BANDWIDTH => "OPTIMIZED", -- OPTIMIZED,

HIGH, LOW

CLKFBOUT_MULT => 5, -- Multiply value for all CLKOUT, (2-64)

CLKFBOUT_PHASE => 0.0, -- Phase offset in degrees of CLKFB, (-360.000-360.000).

-- CLKIN_PERIOD: Input clock period in nS to ps resolution (i.e. 33.333 is 30 MHz).

CLKIN1_PERIOD => 0.0, CLKIN2_PERIOD => 0.0,

-- CLKOUT0_DIVIDE - CLKOUT5_DIVIDE: Divide amount for CLKOUT (1-128)

CLKOUT0_DIVIDE => 1, CLKOUT1_DIVIDE => 1, CLKOUT2_DIVIDE => 1, CLKOUT3_DIVIDE => 1, CLKOUT4_DIVIDE => 1, CLKOUT5_DIVIDE => 1,

-- CLKOUT0_DUTY_CYCLE - CLKOUT5_DUTY_CYCLE Duty cycle for CLKOUT outputs (0.001-0.999).

CLKOUT0_DUTY_CYCLE => 0.5, CLKOUT1_DUTY_CYCLE => 0.5, CLKOUT2_DUTY_CYCLE => 0.5, CLKOUT3_DUTY_CYCLE => 0.5, CLKOUT4_DUTY_CYCLE => 0.5, CLKOUT5_DUTY_CYCLE => 0.5, -- CLKOUT0_PHASE - CLKOUT5_PHASE: Phase offset for CLKOUT outputs (-360.000-360.000).

CLKOUT0_PHASE => 0.0, CLKOUT1_PHASE => 0.0, CLKOUT2_PHASE => 0.0, CLKOUT3_PHASE => 0.0, CLKOUT4_PHASE => 0.0, CLKOUT5_PHASE => 0.0,

COMPENSATION => "ZHOLD", -- ZHOLD, BUF_IN, EXTERNAL, INTERNAL

DIVCLK_DIVIDE => 1, -- Master division value (1-56)

-- REFJITTER: Reference input jitter in UI (0.000-0.999). REF_JITTER1 => 0.0, REF_JITTER2 => 0.0,

STARTUP_WAIT => "FALSE" -- Delay DONE until PLL Locks, ("TRUE"/"FALSE")

)

port map (

-- Clock Outputs: 1-bit (each) output: User configurable

clock outputs

CLK0UT0 => CLK0UT0, -- 1-bit output: CLK0UT0 CLKOUT1 => CLKOUT1, -- 1-bit output: CLKOUT1 CLKOUT2 => CLKOUT2, -- 1-bit output: CLKOUT2 CLKOUT3 => CLKOUT3, -- 1-bit output: CLKOUT3 CLKOUT4 => CLKOUT4, -- 1-bit output: CLKOUT4 CLKOUT5 => CLKOUT5, -- 1-bit output: CLKOUT5 -- DRP Ports: 16-bit (each) output: Dynamic reconfigration ports

DO => DO, -- 16-bit output: DRP data

DRDY => DRDY, -- 1-bit output: DRP ready

-- Feedback Clocks: 1-bit (each) output: Clock feedback

ports

clock

CLKFBOUT => CLKFBOUT, -- 1-bit output: Feedback

-- Status Ports: 1-bit (each) output: PLL status ports LOCKED => LOCKED, -- 1-bit output: LOCK -- Clock Inputs: 1-bit (each) input: Clock inputs CLKIN1 => CLKIN1, -- 1-bit input: Primary clock CLKIN2 => CLKIN2, -- 1-bit input: Secondary clock -- Control Ports: 1-bit (each) input: PLL control ports CLKINSEL => CLKINSEL, -- 1-bit input: Clock select, High=CLKIN1 Low=CLKIN2

PWRDWN => PWRDWN, -- 1-bit input: Power-down

RST => RST, -- 1-bit input: Reset

-- DRP Ports: 7-bit (each) input: Dynamic reconfigration

ports

ports

DADDR => DADDR, -- 7-bit input: DRP adrress DCLK => DCLK, -- 1-bit input: DRP clock DEN => DEN, -- 1-bit input: DRP enable DI => DI, -- 16-bit input: DRP data DWE => DWE, -- 1-bit input: DRP write enable -- Feedback Clocks: 1-bit (each) input: Clock feedback

CLKFBIN => CLKFBIN -- 1-bit input: Feedback clock

-- End of PLLE2_ADV_inst instantiation

Параметры настройки, предусмотренные в библиотечном примитиве PLLE2_ADV, выполняют те же функции, что и в предыдущем шаблоне. В состав системы условных обозначений, используемых в описании интерфейса модулей фазовой автоподстройки частоты, представленных в блоках CMT кристаллов программируемой логики серий Artix-7, Kintex-7 и Virtex-7, конфигурируемых с помощью шаблона Advanced Phase Locked Loop

PLLE2. .ADV

- CLKIN1 CLKOUTO -

— CLKIN2 CLKOUT1 -

— CLKFBIN CLKOUT2 -

— RST CLKOUT3 -

— CLKINSEL CLKOUT4 -

— DADDR[4:0] CLKOUT5 -

— Dl[15:0] CLKFBOUT -

— □WE

— DEN

— DCLK PWRDWN LOCKED D0[15:0] DRDY -

Рис. 469. Условный графический образ модуля фазовой автоподстройки частоты, формируемого с помощью шаблона Advanced Phase Locked Loop (PLLE2_ADV)

(PLLE2_ADV), входят идентификаторы входных и выходных портов, назначение которых было рассмотрено при изучении библиотечного примитива MMCME2_ADV.

Условный графический образ элемента, представляющего расширенный вариант конфигурирования модуля PLL, для подготовки описания которого используется шаблон Advanced Phase Locked Loop (PLLE2_ ADV), приведен на рис. 469.

Base Mixed Mode Clock Manager (MMCME2_BASE) включает в себя образец описания базового варианта конфигурирования комбинированного модуля управления синхронизацией MMCM в ПЛИС серий Artix-7, Kintex-7 и Virtex-7. В качестве основы этого шаблона используется оператор создания экземпляра библиотечного примитива MMCME2_BASE, который позволяет задействовать только наиболее часто востребованные функциональные возможности модуля MMCM кристаллов программируемой логики этих серий при их конфигурировании.

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

-- MMCME2_BASE: Base Mixed Mode Clock Manager -- Virtex-7

-- Xilinx HDL Language Template, version 13.3

MMCME2_BASE_inst : MMCME2_BASE generic map (

BANDWIDTH => "OPTIMIZED", -- Jitter programming (OPTIMIZED, HIGH, LOW)

CLKFBOUT_MULT_F => 5.0, -- Multiply value for all CLKOUT (2.000-64.000).

CLKFBOUT_PHASE => 0.0, -- Phase offset in degrees of CLKFB (-360.000-360.000).

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

-- CLKOUT0_DIVIDE - CLKOUT6_DIVIDE: Divide amount for each CLKOUT (1-128)

CLKOUT1_DIVIDE => 1, CLKOUT2_DIVIDE => 1, CLKOUT3_DIVIDE => 1, CLKOUT4_DIVIDE => 1, CLKOUT5_DIVIDE => 1, CLKOUT6_DIVIDE => 1,

CLKOUT0_DIVIDE_F => 1.0, -- Divide amount for CLK0UT0 (1.000-128.000).

-- CLKOUT0_DUTY_CYCLE - CLKOUT6_DUTY_ CYCLE: Duty cycle for each CLKOUT (0.01-0.99).

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

CLKOUT0_DUTY_CYCLE => 0.5, CLKOUT1_DUTY_CYCLE => 0.5, CLKOUT2_DUTY_CYCLE => 0.5, CLKOUT3_DUTY_CYCLE => 0.5, CLKOUT4_DUTY_CYCLE => 0.5, CLKOUT5_DUTY_CYCLE => 0.5, CLKOUT6_DUTY_CYCLE => 0.5, -- CLKOUT0_PHASE - CLKOUT6_PHASE: Phase offset for each CLKOUT (-360.000-360.000).

CLKOUT0_PHASE => 0.0, CLKOUT1_PHASE => 0.0, CLKOUT2_PHASE => 0.0, CLKOUT3_PHASE => 0.0, CLKOUT4_PHASE => 0.0, CLKOUT5_PHASE => 0.0, CLKOUT6_PHASE => 0.0,

CLKOUT4_CASCADE => FALSE, -- Cascase CLKOUT4 counter with CLKOUT6 (FALSE, TRUE)

DIVCLK_DIVIDE => 1, -- Master division value (1-106) REF_JITTER1 => 0.0, -- Reference input jitter in UI (0.000-0.999).

STARTUP_WAIT => FALSE -- Delays DONE until MMCM is locked (FALSE, TRUE)

)

port map (

clock outputs

- Clock Outputs: 1-bit (each) output: User configurable

ports clock

ports

MMCME2 BASE

CLKOUTO -

CLKOUTOB -

CLKIN1 CLKOUT1 -

CLKOUT1B -

CLKFBIN CLKOUT2 -

RST CLKOUT2B -

PWRDWN CLKOUT3 -

CLKOUT3B -

CLKOUT4 -

CLKOUT5 -

CLKOUT6 -

CLKFBOUT -

CLKFBOUTB -

LOCKED -

CLKOUTO => CLKOUTO, -- 1-bit output: CLKOUTO CLKOUTOB => CLKOUTOB, -- 1-bit output: Inverted

CLKOUT1 => CLKOUT1, -- 1-bit output: CLKOUT1 CLKOUT1B => CLKOUT1B, -- 1-bit output: Inverted

CLKOUT2 => CLKOUT2, -- 1-bit output: CLKOUT2 CLKOUT2B => CLKOUT2B, -- 1-bit output: Inverted

CLKOUT3 => CLKOUT3, -- 1-bit output: CLKOUT3 CLKOUT3B => CLKOUT3B, -- 1-bit output: Inverted

CLKOUT4 => CLKOUT4, -- 1-bit output: CLKOUT4 CLKOUT5 => CLKOUT5, -- 1-bit output: CLKOUT5 CLKOUT6 => CLKOUT6, -- 1-bit output: CLKOUT6 -- Feedback Clocks: 1-bit (each) output: Clock feedback

CLKFBOUT => CLKFBOUT, -- 1-bit output: Feedback

CLKFBOUTB => CLKFBOUTB, -- 1-bit output: Inverted

-- Status Port: 1-bit (each) output: MMCM status ports LOCKED => LOCKED, -- 1-bit output: LOCK -- Clock Input: 1-bit (each) input: Clock input CLKIN1 => CLKIN1, -- 1-bit input: Clock -- Control Ports: 1-bit (each) input: MMCM control ports PWRDWN => PWRDWN, -- 1-bit input: Power-down RST => RST, -- 1-bit input: Reset -- Feedback Clocks: 1-bit (each) input: Clock feedback

CLKFBIN => CLKFBIN -- 1-bit input: Feedback clock );

- End of MMCME2_BASE_inst instantiation

В библиотечном примитиве MMCME2_ BASE применяются параметры настройки и условные обозначения интерфейсных портов, назначение которых было представлено при изучении шаблона описания расширенного варианта конфигурирования комбинированного модуля управления синхронизацией Advanced Mixed Mode Clock Manager (MMCME2_ADV).

Условный графический образ элемента, представляющего базовый вариант конфигурирования комбинированного модуля MMCM ПЛИС серий Artix-7, Kintex-7

Рис. 470. Условный графический образ модуля управления синхронизацией MMCM, формируемого с помощью шаблона Base Mixed Mode Clock Manager (MMCME2_BASE)

и Virtex-7, формируемого с помощью шаблона Base Mixed Mode Clock Manager (MMCME2_BASE), показан на рис. 470.

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

Примечание. Полный список литературы смотрите в предыдущих частях статьи.

Литература

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

70. 7 Series FPGAs Overview. Advance Product Specification. Xilinx, 2012.

71. Artix-7 FPGAs Data Sheet: DC and Switching Characteristics. Xilinx, 2011.

72. Kintex-7 FPGAs Data Sheet: DC and Switching Characteristics. Xilinx, 2011.

73. Virtex-7 FPGAs Data Sheet: DC and Switching Characteristics. Xilinx, 2011.

74. 7 Series FPGAs Migration. Methodology Guide. Xilinx, 2011.

75. 7 Series FPGAs Configuration User Guide. Xilinx, 2011.

76. 7 Series FPGAs SelectIO Resources User Guide. Xilinx, 2011.

77. 7 Series FPGAs Clocking Resources User Guide. Xilinx, 2011.

78. 7 Series FPGAs Memory Resources User Guide. Xilinx, 2012.

79. 7 Series FPGAs Configurable Logic Block User Guide. Xilinx, 2012.

80. 7 Series FPGAs GTX Transceivers User Guide. Xilinx, 2011.

81. 7 Series FPGAs Integrated Block for PCIe User Guide. Xilinx, 2012.

82. 7 Series DSP48E1 Slice User Guide. Xilinx, 2012.

83. 7 Series FPGAs XADC Dual 12-it 1MSPS Analog-to-Digital Converter User Guide. Xilinx, 2011.

84. 7 Series FPGAs GTP Transceivers User Guide. Xilinx, 2012.

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