Научная статья на тему 'Проектирование блоков синхронизации цифровых устройств, реализуемых на базе модулей DCM в ПЛИС FPGA серии Spartan™-3, с помощью «Мастера» Architecture Wizard САПР серии Xilinx ISE (часть 2)'

Проектирование блоков синхронизации цифровых устройств, реализуемых на базе модулей DCM в ПЛИС FPGA серии Spartan™-3, с помощью «Мастера» Architecture Wizard САПР серии Xilinx ISE (часть 2) Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

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

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

В качестве примера блока синхронизации цифрового устройства далее приводится VHDL-описание модуля sys_clk_int, который предназначен для реализации на основе ПЛИС семейства Spartan-3E.

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

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

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

Текст научной работы на тему «Проектирование блоков синхронизации цифровых устройств, реализуемых на базе модулей DCM в ПЛИС FPGA серии Spartan™-3, с помощью «Мастера» Architecture Wizard САПР серии Xilinx ISE (часть 2)»

Продолжение, начало в № 5'2007

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

walerry@km.ru

Проектирование блоков синхронизации цифровых устройств,

реализуемых на базе модулей DCM в ПЛИС FPGA серии Spartan™-3, с помощью «мастера» Architecture Wizard САПР серии Xilinx ISE

Пример блока синхронизации цифрового устройства, созданного с помощью «мастера» Architecture Wizard в соответствии с конфигурацией Single DCM_SP

В качестве примера блока синхронизации цифрового устройства, сгенерированного с помощью «мастера» Architecture Wizard в соответствии с конфигурацией Single DCM_SP, далее приводится VHDL-описание модуля sys_clk_int, который предназначен для реализации на основе ПЛИС семейства Spartan-3E. Этот модуль осуществляет формирование следующих выходных тактовых сигналов:

• четырех сигналов с частотой 50 МГц с нулевым фазовым сдвигом и сдвигом по фазе на четверть, половину и три четверти периода;

• сигнала с частотой 25 МГц, получаемого путем двукратного деления частоты исходного сигнала;

• двух противофазных сигналов (без фазового сдвига и с фазовым сдвигом, равным половине периода) с частотой 100 МГц, которые вырабатываются методом двукратного умножения частоты исходного сигнала;

• двух противофазных сигналов (с нулевым фазовым сдвигом и сдвигом по фазе на половину периода) с частотой 125 МГц, производимых синтезатором частот.

В качестве исходного тактового сигнала в блоке sys_clk_int используется внешний сигнал синхронизации с частотой 50 МГц. Формирование выходных тактовых сигналов с такой частотой осуществляется с коррекцией скважности. Выходы этих сигналов модуля DCM подключены к глобальным буферным элементам. Выходной сигнал с частотой 50 МГц с нулевым фазовым сдвигом транс-

лируется к тактируемым компонентам разрабатываемого устройства через глобальный буферный элемент BUFG, который включен в состав блока синхронизации sys_clk_int. В цепи выходных сигналов с частотой 50 МГц и фазовым сдвигом на четверть, половину и три четверти периода предусмотрены глобальные буферные элементы с входом разрешения синхронизации BUFGCE. В качестве сигнала, поступающего на вход обратной связи модуля DCM, используется выходной сигнал с частотой 50 МГц с нулевым фазовым сдвигом. Структурное описание блока синхронизации sys_clk_int на языке VHDL, сформированное «мастером» Architecture Wizard, выглядит следующим образом:

--Design Name: sys_clk_int --Device: xc3s500e-fg320-5

-- Module sys_clk_int

-- Generated by Xilinx Architecture Wizard

-- Written for synthesis tool: XST

library ieee;

use ieee.std_logic_1164.ALL; use ieee.numeric_std.ALL; library UNISIM; use UNISIM.Vcomponents.ALL;

entity sys_clk_int is port (

CLKIN_IN

CLK90_ENABLE_IN

CLK180_ENABLE_IN

CLK270_ENABLE_IN

RST_IN

CLKDV_OUT

CLKFX_OUT

CLKFX180_OUT

CLKIN_IBUFG_OUT

CLK0_OUT

CLK2X_OUT

CLK2X180_OUT

CLK90_OUT

CLK180_OUT

CLK270_OUT

LOCKED_OUT

STATUS_OUT

in std in std in std in std_ in std out std out std out std out std out std out std out std out std out std out std out std out std

ogic_vector (2 downto 0)

attribute USELOWSKEWLINES : string ;

attribute USELOWSKEWLINES of CLKFX_OUT : signal is «»;

attribute USELOWSKEWLINES of CLKFX180_OUT : signal is «

end sys_clk_int;

architecture BEHAVIORAL of sys_clk_int is

signal CLKFB_IN signal CLKIN_IBUFG signal CLK0_BUF signal CLK90_BUF signal CLK180_BUF signal CLK270_BUF signal GND1 signal STATUS_float component IBUFG port (

I : in std_logic;

O : out std_logic

std_logic;

std_logic;

std_logic;

std_logic;

std_logic;

std_logic;

std_logic;

std_logic_vector (4 downto 0);

end component;

component BUFG port (

I : in std_logic;

O : out std_logic

end component;

component BUFGCE port (

I : in std_logic;

CE : in std_logic;

O : out std_logic

);

end component;

-- Period Jitter (unit interval) for block DCM_SP_INST = 0.09 UI -- Period Jitter (Peak-to-Peak) for block DCM_SP_INST = 0.73 ns component DCM_SP generic(

CLK_FEEDBACK : string := «1X»;

CLKDV_DIVIDE : real := 2.0;

CLKFX_DIVIDE : integer := 1;

CLKFX_MULTIPLY : integer := 4;

CLKIN_DIVIDE_BY_2 : boolean := FALSE; CLKIN_PERIOD : real := 10.0;

CLKOUT_PHASE_SHIFT : string := «NONE»; DESKEW_ADJUST : string := «SYSTEM_SYNCHRONOUS»; DFS_FREQUENCY_MODE : string := «LOW»; DLL_FREQUENCY_MODE : string := «LOW»; DUTY_CYCLE_CORRECTION : boolean := TRUE; FACTORY_JF : bit_vector := x»C080»;

PHASE_SHIFT : integer := 0;

STARTUP_WAIT : boolean := FALSE;

DSS_MODE : string := «NONE»

);

port (

CLKIN in std_logic;

CLKFB in std_logic;

RST in std_logic;

PSEN in std_logic;

PSINCDEC in std_logic;

PSCLK in std_logic;

DSSEN in std_logic;

CLK0 : out std_logic;

CLK90 : out std_logic;

CLK180 : out std_logic;

CLK270 : out std_logic;

CLKDV : out std_logic;

CLK2X : out std_logic;

CLK2X180 : out std_logic;

CLKFX : out std_logic;

CLKFX180 : out std_logic;

STATUS : out std_logic_

LOCKED : out std_logic;

PSDONE : out std_logic

end component;

begin

GND1 <= '0';

CLKIN_IBUFG_OUT <= CLKIN_IBUFG; CLK0_OUT <= CLKFB_IN; CLKIN_IBUFG_INST : IBUFG port map (

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

I=>CLKIN_IN,

O=>CLKIN_IBUFG

CLK0_BUFG_INST : BUFG port map (

I=>CLK0_BUF,

O=>CLKFB_IN

CLK90_BUFGCE_INST : BUFGCE port map (

CE=>CLK90_ENABLE_IN,

I=>CLK90_BUF,

O=>CLK90_OUT

CLK180_BUFGCE_INST : BUFGCE port map (

CE=>CLK180_ENABLE_IN,

I=>CLK180_BUF,

O=>CLK180_OUT

CLK270_BUFGCE_INST : BUFGCE port map (

CE=>CLK270_ENABLE_IN,

I=>CLK270_BUF,

O=>CLK270_OUT);

DCM_SP_INST : DCM_SP generic map(

CLK_FEEDBACK => «1X»,

CLKDV_DIVIDE => 2.0,

CLKFX_DIVIDE => 2,

CLKFX_MULTIPLY => 5,

CLKIN_DIVIDE_BY_2 => FALSE,

CLKIN_PERIOD => 20.0,

CLKOUT_PHASE_SHIFT => «NONE», DESKEW_ADJUST => «SYSTEM_SYNCHRONOUS», DFS_FREQUENCY_MODE => «LOW», DLL_FREQUENCY_MODE => «LOW», DUTY_CYCLE_CORRECTION => TRUE, FACTORY_JF => x»C080»,

PHASE_SHIFT => 0,

STARTUP_WAIT => FALSE )

port map (

CLKFB=>CLKFB_IN,

CLKIN=>CLKIN_IBUFG,

DSSEN=>GND1,

PSCLK=>GND1,

PSEN=>GND1,

PSINCDEC=>GND1,

RST=>RST_IN,

CLKDV=>CLKDV_OUT,

CLKFX=>CLKFX_OUT,

CLKFX180=>CLKFX180_OUT,

CLK0=>CLK0_BUF,

CLK2X=>CLK2X_OUT,

CLK2X180=>CLK2X180_OUT,

CLK90=>CLK90_BUF,

CLK180=>CLK180_BUF,

CLK270=>CLK270_BUF,

LOCKED=>LOCKED_OUT,

PSDONE=>open,

STATUS(7 downto 3)=>STATUS_float(4 downto 0), STATUS(2 downto 0)=>STATUS_OUT(2 downto 0)

end BEHAVIORAL;

В начале представленного VHDL-описания в виде комментариев приведена информация о названии проекта блока синхрони-

зации, типе и параметрах ПЛИС, выбранной для его реализации, и применяемых средствах синтеза. Затем приводятся ссылки на используемые библиотеки и пакеты этих библиотек. Далее следует объявление объекта sys_clk_mt, представляющего формируемый блок синхронизации, с описанием его интерфейса. Последующая часть содержит структурное описание объекта sys_clk_int, в начале которого декларируются внутренние сигналы проектируемого блока синхронизации и используемые компоненты. Основой сформированного описания блока синхронизации является библиотечный компонент DCM_SP, который представляет модуль DCM кристаллов семейств Spartan-3E и Spartan-3A. Кроме того, в составе сгенерированного блока sys_clk_int используются библиотечные компоненты глобальных входных и выходных буферных элементов IBUFG, BUFG, BUFGCE. Главная часть определения архитектуры описываемого блока синхронизации выполнена в виде совокупности операторов создания (конкретизации) экземпляров компонентов с указанием их взаимосвязей.

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

• ^КШ_Ш — вход исходного тактового сигнала;

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

• CLK90_ENABLE_IN — вход разрешения выходного сигнала с частотой 50 МГц со сдвигом фазы на четверть периода;

• CLK180_ENABLE_IN — вход разрешения выходного сигнала с частотой 50 МГц со сдвигом фазы на половину периода;

• CLK270_ENABLE_IN — вход разрешения выходного сигнала с частотой 50 МГц со сдвигом фазы на три четверти периода;

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

• CLKDV_OUT — выход сигнала с частотой 25 МГц;

• CLKIN_IBUFG_OUT — выход исходного тактового сигнала, снимаемого с входного буферного элемента;

• CLK0_OUT — выход сигнала с частотой 50 МГц с нулевым сдвигом фазы;

• ^К90_0иТ — выход сигнала с частотой 50 МГц со сдвигом фазы на четверть периода;

• ^К180_0иТ — выход сигнала с частотой 50 МГц со сдвигом фазы на половину периода;

• ^К270_0ЦГ — выход сигнала с частотой 50 МГц со сдвигом фазы на три четверти периода;

• CLK2X_OUT — выход сигнала с частотой 100 МГц с нулевым сдвигом фазы;

• ^К2Х180_0иТ — выход сигнала с частотой 100 МГц со сдвигом фазы на половину периода;

• CLKFX_OUT — выход сигнала с частотой 125 МГц с нулевым сдвигом фазы;

• CLKFX180_OUT — выход сигнала с частотой 125 МГц со сдвигом фазы на половину периода;

• LOCKED_OUT — выход сигнала, информирующего о текущем соотношении фаз входного и выходного сигналов схемы автоподстройки задержек DLL применяемого модуля DCM;

• STATUS_OUT — выходная шина состояния используемого модуля DCM.

Кроме представленного VHDL-описания,

«мастер» Architecture Wizard автоматически создает файл с тем же именем и расширением ucf. Этот файл содержит последовательность выражений, которые определяют требуемые значения всех необходимых атрибутов компонента DCM_SP. Все эти выражения добавляются в файл временных и топологических ограничений проекта разрабатываемого устройства в САПР серии Xilinx ISE. Для блока синхронизации sys_clk_int содержимое соответствующего файла с расширением ucf выглядит следующим образом:

Net CLKFX_OUT USELOWSKEWLINES;

Net CLKFX180J3UT USELOWSKEWLINES;

INST DCM_SP_INST CLK_FEEDBACK = 1X;

INST DCM_SP_INST CLKDV_DIVIDE = 2.0;

INST DCM_SP_INST CLKFX_DIVIDE = 2;

INST DCM_SP_INST CLKFX_MULTIPLY = 5;

INST DCM_SP_INST CLKIN_DIVIDE_BY_2 = FALSE;

INST DCM_SP_INST CLKIN_PERIOD = 20.0;

INST DCM_SP_INST CLKOUT_PHASE_SHIFT = NONE;

INST DCM_SP_INST DESKEW_ADJUST = SYSTEM_SYNCHRO-

NOUS;

INST DCM_SP_INST DFS_FREQUENCY_MODE = LOW;

INST DCM_SP_INST DLL_FREQUENCY_MODE = LOW;

INST DCM_SP_INST DUTY_CYCLE_CORRECTION = TRUE;

INST DCM_SP_INST FACTORY_JF = C080;

INST DCM_SP_INST PHASE_SHIFT = 0;

INST DCM_SP_INST STARTUP_WAIT = FALSE;

Создание блоков синхронизации цифровых устройств, реализуемых на базе модулей DCM в ПЛИС семейств Spartan-3, Spartan-3L, Spartan-3E и Spartan-3A, с помощью «мастера»

Architecture Wizard в соответствии с конфигурацией Board Deskew with an Internal Deskew

Блоки синхронизации с конфигурацией Board Deskew with an Internal Deskew, как правило, применяются в тех случаях, когда разрабатываемые устройства реализуются на основе нескольких кристаллов программируемой логики или содержат кроме кристалла ПЛИС дополнительные тактируемые элементы, расположенные на печатной плате. Данная конфигурация позволяет добиться син-фазности соответствующих тактовых сигналов, распространяемых как внутри кристалла, так и на печатной плате проектируемого устройства.

Проектирование блока синхронизации с конфигурацией Board Deskew with an Internal Deskew начинается с процедур определения названия создаваемых файлов, выбора языка описания HDL, средств синтеза, семейства и типа ПЛИС, которые осуществ-

ляются так же, как и при формировании модулей тактирования с конфигурацией Single DCM_SP. Далее в диалоговой панели выбора конфигурации генерируемого блока синхронизации Selection, представленной на рис. 3 (см. «КиТ» № 5 '2007, с. 90), нужно выделить строку Board Deskew with an Internal Deskew и подтвердить выбранный вариант нажатием клавиши ОК. После этого на экран выводится диалоговая панель, которая предназначена для выбора структуры формируемого блока синхронизации. Вид данной диалоговой панели зависит от выбранного типа выходного регистра, подключаемого к выходу контролируемого сигнала первого модуля DCM, и способа его управления. Выходной регистр устанавливается в цепи формируемого сигнала, который применяется для так-

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

тирования различных узлов печатной платы разрабатываемого устройства и используется затем в качестве внешнего сигнала обратной связи в первом модуле DCM. В качестве выходного регистра в создаваемом блоке синхронизации применяются выходные триггеры с удвоенной скоростью записи данных DDR (Double Data Rate), тактируемые двумя противофазными сигналами синхронизации. На рис. 14 представлено изображение диалоговой панели, предназначенной для выбора структуры создаваемого блока синхронизации с конфигурацией Board Deskew with an Internal Deskew, при использовании выходного триггера OFDDRCPE, предлагаемого по умолчанию.

Для изменения типа выходного триггера, подключаемого к соответствующему выходу первого модуля DCM, следует использовать поле выбора DDR flip-flop selection, которое расположено во встроенной панели For DCM_SP INST1 (рис. 14). В выпадающем списке данного поля выбора представлено четыре возможных варианта условных обозначений используемого выходного триггера и один вариант, который соответствует структуре блока синхронизации без выходного триггера. Если в поле выбора установлен вариант OFDDRCPE, то в качестве выходного регистра в состав формируемого блока синхронизации будет включен одноименный DDR-триггер с асинхронным сбросом, асинхронной установкой и входом разрешения тактового сигнала. Чтобы использовать выходной DDR-триггер с асинхронным сбросом, асинхронной установкой, входом разрешения тактового сигнала и тристабильным выходом, нужно выбрать вариант OFD-DRTCPE. В этом случае диалоговая панель выбора структуры создаваемого блока синхронизации приобретает вид, показанный на рис. 15.

При выборе варианта OFDDRRSE функцию выходного триггера в генерируемом блоке синхронизации будет выполнять DDR-триггер с синхронным сбросом, синхронной установкой и входом разрешения тактового сигнала. Вид диалоговой панели, предназначенной для выбора структуры формируемого блока синхронизации, при использовании выходного триггера OFDDRRSE, который тактируется одним выходным сигналом модуля DCM, приведен на рис. 16. Для получения второго (противофазного) тактового сигнала применяется дополнительный инвертор, который включается в состав создаваемого блока синхронизации.

Для включения в состав формируемого блока синхронизации выходного DDR-триггера с синхронным сбросом, синхронной установкой, входом разрешения тактового сигнала и тристабильным выходом, нужно выбрать вариант OFDDRTRSE. Нарис. 17 представлен вид диалоговой панели, предназначенной для выбора структуры формируемого блока синхронизации, при использовании выходного триггера OFDDRTRSE, который тактируется одним выходным сигналом модуля DCM.

Если в формируемом блоке синхронизации не планируется установка выходного триггера, то в поле выбора DDR flip-flop selection следует зафиксировать вариант None. При этом диалоговая панель выбора структуры создаваемого блока синхронизации преобразуется так, как показано на рис. 18.

Когда в состав генерируемого блока синхронизации включается выходной DDR-триггер, нужно указать сигнал, формируемый первым модулем DCM (INST1), который будет подаваться через глобальный буфер на тактовый вход C0 добавляемого триггера. Иными словами, необходимо выбрать соответствующий выходной сигнал первого мо-

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

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

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

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

дуля DCM (INST1), который затем будет выполнять функцию сигнала внешней (по отношению к ПЛИС) обратной связи. Для этого предназначена группа кнопок с зависимой фиксацией Select C0, которая расположена во встроенной панели For DCM_SP INST1 (рис. 14-17). Если в нажатом состоянии находится кнопка CLK0, то выходной триггер будет тактироваться по входу C0 сигналом с частотой исходного (внешнего) сигнала синхронизации, вырабатываемым на выходе CLK0 первого модуля DCM (INST1). Чтобы использовать для этой же цели сигнал с удвоенным значением частоты исходного сигнала синхронизации, следует переключить в нажатое положение кнопку CLK2X. В этом случае на вход C0 выходного триггера будет поступать (через глобальный буферный элемент) сигнал с выхода CLK2X первого модуля DCM (INST1).

Для выбора второго (противофазного) тактового сигнала, подаваемого на вход C1 выходного DDR-триггера, следует воспользоваться группой кнопок с зависимой фиксацией Select C1, которая расположена в этой же встроенной панели (рис. 14-17). По умолчанию в нажатом состоянии находится кнопка CLK180. При этом в качестве второго (противофазного) сигнала синхронизации будет использоваться сигнал, формируемый на соответствующем выходе первого модуля DCM (INST1) с фазовым сдвигом, равным половине периода этого сигнала (рис. 14, 15). Второй (противофазный) тактовый сигнал может быть также получен путем инвертирования первого сигнала синхронизации, подаваемого на вход C0 выходного DDR-триггера. Для этой цели в состав создаваемого блока синхронизации включается дополнительный инвертор. Чтобы выбрать вариант структуры формируемого блока с использованием одного выходного сигнала модуля DCM и дополнительного инвертора, нужно установить в нажа-

тое положение кнопку Use DDR local inversion (рис. 16, 17).

Выбор типа (частоты) сигнала, подаваемого на вход внутренней обратной связи второго модуля DCM (INST2), осуществляется с помощью группы кнопок с зависимой фиксацией Select clock for internal feedback, которая представлена во встроенной панели For DCM_SP INST2 (рис. 14-17). По умолчанию, при нажатой кнопке 1X, на вход обратной связи второго модуля DCM (INST2) будет поступать сигнал, формируемый на выходе CLK0 данного модуля с той же частотой, что и исходный тактовый сигнал. Если в качестве сигнала, подаваемого на вход внутренней обратной связи, должен использоваться сигнал с двукратным значением частоты, генерируемый на выходе CLK2X второго модуля DCM (INST2), то в нажатое состояние необходимо переключить кнопку 2X.

После завершения определения структуры создаваемого блока синхронизации следует нажать клавишу Далее (Next), которая расположена в нижней части рассматриваемой диалоговой панели (рис. 14-18). В результате этих действий на экран выводится следующая диалоговая панель «мастера» Architecture Wizard с заголовком General Setup For INST1, вид которой приведен на рис. 19. Данная панель предназначена для определения основных параметров первого модуля DCM (INST1), используемого в формируемом блоке синхронизации с конфигурацией Board Deskew with an Internal Deskew.

В отличие от аналогичной диалоговой панели General Setup, представленной на рис. 4 (см. «КиТ» № 5 '2007, с. 91) для конфигурации Single DCM_SP, значения большого количества основных параметров в панели General Setup For INST1 определяются автоматически без вмешательства пользователя. Элементы управления, предназначенные для выбора значений этих параметров, находятся в недоступном состоянии. Разработчик

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

Рис. 19. Диалоговая панель выбора основных параметров первого модуля DCM (INST1) General Setup For INST1

должен только указать значение частоты или периода входного тактового сигнала, используя поле редактирования, расположенное во встроенной панели Input Clock Frequency, и требуемые дополнительные выходные сигналы, вырабатываемые первым модулем DCM (INST1), а также необходимость применения коррекции скважности соответствующих тактовых сигналов с помощью индикатора состояния Use Duty Cycle Correction. Кроме того, при необходимости, можно определить значение фазового сдвига выходных сигналов синхронизации, формируемых этим модулем DCM с помощью поля выбора Type, которое находится во встроенной панели Phase Shift (рис. 19). Если в разрабатываемом блоке синхронизации используется выходной сигнал делителя частоты CLKDV первого модулям DCM (INST1), то нужно указать требуемое значение коэффициента деления, используя поле выбора Divide By Value (рис. 19). Установка значений всех доступных параметров первого модуля DCM (INST1) выполняется так же, как и для аналогичных параметров в диалоговой панели General Setup.

Для определения значений дополнительных параметров первого модулям DCM (INST1) нужно использовать диалоговую панель с заголовком Advanced, которая открывается при нажатии одноименной кнопки, расположенной в нижней части панели General Setup For INST1 (рис. 19). Вид открывшейся диалоговой панели дополнительных параметров показан на рис. 5 (см. «КиТ» № 5 '2007, с. 92). Назначение и процедура установки значений всех параметров в этой панели были подробно рассмотрены в разделе, посвященном формированию блоков синхронизации с конфигурацией Single DCM_SP. При этом следует обратить внимание на параметр Insert reset logic for external feedback, если в первом модуле DCM (INST1) задействован вход сброса.

После определения значений всех доступных основных и дополнительных параметров первого модулям DCM следует перейти к очередной диалоговой панели «мастера» Architecture Wizard, нажав клавишу Далее (Next) в панели General Setup For INST1 (рис. 19). Следующая диалоговая панель Clock Buffers For INST1 предназначена для выбора типа глобальных буферных элементов и линий связи, которые будут подключены к выходам тактовых сигналов, формируемых первым модулем DCM (INST1). Данная диалоговая панель имеет тот же вид, что и панель Clock Buffers, показанная на рис. 6 (см. «КиТ» № 5 '2007, с. 92). Тип глобальных буферных элементов и линий связи, подключаемых к используемым выходам модуля DCM, выбирается так же, как и в блоках синхронизации с конфигурацией Single DCM_SP.

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

(INST1), то после завершения процесса выбора типа глобальных буферных элементов (после нажатия клавиши Далее (Next) в диалоговой панели Clock Buffers For INST1) на экране появляется диалоговая панель с заголовком Clock Frequency Synthesizer For INST1, предназначенная для определения значений параметров, используемых при вычислении частоты или периода генерируемого сигнала. Эта диалоговая панель имеет тот же вид, что и диалоговая панель Clock Frequency Synthesizer, показанная на рис. 12 (см. «КиТ» № 5 '2OO7, с. 94). Значения всех параметров сигнала, формируемого синтезатором частот первого модуля DCM (INST1), указываются тем же способом, что и в блоках синхронизации с конфигурацией Single DCM_SP.

Следующая диалоговая панель «мастера» Architecture Wizard при создании блоков синхронизации с конфигурацией Board Deskew with an Internal Deskew, предназначена для определения основных параметров второго модуля DCM (INST2). Вид этой диалоговой панели, которая имеет заголовок General Setup For INST2, представлен на рис. 2O.

Рис. 20. Диалоговая панель выбора основных параметров второго модуля DCM (INST2) General Setup For INST2

По сравнению с аналогичной диалоговой панелью, изображенной на рис. 19, значения подавляющего большинства параметров в панели General Setup For INST2 устанавливаются автоматически. Пользователь может только выбрать требуемые выходные сигналы второго модуля DCM (INST2), значения коэффициента деления частоты сигнала на выходе CLKDV этого модуля Divide By Value и фазового сдвига выходных сигналов синхронизации, а также применение коррекции скважности для соответствующих тактовых сигналов с помощью индикатора состояния Use Duty Cycle Correction.

Далее на экран поочередно выводятся диалоговые панели с заголовками Clock Buffers For INST2 и Clock Frequency Synthesizer For INST2. Диалоговая панель Clock Buffers For

INST2 позволяет выбрать тип глобальных буферных элементов и линий связи, которые будут подключены к выходам тактовых сигналов, формируемых вторым модулем DCM (INST2). Вид этой панели аналогичен виду диалоговой панели Clock Buffers, приведенной на рис. 6. С помощью диалоговой панели Clock Frequency Synthesizer For INST2 определяются значения параметров сигналов, вырабатываемых синтезатором частот второго модуля DCM (INST2). Данная диалоговая панель появляется только в том случае, если хотя бы один из выходных сигналов синтезатора частот используется в создаваемом блоке синхронизации. Вид диалоговой панели Clock Frequency Synthesizer For INST2 не отличается от вида панели Clock Frequency Synthesizer, приведенной на рис. 12.

Завершает работу «мастера» Architecture Wizard при создании блоков синхронизации с конфигурацией Board Deskew with an Internal Deskew информационная панель Summary, вид и структура которой были подробно представлены при рассмотрении процесса разработки блоков синхронизации с конфигурацией Single DCM_SP (рис. 13, см. «КиТ» № 5 '2007, с. 94). Автоматическая генерация всех файлов описания блока синхронизации с выбранными параметрами выполняется после нажатия кнопки «Готово» (Finish), находящейся в нижней части заключительной информационной панели «мастера».

Пример блока синхронизации цифрового устройства, созданного с помощью «мастера» Architecture Wizard в соответствии с конфигурацией Board Deskew with an Internal Deskew

Примером блока синхронизации цифрового устройства, созданного с помощью «мастера» Architecture Wizard в соответствии с конфигурацией Board Deskew with an Internal Deskew, является модуль sys_clk_board_and_int, который предназначен для реализации на базе ПЛИС семейства Spartan-3A. Данный модуль на основе внешнего сигнала синхронизации с частотой 40 МГц вырабатывает следующий набор выходных сигналов:

• четыре сигнала с частотой 40 МГц, различающиеся фазовым сдвигом друг относительно друга, равным четверти, половине и три четверти периода этих сигналов (формируются первым модулем DCM);

• сигнал с частотой 8 МГц, получаемый методом пятикратного деления частоты исходного тактового сигнала в первом модуле DCM;

• два сигнала с частотой 80 МГц с фазовым сдвигом друг относительно друга на половину периода (с нулевым фазовым сдвигом и фазовым сдвигом, равным половине периода), формируемые путем двукратного

умножения частоты исходного сигнала в первом модуле DCM;

• два сигнала с частотой 140 МГц, вырабатываемые синтезатором частот первого модуля DCM, с нулевым фазовым сдвигом и фазовым сдвигом, равным половине периода;

• сигнал с частотой 40 МГц, формируемый вторым модулем DCM;

• сигнал с частотой 10 МГц, получаемый методом четырехкратного деления частоты исходного тактового сигнала во втором модуле DCM;

• два сигнала с частотой 180 МГц с фазовым сдвигом друг относительно друга на половину периода, формируемые синтезатором частот второго модуля DCM;

• два сигнала с частотой 80 МГц с фазовым сдвигом друг относительно друга на половину периода, которые вырабатываются вторым модулем DCM.

Тактовые сигналы, формируемые первым модулем DCM, предназначены для синхронизации внешних (по отношению к ПЛИС) узлов разрабатываемого устройства, расположенных на печатной плате. Сигналы, вырабатываемые вторым модулем DCM, используются для тактирования элементов проектируемого устройства, реализуемых на основе ресурсов кристалла, на базе которого выполняется рассматриваемый блок синхронизации. Для выходных тактовых сигналов с частотой 40 МГц применяется функция коррекции скважности. В качестве выходного регистра в состав сформированного блока синхронизации включен DDR-триггер с асинхронным сбросом, асинхронной установкой и входом разрешения тактового сигнала. В цепях выходных сигналов с частотой 40 МГц и сдвигом по фазе на четверть, половину и три четверти периода первого модуля DCM установлены глобальные буферные элементы с входом разрешения синхронизации BUFGCE. Выходной сигнал с частотой 40 МГц с нулевым фазовым сдвигом, вырабатываемый вторым модулем DCM, транслируется через глобальный буферный элемент BUFG. Выходы сигналов с частотами 10, 80 и 180 МГц второго модуля DCM подключены к глобальным буферным элементам с входом разрешения синхронизации BUFGCE.

В качестве сигнала внешней обратной связи для первого модуля DCM используется сформированный этим модулем сигнал с частотой 40 МГц, который применяется для тактирования внешних (по отношению к ПЛИС) блоков проектируемого устройства и поступает с линии передачи этого сигнала на печатной плате с максимальной задержкой распространения. На вход обратной связи второго модуля DCM подается сигнал с частотой 40 МГц, который формируется этим же модулем и используется для тактирования «внутренних» блоков разрабатываемого устройства, реализуемых на основе различных ресурсов используемой ПЛИС.

Сгенерированный текст VHDL-описания блока синхронизации sys_clk_board_and_int выглядит следующим образом:

--Design Name: sys_clk_board_and_int --Device: xc3s400a-fg320-4

-- Module sys_clk_board_and_int -- Generated by Xilinx Architecture Wizard -- Written for synthesis tool: XST

library ieee;

use ieee.std_logic_1164.ALL; use ieee.numeric_std.ALL; library UNISIM; use UNISIM.Vcomponents.ALL;

entity sys_clk_board_and_int is port (

U1_CE_IN U1_CLKFB_IN U1_CLKIN_IN U1_CLK90_ENABLE_IN U1_CLK180_ENABLE_IN U1_CLK270_ENABLE_IN U1_CLR_IN U1_PRE_IN U1_USER_RST_IN U2_CLKDV_ENABLE_IN U2_CLK2X_ENABLE_IN U2_CLK2X180_ENABLE_

U2_RST_IN DDR_CLK0_OUT U1_CLKDV_OUT U1_CLKFX_OUT U1_CLKFX180_OUT U1_CLKIN_IBUFG_OUT U1_CLK0_OUT U1_CLK2X_OUT U1_CLK2X180_OUT U1_CLK90_OUT U1_CLK180_OUT U1_CLK270_OUT U1_LOCKED_OUT U1_STATUS_OUT U2_CLKDV_OUT U2_CLKFX_OUT U2_CLKFX180_OUT U2_CLK0_OUT U2_CLK2X_OUT U2_CLK2X180_OUT U2_LOCKED_OUT U2_STATUS_OUT );

attribute USELOWSKEWLINES : string ;

attribute USELOWSKEWLINES of U1_CLKFX_OUT : signal is «»; attribute USELOWSKEWLINES of U1_CLKFX180_OUT : signal is «»; end sys_clk_board_and_int;

architecture BEHAVIORAL of sys_clk_board_and_int is

signal GND1 : std_logic;

signal STATUS_float : std_logic_vector (4 downto O);

signal STATUS_float1 : std_logic_vector (4 downto O);

signal U1_CLKFB_IBUFG : std_logic;

signal U1_CLKIN_IBUFG : std_logic;

signal U1_CLK0_BUFG : std_logic;

signal U1_CLK0_INV_IN : std_logic;

signal U1_CLK90_BUF : std_logic;

signal U1_CLK180_BUF : std_logic;

signal U1_CLK270_BUF : std_logic;

signal U1_C0_IN : std_logic;

signal U1_FDS_Q_OUT : std_logic;

signal U1_FD1_Q_OUT : std_logic;

signal U1_FD2_Q_OUT : std_logic;

signal U1_FD3_Q_OUT : std_logic;

signal U1_OR3_O_OUT : std_logic;

signal U1_RST_IN : std_logic;

signal U2_CLKDV_BUF : std_logic;

signal U2_CLKFB_IN : std_logic;

signal U2_CLK0_BUFG : std_logic;

signal U2_CLK2X_BUF : std_logic;

signal U2_CLK2X180_BUF : std_logic;

signal VCC1 : std_logic;

-- Period Jitter (unit interval) for block DCM_SP_INST1 = 0.10 UI -- Period Jitter (Peak-to-Peak) for block DCM_SP_INST1 = 0.74 ns -- Period Jitter (unit interval) for block DCM_SP_INST2 = 0.13 UI -- Period Jitter (Peak-to-Peak) for block DCM_SP_INST2 = 0.74 ns component DCM_SP generic(

CLK_FEEDBACK : string := «1X»;

CLKDV_DIVIDE : real := 2.0;

CLKFX_DIVIDE : integer := 1;

CLKFX_MULTIPLY : integer := 4; CLKIN_DIVIDE_BY_2 : boolean := FALSE; CLKIN_PERIOD : real := 10.0; CLKOUT_PHASE_SHIFT : string := «NONE»;

in std_logic

in std_logic

in std_logic

in std_logic

in std_logic

in std_logic

in std_logic

in std_logic

in std_logic

in std_logic

in std_logic

in std_logic

in std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic_vector (2 downto O);

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

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic

out std_logic_vector (2 downto O)

DESKEW_ADJUST : string := «SYSTEM_SYNCHRONOUS»; DFS_FREQUENCY_MODE : string := «LOW»; DLL_FREQUENCY_MODE : string := «LOW»; DUTY_CYCLE_CORRECTION : boolean := TRUE; FACTORY_JF : bit_vector := x»C080»;

PHASE_SHIFT : integer := 0;

STARTUP_WAIT : boolean := FALSE;

DSS_MODE : string := «NONE»

port (

CLKIN in std_logic;

CLKFB in std_logic;

RST in std_logic;

PSEN in std_logic;

PSINCDEC in std_logic;

PSCLK in std_logic;

DSSEN in std_logic;

CLK0 : out std_logic;

CLK90 : out std_logic;

CLK180 : out std_logic;

CLK270 : out std_logic;

CLKDV : out std_logic;

CLK2X : out std_logic;

CLK2X180 : out std_logic;

CLKFX : out std_logic;

CLKFX180 : out std_logic;

STATUS : out std_logic_

LOCKED : out std_logic;

PSDONE : out std_logic

ogic_vector (7 downto O);

end component;

component OFDDRCPE port (

PRE in std_logic;

CLR in std_logic;

CE in std_logic;

DO in std_logic;

D1 in std_logic;

CO in std_logic;

C1 in std_logic;

Q : out std_logic

end component;

component IBUFG port (

I : in

O : out

std_logic;

std_logic

end component;

component BUFG port (

I : in

O : out

std_logic;

std_logic

end component;

component BUFGCE port (

I : in

CE : in

O : out

std_logic;

std_logic;

std_logic

end component;

component FDS port (

S : in std_logic;

D : in std_logic;

C : in std_logic;

Q : out std_logic

end component;

component FD port (

D : in

C : in

Q : out

std_logic;

std_logic;

std_logic

end component;

component INV port (

I : O :

std_logic;

std_logic

end component;

component OR2 port (

I1 : in

IO : in

O : out

std_logic;

std_logic;

std_logic

out

end component;

component OR3 port (

I2 : in std_logic;

I1 : in std_logic;

IO : in std_logic;

O : out std_logic

);

end component;

begin

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

GND1 <= '0';

VCC1 <= '1';

U1_CLKIN_IBUFG_OUT <= U1_CLKIN_IBUFG;

U1_CLK0_OUT <= U1_C0_IN;

U2_CLK0_OUT <= U2_CLKFB_IN;

DCM_SP_INST1 : DCM_SP

generic map(

CLK_FEEDBACK => «1X»,

CLKDV_DIVIDE => 5.0,

CLKFX_DIVIDE => 2,

CLKFX_MULTIPLY => 7,

CLKIN_DIVIDE_BY_2 => FALSE,

CLKIN_PERIOD => 25.0,

CLKOUT_PHASE_SHIFT => «NONE», DESKEW_ADJUST => «SYSTEM_SYNCHRONOUS», DFS_FREQUENCY_MODE => «LOW», DLL_FREQUENCY_MODE => «LOW», DUTY_CYCLE_CORRECTION => TRUE, FACTORY_JF => x»C080»,

PHASE_SHIFT => 0,

STARTUP_WAIT => FALSE )

port map (

CLKFB=>U1_CLKFB_IBUFG,

CLKIN=>U1_CLKIN_IBUFG,

DSSEN=>GND1,

PSCLK=>GND1,

PSEN=>GND1,

PSINCDEC=>GND1,

RST=>U1_RST_IN,

CLKDV=>U1_CLKDV_OUT,

CLKFX=>U1_CLKFX_OUT,

CLKFX180=>U1_CLKFX180_OUT,

CLK0=>U1_CLK0_BUFG,

CLK2X=>U1_CLK2X_OUT,

CLK2X180=>U1_CLK2X180_OUT,

CLK90=>U1_CLK90_BUF,

CLK180=>U1_CLK180_BUF,

CLK270=>U1_CLK270_BUF,

LOCKED=>U1_LOCKED_OUT,

PSDONE=>open,

STATUS(7 downto 3)=>STATUS_float(4 downto 0), STATUS(2 downto 0)=>U1_STATUS_OUT(2 downto 0) );

DCM_SP_INST2 : DCM_SP

generic map(

CLK_FEEDBACK => «1X»,

CLKDV_DIVIDE => 4.0,

CLKFX_DIVIDE => 2,

CLKFX_MULTIPLY => 9,

CLKIN_DIVIDE_BY_2 => FALSE,

CLKIN_PERIOD => 25.0,

CLKOUT_PHASE_SHIFT => «NONE», DESKEW_ADJUST => «SYSTEM_SYNCHRONOUS», DFS_FREQUENCY_MODE => «LOW», DLL_FREQUENCY_MODE => «LOW», DUTY_CYCLE_CORRECTION => TRUE, FACTORY_JF => x»C080»,

PHASE_SHIFT => 0,

STARTUP_WAIT => FALSE )

port map (

CLKFB=>U2_CLKFB_IN,

CLKIN=>U1_CLKIN_IBUFG,

DSSEN=>GND1,

PSCLK=>GND1,

PSEN=>GND1,

PSINCDEC=>GND1,

RST=>U2_RST_IN,

CLKDV=>U2_CLKDV_BUF,

CLKFX=>U2_CLKFX_OUT,

CLKFX180=>U2_CLKFX180_OUT,

CLK0=>U2_CLK0_BUFG,

CLK2X=>U2_CLK2X_BUF,

CLK2X180=>U2_CLK2X180_BUF,

CLK90=>open,

CLK180=>open,

CLK270=>open,

LOCKED=>U2_LOCKED_OUT,

PSDONE=>open,

STATUS(7 downto 3)=>STATUS_float1(4 downto 0), STATUS(2 downto 0)=>U2_STATUS_OUT(2 downto 0) );

OFDDRCPE_INST : OFDDRCPE port map (

CE=>U1_CE_IN,

CLR=>U1_CLR_IN,

C0=>U1_C0_IN,

C1=>U1_CLK0_INV_IN,

D0=>VCC1,

D1=>GND1,

PRE=>U1_PRE_IN,

Q=>DDR_CLK0_OUT

);

U1_CLKFB_IBUFG_INST : IBUFG port map (

I=>U1_CLKFB_IN,

O=>U1_CLKFB_IBUFG

);

U1_CLKIN_IBUFG_INST : IBUFG port map (

I=>U1_CLKIN_IN,

O=>U1_CLKIN_IBUFG

);

U1_CLK0_BUFG_INST : BUFG port map (

I=>U1_CLK0_BUFG,

O=>U1_C0_IN

);

U1_CLK90_BUFGCE_INST : BUFGCE port map (

CE=>U1_CLK90_ENABLE_IN,

I=>U1_CLK90_BUF,

O=>U1_CLK90_OUT

);

U1_CLK180_BUFGCE_INST : BUFGCE port map (

CE=>U1_CLK180_ENABLE_IN,

I=>U1_CLK180_BUF,

O=>U1_CLK180_OUT

);

U1_CLK270_BUFGCE_INST : BUFGCE port map (

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

CE=>U1_CLK270_ENABLE_IN,

I=>U1_CLK270_BUF,

O=>U1_CLK270_OUT

);

U1_FDS_INST : FDS port map (

C=>U1_CLKIN_IBUFG,

D=>GND1,

S=>GND1,

Q=>U1_FDS_Q_OUT

);

U1_FD1_INST : FD port map (

C=>U1_CLKIN_IBUFG,

D=>U1_FDS_Q_OUT,

Q=>U1_FD1_Q_OUT

);

U1_FD2_INST : FD port map (

C=>U1_CLKIN_IBUFG,

D=>U1_FD1_Q_OUT,

Q=>U1_FD2_Q_OUT

);

U1_FD3_INST : FD port map (

C=>U1_CLKIN_IBUFG,

D=>U1_FD2_Q_OUT,

Q=>U1_FD3_Q_OUT

);

U1_INV_INST : INV port map (

I=>U1_C0_IN,

O=>U1_CLK0_INV_IN

);

U1_OR2_INST : OR2 port map (

I0=>U1_USER_RST_IN,

I1=>U1_OR3_O_OUT,

O=>U1_RST_IN

);

U1_OR3_INST : OR3 port map (

I0=>U1_FD3_Q_OUT,

I1=>U1_FD2_Q_OUT,

I2=>U1_FD1_Q_OUT,

O=>U1_OR3_O_OUT

);

U2_CLKDV_BUFGCE_INST : BUFGCE port map (

CE=>U2_CLKDV_ENABLE_IN,

I=>U2_CLKDV_BUF,

O=>U2_CLKDV_OUT

);

U2_CLK0_BUFG_INST : BUFG port map (

I=>U2_CLK0_BUFG,

O=>U2_CLKFB_IN

);

U2_CLK2X_BUFGCE_INST : BUFGCE port map (

CE=>U2_CLK2X_ENABLE_IN,

I=>U2_CLK2X_BUF,

O=>U2_CLK2X_OUT

);

U2_CLK2X180_BUFGCE_INST : BUFGCE port map (

CE=>U2_CLK2X180_ENABLE_IN,

I=>U2_CLK2X180_BUF,

O=>U2_CLK2X180_OUT

);

end BEHAVIORAL;

Обобщенная структура сгенерированного VHDL-описания блока синхронизации sys_clk_board_and_int повторяет структуру модуля sys_clk_int, рассмотренную ранее. Основу сформированного описания архитектуры блока синхронизации sys_clk_board_and_int образуют два экземпляра библиотечного компонента DCM_SP. Первый экземпляр DCM_SP_INST1 представляет модуль DCM, предназначенный, в первую очередь, для устранения временных перекосов, которые появляются при распространении тактового сигнала на печатной плате разрабатываемого устройства. Второй экземпляр DCM_SP_INST2 соответствует модулю DCM, выполняющему аналогичную функцию для тактового сигнала, используемого внутри кристалла. В состав сформированного блока sys_clk_board_and_int входят также библиотечные компоненты глобальных входных и выходных буферных элементов IBUFG, BUFG, BUFGCE, выходного DDR-триггера OFDDRCPE, D-триггеров FD и FDS, двух- и трехвходовых элементов «Логическое ИЛИ» OR2 и OR3, инвертора INV.

В VHDL-описании блока синхронизации sys_clk_board_and_int используются следующие условные обозначения входных и выходных портов:

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

• U1_CLKFB_IN — вход сигнала внешней обратной связи для первого модуля DCM;

• U1_CLR_IN — вход сигнала асинхронного сброса выходного DDR-триггера;

• U1_ PRE _IN — вход сигнала асинхронной установки выходного DDR-триггера;

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

• U1_CLK9O_ENABLE_IN — вход разрешения выходного сигнала с частотой 4O МГц со сдвигом фазы на четверть периода, формируемого первым модулем DCM;

• U1_CLK180_ENABLE_IN — вход разрешения выходного сигнала с частотой 40 МГц со сдвигом фазы на половину периода, вырабатываемого первым модулем DCM;

• U1_CLK270_ENABLE_IN — вход разрешения выходного сигнала с частотой 40 МГц со сдвигом фазы на три четверти периода, формируемого первым модулем DCM;

• Ш_СЕ_ВД — вход разрешения тактового сигнала выходного DDR-триггера;

• U2_CLKDV_ENABLE_IN — вход разрешения выходного сигнала с частотой 10 МГц, формируемого делителем частоты второго модуля DCM;

• U2_CLK2X_ENABLE_IN и U2_CLK2X180_ENABLE_IN — входы разрешения выходных сигналов с частотой 80 МГц, формируемых вторым модулем DCM;

• U2_RST_IN — вход сигнала сброса второго модуля DCM;

• DDR_CLK0_OUT — выход сигнала, вырабатываемого выходным DDR-триггером;

• U1_CLKIN_IBUFG_OUT — выход исходного тактового сигнала, снимаемого с входного буферного элемента;

• Ш_^Ю_ОиТ — выход сигнала с частотой 40 МГц с нулевым фазовым сдвигом, вырабатываемым первым модулем DCM;

• и 1_^Ю0_0иТ, Ш_^Ю80_0иТ

и U1_CLK270_OUT — выходы сигнала с частотой 40 МГц с фазовым сдвигом на четверть, половину и три четверти периода соответственно, формируемым первым модулем DCM;

• ш_^их_оит иш^юх^оит—

выходы сигналов с частотой 80 МГц, отличающихся по фазе на половину периода, которые вырабатываются первым модулем DCM;

• ш_аетх_оит и ш_аетхш_оит—

выходы сигналов с частотой 140 МГц, отличающихся по фазе на половину периода, которые формируются синтезатором частот первого модуля DCM;

• U1_CLKDV_OUT — выход сигнала с частотой 8 МГц, вырабатываемого делителем частоты первого модуля DCM;

• U2_CLKDV_OUT — выход сигнала счас-тотой 10 МГц, формируемого делителем частоты второго модуля DCM;

• то_аетх_оит и ш_аетх180_оит—

выходы сигналов с частотой 180 МГц, отличающихся фазовым сдвигом, равным половине периода, которые формируются синтезатором частот второго модуля DCM;

• Ш_^Ю_Оит — выход сигнала с частотой 40 МГц с нулевым фазовым сдвигом, который вырабатывается вторым модулем DCM;

• Ш_^ИХ_Оит и Ш_^ИХ180_0ит — выходы сигналов с частотой 80 МГц, отличающихся фазовым сдвигом, равным половине периода, которые формируются вторым модулем DCM;

• Ш_Ь0СКЕ0_0иТ и Ш_Ь0СКЕ0_0иТ — выходы сигналов, информирующих о соотношении фаз входного и выходного сигналов схем автоподстройки задержек ЭЬЬ первого и второго модуля ЭСМ соответственно;

• Ш_8ТЛТШ_0иТ иШ_8ТЛТШ_0иТ — выходные шины состояния первого и второго модуля ЭСМ соответственно.

Для установки требуемых значений всех необходимых атрибутов компонентов ЭСМ_БР, используемых в составе описания блока синхронизации 8у8_с1к_Ьоа^_ап^іп1, в файл временных и топологических ограничений проекта разрабатываемого устройства САПР серии Хіііпх ІБЕ можно записать следующую

совокупность выражений, автоматически сформированную «мастером» Architecture Wizard в виде соответствующего файла с расширением ucf:

Net U1_CLKFX_OUT USELOWSKEWLINES;

Net U1_CLKFX180_OUT USELOWSKEWLINES;

INST DCM_SP_INST1 CLK_FEEDBACK = 1X;

INST DCM_SP_INST1 CLKDV_DIVIDE = 5.0;

INST DCM_SP_INST1 CLKFX_DIVIDE = 2;

INST DCM_SP_INST1 CLKFX_MULTIPLY = 7;

INST DCM_SP_INST1 CLKIN_DIVIDE_BY_2 = FALSE;

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

INST DCM_SP_INST1 CLKIN_PERIOD = 25.0;

INST DCM_SP_INST1 CLKOUT_PHASE_SHIFT = NONE;

INST DCM_SP_INST1 DESKEW_ADJUST = SYSTEM_SYNCHRO-NOUS;

INST DCM_SP_INST1 DFS_FREQUENCY_MODE = LOW;

INST DCM_SP_INST1 DLL_FREQUENCY_MODE = LOW;

INST DCM_SP_INST1 DUTY_CYCLE_CORRECTION = TRUE;

INST DCM_SP_INST1 FACTORY_JF = C080;

INST DCM_SP_INST1 PHASE_SHIFT = 0;

INST DCM_SP_INST1 STARTUP_WAIT = FALSE;

INST DCM_SP_INST2 CLK_FEEDBACK = 1X;

INST DCM_SP_INST2 CLKDV_DIVIDE = 4.0;

INST DCM_SP_INST2 CLKFX_DIVIDE = 2;

INST DCM_SP_INST2 CLKFX_MULTIPLY = 9;

INST DCM_SP_INST2 CLKIN_DIVIDE_BY_2 = FALSE;

INST DCM_SP_INST2 CLKIN_PERIOD = 25.0;

INST DCM_SP_INST2 CLKOUT_PHASE_SHIFT = NONE;

INST DCM_SP_INST2 DESKEW_ADJUST = SYSTEM_SYNCHRO-NOUS;

INST DCM_SP_INST2 DFS_FREQUENCY_MODE = LOW;

INST DCM_SP_INST2 DLL_FREQUENCY_MODE = LOW;

INST DCM_SP_INST2 DUTY_CYCLE_CORRECTION = TRUE; INST DCM_SP_INST2 FACTORY_JF = C080;

INST DCM_SP_INST2 PHASE_SHIFT = 0;

INST DCM_SP_INST2 STARTUP_WAIT = FALSE;

Окончание следует

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