Валерий ЗОТОВ
Особенности и структура аппаратных модулей ЦОС РвРДвЕ, входящих в состав архитектуры ПЛИС семейств серии У1ггех-5
В составе ПЛИС семейств У1йех-5 ЬХ, Уи1ех-5 ЬХТ, Уи1ех-5 8ХТ и Уи1ех-5 ЬХТ применяются аппаратные модули цифровой обработки сигналов следующего поколения, по отношению к аналогичным ресурсам кристаллов семейств У1йех-4 ЬХ, У1йех-4 8Х и У1йех-4 ЬХ. Максимальной концентрацией встроенных аппаратных секций ЦОС обладают ПЛИС семейства Уи1ех-5 8ХТ. Кристаллы именно этого семейства, содержащие до 1056 модулей Б8Р48Е, в первую очередь, предназначены для реализации высокоскоростных устройств ЦОС. Наиболее заметные особенности встроенных аппаратных секций Б8Р48Е:
• возможность работы с максимальной тактовой частотой, достигающей 550 МГц;
Разработка компонентов устройств ЦОС,
реализуемых на базе аппаратных модулей DSP48E в ПЛИС FPGA серии Virtex-5, с помощью «мастера» Architecture Wizard САПР серии Xilinx ISE
Постоянный рост быстродействия и внедрение новых специализированных аппаратных модулей в состав архитектуры ПЛИС современных семейств FPGA (Field Programmable Gate Array), выпускаемых фирмой Xilinx [1], позволяют рассматривать их в качестве перспективной элементной базы для разработки высокоскоростных устройств цифровой обработки сигналов. Наиболее высокими техническими характеристиками обладают кристаллы серии Virtex-5, которые пришли на смену ПЛИС семейств предыдущего поколения — Virtex-4. Одним из существенных преимуществ кристаллов серии Virtex-5, представленных в [2], является применение усовершенствованных аппаратных секций цифровой обработки сигналов (ЦОС) DSP48E. В статье рассматриваются различные методы подготовки описаний основных компонентов высокоскоростных устройств ЦОС, реализуемых на базе данных аппаратных модулей, в САПР серии Xilinx ISE (Integrated Synthesis Environment/Integrated Software Environment) [3, 4]. При этом основное внимание уделяется способу, основанному на использовании «мастера» Architecture Wizard, который входит в состав указанных средств проектирования.
применение нового аппаратного умножителя 25x18, позволяющего вычислять произведение 25- и 18-разрядных значений входных данных;
использование 48-разрядного аккумулятора с поддержкой каскадного наращивания до 96 разрядов;
поддержка свыше 40 различных режимов (реализуемых функций), выбираемых разработчиком;
оптимизированная архитектура, предоставляющая возможность эффективной реализации высокопроизводительных цифровых фильтров и выполнения операций комплексного умножения; возможность применения многоступенчатой конвейерной организации выполнения операций, повышающей производительность разрабатываемых устройств ЦОС;
поддержка поразрядных логических операций;
• возможность реализации трехвходовых сумматоров и вычитающих устройств;
• поддержка динамического управления режимами работы функциональных блоков модуля;
• возможность выполнения арифметических функций без использования умножителя;
• низкий уровень потребляемой мощности (для каждой секции Б8Р48Е это значение составляет 1,38 мВт/100 МГц);
• наличие дополнительных опций снижения уровня потребляемой мощности. Структурная схема аппаратного модуля
ЦОС Э8Р48Е изображена на рис. 1.
В состав представленной структуры входят следующие основные элементы:
• аппаратный умножитель 25x18;
• арифметическо-логический блок;
• селекторы-мультиплексоры, осуществляющие коммутацию сигналов на входах аппаратного умножителя 25x18 и арифмети-ческо-логического блока;
CARRYCASCOUT*
BCIN*
CARRYINSEL
ACIN*
1 CREG/C Bypass/Mask MULTSIGNIN* CARRYCASCIN*
Рис. 1. Структурная схема аппаратного модуля ЦОС DSP4BE
• регистры, предназначенные для реализации конвейерной организации выполнения операций.
Более подробная информация об аппаратных секциях ЦОС Э8Р48Е представлена в документации [5-8].
Методы формирования описаний компонентов высокоскоростных устройств ЦОС, реализуемых на базе аппаратных модулей РвРДвЕ ПЛИС РРвД серии У1ггех-5
Наиболее часто в алгоритмах ЦОС используются операции сложения, вычитания, ум-
DSP48E
А [29:0] ACOUT [29:0]
В [17:0] BCOUT [17:0]
С [47:0] PCOUT [47:0]
OPMODE [6:0]
ALU MODE [3:0] Р [47:0]
CARRYIN
CARRYINSEL [2:0]
СЕА 1 CARRYOUT [3:0]
СЕА 2 CARRYCASCOUT
СЕВ 1 MULTSIGNOUT
СЕВ 2
СЕС PATTERNDETECT
СЕМ PATTERN BDETECT
СЕР
CEALUMODE OVERFLOW
CEMULTCARRYIN
CECARRYIN
RSTA
RSTB
RSTC
RSTM
RSTP
RSTCTRL
RSTALLCARRYIN
RSTALUMODE
CLK
ACIN [29:0]
BCIN [17:0]
PCIN [47:0]
CARRYCASCIN
MULTSIGNIN
Wt
т*Г
Рис. 2. Условный графический образ библиотечного примитива dsp48e
ножения и умножения с накоплением. Поэтому в качестве базовых компонентов устройств ЦОС применяются сумматоры, вычитающие устройства, умножители и умножители-накопители. Процесс разработки данных компонентов, реализуемых на базе аппаратных модулей DSP48E в кристаллах FPGA серии Virtex-5, в САПР серии Xilinx ISE можно осуществлять следующими способами:
• «вручную», используя стандартные методы описания цифровых устройств (схемотехнический или с помощью языков HDL высокого уровня VHDL и Verilog);
• в интерактивном автоматическом режиме с помощью «мастера» Architecture Wizard. Все компоненты устройств ЦОС создаются на базе примитива DSP48E, который представляет одноименный аппаратный модуль
кристалла. При формировании схемотехнического описания компонентов, реализуемых на основе данных модулей, следует использовать библиотечный элемент dsp48e, условный графический образ которого представлен на рис. 2. Все необходимые значения параметров конфигурации этого элемента задаются в форме соответствующих атрибутов. Для вывода на экран таблицы атрибутов элемента схемы достаточно поместить курсор на его условный графический образ и дважды щелкнуть левой кнопкой мыши.
В случае применения языков описания аппаратуры высокого уровня VHDL и Verilog для разработки компонентов высокоскоростных устройств ЦОС, реализуемых на базе аппаратных секций ЦОС DSP48E, целесообразно воспользоваться шаблоном DSP Block (DSP48E) встроенного HDL-редактора средств проектирования серии Xilinx ISE. Чтобы использовать этот метод, необходимо в окне интегрированного текстового редактора, в котором создается HDL-описание разрабатываемого компонента, активизировать окно шаблонов, используя команду Language Templates из всплывающего меню Edit или кнопку Ш, расположенную на оперативной панели управления Навигатора проекта (Project Navigator). Затем нужно открыть раздел, соответствующий выбранному языку HDL. Далее следует выбрать подраздел Device Primitive Instantiation, в котором нужно последовательно отметить подкаталоги FPGA, Arithmetic Functions и папку Virtex-5, как показано на рис. 3.
Текст шаблона DSP Block (DSP48E), предназначенного для описания аппаратных модулей ЦОС в ПЛИС семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT, имеет следующий вид:
S Xilinx ISF • D:\PRJ\projecl1\pioject1.ise - |1ап&иед* Templates] t IP 'X
Ne Ptotert Soirtc Prow»» l®ndo** Oet 012) H
□ ЛИ» , * ax *» '5 , , ХЯ/0 & ~ и Э > м « і» я я ш T * st a 9c ганна - 9 Еї^хігн
О”’ O'*
Scucei to< lwp>wnen*abon Яйчечї □ ж5ч*50гЛ 1136
Proe**i*« la *6*50381136
□ Add E Souc*
□ С*а»е New Souicc » У Dengn UUhei
<
Proc*it«
* L2A8EI HI CjTd
* CUUCF
t Vadog 5 tSVMM.
I± Comnon Cortttfuci:
Ш CJ Dew* Масю ІгиідпМЬоп Ь і Device Pimtove ln:tanbahcn 9 DCHO b -JFPGA
Ш ;Spe*ar>ibDSP » _JSp»»*r>3C/34
а
Ы ~>Vrt«-5
Ш Vrte-fl/ll-Pio Spa(ar>3 9 JCfectCwrpcnem,
■ ~ і Certi&DSCAN Componartt
® Спілі сомропвп«
Ш RAM/ROM » LjRvgrtfftlUictwf S " j Sfcft Regntoi ШІ
m I s*e*/a.B Fw-vr-i ffi Syrfem Monrfct
— DSP18E: DSP Function Block g
— Vircex-S
— Xilinx HVL Language Template, version 10.1.2
DSP48E_lnst : P3P48E
generic nap (
ACA5CREG ■> 1» -- Nunber oI pipeline register:
-- A/ACIN input and ACOOT oucp> 1 ALOHODEREG ■> 1, -- Nusber of pipeline register:
APEC ■> 1, — Nunber of pipeline ГЄ910СЄГ! I
AUTORISET_PATTIRN_£>ETECT -> FALSE. - AutO-reset upi . J AUTOPE3ET~PATTERN~DETECT_OPTINV -> "HATCH", — Реве' 1 A_INPUT -> "DIRECT", — Selects A input used, “DIRX< I BCA3CPEG "> 1, -- Nunber Of pipeline register:
BRIO ■> 1, — Nusber of pipeline registeri
B_ INPUT -> "MRICT", — Selects В input used. “DIRE' CAPPYINPEG ■> 1, -- Nunbar of pip*1lna register)
CAPPYINSELPEG -> 1, -- Nunber Of pipeline register:
CRXG ■> 1, — Nunber of pipeline registeri
HASF. -> X~JFFFFFFFFFFF", — 18-bit BasK velue lor pi HREG ■> I, -- Nuatoer of multiplier plpellt
HULTCARPYINPEG -> 1, -- Nunber of pipeline register: OPHODEREG •> 1, -- Nunber of pipeline register:
PATTERN •> X"QOOOOOOCOOOO", 18-bit Pattern match PPEG ■> l, — Nunber of pipeline register)
SIH_HODE -> "SAFE", — Simulation: "SAFE" vs "FAST".
— Design Guide" for details 3EL_HA3K -> "HASK", — Select mask value between tl SEL PATTERN "> "PATTERN", — Select pattern value b<v
Lengnagt TwnpUtn
)Егюи Wamngi ^TdShrt ЩРі^иПм |
Рис. 3. Выбор шаблона VHDL-описания примитива dsp4Be
-- DSP48E : 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 : (DSP48E_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-
--- >
-- DSP48E: DSP Function Block -- Virtex-5
-- Xilinx HDL Language Template, version 10.1.2
DSP48E_inst : DSP48E generic map (
ACASCREG => 1, -- Number of pipeline registers between -- A/ACIN input and ACOUT output, 0, 1, or 2 ALUMODEREG => 1, -- Number of pipeline registers on ALUMODE input, 0 or 1
AREG => 1, -- Number of pipeline registers on the A input, 0,
1 or 2
AUTORESET_PATTERN_DETECT => FALSE, -- Auto-reset upon pattern detect, TRUE or FALSE
AUTORESET_PATTERN_DETECT_OPTINV => «MATCH», -- Reset if «MATCH» or «NOMATCH»
A_INPUT => «DIRECT», -- Selects A input used, «DIRECT» (A port) or «CASCADE» (ACIN port)
BCASCREG => 1, -- Number of pipeline registers between B/BCIN input and BCOUT output, 0, 1, or 2
BREG => 1, -- Number of pipeline registers on the B input, 0,
1 or 2
B_INPUT => «DIRECT», -- Selects B input used, «DIRECT» (B port) or «CASCADE» (BCIN port)
CARRYINREG => 1, -- Number of pipeline registers for the CARRYIN input, 0 or 1
CARRYINSELREG => 1, -- Number of pipeline registers for the CARRYINSEL input, 0 or 1
CREG => 1, -- Number of pipeline registers on the C input, 0
or 1
MASK => X»3FFFFFFFFFFF», -- 48-bit Mask value for pattern
detect
MREG => 1, -- Number of multiplier pipeline registers, 0 or 1 MULTCARRYINREG => 1, -- Number of pipeline registers for multiplier carry in bit, 0 or 1
OPMODEREG => 1, -- Number of pipeline registers on OPMODE input, 0 or 1
PATTERN => X»000000000000», -- 48-bit Pattern match for pattern detect
PREG => 1, -- Number of pipeline registers on the P output, 0
or 1
SIM_MODE => «SAFE», -- Simulation: «SAFE» vs «FAST», see «Synthesis and Simulation Design Guide» for details
SEL_MASK => «MASK», -- Select mask value between the «MASK» value or the value on the «C» port
SEL_PATTERN => «PATTERN», -- Select pattern value between the «PATTERN» value or the value on the «C» port
SEL_ROUNDING_MASK => «SEL_MASK», -- «SEL_MASK», «MODE1», «MODE2»
USE_MULT => «MULT_S», -- Select multiplier usage, «MULT» (MREG => 0), -- «MULT_S» (MREG => 1), «NONE» (not using multiplier)
USE_PATTERN_DETECT => «NO_PATDET», -- Enable pattern detect, «PATDET», «NO_PATDET»
USE_SIMD => «ONE48») -- SIMD selection, «ONE48», «TWO24», «FOUR12» port map (
ACOUT => ACOUT, -- 30-bit A port cascade output BCOUT => BCOUT, -- 18-bit B port cascade output CARRYCASCOUT => CARRYCASCOUT, -- 1-bit cascade carry output
CARRYOUT => CARRYOUT, -- 4-bit carry output MULTSIGNOUT => MULTSIGNOUT, -- 1-bit multiplier sign cascade output
OVERFLOW => OVERFLOW, -- 1-bit overflow in add/acc
output
P => P, -- 48-bit output
PATTERNBDETECT => PATTERNBDETECT, -- 1-bit active high pattern bar detect output
PATTERNDETECT => PATTERNDETECT, -- 1-bit active high pattern detect output
PCOUT => PCOUT, -- 48-bit cascade output UNDERFLOW => UNDERFLOW, -- 1-bit active high underflow in add/acc output
A => A, -- 30-bit A data input
ACIN => ACIN, -- 30-bit A cascade data input
ALUMODE => ALUMODE, -- 4-bit ALU control input
B => B, -- 18-bit B data input
BCIN => BCIN, -- 18-bit B cascade input
C => C, -- 48-bit C data input
CARRYCASCIN => CARRYCASCIN, -- 1-bit cascade carry
input
CARRYIN => CARRYIN, -- 1-bit carry input signal CARRYINSEL => CARRYINSEL, -- З-bit carry select input CEA1 => CEA1, -- 1-bit active high clock enable input for 1st stage A registers
CEA2 => CEA2, -- 1-bit active high clock enable input for 2nd stage A registers
CEALUMODE => CEALUMODE, -- 1-bit active high clock enable input for ALUMODE registers
CEB1 => CEB1, -- 1-bit active high clock enable input for 1st stage B registers
CEB2 => CEB2, -- 1-bit active high clock enable input for 2nd stage B registers
CEC => CEC, -- 1-bit active high clock enable input for C registers
CECARRYIN => CECARRYIN, -- 1-bit active high clock enable input for CARRYIN register
CECTRL => CECTRL, -- 1-bit active high clock enable input for OPMODE and carry registers
CEM => CEM, -- 1-bit active high clock enable input for multiplier registers
CEMULTCARRYIN => CEMULTCARRYIN, -- 1-bit active high clock enable for multiplier carry in register
CEP => CEP, -- 1-bit active high clock enable input for P registers
CLK => CLK, -- Clock input
MULTSIGNIN => MULTSIGNIN, -- 1-bit multiplier sign input OPMODE => OPMODE, -- 7-bit operation mode input PCIN => PCIN, -- 48-bit P cascade input RSTA => RSTA, -- 1-bit reset input for A pipeline registers RSTALLCARRYIN => RSTALLCARRYIN, -- 1-bit reset input for carry pipeline registers
RSTALUMODE => RSTALUMODE, -- 1-bit reset input for ALUMODE pipeline registers
RSTB => RSTB, -- 1-bit reset input for B pipeline registers RSTC => RSTC, -- 1-bit reset input for C pipeline registers RSTCTRL => RSTCTRL, -- 1-bit reset input for OPMODE pipeline registers
RSTM => RSTM, -- 1-bit reset input for multiplier registers RSTP => RSTP -- 1-bit reset input for P pipeline registers
);
-- End of DSP48E_inst instantiation
После включения данного шаблона в состав VHDL-описания разрабатываемого компонента ЦОС следует указать требуемые значения настраиваемых параметров примитива dsp48e, которые представлены в разделе generic map, и осуществить подключение интерфейсных портов.
В представленном шаблоне и условном графическом образе примитива DSP48E используется следующая система обозначений входных и выходных портов:
• A[29:0] — входная 30-разрядная шина данных, на которую поступает код операнда A;
• ACIN[29:0] — входная 30-разрядная шина, предназначенная для подключения выходной шины ACOUT предыдущей секции DSP48E при каскадном сопряжении аппаратных модулей ЦОС;
• B[17:0] — входная 18-разрядная шина данных, на которую поступает код операнда B;
• BCIN[17:0] — входная 18-разрядная шина, предназначенная для подключения выходной шины BCOUT предшествующей секции DSP48E при каскадном соединении аппаратных модулей ЦОС;
• C[47:0] — дополнительная 48-разрядная входная шина данных C арифметическо-логического блока;
• PCIN — входная 48-разрядная шина, предназначенная для подключения выходной шины PCOUT предыдущей секции DSP48E при каскадном наращивании аппаратных модулей ЦОС;
• CARRYIN — вход сигнала переноса;
• CARRYCASCIN — вход сигнала переноса, формируемого предыдущим аппаратным модулем ЦОС при каскадном соединении секций DSP48E;
• CARRYINSEL[2:0] — входная 3-разрядная шина управления выбором источника сигнала переноса;
• ALUM0DE[3:0] — входная 4-разрядная шина управления выбором функции, выполняемой арифметическо-логическим блоком;
• 0PM0DE[6:0] — входная 7-разрядная шина управления выбором источников входных данных для арифметическо-логичес-кого блока;
• CEA1 иCEA2 — входы сигнала разрешения синхронизации для первого и второго конвейерных регистров, устанавливаемых на входе данных A аппаратного умножителя и арифметическо-логического блока;
• CEB1 и CEB2 — входы сигнала разрешения синхронизации для первого и второго конвейерных регистров, устанавливаемых на входе данных B аппаратного умножителя и арифметическо-логического блока;
• CEC — вход сигнала разрешения синхронизации для входного регистра, подключаемого к дополнительной шине данных C арифметическо-логического блока;
• CEALUMODE — вход сигнала разрешения синхронизации для регистра управления арифметическо-логического блока, в который заносится код выполняемой функции;
• CECTRL — вход сигнала разрешения синхронизации регистров, предназначенных для хранения кода источников входных данных в арифметическо-логическом блоке и сигналов входного переноса;
• CECARRYIN — вход сигнала разрешения синхронизации для буферного регистра, устанавливаемого в цепи внешнего сигнала входного переноса;
• CEMULTCARRYIN — вход сигнала разрешения синхронизации для буферного регистра, устанавливаемого в цепи внутреннего сигнала входного переноса для аппаратного умножителя;
• CEM — вход сигнала разрешения синхронизации для конвейерного регистра, устанавливаемого на выходе аппаратного умножителя;
• CEP — вход сигнала разрешения синхронизации для выходного регистра;
• CLK — вход тактового сигнала;
• MULTSIGNIN — вход сигнала знакового разряда результата умножения, формируемого предшествующей секцией ЦОС при каскадном соединении модулей DSP48E;
• RSTA — вход сигнала сброса конвейерных регистров, устанавливаемых на входе данных A аппаратного умножителя и арифме-тическо-логического блока;
• RSTALLCARRYIN — вход сигнала сброса конвейерных регистров, применяемых в цепях входного переноса;
• RSTALUMODE — вход сигнала сброса для регистра управления арифметическо-ло-гического блока;
• RSTB — вход сигнала сброса конвейерных регистров, устанавливаемых на входе данных B аппаратного умножителя и арифме-тическо-логического блока;
• RSTC — вход сигнала сброса входного регистра, подключаемого к дополнительной шине данных C арифметическо-логичес-кого блока;
• RSTCTRL — вход сигнала сброса регистров, предназначенных для хранения кода источников входных данных в арифмети-ческо-логическом блоке и сигналов входного переноса;
• RSTM — вход сигнала сброса конвейерного регистра, устанавливаемого на выходе аппаратного умножителя;
• RSTP — вход сигнала сброса выходного регистра;
• P[47:0] — выходная 48-разрядная шина данных, на которую поступают значения результата обработки входных данных;
• PCOUT[47:0] — выходная 48-разрядная шина данных, используемая при каскадном соединении секций DSP48E;
• ACOUT [29:0] — выходная 30-разрядная шина, предназначенная для подключения к входной шине ACIN следующей секции DSP48E при каскадном сопряжении аппаратных модулей ЦОС;
• BCOUT — выходная 18-разрядная шина, предназначенная для подключения к входной шине BCIN следующей секции DSP48E при каскадном сопряжении аппаратных модулей ЦОС;
• CARRYCASCOUT — выход сигнала переноса, используемый при каскадном наращивании секции DSP48E;
• CARRYOUT[3:0] — выходная 4-разрядная шина, на которую подаются сигналы переноса, формируемые 12-разрядными секциями арифметическо-логического блока;
• MULTSIGNOUT — выход знакового разряда результата умножения, предназначенного для подключения к входу MULTSIGNIN следующей секции DSP48E при каскадном соединении аппаратных модулей ЦОС;
• PATTERNBDETECT — выход сигнала, информирующего о совпадении данных на выходной шине P и заданной строки;
• PATTERNDETECT — выход сигнала, информирующего о совпадении кода на выходной шине P и заданного значения;
• OVERFLOW — выход сигнала переполнения;
• UNDERFLOW — выход сигнала исчезновения значащих разрядов.
Наиболее наглядным и эффективным способом разработки компонентов высокоскоростных устройств ЦОС, реализуемых на базе аппаратных модулей DSP48E в ПЛИС семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT, является использование «мастера» Architecture Wizard. Применение данно-
го инструмента позволяет минимизировать суммарное время разработки, а также избежать возможных ошибок при выборе параметров конфигурации примитива dsp48e. «Мастер» Architecture Wizard можно использовать как автономно, так и в среде управляющей оболочки САПР серии Xilinx ISE Навигатора проекта (Project Navigator). Автономный режим работы рассматриваемого «мастера» целесообразно применять для генерации описаний компонентов ЦОС, которые можно включать в состав различных проектов. При подготовке описаний компонентов, предназначенных для конкретного проекта, запуск «мастера» Architecture Wizard лучше производить непосредственно под управлением Навигатора проекта (Project Navigator).
Использование «мастера» Architecture Wizard в автономном режиме
Для запуска «мастера» Architecture Wizard в автономном режиме необходимо в меню, открываемом нажатием кнопки Пуск (Start) операционной системы Windows, выделить строку Программыр^ттв), после чего последовательно выбрать программную группу Xilinx ISE Design Suite... и подгруппу ISE. В данной подгруппе программ (в соответствующем всплывающем меню) следует открыть раздел Accessories, в котором нужно выбрать строку Architecture Wizard. В результате выполнения указанных действий на экран монитора выводится стартовая диалоговая панель с заголовком Setup, вид которой показан на рис. 4.
XAW File (рис. 4). При нажатии на эту кнопку на экран выводится стандартная диалоговая панель открытия файла, позволяющая создать или найти на диске требуемый каталог и указать идентификатор создаваемых файлов, которые будут располагаться в выбранной папке. После закрытия стандартной диалоговой панели полное название файла, включающее путь доступа к нему, автоматически отображается в поле редактирования XAW File.
Выбор языка HDL, который будет использоваться для описания компонента, генерируемого «мастером» Architecture Wizard, осуществляется с помощью двух кнопок с зависимой фиксацией, расположенных во встроенной панели Output File Type (рис. 4). Чтобы сформировать файл описания на языке VHDL, следует зафиксировать в нажатом состоянии одноименную кнопку. Если нажата кнопка Verilog, то создаваемый файл описания будет представлен в терминах языка Verilog.
Для определения применяемых средств синтеза нужно воспользоваться полем выбора Synthesis Tool (рис. 4). В выпадающем списке этого поля отображаются названия всех средств синтеза, поддерживаемых текущей версией САПР серии Xilinx ISE для выбранного семейства ПЛИС. По умолчанию предлагаются встроенные средства синтеза САПР серии Xilinx ISE — Xilinx Synthesis Technology (XST).
Полная информация о кристалле (семейство, тип ПЛИС и условные обозначения корпуса и класса быстродействия), на базе которого предполагается реализация формируемого элемента, указывается в поле редактирования Part (рис. 4). Для ввода соответствующих данных рекомендуется воспользоваться кнопкой Select, которая расположена справа от поля редактирования Part. При нажатии на эту кнопку на экран выводится диалоговая панель с заголовком Select Part, вид которой изображен на рис. 5.
Рис. 4. Вид стартовой диалоговой панели «мастера» Architecture Wizard
В данной диалоговой панели нужно указать название файла для создаваемого элемента, выбрать язык описания HDL и соответствующие средства синтеза, а также семейство и тип кристалла, на основе которого реализуется формируемый компонент.
Прежде чем задать идентификатор файлов, описывающих создаваемый элемент, рекомендуется определить диск и раздел, в который будут записываться генерируемые файлы. Для этой цели целесообразно воспользоваться кнопкой Browse., которая расположена справа от поля редактирования
В этой панели следует с помощью соответствующих полей выбора последовательно указать категорию, семейство, тип, корпус и класс быстродействия кристалла FPGA, на базе которого проектируется устройство ЦОС, в состав которого должен входить формируемый компонент. Для определения категории ПЛИС, к которой относится кри-
сталл, выбираемый для реализации разрабатываемого элемента, нужно воспользоваться полем выбора Product Category. Выпадающий список этого поля включает в себя пять возможных вариантов: All, General Purpose, Automotive, Military/Hi-Reliability и Radiation Hardened. По умолчанию для параметра Product Category предлагается значение All, которое позволяет при выборе семейства ПЛИС отобразить список всех доступных серий кристаллов, поддерживаемых «мастером» Architecture Wizard. При выборе варианта General Purpose в этом списке будут представлены только семейства ПЛИС общего назначения. Если указывается значение Automotive, то данный список будет содержать только семейства кристаллов, ориентированные на применение в автомобильной электронике. Чтобы получить список семейств ПЛИС военного назначения, следует выбрать вариант Military/Hi-Reliability. Для отображения списка радиационно-стойких кристаллов в поле выбора Product Category нужно указать вариант Radiation Hardened. При создании компонентов высокоскоростных устройств ЦОС, реализуемых на базе ПЛИС семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT, в данном поле выбора нужно указать один из первых двух вариантов, рассмотренных выше. Затем в выпадающем списке поля выбора значения параметра Family нужно выделить строку Virtex-5.
После конкретизации семейства ПЛИС в поле выбора типа кристалла Device автоматически отображается тип ПЛИС с минимальным объемом логических ресурсов. Чтобы изменить предлагаемый вариант, необходимо в выпадающем списке поля выбора значения параметра Device выделить строку, содержащую условное обозначение требуемого типа кристалла. После этого в поле выбора Package нужно указать тип корпуса для выбранной ПЛИС. Выпадающий список зна-
чений этого поля содержит условные обозначения только тех типов корпусов, в которых выпускается данный кристалл.
В завершение процесса ввода информации о кристалле, используемом для реализации создаваемого элемента ЦОС, следует определить категорию быстродействия выбранной ПЛИС. Для этого нужно воспользоваться полем выбора Speed, в выпадающем списке которого представлен выпускаемый ряд градации по быстродействию для кристалла, указанного в поле выбора параметра Device.
Для подтверждения выбранных значений всех перечисленных выше параметров в диалоговой панели Select Part следует нажать клавишу OK. После этого в поле редактирования Part стартовой диалоговой панели Setup (рис. 4) автоматически отображаются сведения о выбранном кристалле для реализации разрабатываемого устройства ЦОС, в составе которого предполагается применить формируемый элемент. При нажатии клавиши OK в этой панели на экран выводится вторая диалоговая панель «мастера» Architecture Wizard с заголовком Selection, вид которой представлен на рис. 6.
В данной диалоговой панели нужно открыть раздел XtremeDSP Slice Wizard и выбрать конкретный тип генерируемого элемента. Средства Architecture Wizard предоставляют возможность генерации следующих компонентов устройств ЦОС:
• аккумуляторов (Accumulator);
• сумматоров/вычитающих устройств (Adder/ Subtractor);
• умножителей (Multiplier);
• элементов, выполняющих операции умножения с накоплением (Multiplier and Adder/ Accumulator).
После выбора одного из представленных вариантов автоматически стартует «мастер» настройки параметров соответствующего элемента.
Применение «мастера» Architecture Wizard при разработке проектов в среде управляющей оболочки САПР серии Xilinx ISE
Для активизации «мастера» Architecture Wizard непосредственно в рамках проекта разрабатываемого устройства ЦОС, созданного или открытого в САПР серии Xilinx ISE, нужно инициировать процедуру формирования нового модуля исходного описания проекта, используя команду New Source из раздела Project основного меню Навигатора проекта (Project Navigator) или кнопку □ на оперативной панели управления. После этого на экран выводится диалоговая панель с заголовком Select Source Type, предназначенная для выбора типа нового исходного модуля проекта, вид которой приведен на рис. 7.
В этой диалоговой панели при определении типа создаваемого модуля исходного описания нужно установить режим генерации компонентов устройств ЦОС с помощью «мастера» Architecture Wizard, для чего следует в предложенном списке (рис. 7) выделить строку IP (CORE Generator & Architecture Wizard), щелкнув на ней левой кнопкой мыши. Затем в поле редактирования File Name необходимо с помощью клавиатуры указать название формируемого элемента. Расширение имени создаваемого файла устанавливается автоматически в соответствии с выбранным типом исходного модуля. Место расположения создаваемых файлов описания на диске определяется в поле редактирования Location диалоговой панели Select Source Type (рис. 7). По умолчанию для записи генерируемых файлов предлагается рабочий каталог текущего открытого проекта САПР серии Xilinx ISE. Для компонентов устройств ЦОС, предназначенных для применения в составе данного проекта, нужно использовать именно этот каталог. Чтобы создаваемый модуль
1' Xilinx AichMaclut* Wi/aid • Selection m
I 5»eci *« «td
-< Clo
b ОтмиМ^ЬаНМдп
Ooubtecfcct **диепс» ЮСМ|
ОупшпслЛ/ twtfcti Ье*»мп r*U dock Kxtti fPLLJ r»« dot*, «м fill
Mw +* on PCM шрл ctx* 1ЧД. to 0CM| f #*> on фф DO* oJvJ dbc* ЮО* to PUI F0M«d dotki on bowl IDCMI PhtwiMi obeli |DCM|
*ne*on<M*|P04|
H4MV* dee» гммеп drt* and teat*] doe* i en to«d |DCM| is Oeotvmurt by совратят*
OCMtoPll
OCM>DV
ULtoOCM
PUADV
и к, i | \
MWMtxki м Mu
I r II B—1 1
Рис. 6. Вид диалоговой панели
выбора типа элемента ЦОС,
реализуемого на базе аппаратного модуля DSP48E
Рис. 7. Вид диалоговой панели Select Source Type, предназначенной для выбора типа нового исходного модуля проекта в САПР серии Xilinx ISE
Рис. S. Вид диалоговой панели Select IP, открывающей доступ ко всем категориям параметризированных модулей, формируемых с помощью «мастера» Architecture Wizard и генератора параметризированных модулей Core Generator
Рис. 9. Вид информационной панели Summary,
содержащей сведения об основных параметрах создаваемого модуля исходного описания проекта
исходного описания автоматически включался в состав данного проекта, необходимо установить индикатор Add to project в состояние «Включено».
Переход к следующему шагу активизации «мастера» Architecture Wizard осуществляется нажатием клавиши Далее (Next), которая находится в нижней части диалоговой панели Select Source Type (рис. 7). После этого на экран выводится диалоговая панель с заголовком Select IP, предназначенная для выбора типа IP-ядра, в которой в форме папок отображаются все категории (функциональные группы) элементов, формируемых с помо-
щью «мастера» Architecture Wizard и генератора параметризированных модулей Core Generator. Вид этой диалоговой панели показан на рис. 8.
В данной панели следует открыть папку с названием FPGA Features and Design, поместив курсор на пиктограмму в виде знака +, расположенную слева от изображения данной папки, и щелкнув левой кнопкой мыши. Затем аналогичным образом нужно открыть папку XtremeDSP Slice, соответствующую подгруппе параметризированных модулей, поддерживаемых «мастером» Architecture Wizard. В появившемся списке отображаются назва-
ния тех же базовых элементов устройств ЦОС, что и в диалоговой панели с заголовком Selection (рис. 6), рассмотренной в предыдущем разделе. В этом списке необходимо выделить строку, содержащую идентификатор параметризированного модуля, используемого для генерации требуемого элемента, после чего нажать кнопку Далее (Next), которая находится в нижней части диалоговой панели Select IP (рис. 8). В результате этого появляется информационная панель с заголовком Summary, вид которой представлен на рис. 9.
В этой панели отображаются сведения о типе создаваемого модуля исходного описания проекта и название раздела, в который помещаются генерируемые файлы. При необходимости можно изменить название или тип формируемого элемента ЦОС, а также место его размещения на диске, воспользовавшись кнопкой Назад (Back), расположенной в нижней части информационной панели Summary, и вернувшись к предыдущей диалоговой панели. Для перехода непосредственно к фазе определения параметров создаваемого элемента следует нажать кнопку Готово (Finish) в нижней части информационной панели Summary (рис. 9). После этого автоматически запускается «мастер» настройки конфигурации выбранного параметризиро-ванного модуля.
При успешном завершении процесса генерации HDL-описания разрабатываемого элемента устройства ЦОС в окне исходных модулей Навигатора проекта (Project Navigator) САПР серии Xilinx ISE появляется строка с пиктограммой 0 и названием сформированного модуля (рис. 10).
Компоненты ЦОС, сформированные с помощью «мастера» Architecture Wizard в соста-
Sources hr IrnpWwwnUbon_____________________________________v
Ш £]PR1
5 Q *c5vtc3&3H324
«< Jamufelffiuftxew)
Soueet ^ Ffei fy Snapshot: Ltxanei
Pioceitet for. PR1
□ AddExsUngSouce
□ С/Є4ІЄ New Source
S У DraonUate
‘£ Pioc*m*x
Рис. 10. Вид рабочей области Навигатора проекта (Project Navigator) САПР серии Xilinx ISE после завершения процесса генерации HDL описания разрабатываемого элемента устройства ЦОС
ве проекта САПР серии Xilinx ISE, как и элементы ЦОС, добавленные из других проектов, могут быть модифицированы и повторно сгенерированы непосредственно под управлением Навигатора проекта (Project Navigator). Повторная генерация может потребоваться, в частности, при смене типа кристалла, предназначенного для реализации проектируемого устройства ЦОС. Для выполнения указанных операций следует поместить курсор на строку с названием сгенерированного элемента, представленную в окне исходных модулей Навигатора проекта (Project Navigator), и дважды щелкнуть левой кнопкой мыши. После этого автоматически запускает-
ся «мастер» настройки генерируемого элемента, в диалоговых панелях которого отображаются установленные ранее значения параметров. ■
Продолжение следует
Литература
1. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы ХШпх / Справочное пособие. М.: Горячая линия — Телеком, 2004.
2. Зотов В. Инструментальный модуль компании Аупе1 для отладки проектов встраиваемых сис-
тем, разрабатываемых на базе нового семейства ПЛИС FPGA фирмы Xilinx Virtex-5 FXT II Компоненты и технологии. 2008. № 9.
3. Зотов В. Ю. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPack ISE. М.: Горячая линия — Телеком, 2003.
4. Зотов В. Ю. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx. М.: Горячая линия — Телеком, 2006.
5. Virtex-5 Family Overview. Xilinx, 2008.
6. Virtex-S FXT Family: Data Sheet. Xilinx, 2008.
7. Virtex-S FPGA User Guide. Xilinx, 2008.
8. Virtex-S FPGA XtremeDSP Design Considerations. Xilinx, 2008.