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

№ 5’2010
PDF версия
Продолжаем ознакомление с образцами использования библиотечных макросов, представленных в папке Device Macro Instantiation, которые предназначены для описания элементов разрабатываемых устройств, реализуемых на базе специализированных аппаратных блоков кристаллов программируемой логики с архитектурой FPGA [1]. В этой, четвертой части статьи приводится информация о шаблонах описания компонентов, применяемых в процессе проектирования устройств на базе ПЛИС семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT [10].

Все статьи цикла:

Шаблоны описаний экземпляров компонентов, выполненных в форме библиотечных макросов

Образцы описаний экземпляров компонентов, выполненных в форме библиотечных макросов, предназначенных для реализации на базе специализированных аппарат-ных ресурсов кристаллов программируемой логики семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT, находятся в разделе Virtex-5 папки Device Macro Instantiation.

Подробная структура этого раздела представлена на рис. 16.

Структура раздела Virtex-5 папки Device Macro Instantiation шаблонов языка VHDL

Рис. 16. Структура раздела Virtex-5 папки Device Macro Instantiation шаблонов языка VHDL

В состав раздела Virtex-5 входят те же подразделы, что и в каталог Spartan-6 (Рис. 12. КиТ. 2010. № 3). Подраздел DSP48 включает в себя шаблоны описаний экземпляров элементов, которые предназначены для реализации на базе аппаратных секций цифровой обработки сигналов DSP48E кристаллов программируемой логики серии Virtex-5. В подразделе RAM находятся образцы конструкций, предназначенных для описания элементов однопоровых и двухпортовых оперативных запоминающих устройств (ОЗУ) с различной организацией выборки данных, выполняемых на основе блочной памяти Block RAM кристаллов программируемой логики семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT. При практическом применении всех шаблонов, представленных в разделе Virtex-5, необходимо вырезать выражения ссылок на используемые библиотеки UNISIM, UNIMACRO и их пакеты vcomponents, приведенные перед оператором создания экземпляра компонента на основе соответствующего макроса, после чего поместить их в начало формируемого модуля VHDL-описания.

Add/Subtract (ADDSUB_MACRO) представляет собой шаблон варианта использования библиотечного макроса ADDSUB_MACRO для описания комбинированного устройства, выполняющего операции сложения и вычитания, которое реализуется на базе аппаратных секций цифровой обработки сигналов DSP48E в ПЛИС семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT:

— ADDSUB_MACRO : In order to incorporate this function into the design,

— VHDL : the following instance declaration needs to be placed
— instance : in the architecture body of the design code. The
— declaration : (ADDSUB_MACRO_inst) and/or the port declarations

— code : after the «=>» assignment 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 aH Xilinx
— primitives : primitives and points to the models that will be used
— : for simulation.
— Copy the following four statements and paste them before the
— Entity declaration, unless they already exist.

Library UNISIM;

use UNISIM.vcomponents.all;

Library UNIMACRO;

use UNIMACRO.vcomponents.an;
— <——Cut code below this line and paste into the architecture

body
—- >

— ADDSUB_MACRO: Variable width & latency — Adder / Subtrator implemented in a DSP48E
— Virtex-5
— Xilinx HDL Language Template, version 11.4

ADDSUB_MACRO_inst : ADDSUB_MACRO generic map (

DEVICE => «VIRTEX5»,
— Target Device: «VIRTEX5», «VIRTEX6», «SPARTAN6»

LATENCY => 2,
— Desired clock cycle latency, 0-2 WIDTH => 48)
— Input / Output bus width, 1-48 port map (

CARRYOUT => CARRYOUT,
— 1-bit carry-out output

signal

RESULT => RESULT,
— Add/sub result output, width defined by WIDTH generic

A => A,
— Input A bus, width defined by WIDTH generic ADD_SUB => ADD_SUB,
— 1-bit add/sub input, high selects add, low selects subtract

B => B,
— Input B bus, width defined by WIDTH generic

CARRYIN => CARRYIN,
— 1-bit carry-in input

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

CLK =>CLK,
— 1-bit clock input

RST => RST
— 1-bit active high synchronous reset

);

— End of ADDSUB_MACRO_inst instantiation

В представленном шаблоне используются те же настраиваемые параметры и та же система условных обозначений интерфейсных портов, что и в варианте применения макроса ADDSUB_MACRO для формирования сумматоров/вычитающих устройств, выпол-няемых на основе аппаратных секций цифровой обработки сигналов DSP48A1 в ПЛИС семейств Spartan-6 LX и Spartan-6 LXT [12], который был рассмотрен в предыдущей части статьи (КиТ. 2010. № 3). Условный графический образ элемента, создаваемого с помощью шаблона Add/Subtract (ADDSUB_ MACRO), изображен на рис. 17.

Условный графический образ сумматора/вычитающего устройства, создаваемого с помощью шаблона Add/Subtract (ADDSUB_MACRO)

Рис. 17. Условный графический образ сумматора/вычитающего устройства, создаваемого с помощью шаблона Add/Subtract (ADDSUB_MACRO)

Counter w/Terminal Count (COUNTER_TC_ MACRO) включает в себя шаблон описания экземпляра счетчика с заданной разрядностью и модулем счета, предназначенного для реализации на базе ресурсов аппаратной секции цифровой обработки сигналов DSP48E кристаллов программируемой логики серии Virtex-5. Основу этого шаблона образует библиотечный макрос COUNTER_TC_ MACRO, который предоставляет возможность формирования счетчиков с различным направлением счета, конечным значением и разрядностью:

—COUNTER_TC_MACRO : In order to incorporate this function into the design,
— VHDL : the following instance declaration needs to be placed
— instance : in the architecture body of the design code. The
— declaration : (COUNTER_TC_MACRO_inst) and/or the port declarations
— code : after the «=>» assignment maybe changed to properly
— : reference and connect this function to the design.
— : АЦ 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 aH Xilinx
— primitives : primitives and points to the models that will be used
— : for simulation.
— Copy the following four statements and paste them before the
— Entity declaration, unless they already exist.

Library UNISIM;

use UNISIM.vcomponents.aH;

Library UNIMACRO;

use UNIMACRO.vcomponents.aH;
— <——Cut code below this line and paste into the architecture

body
—- >
— COUNTER_TC_MACRO: Counter with terminal count implemented in a DSP48E
— Virtex-5
— Xilinx HDL Language Template, version 11.4

COUNTER_TC_MACRO_inst : COUNTER_TC_MACRO generic map (

COUNT_BY => X»000000000001″,
— Count by value DEVICE => «VIRTEX5»,
— Target Device: «VIRTEX5», «VIRTEX6»

DIRECTION => «UP»
— Counter direction «UP» or «DOWN» RESET_UPON_TC => FALSE,
— Reset counter upon terminal count, TRUE or FALSE

TC_VALUE => X»000000000000″,
— Terminal count value WIDTH_DATA => 48)
— Counter output bus width, 1-48 port map (

Q => Q,
— Counter ouput, width determined by WIDTH_ DATA generic

TC => TC,
— 1-bit terminal count output, high = terminal count is reached

CLK => CLK,
— 1-bit clock input CE => CE,
— 1-bit clock enable input RST=> RST;
— 1-bit active high synchronous reset );
— End of COUNTER_TC_MACRO_inst instantiation

Для выбора конфигурации создаваемого экземпляра счетчика в макросе COUNTER_ TC_MACRO предусмотрено шесть настраиваемых параметров:

  • COUNT_BY — определяет шаг счета (значение, установленное по умолчанию для этого параметра, равно единице).
  • DEVICE — указывает серию кристаллов программируемой логики, на базе которой должен быть реализован формируемый счетчик (по умолчанию используется значение «VIRTEX5»).
  • DIRECTION — определяет направление (возрастающее или убывающее) счета (по умолчанию создается инкрементный счетчик).
  • RESET_UPON_TC — позволяет выбрать режим сброса при окончании счета.
  • TC_VALUE — определяет максимальное или минимальное значение, при достижении которого завершается счет.
  • WIDTH_DATA — определяет разрядность выходной шины формируемого счетчика (по умолчанию предлагается максимально возможное количество двоичных разрядов, равное 48).

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

  • Q [(WIDTH_DATA-1):0] — выходы соответствующих разрядов счетчика, объединенные в шину, количество разрядов в которой определяется значением параметра WIDTH_DATA.
  • TC — выход сигнала завершения счета.
  • CLK — вход тактового сигнала (вход счета).
  • CE — вход разрешения счета.
  • RST — вход сигнала синхронного сброса. Условный графический образ счетчика, формируемого с помощью макроса COUNTER_TC_MACRO, показан на рис. 18.

Условный графический образ счетчика

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

После включения текста шаблона Counter w/Terminal Count (COUNTER_TC_MACRO) в состав создаваемого модуля VHDL-описания нужно заменить COUNTER_TC_MACRO_ inst идентификатором соответствующего экземпляра счетчика. Затем необходимо указать требуемую разрядность счетчика с помощью настраиваемого параметра WIDTH_ DATA. Макрос COUNTER_TC_MACRO позволяет формировать описания счетчиков, разрядность которых можно выбирать в диапазоне от 1 до 48 разрядов. Далее следует, используя параметр настройки DIRECTION, установить направление счета: возрастающее или убывающее. При использовании значения «UP», предлагаемого по умолчанию для параметра DIRECTION, формируемый элемент будет осуществлять счет в сторону увеличения содержимого. Для создания экземпляра счетчика, выполняющего счет в направлении уменьшения содержимого, нужно указать значение «DOWN». Модуль счета выбирается с помощью параметра настройки TC_VALUE. Значение данного параметра определяет состояние счетчика, при достижении которого завершается счет и формируется активный уровень сигнала на выходе TC. При необходимости можно изменить значение, на которое меняется содержимое счетчика за один такт, используя параметр COUNT_BY. Процесс подготовки описания конкретного экземпляра счетчика с помощью шаблона Counter w/Terminal Count (COUNTER_TC_MACRO) завершается вводом идентификаторов сигналов, подключаемых к соответствующим входным и выходным портам этого компонента.

Equiality Comparator (EQ_COMPARE_ MACRO) содержит образец использования библиотечного макроса EQ_COMPARE_ MACRO, который предназначен для подготовки описаний цифровых компараторов, реализуемых на основе ресурсов аппаратных секций цифровой обработки сигналов DSP48 E в ПЛИС семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT. Указанный макрос позволяет создавать описания элементов, выполняющих операцию сравнения данных, поступающих на основную входную шину, с фиксированным значением, которое задается с помощью соответствующего параметра настройки, или динамически изменяемым кодом, представленным на дополнительной входной шине. Если в результате выполнения этой операции обнаруживается полное совпадение сопоставляемых кодов, то на выходе компаратора формируется активный уровень сигнала, информирующий об эквивалентности входных данных и контрольного значения. Макрос EQ_COMPASE_ MACRO также предоставляет возможность формирования описаний цифровых компараторов, которые могут осуществлять операцию сравнения входных данных с заданным значением с применением маски. В этом случае активный уровень выходного сигнала появляется при совпадении немаскируемых разрядов поступающих данных с соответствующими разрядами контрольного кода:

—EQ_COMPARE_MACRO : In order to incorporate this function into the design,

— VHDL : the following instance declaration needs to be placed

— instance : in the architecture body of the design code. The
— declaration : (EQ_COMPARE_MACRO_inst) and/or the port declarations

— code : after the «=>» assignment maybe changed to properly
— : reference and connect this function to the design.
— : AH 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 aH Xilinx
— primitives : primitives and points to the models that will be used
— : for simulation.

— Copy the following four statements and paste them before the
— Entity declaration, unless they already exist.

Library UNISIM;

use UNISIM.vcomponents.all;

Library UNIMACRO;

use UNIMACRO.vcomponents.all;

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

body—
— >

— EQ_COMPARE_MACRO: Equiality Comparator implemented in a DSP48E
— Virtex-5

— Xilinx HDL Language Template, version 11.4

EQ_COMPARE_MACRO_inst : EQ_COMPARE_MACRO generic map (

DEVICE => «VIRTEX5»,
— Target Device: «VIRTEX5», «VIRTEX6»

LATENCY => 2,
— Desired clock cycle latency, 0-2 MASK => X»000000000000″,
— Select bits to be masked,

must set

— SEL_MASK = «MASK» SEL_MASK => «MASK»,
— «MASK» = use MASK generic,
— «DYNAMIC_PATTERN = use DYNAMIC_PATTERN

input bus

SEL_PATTERN => «DYNAMIC_PATTERN»,
— «DYNAMIC_PATTERN» = use DYNAMIC_PATTERN input bus

— «STATIC_PATTERN» = use STATIC_PATTERN

generic

STATIC_PATTERN => X»000000000000″,
— Specify static

pattern,

— must set SEL_PATTERN = «STATIC_PATTERN WIDTH => 48)
— Comparator output bus width, 1-48 port map (

Q => Q,
— 1-bit output indicating a match CE => CE,
— 1-bit active high input clock enable input CLK => CLK,
— 1-bit positive edge clock input DATA_IN => DATA_IN
— Input Data Bus, width determined by WIDTH generic

DYNAMIC_PATTERN => DYNAMIC_PATTERN,
— Input Dynamic Match/Mask Bus, width determined by WIDTH generic RST=> RST;
— 1-bit input active high reset );

— End of EQ_COMPARE_MACRO_inst instantiation

В макросе EQ_COMPARE_MACRO используются следующие настраиваемые параметры:

  • DEVICE — определяет серию ПЛИС, на базе которой реализуется данный элемент (в рассматриваемом шаблоне по умолчанию используется значение «VIRTEX5»).
  • LATENCY — указывает ожидаемое значение задержки, выраженное в количестве периодов тактового сигнала (по умолчанию установлено значение, равное 2).
  • MASK — определяет значение маски (маскируемые биты данных), применяемой при сравнении входных данных с заданным образцом (по умолчанию используется значение X»000000000000″).
  • SEL_MASK — разрешает или запрещает использование маски при выполнении операции сравнения входных данных с заданной величиной.
  • SEL_PATTERN — определяет тип создаваемого компаратора: фиксированный или динамический (по умолчанию предлагается значение «DYNAMIC_PATTERN», при котором создается компаратор динамического типа, выполняющий операцию сравнения данных, представленных на входных шинах).
  • STATIC_PATTERN — задает контрольное значение, с которым должны сравниваться входные данные, для компаратора фиксированного типа.
  • WIDTH — устанавливает значение разрядности входной шины данных, совокупность сигналов которой определяет анализируемое значение.

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

  • Q — выход сигнала совпадения входных данных и контрольного значения.
  • CE — вход сигнала разрешения синхронизации.
  • CLK — вход тактового сигнала.
  • DATA_IN [(WIDTH-1):0] — основная входная шина данных цифрового компаратора, совокупность сигналов которой определяет значение анализируемых данных.
  • DYNAMIC_PATTERN [(WIDTH-1):0] — дополнительная входная шина данных цифрового компаратора, совокупность сигналов которой определяет контрольное значение, с которым должны сравниваться входные данные.
  • RST — вход сигнала синхронного сброса. На рис. 19 представлен условный графический образ цифрового компаратора, создаваемого с помощью макроса EQ_COMPARE_ MACRO.

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

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

При формировании описания цифрового компаратора с помощью шаблона Equiality Comparator (EQ_COMPARE_MACRO) следует указать идентификатор конкретного экземпляра вместо EQ_COMPARE_MACRO_inst. Затем нужно установить требуемую разрядность входных шин компаратора, используя параметр настройки WIDTH. Архитектура аппаратных секций цифровой обработки сигналов DSP48 E, представленных в кристаллах серии Virtex-5, позволяет реализовать компараторы, определяющие эквивалентность входных значений, содержащих от 1 до 48 двоичных разрядов. Далее необходимо выбрать тип создаваемого цифрового компаратора, указав соответствующее значение для параметра настройки SEL_ PATTERN. Если требуется сформировать описание компаратора фиксированного типа, то параметру SEL_PATTERN нужно присвоить значение «STATIC_PATTERN». При этом с помощью параметра STATIC_PATTERN следует определить значение, с которым должны сравниваться входные данные компаратора. В том случае, когда создаваемый компаратор должен осуществлять операцию сравнения значений с использованием маски, необходимо указать маскируемые разряды, используя параметр MASK.

Loadable counter (COUNTER_LOAD_ MACRO) предоставляет вариант применения библиотечного макроса COUNTER_LOAD_ MACRO для подготовки описания экземпляра реверсивного счетчика с параллельной загрузкой данных, предназначенного для реализации на основе ресурсов аппаратной секции цифровой обработки сигналов DSP48E кристаллов программируемой логики семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT:

—COUNTER_LOAD_MACRO : In order to incorporate this function into the design,

— VHDL : the following instance declaration needs to be placed
— instance : in the architecture body of the design code. The
— declaration : (COUNTER_LOAD_MACRO_inst) and/or the port declarations

— code : after the «=>» assignment maybe changed to properly
— : reference and connect this function to the design.
— : AH 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 aH Xilinx
— primitives : primitives and points to the models that will be used

— : for simulation.

— Copy the following four statements and paste them before the
— Entity declaration, unless they already exist.

Library UNISIM;

use UNISIM.vcomponents.all;

Library UNIMACRO;

use UNIMACRO.vcomponents.all;

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

body—
— >

— COUNTER_LOAD_MACRO: Loadable variable counter implemented in a DSP48E
— Virtex-5

— Xilinx HDL Language Template, version 11.4

COUNTER_LOAD_MACRO_inst : COUNTER_LOAD_MACRO generic map (

COUNT_BY => X»000000000001″,
— Count by value DEVICE => «VIRTEX5»,
— Target Device: «VIRTEX5», «VIRTEX6», «SPARTAN6»

WIDTH_DATA => 48)
— Counter output bus width, 1-48 port map (

Q => Q,
— Counter ouput, width determined by WIDTH_ DATA generic

CLK => CLK,
— 1-bit clock input CE => CE,
— 1-bit clock enable input DIRECTION => DIRECTION,
— 1-bit up/down count direction input, high is count up

LOAD => LOAD,
— 1-bit active high load input LOAD_DATA => LOAD_DATA,
— Counter load data, width determined by WIDTH_DATA generic

RST => RST
— 1-bit active high synchronous reset

);

— End of COUNTER_LOAD_MACRO_inst instantiation

Система условных обозначений интерфейсных портов и параметров настройки макроса реверсивного счетчика с параллельной загрузкой данных была подробно рассмотрена при описании одноименного шаблона, расположенного в папке Spartan-6. Условный графический образ компонента, формируемого с помощью шаблона Loadable counter (COUNTER_LOAD_MACRO), приведен на рис. 20.

Условный графический образ реверсивного счетчика с параллельной загрузкой данных

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

Выбор требуемых значений параметров конкретного экземпляра счетчика и формирование законченного описания осуществляется таким же образом, как и в варианте применения макроса COUNTER_LOAD_ MACRO для создания реверсивных счетчиков с параллельной загрузкой, выполняемых на основе аппаратных секций цифровой обработки сигналов DSP48A1 в ПЛИС семейств Spartan-6 LX и Spartan-6 LXT.

Multiplier (MULT_MACRO) включает в себя образец варианта использования библиотечного макроса MULT_MACRO для формирования описаний аппаратных умножителей, реализуемых на базе секций цифровой обработки сигналов DSP48E в ПЛИС серии Virtex-5:

— MULT_MACRO : In order to incorporate this function into the design,

— VHDL : the following instance declaration needs to be placed
— instance : in the architecture body of the design code. The
— declaration : (MULT_MACRO_inst) and/or the port declarations
— code : after the «=>» assignment maybe changed to properly
— : reference and connect this function to the design.
— : AH 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 aH Xilinx
— primitives : primitives and points to the models that will be used
— : for simulation.

— Copy the following four statements and paste them before the
— Entity declaration, unless they already exist.

Library UNISIM;

use UNISIM.vcomponents.all;

Library UNIMACRO;

use UNIMACRO.vcomponents.all;

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

body—
— >

— MULT_MACRO: Multiply Function implemented in a DSP48E

— Virtex-5

— Xilinx HDL Language Template, version 11.4

MULT_MACRO_inst : MULT_MACRO generic map (

DEVICE => «VIRTEX5»,
— Target Device: «VIRTEX5», «VIRTEX6», «SPARTAN6»

LATENCY => 3,
— Desired clock cycle latency, 0-4 WIDTH_A => 18,
— Multiplier A-input bus width, 1-25 WIDTH_B => 18)
— Multiplier B-input bus width, 1-18 port map (

P => P,
— Multiplier ouput bus, width determined by WIDTH_P generic

A => A,
— Multiplier input A bus, width determined by WIDTH_A generic

B => B,
— Multiplier input B bus, width determined by WIDTH_B generic

CE => CE,
— 1-bit active high input clock enable CLK => CLK,
— 1-bit positive edge clock input RST => RST
— 1-bit input active high reset );

— End of MULT_MACRO_inst instantiation

В представленном шаблоне используется та же совокупность параметров настройки, что и в варианте применения макроса MULT_ MACRO для подготовки описаний аппаратных умножителей, выполняемых на основе соответствующих ресурсов секций цифровой обработки сигналов DSP48A1 в ПЛИС семейств Spartan-6 LX и Spartan-6 LXT. Но при этом следует обратить внимание на то, что отличия проявляются в диапазоне изменения настраиваемых параметров и значениях, установленных по умолчанию для этих параметров. В соответствии с архитектурными особенностями секций ЦОС DSP48 E, представленных в составе кристаллов программируемой логики семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT, разрядность входной шины данных A, совокупность сигналов которой определяет значение первого сомножителя, может составлять от 1 до 25 бит. Ожидаемое значение задержки, указываемое с помощью параметра LATENCY, можно выбирать в интервале от нуля до четырех периодов тактового сигнала. По умолчанию для этого параметра предлагается значение, равное трем периодам.

Система условных обозначений интерфейсных портов, используемая в шаблоне варианта описания аппаратного умножителя, выполняемого на базе ПЛИС серии Virtex-5, включает в себя те же идентификаторы входов и выходов, что и в варианте, предназначенном для реализации в кристаллах программируемой логики семейств Spartan-6 LX и Spartan-6 LXT. На рис. 21 изображен условный графический образ аппаратного умножителя, создаваемого с помощью макроса MULT_MACRO.

Условный графический образ аппаратного умножителя

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

Multiply Accumulate (MACC_MACRO) представляет собой образец варианта применения библиотечного макроса MACC_ MACRO для создания описания экземпляра элемента, осуществляющего операции умножения с накоплением, которое предназначено для реализации на основе соответствующих ресурсов аппаратной секции цифровой обработки сигналов DSP48E кристаллов программируемой логики семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT:

— MACC_MACRO : In order to incorporate this function into the design,
— VHDL : the following instance declaration needs to be placed
— instance : in the architecture body of the design code. The
— declaration : (MACC_MACRO_inst) and/or the port declarations
— code : after the «=>» assignment maybe changed to properly
— : reference and connect this function to the design.
— : ЛП 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 four statements and paste them before the
— Entity declaration, unless they already exist.

Library UNISIM;

use UNISIM.vcomponents.all;

Library UNIMACRO;

use UNIMACRO.vcomponents.all;

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

body —->

— MACC_MACRO: Multiple Accumulate Function implemented in a DSP48E
— Virtex-5

— Xilinx HDL Language Template, version 11.4

MACC_MACRO_inst : MACC_MACRO generic map (

DEVICE => «VIRTEX5»,
— Target Device: «VIRTEX5», «VIRTEX6», «SPARTAN6»

LATENCY => 3,
— Desired clock cycle latency, 1-4 WIDTH_A => 25,
— Multiplier A-input bus width, 1-25 WIDTH_B => 18,
— Multiplier B-input bus width, 1-18 WIDTH_P => 48)
— Accumulator output bus width, 1-48 port map (

P => P,
— MACC ouput bus, width determined by WIDTH_P

generic

A => A,
— MACC input A bus, width determined by WIDTH_A generic

ADDSUB => ADDSUB,
— 1-bit add/sub input, high selects add, low selects subtract

B => B,
— MACC input B bus, width determined by WIDTH_B generic

CARRYIN => CARRYIN,
— 1-bit carry-in input to accumulator

CE => CE,
— 1-bit active high input clock enable

CLK => CLK,
— 1-bit positive edge clock input

LOAD => LOAD,
— 1-bit active high input load accumulator

enable

LOAD_DATA => LOAD_DATA,
— Load accumulator input

data,

— width determined by WIDTH_P generic RST => RST
— 1-bit input active high reset );

— End of MACC_MACRO_inst instantiation

Для выбора требуемой конфигурации создаваемого экземпляра умножителя-накопителя в представленном шаблоне предусмотрены те же настраиваемые параметры, что и в варианте конструкции описания аналогичных компонентов, формируемых на основе макроса MACC_MACRO, предназначенных для реализации на базе аппаратных секций цифровой обработки сигналов DSP48A1 в ПЛИС серии Spartan-6. Информация о назначении этих параметров приведена в предыдущей части статьи. Но при этом для ряда параметров настройки в рассматриваемом шаблоне по умолчанию установлены иные значения. Параметру DEVICE присваивается значение «VIRTEX5». Для параметра WIDTH_A, определяющего разрядность входной шины данных A, совокупность сигналов которой определяет значение первого операнда, по умолчанию предлагается значение, равное 25. Это значение соответствует максимальной разрядности соответствующей шины данных аппаратных секций цифровой обработки сигналов DSP48E, представленных в составе архитектуры ПЛИС серии Virtex-5 [10, 18].

В систему условных обозначений интерфейсных портов элементов, выполняющих операции умножения с накоплением, реализуемых на базе кристаллов программируемой логики семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT, входят те же идентификаторы входов и выходов, что используются в аналогичных компонентах, предназначенных для реализации в ПЛИС серии Spartan-6. Условный графический образ умножителя-накопителя, создаваемого с помощью шаблона Multiply Accumulate (MACC_MACRO), представлен на рис. 22.

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

Рис. 22. Условный графический образ элемента, выполняющего операции умножения с накоплением

Dual Clock FIFO (FIFO_DUALCLOCK_ MACRO) содержит конструкцию, предназначенную для описания экземпляра запоминающего устройства, работающего по принципу «первым вошел — первым вышел» (first-in first-out, FIFO), с раздельными сигналами синхронизации портов записи и чтения данных, предназначенного для реализации на основе блочной памяти Block RAM ПЛИС серии Virtex-5. Элементы памяти FIFO находят широкое применение в составе различных цифровых систем. В частности, данные элементы памяти используются для организации передачи данных между устройствами, тактируемыми различными сигналами синхронизации, создания высокоскоростных буферных устройств, преобразования разрядности шин данных. Встроенные модули FIFO, конфигурируемые на базе блочной памяти Block RAM и специальной управляющей логики в кристаллах программируемой логики семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT, предоставляют возможность разработки элементов FIFO-памяти различной емкости с максимальной тактовой частотой, достигающей 500 МГц. Для описания элементов запоминающих устройств, работающих по принципу «первым вошел — первым вышел», с различными тактовыми сигналами записи и чтения данных в рассматриваемом шаблоне используется библиотечный макрос FIFO_DUALCLOCK_MACRO:

—FIFO_DUALCLOCK_MACRO : In order to incorporate this function into the design,

— VHDL : the following instance declaration needs to be placed
— instance : in the architecture body of the design code. The
— declaration : (FIFO_DUALCLOCK_MACRO_inst) and/or the port declarations

— code : after the «=>» assignment maybe changed to properly
— : reference and connect this function to the design.
— : AH 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 aH Xilinx
— primitives : primitives and points to the models that will be used
— : for simulation.

— Copy the following four statements and paste them before the
— Entity declaration, unless they already exist.

Library UNISIM;

use UNISIM.vcomponents.all;

Library UNIMACRO;

use UNIMACRO.vcomponents.all;

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

body—
— >

— FIFO_DUALCLOCK_MACRO: Dual-Clock First-In, First-Out (FIFO) RAM Buffer
— Virtex-5

— Xilinx HDL Language Template, version 11.4

FIFO_DUALCLOCK_MACRO_inst : FIFO_DUALCLOCK_ MACRO

generic map (

DEVICE => «VIRTEX5»,
— Target Device: «VIRTEX5», «VIRTEX6»

ALMOST_FULL_OFFSET => X»0080″,
— Sets almost full threshold

ALMOST_EMPTY_OFFSET => X»0080″,
— Sets the almost empty threshold

DATA_WIDTH => 0,
— Valid values are 1-72 (37-72 only valid when FIFO_SIZE=»36Kb»)

FIFO_SIZE => «18Kb»,
— Target BRAM, «18Kb» or

«36Kb»

FIRST_WORD_FALL_THROUGH => FALSE,
— Sets the FIFO FWFT to TRUE or FALSE

SIM_MODE => «SAFE»)
— Simulation «SAFE» vs «FAST»,
— see «Synthesis and Simulation Design Guide» for

details

port map (

ALMOSTEMPTY => ALMOSTEMPTY,
— Output almost empty

ALMOSTFULL => ALMOSTFULL,
— Output almost fuH DO => DO,
— Output data EMPTY => EMPTY,
— Output empty FULL => FULL,
— Output fuH RDCOUNT => RDCOUNT,
— Output read count RDERR => RDERR,
— Output read error WRCOUNT => WRCOUNT,
— Output write count WRERR => WRERR,
— Output write error DI => DI,
— Input data RDCLK => RDCLK,
— Input read clock RDEN => RDEN,
— Input read enable RST => RST,
— Input reset WRCLK => WRCLK,
— Input write clock WREN => WREN
— Input write enable );

— End of FIFO_DUALCLOCK_MACRO_inst instantiation

Представленный шаблон Dual Clock FIFO (FIFO_DUALCLOCK_MACRO) позволяет формировать описания элементов FIFO-памяти с раздельным тактированием операций записи и чтения информации с различным сочетанием информационной емкости и разрядности представления данных. В таблице 1 приведена информация о возможных вариантах конфигурации запоминающих устройств, функционирующих по принципу «первым вошел — первым вышел», которые могут создаваться на основе библиотечного макроса FIFO_DUALCLOCK_MACRO.

Таблица 1. Варианты конфигурации элементов FIFO-памяти

Разрядность входной и выходной шин данных DATA_WIDTH Информационная ёмкочть, кбит FIFO_SIZE Разрядность счётчика записи данных WRCOUNT Разрядность счётчика записи данных RDCOUNT
72-37 36 9 9
36-19 36 10 10
18 9 9
18-10 36 11 11
18 10 10
9-5 36 12 12
18 11 11
36 13 13
1 4 18 12 12

Структура элементов FIFO-памяти с раздельными сигналами синхронизации портов записи и чтения данных, формируемых с помощью макроса FIFO_DUALCLOCK_MACRO для последующей реализации на основе блочной памяти Block RAM ПЛИС серии Virtex-5, изображена на рис. 23.

Структура элементов FIFO-памяти с раздельными сигналами синхронизации портов записи и чтения данных

Рис. 23. Структура элементов FIFO-памяти с раздельными сигналами синхронизации портов записи и чтения данных

Шаблон Dual Clock FIFO (FIFO_ DUALCLOCK_MACRO) предоставляет возможность подготовки описаний элементов запоминающих устройств FIFO с функцией First-word fall-through (FWFT), позволяющей осуществлять сквозную передачу первого слова данных, записываемого в элемент памяти, в выходной порт (порт чтения данных) без выполнения операции чтения. На рис. 24 приведены временные диаграммы, поясняющие функционирование элементов FIFO-памяти, реализуемых на основе блочной памяти Block RAM ПЛИС серии Virtex-5, в режиме FWFT и в стандартном режиме.

Временные диаграммы, поясняющие функционирование элементов FIFO-памяти, реализуемых на основе блочной памяти Block RAM ПЛИС серии Virtex-5, в режиме FWFT и в стандартном режиме

Рис. 24. Временные диаграммы, поясняющие функционирование элементов FIFO-памяти, реализуемых на основе блочной памяти Block RAM ПЛИС серии Virtex-5, в режиме FWFT и в стандартном режиме

В макросе FIFO_DUALCLOCK_MACRO используется следующий набор настраиваемых параметров, которые предназначены для определения конфигурации формируемого элемента запоминающего устройства, функционирующего по принципу «первым вошел — первым вышел»:

  • DEVICE — указывает серию кристаллов программируемой логики, на базе которых реализуется данный элемент FIFO-памяти (в рассматриваемом шаблоне по умолчанию используется значение «VIRTEX5»).
  • ALMOST_FULL_OFFSET — определяет число слов данных, на которое отличаются условия формирования активного уровня сигнала на выходах EMPTY и ALMOSTEMPTY.
  • ALMOST_EMPTY_OFFSET — устанавливает количество слов данных, на которое должны отличаться условия формирования активного уровня сигнала на выходах FULL и ALMOSTFULL.
  • DATA_WIDTH — указывает разрядность входного и выходного портов (портов записи и чтения информации) создаваемого экземпляра FIFO-памяти.
  • FIFO_SIZE — определяет информационную емкость создаваемого экземпляра запоминающего устройства FIFO (по умолчанию формируется элемент FIFO-памяти объемом 18 кбит).
  • FIRST_WORD_FALL_THROUGH — управляет использованием в формируемом элементе режима FWFT (по умолчанию для этого параметра предлагается значение, запрещающее применение указанной функции).
  • SIM_MODE — устанавливает режим моделирования формируемого экземпляра запоминающего устройства FIFO (по умолчанию используется значение, соответствующее безопасному режиму моделирования).

Условный графический образ элемента FIFO-памяти с раздельным тактированием портов записи и чтения данных, описание которого создается на базе шаблона Dual Clock FIFO (FIFO_ DUALCLOCK_MACRO), показан на рис. 25.

Условный графический образ элемента FIFO-памяти с раздельным тактированием портов записи и чтения данных

Рис. 25. Условный графический образ элемента FIFO-памяти с раздельным тактированием портов записи и чтения данных

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

  • ALMOSTEMPTY — выход сигнала, информирующего о том, что не более заданного количества слов данных может быть еще считано из сформированного запоминающего устройства FIFO.
  • ALMOSTFULL — выход сигнала, предупреждающего о том, что в элемент FIFO-памяти может быть записано еще не более указанного количества слов данных.
  • DO — выходная шина данных с разрядностью, определяемой значением параметра DATA_WIDTH, на которую выводится информация, считываемая из запоминающего устройства FIFO.
  • EMPTY — выход сигнала, активный уровень которого предупреждает об опустошении запоминающего устройства (всех ячеек FIFO-памяти) и невозможности осуществления операции чтения новых данных.
  • FULL — выход сигнала, активный уровень которого предупреждает о заполнении всего объема запоминающего устройства FIFO (всех ячеек FIFO-памяти) и невозможности осуществления операции записи новых данных.
  • RDCOUNT — выходная шина, на которую выводится текущее значение счетчика количества считанных слов данных.
  • RDERR — выход сигнала, активный уровень которого информирует об ошибке при выполнении операции чтения слова данных из элемента FIFO-памяти.
  • WRCOUNT — выходная шина, на которой отображается текущее значение счетчика числа записанных слов данных.
  • WRERR — выход сигнала, информирующего об ошибке при выполнении операции записи слова данных в запоминающее устройство FIFO.
  • DI — входная шина с разрядностью, определяемой значением параметра DATA_ WIDTH, на которую поступают информационные данные, записываемые в запоминающее устройство FIFO.
  • RDCLK — вход сигнала синхронизации для порта чтения данных из элемента FIFO-памяти.
  • RDEN — вход сигнала, разрешающего выпол-нение операции чтения (извлечения) данных из запоминающего устройства FIFO.
  • RST — вход сигнала асинхронного сброса.
  • WRCLK — вход сигнала синхронизации для порта записи данных в элемент запоминающего устройства FIFO.
  • WREN — вход сигнала разрешения операции записи данных в элемент FIFO-памяти.

Для создания законченного описания экземпляра запоминающего устройства, работающего по принципу «первым вошел — первым вышел», на базе шаблона Dual Clock FIFO (FIFO_DUALCLOCK_MACRO) нужно заменить FIFO_DUALCLOCK_MACRO_inst идентификатором соответствующего элемента FIFO-памяти. Затем следует выбрать один из двух возможных вариантов информационной емкости — 18 или 36 кбит, назначив соответствующее значение параметра FIFO_SIZE. После этого необходимо указать разрядность представления данных (разрядность входной и выходной шин данных) в формируемом запоминающем устройстве, используя параметр DATA_WIDTH. Для элементов FIFO-памяти с информационной емкостью 18 кбит значение разрядности портов записи и чтения данных можно выбирать в диапазоне от 1 до 36 бит. В запоминающих устройствах с объемом 36 кбит параметр DATA_WIDTH может принимать значение от 1 до 72 разрядов. Далее, при необходимости, следует определить значения параметров ALMOST_FULL_OFFSET и ALMOST_EMPTY_OFFSET, которые устанавливают порог переключения сигналов ALMOSTFULL и ALMOSTEMPTY, информирующих о приближении опустошения или заполнения всего объема элемента FIFO-памяти, по отношению к условиям формирования активного уровня сигналов на выходах FULL и EMPTY соответственно. Если в создаваемом экземпляре запоминающего устройства, функционирующего по принципу «первым вошел — первым вышел», предполагается использование режима FWFT, то нужно присвоить параметру FIRST_WORD_FALL_ THROUGH значение TRUE. Процесс подготовки описания элемента FIFO-памяти с различными сигналами синхронизации портов записи и чтения данных на основе библиотечного макроса FIFO_DUALCLOCK_MACRO завершается указанием идентификаторов сигналов, подключаемых к соответствующим входам и выходам этого макроса.

Simple Dual Port RAM (BRAM_SDP_MACRO) включает в себя образец варианта использования библиотечного макроса BRAM_SDP_ MACRO для подготовки описания экземпляра двухпортового ОЗУ с фиксированной функцией портов записи и чтения данных, предназначенного для реализации на базе модулей блочной памяти Block RAM кристаллов программируемой логики семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT и Virtex-5 FXT:

—BRAM_SDP_MACRO : In order to incorporate this function into the design,

— VHDL : the following instance declaration needs to be placed
— instance : in the architecture body of the design code. The
— declaration : (BRAM_SDP_MACRO_inst) and/or the port declarations

— code : after the «=>» assignment maybe changed to properly
— : reference and connect this function to the design.
— : AH 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 aH Xilinx
— primitives : primitives and points to the models that will be used
— : for simulation.

— Copy the following four statements and paste them before the
— Entity declaration, unless they already exist.

Library UNISIM;

use UNISIM.vcomponents.all;

Library UNIMACRO;

use UNIMACRO.vcomponents.all;

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

body —
— >

— BRAM_SDP_MACRO: Simple Dual Port RAM
— Virtex-5

— Xilinx HDL Language Template, version 11.4

BRAM_SDP_MACRO_inst : BRAM_SDP_MACRO generic map (

BRAM_SIZE => «18Kb»,
— Target BRAM, «18Kb» or «36Kb» DEVICE => «VIRTEX5»
— Target device: «VIRTEX5», «VIRTEX6», «SPARTAN6»

WRITE_WIDTH => 0,
— Valid values are 1-72 (37-72 only valid when BRAM_SIZE=»36Kb»)

READ_WIDTH => 0,
— Valid values are 1-72 (37-72 only valid when BRAM_SIZE=»36Kb»)

DO_REG => 0,
— Optional output register (0 or 1) INIT_FILE => «NONE»,

SIM_COLLISION_CHECK => «ALL»,
— Collision check enable «ALL», «WARNING_ONLY»,

— «GENERATE_X_ONLY» or «NONE» SIM_MODE => «SAFE»,
— Simulation: «SAFE» vs «FAST»,
— see «Synthesis and Simulation Design Guide» for details SRVAL => X»000000000000000000″,
— Set/Reset value for port output

INIT => X»000000000000000000″,
— Initial values on output

port

— The following INIT_xx declarations specify the initial contents of the RAM

INIT_00 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_01 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_02 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_03 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_04 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_05 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_3E => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_3F => X»00000000000000000000000000000000000000000000 00000000000000000000″,

— The next set of INIT_xx are valid when configured as 36Kb

INIT_40 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_41 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_42 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_43 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_44 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_45 => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_7E => X»00000000000000000000000000000000000000000000 00000000000000000000″,

INIT_7F => X»00000000000000000000000000000000000000000000 00000000000000000000″,

— The next set of INITP_xx are for the parity bits

INITP_00 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_01 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_02 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_03 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_04 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_05 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_06 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_07 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

— The next set of INIT_xx are valid when configured as 36Kb

INITP_08 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_09 => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_0A => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_0B => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_0C => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_0D => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_0E => X»0000000000000000000000000000000000000000000 000000000000000000000″,

INITP_0F => X»0000000000000000000000000000000000000000000 000000000000000000000″)

port map (

DO => DO,
— Output read data port DI => DI,
— Input write data port RDADDR => RDADDR,
— Input read address RDCLK => RDCLK,
— Input read clock RDEN => RDEN,
— Input read port enable REGCE => REGCE,
— Input read output register enable RST => RST,
— Input reset WE => WE,
— Input write enable WRADDR => WRADDR,
— Input write address WRCLK => WRCLK,
— Input write clock WREN => WREN
— Input write port enable );

— End of BRAM_SDP_MACRO_inst instantiation

В приведенном шаблоне для определения конфигурации формируемого элемента двухпортового ОЗУ применяется та же совокупность параметров настройки, что и в конструкции, выполненной на базе макроса BRAM_SDP_MACRO, которая предназначена для реализации в ПЛИС семейств Spartan-6 LX и Spartan-6 LXT. Эту совокупность дополняют параметры INIT_40 — INIT_7F и INITP_08 — INITP_0F, которые предоставляют возможность инициализации содержимого соответствующих ячеек элементов оперативной памяти с информационной емкостью 36 кбит. Для таких элементов значения параметров WRITE_WIDTH и READ_ WIDTH, определяющих разрядность входного порта (порта записи) и выходного порта (порта чтения), можно выбирать в диапазоне от 1 до 72 бит. Информация о возможных вариантах конфигурации элементов двухпортовой оперативной памяти, формируемых на основе макроса BRAM_SDP_ MACRO, представлена в таблице 2.

Таблица 2. Варианты конфигурации элементов двухпортовой оперативной памяти

Разрядность входной и выходной шин данных Информационная ёмкость, кбит Разрядность шини адреса Разрядность сигнала побайтной записи
72-37 36 9 8
36-19 36 10 4
18 9
18-10 36 11 2
18 10
9-5 36 12 1
18 11
4-3 36 13 1
18 12 1
2 36 14 1
18 13
1 36 15 1
18 14

Условный графический образ элемента двухпортового ОЗУ с фиксированной функцией портов, создаваемых с помощью шаблона Simple Dual Port RAM (BRAM_SDP_ MACRO), изображен на рис. 26.

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

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

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

Литература

  1. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx. Справочное пособие. М.: Горячая линия — Телеком, 2004.
  2. Бибило П. Н. Основы языка VHDL. М.: Солон-Р, 2000.
  3. Бибило П. Н. Синтез логических схем с использованием языка VHDL. М.: Солон-Р, 2002.
  4. Уэйкерли Дж. Ф. Проектирование цифровых устройств. Том 1. М.: Постмаркет, 2002.
  5. Поляков А. К. Языки VHDL и Verilog в проектировании цифровой аппаратуры. М.: Солон-Пресс, 2003.
  6. Зотов В. Инструментальный комплект Spartan-3 Starter Kit для практического освоения методов проектирования встраиваемых микропроцессор-ных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2005. № 7.
  7. Зотов В. Новый ипструмептальпый комплект Spartan-3E Starter Kit для практического освоения методов проектирования встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2006. № 10.
  8. Зотов В. Новый ипструмептальпый комплект Spartan-3A Starter Kit для практического освоения методов проектирования и отладки цифровых устройств с аппаратной и программной реализацией операций, реализуемых па основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2007. № 9.
  9. Зотов В. Новый ипструмептальпый комплект от компании Avnet па основе ПЛИС FPGA семейства Spartan-3A фирмы Xilinx // Компоненты и технологии. 2008. № 8.
  10. Зотов В. Ипструмептальпый модуль компании Avnet для отладки проектов встраиваемых систем, разрабатываемых па базе нового семейства ПЛИС FPGA фирмы Xilinx Virtex-5 FXT // Компоненты и технологии. 2008. № 9.
  11. Зотов В. Особенности архитектуры нового по-колепия высокопроизводительных ПЛИС FPGA фирмы Xilinx серии Virtex-6 // Компопепты и технологии. 2009. № 8.
  12. Зотов В. Особенности архитектуры нового поколения ПЛИС FPGA фирмы Xilinx серии Spartan-6 // Компопепты и технологии. 2009. № 9.
  13. Зотов В. Новое семейство высокопроизводительных ПЛИС с архитектурой FPGA фирмы Xilinx Virtex-6 HXT // Компопепты и технологии. 2010. № 1.
  14. IEEE Standard VHDL Language Reference Manual — IEEE Std 1076-2002.
  15. Суворова Е. А., Шейпип Ю. Е. Проектирование цифровых систем па VHDL. СПб.: БХВ-Петер-бург, 2003.
  16. Сергиепко A. M. VHDL для проектирования вычислительных устройств. Киев: ЧП «Корнейчук», ООО «ТИД «ДС», 2003.
  17. Зотов В. Проектирование цифровых устройств, реализуемых па базе ПЛИС FPGA фирмы Xilinx, с использованием средств CORE Generator // Компопепты и технологии. 2006. № 12. 2007. № 1.
  18. Зотов В. Разработка компонентов устройств цифровой обработки сигналов, реализуемых на базе аппаратных модулей DSP48E в ПЛИС FPGA серии Virtex-5, с помощью «мастера» Architecture Wizard САПР серии Xilinx ISE // Компопепты и технологии. 2008. № 12. 2009. № 1, 4-7.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *