XPS Delta-Sigma ЦАП Печать
Добавил(а) microsin   

Преобразователь цифровых данных в аналоговый сигнал, ЦАП (digital to analog converter, DAC) находит широкое применение в генераторах сигналов и программируемых источниках напряжения. Для дельта-сигма ЦАП, пример которого приведен в этой статье (перевод [1]), для получения аналогового сигнала дополнительно требуется только простейший ФНЧ, состоящий из резистора и конденсатора. Описываемый ЦАП обладает следующими возможностями:

• Интерфейс PLB, основанный на спецификации PLB v4.6.
• Выбираемая полоса DAC.
• Выбираемый диапазон изменения сигнала на выходе.
• Программируемая генерация прерывания.
• Стек FIFO глубиной в 16 ячеек.

Примечание: расшифровку всех незнакомых терминов и аббревиатур см. во врезках и в [3].

ЦАП может быть реализован на микросхемах серий Spartan-3A/3A DSP, Spartan-3, Spartan-3E, Automotive Spartan 3/3E/3A/3A DSP, Spartan-6, Virtex®-4 /4Q/4QV, Virtex-5/5FX, Virtex-6/6CX, на языке VHDL в среде разработки ISE версии 11.4 или более новой [4].

Дельта-сигма ЦАП использует простую цифровую технику для преобразования цифрового числа в аналоговое напряжение. Следовательно, ЦАП не подвержен влиянию изменения температуры, и может быть реализован на программируемой логике. Дельта-сигма ЦАП в сущности это высокоскоростной однобитный ЦАП. С помощью цифровой обратной связи генерируется последовательность импульсов. Среднее значение (скважность) этих импульсов пропорциональна значению цифрового числа на входе ЦАП. Аналоговый сигнал получается путем пропускания последовательности импульсов через аналоговый ФНЧ. Глубокое обсуждение преобразования Delta-Sigma выходит за рамки этого документа, однако здесь приведено описание базовой архитектуры, реализации и проблемы выбора компромисса реализации.

[Архитектура Delta-Sigma]

На рис. 1 показана блок-диаграмма верхнего уровня типовой реализации Delta-Sigma DAC. Как показано на этой диаграмме, входы включают сброс и тактовые сигналы в дополнение к цифровой шине входных данных. Сигнал с выхода DACout поступает на внешний ФНЧ. VOUT на выходе ФНЧ может быть на уровне от 0V до VCCO, где VCCO это напряжение питания, которое подано на банк ввода/вывода FPGA (I/O bank), который управляет ФНЧ из резистора и конденсатора.

DS588 DAC module fig01

Рис. 1. Модуль DAC на микросхеме Xilinx FPGA.

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

Преобразователи Delta-Sigma DAC широко используются в приложениях аудио (звуковые карты, плееры). Они хорошо подходят для низкочастотных приложений, которые требуют относительно высокую точность. В качестве стандартной практики используется представление входных цифровых данных в форме целого числа без знака, когда нулевое значение числа соответствует минимальному уровню напряжения. Таким образом, аналоговое напряжение на выходе может быть только положительным. Число 0 на входе дает 0V на выходе. Все единицы входного числа дает выходное напряжение, близкое к VCCO. Для сигналов переменного тока (AC) постоянное смещение не составляет проблемы, поскольку может быть устранено включением последовательно с нагрузкой разделительного конденсатора. Рис. 2 показывает подробную блок-диаграмму XPS Delta-Sigma DAC. Ширина шины входных данных реализации может конфигурироваться. Для упрощения на блок-диаграмме обозначен DAC, имеющий 8-битный цифровой вход.

Xilinx Platform Studio (XPS) это ключевой компонент системы разработки ISE Embedded Edition Design Suite, помогающий разработчику аппаратуры построить, подключить и сконфигурировать системы на основе встроенного процессора - от простых машин состояний до полноценного 32-битного микропроцессора RISC.

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

XPS gui

Настоящий потенциал XPS раскрывается с его возможностью конфигурировать и интегрировать ядра plug and play IP из каталога Xilinx Embedded IP, где присутствуют пользовательские проекты и разработки сторонних поставщиков кода Verilog и VHDL.

Разработчики firmware и software получают выгоду от интеграции XPS с Xilinx SDK, так как это позволяет автоматически генерировать критическое ПО системы, такое как загрузчики (boot loaders), bare metal BSP и Linux BSPs. Эта возможность гарантирует портируемость OS и разработка приложений может начаться без задержки, связанной с разработкой firmware.

[Конфигурирование и настройка всех программируемых чипов SoC Zynq-7000]

Zynq™-7000 AP SoC предоставляет вершину функциональности программируемых чипов SoC с двухядерными микропроцессорами ARM Cortex A9 и набор периферийных устройств с такими интерфейсами, как Ethernet, I2C, SDIO, USB и CAN; все это можно реализовать вместе с программируемой логикой Xilinx. XPS ускоряет каждый аспект создания дизайна для микросхем логики Zynq с помощью простых в использовании мастеров, включая настройку домена тактирования, прерываний, каналов DMA, внешних соединений с аппаратными периферийными устройствами, а также настройку интерфейсных соединений для программных периферийных устройств в программируемой логике. Это означает, что разработчики могут немедленно начать работу со своим проектом без опаски, что будет создан несовместимый набор интерфейсов или соединений.

• Интерфейсы AXI:

   - 32-битные порты общего назначения AXI Master/Slave Ports
   - Высокоскоростные порты High-Speed 32/64-bit AXI Slave
   - Порт 64-bit AXI Accelerator Coherency
   - Контроллеры DMA общего назначения

• Системы, периферийные устройства, тактирование трассировки и отладки

   - Аппаратные периферийные интерфейсы Zynq-EPP
   - Quad SPI/SRAM/NOR/NAND Flash
   - Gigabit Ethernet
   - USB 2.0
   - Карты Flash Secure Digital
   - UART
   - I2C
   - SPI
   - CAN
   - GPIO

• Прерывания

• Подключения периферийных устройств к мультиплексированному вводу/выводу

[Настройка ядер Xilinx MicroBlaze]

Xilinx Microblaze™ обладают экстраординарной масштабируемостью и потенциалом настройки, позволяя реализовать устройства от 8-разрядного конечного автомата до сложных, SoC-подобных проектов RISC 32 бита. Инженеры с помощью XPS могут создавать тысячи различных дизайнов Microblaze, чтобы интегрировать проверенные внутренние процессорные IP, такие как конвейеры, системы управления тактированием, таймеры, контроллеры прерываний. Также доступны сложные IP периферийных устройств, такие как контроллеры памяти, USB, шины CAN, I2C, Ethernet, FPU и многое другое, доступное из каталога Xilinx Embedded IP. Когда этоа стандартная возможность конфигурирования процессора комбинируется с возможностью интеграции блоков RTL сторонних разработчиков и пользовательских IP, инженеры могут создавать по-настоящему уникальные рабработки, точно удовлетворяющие их требованиям.

[Добавление периферийных устройств Plug and Play]

XPS поддерживает легкую интеграцию пользовательских процессорных разработок и ядер IP из каталога Xilinx Embedded IP. Примеры таких ядер IP включают периферийные устройства и акселераторы, такие как мост AXI, GPIO, мост PLBV4.6, BRAM и внешние контроллеры памяти, интерфейсы SPI и QuadSPI, ADC, контроллер графики, контроллер тактов и таймеры, UART, I2C, контроллер прерываний и многое другое.

[Интеграция в XPS пользовательских периферийных устройств и устройств сторонних производителей]

Хотя многие виды систем могут быть созданы из периферийных устройств, доступных в каталоге Xilinx, часто необходимо создать и импортировать пользовательское периферийное устройство для получения нового функционала. Мастер Xilinx "Create and Import Peripheral" позволяет разработчикам аппаратуры создавть периферийные устройства AXI (версии 4) на Verilog или VHDL, или на обоих этих языках (в проекте из нескольких модулей на разных языках), и затем импортировать их в проекты XPS для подключения к любому интерфейсу AXI4-Lite, AXI4 (с разрешением пакетов, Burst-enabled) и AXI4-Stream. Этот мастер позволяет Вам также интергрировать свою PLB (версии 4.6) или периферийные устройства FSL в дизайн на основе PLB. При импорте в XPS Ваше пользовательское периферийное устройство управляется как любой стандартный модуль, доступный из каталога Xilinx Embedded IP.

[Подключение периферийных устройств с XPS]

XPS делает простым подключение каждой ножки IO или конечной точки внутренней программируемой логики к другой необходимой точке. Также упрощаются соединения с внешней аппаратурой платы PC через физический вывод корпуса, или подключение к другому устройству программируемой логики, так как XPS гарантирует правильную маршрутизацию сигнала с осблюдением совместимости по уровням логики. Для семейства устройств Zynq-7000 AP SoC также XPS управляет конфигурацией встроенного мультиплексора IO, который маршрутизирует обрабатывающие системные устройства на их подходящие ножки выхода.

[Генерация критического системного ПО с помощью XPS]

Пользовательские устройства, собранные на программируемой логике Xilinx FPGA или Zynq-7000 AP SoC, требуют пользовательского ПО низкого уровня (firmware), которое должно полностью управлять пользовательской аппаратурой начиная с загрузчика первого уровня, через инстанцирование устройства (загрузка потока бит), инициализацию, и наконец подготовку специфичного для устройства интерфейса (с помощью программного стека). Создание такого firmware очень сложная задача из-за жесткой зависимости между разработкой firmware и разработкой пользовательской аппаратуры. XPS позволяет избежать этой проблемы путем предоставления в общее пользование аппаратной, проектной и специфичной для дизайна информации в Xilinx SDK, который затем можно использовать для автоматического конфигурирования, сборки и развертывания критического, привязанного с дизайну firmware:

• First stage boot loaders (загрузчики первого уровня)
• Программное обеспечение защиты (boot loader, firmware)
• Управление потоком бит загрузки (Bitstream Management)

Для устройств, которые получены из каталога Xilinx Embedded IP, пакет SDK также автоматически генерирует bare-metal-драйверы и BSP - для подключения к коду без операционной системы или к коду RTOS, а также драйверы Linux и BSP. Таким способом XPS позволяет разработчикам надолго игнорировать необходимость разработки firmware и низкоуровневого кода BSP, что иначе потребовалось бы для разработки загрузчика операционной системы и приложения.

[Преимущества XPS]

Учет в разработке аппаратных возможностей устройств Xilinx:

• XPS импортирует предоставленный Xilinx файл аппаратной конфигурации, который дает возможность для XPS узнать об электрических, периферийных и программируемых параметрах для каждой микросхемы Xilinx.
• Эти знания об аппаратуре в комбинации инструментами мастера "Base System Builder and Processor", встроенными в XPS, гарантируют немедленное получение корректно сконфигурированного проекта для быстрого старта.
• XPS может гарантировать корректность дизайна по отношению к маршрутизации сигналов на внешние выводы, конфигурации напряжения IO, требований к размеру программируемой фабрики, и т. д.
• Осведомленность об аппаратуре также позволяет XPS (вместе с SDK) автоматически сгенерировать ключевое системное firmware, включая загрузчики первой ступени (first stage boot loaders), потоки бит (bit streams), bare-metal и Linux BSP.

Интеграция с каталогом Xilinx Embedded IP:

• Каталог Xilinx Embedded IP содержит десятки проверенных ядер IP с поддержкой plug and play.
• Разработчики могут просто интегрировать новый функционал, включая контроллеры диска, Ethernet, USB, шины CAN, генераторы тактов, карты SD/SDIO/MMC, интерфейс UART, GPIO, контроллеры памяти, Fifo, почтовые ящики, а также системы PLL, DSP, Block RAM, SPI, видеоконтроллер, контроллер прерываний, шины PCIe.

Графический мастер настройки конфигурации: XPS содержит мастер настройки платформы (Platform Configuration Wizard) и Base System Builder, что позволяет разработчикам быстро и просто конфигурировать среду XPS для конкретного выбора микросхемы логики и платы (Target Reference Design).

Гарантируется корректность соединений:

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

Интеграция с инструментарием разработки Xilinx: XPS работает совместно с другими инструментами Xilinx, чем обеспечивается совместное планирование проекта вместе со средой PlanAhead, автоматическая генерация программы вместе с SDK, симуляция с помощью iSim, отладка аппратуры и программы с помошью ChipScope Pro, генерация дизайна в среде ISE.

XPS Delta-Sigma DAC можно использовать в различных приложениях:

• Программируемый генератор напряжения: может быть сгенерировано изменяемое напряжение с уровнями между 0V и VCCO, с гранулярностью, определяемой шириной шины DACin. В этих приложениях напряжение обычно не должно изменяться быстро, так что постоянная времени RC может быть выбрана достаточно большой для минимизации шума.
• Генератор опорного напряжения VREF: это специальное применение программируемого генератора напряжения. Для некоторых стандартов приемников требуется выбор уровней ввода вывода SelectIO, для чего необходимо опорное напряжение для каждого банка приемников. Если для этого используется DAC, то VREF можно динамически менять для проверки рабочих границ во время системных тестов соединения. Подробнее см. application note XAPP133 (с использованием ресурса Virtex SelectI/O) для дополнительной информации про selectIO.
• Генератор произвольных сигналов: различные аналоговые сигналы, такие как синус, пила, треугольник, и т. д. можно создать передачей правильных значений на шину DACin в нужные моменты времени. Обычно эти значения заранее сохраняются в SRAM. Для этой цели идеальны специальные блоки памяти (Block SelectRAM+), доступные в некоторых микросхемах Xilinx. Подробнее про Block SelectRAM+ см. Xilinx application note XAPP130 (используются функции Virtex Block SelectRAM+).
• Генератор звука: Delta-Sigma DAC широко используются при воспроизведении звука, синтеза речи, и т. п. Поскольку аналоговый выходной сигнал меняется быстро, должна быть соответствующим образом выбрана постоянная времени RC фильтра, с учетом компромисса между шумом и частотным откликом (воспроизводимым спектром частот).
• Генератор цвета RGB: хотя Delta-Sigma DAC слишком медленные, чтобы напрямую генерировать сигналы Red-Green-Blue (красный-зеленый-синий) для растрового дисплея, они все-таки могут найти применение в некоторых системах генерации цвета, которым не нужно работать в реальном времени.
• Преобразование аналогового сигнала в цифровую форму (Analog to Digital Conversion, ADC): этот DAC может использоваться как генератор опорного напряжения в ADC. Полное обсуждение этого вопроса см. в XILINX application note XAPP155 (Analog to Digital Converter).

DS588 XPS Delta Sigma DAC internal diagram fig02

Рис. 2. Внутренняя блок-диаграмма XPS Delta-Sigma DAC.

Этот DAC может быть реализован в одном модуле Verilog (без согласования с PLB), как показано ниже. Ширина входной шины определяется константой MSBI.

'timescale 100 ps / 10 ps
'define MSBI 7    // Самый значащий бит входа DAC
 
// Код Verilog для Delta-Sigma DAC (ЦАП)
module dac(DACout, DACin, Clk, Reset);
output DACout;          // вывод среднего значения, поступающего на ФНЧ
reg DACout;             // для оптимальной производительности убедимся, что 
                        // в IOB здесь FF.
input ['MSBI:0] DACin;  // вход DAC (всего 2**MSBI значений)
input Clk;
input Reset;
 
reg ['MSBI+2:0] DeltaAdder;   // выход сумматора Delta
reg ['MSBI+2:0] SigmaAdder;   // выход сумматора Sigma
reg ['MSBI+2:0] SigmaLatch;   // выход защелки сумматора Sigma
reg ['MSBI+2:0] DeltaB;       // вход B сумматора Delta
 
always @(SigmaLatch) DeltaB = {SigmaLatch['MSBI+2], SigmaLatch['MSBI+2]} << ('MSBI+1);
always @(DACin or DeltaB) DeltaAdder = DACin + DeltaB;
always @(DeltaAdder or SigmaLatch) SigmaAdder = DeltaAdder + SigmaLatch;
 
always @(posedge Clk or posedge Reset)
begin
   if(Reset)
   begin
      SigmaLatch <= #1 1'bl << ('MSBI+1);
      DACout <= #1 1'b0;
   end
   else
   begin
      SigmaLatch <= #1 SigmaAdder;
      DACout <= #1 SigmaLatch['MSBI+2];
   end
end
endmodule

Тот же Delta-Sigma DAC (без сигнала Reset) на VHDL:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.NUMERIC_STD.ALL;
 
entity top is
    Port ( DACin : in  STD_LOGIC_VECTOR (7 downto 0);
           DAC_Clk : in  STD_LOGIC;
           --Reset : in  STD_LOGIC;
           DACout : out  STD_LOGIC);
end top;
 
architecture Behavioral of top is
 
signal DeltaB : STD_LOGIC_VECTOR (9 downto 0) := "0000000000";
signal SigmaA : STD_LOGIC_VECTOR (9 downto 0) := "0000000000";
signal SigmaB : STD_LOGIC_VECTOR (9 downto 0) := "0000000000";
signal SigmaLathD : STD_LOGIC_VECTOR (9 downto 0) := "0000000000";
signal SigmaLathQ : STD_LOGIC_VECTOR (9 downto 0) := "0000000000";
 
begin
   DeltaB(9) <= SigmaLathQ(9);
   DeltaB(8) <= SigmaLathQ(9);
   DeltaB(7 downto 0) <= "00000000";
   
   SigmaA <= DACin + DeltaB;
   SigmaB <= SigmaLathQ;
   SigmaLathD <= SigmaA + SigmaB;
   
   process (DAC_Clk) begin
   if DAC_Clk'event and DAC_Clk='1' then
      SigmaLathQ <= SigmaLathD;
      DACout <= SigmaLathQ(9);
   end if;
   end process;
end Behavioral;

Термин Delta-Sigma относится к арифметической разнице (дельта) и арифметической сумме (сигма) [2]. В этой реализации двоичные сумматоры используются для создания как разницы, так и суммы. Хотя входы двоичного сумматора Delta оперируют числами без знака (unsigned), выходы обоих сумматоров считаются числами со знаком (signed).

Сумматор Delta вычисляет разницу между входом DAC и текущим выходом DAC, представленным в виде двоичного числа. Поскольку выход DAC одноразрядный, то на нем может быть "все или ничего", т. е. либо все нули, либо все единицы. Как показано на рис. 2, разность получается сложением входа со значением, созданным связыванием двух копий самого старшего бита защелки Sigma Latch со всеми нулями.

Это также компенсирует тот факт, что вход ЦАП (шина DACin) беззнаковый (unsigned). Сумматор Sigma складывает предыдущие выходные значения, хранящиеся в Sigma Latch, с текущем выходом сумматора Delta.

В большинстве случаев сумматор Delta выбрасывается процессом оптимизации, когда осуществляется синтез кода языка HDL высокого уровня. Это происходит потому, что когда все входы A либо B находятся в 0, то они просто сливаются вместо сложения. Как будет отмечено далее, вход DAC может быть расширен на 1 бит, чтобы позволить передать полный аналоговый диапазон от 0V до VCCO. В этом случае сумматор Delta нужен.

Для реализации рис. 1 выходное напряжение (VOUT) как функция от входа DAC может быть выражено следующим образом:

VOUT = (DACin/(2C_NUM_DAC_BITS)) x VCCO

Например, для 8-битного DAC (C_NUM_DAC_BITS=8) самое малое напряжение VOUT составит 0V, когда на входе DACin присутствует значение 0x00. Самое большое значение VOUT равно 255/256*VCCO, когда на входе DACin значение 0xFF, т. е. напряжение будет несколько меньше максимально возможного VCCO.

Для некоторых приложений важно, чтобы изменение VOUT происходило в полном возможном диапазоне напряжений от 0V до VCCO (так называемый принцип передачи сигнала rail-to-rail). Это реализуется с использованием обычной константой C_FULL_RANGE, которая увеличивает ширину шины DACin на 1 бит, оставляя все остальные ширины шин такими же. Для 8-битного DAC со входным значением 256 будет VOUT=VCCO. Обратите внимание, что для C_NUM_DAC_BITS=8 все входные значения DAC со значениями больше 256 являются недопустимыми и не должны использоваться. Допустимый диапазон цифровых входов для имеющихся значений C_NUM_DAC_BITS и C_FULL_RANGE будут от 0x0 до 0x(2C_NUM_DAC_BITS - 1 + C_FULL_RANGE).

Обычно выгодно использовать высокую частоту тактирования. Желаемая частота тактов может быть выше чем та частота, которая может быть практически подана от внешних источников тактирования.

Демонстрация работы этого ЦАП в симуляторе iSim:

ФНЧ. Фильтр низкой частоты, показанный на рис. 1, состоит только из одного резистора и одного конденсатора, что вполне адекватно для большинства приложений. Для предоставления максимального выходного тока используется режим выходного буфера 24 mA LVTTL.

Для выбора значений резистора и конденсатора ФНЧ нужно принимать во внимание три главных обстоятельства:

• Выходной вытекающий и втекающий ток (Output Source and Sink Current): в отличие от обычных цифровых приложений, в нашем случае важно, что сигнал DACout всегда переключается в полном диапазоне напряжений от 0V до VCCO (rail-to-rail). Если значение R выбрать слишком малым, и выход DACout не сможет переключаться rail-to-rail, то аналоговый выход получится нелинейным; т. е. изменение абсолютного выходного напряжение, получающееся в результате инкремента ли декремента DACin, будет не постоянным. Самый худший случай для выходного сопротивления буфера 24 mA LVTTL, когда R выбран порядка 25 Ом. Сопротивление R должно быть 2.5 кОм или больше, чтобы гарантировать переключение rail-to-rail, с ошибкой 1% или меньше.
• Сопротивление нагрузки: сохраните сопротивление R достаточном малым относительно входного сопротивления нагрузки, подключенного к выходу ФНЧ, чтобы изменение тока через конденсатор из-за подключения нагрузки было незначительным.
• Постоянная времени: значение τ = RC должна быть достаточно большим, чтобы сгладить отдельные импульсы в выходной последовательности DACout. С другой стороны, слишком большая постоянная времени может также снизить уровень высокочастотных составляющих сигнала. Это потенциально конфликтующие между собой требования, которые должны быть проанализированы отдельно.

Фильтрация последовательности импульсов. В среднем диапазоне напряжений сигнал на выходе DACout будет переключаться часто, делая относительно простой фильтрацию импульсов. Когда на входе DAC присутствует 1, или самое большое возможное значение (для нашего примера 255), сигнал DACout будет иметь одинаковый уровень для всего цикла выборки, кроме одного периода CLK. Это самая сложная для фильтрации последовательность выходных импульсов, т. е. это самый худший случай сигнала для ФНЧ.

Хотя шум фильтра может быть вычислен в виде абсолютного пикового напряжения (peak-to-peak), полезнее выразить его как дробь от шагового напряжения. Шаговое напряжение (step voltage, VS) определяется как абсолютное изменение VOUT, когда вход DAC получает инкремент или декремент (изменяется на 1). Для 8-битного DAC значение VS равно (1/256) x VCCO.

Для самого плохого случая peak-to-peak шум фильтра для 8-битного DAC может быть выражен следующим образом:

PPNFS = (1-e-(1/fτ)) x ((1-e-(255/fτ))/(1-e-(256/fτ))) x 256

где:

PPNFS это пиковое значение шума фильтра (peak-to-peak filter noise) выраженный дробным значением от шагового напряжения.
f это тактовая частота DAC.
τ постоянная времени ФНЧ, RC.

Сравнение шумовых характеристик 6, 8 и 10 разрядных Delta-Sigma DAC. Для других значений ширины входной шины выражение шума для самого плохого случая будет таким:

PPNFS = (1-e-(1/fτ)) x ((1-e-(y/fτ))/(1-e-(z/fτ))) x z

где:

y = 2C_NUM_DAC_BITS - 1
z = 2C_NUM_DAC_BITS

Это выражение было использовано для создания графиков рис. 3, 4 и 5 (см. врезку). Эти графики могут использоваться для определения значения постоянной времени RC с учетом напряжения шума самого плохого случая и рабочей частоты. Например, для 8-битного DAC на тактовой частоте 80 МГц можно выбрать значение RC = 13.0x10-6, соответствующее пиковому напряжению шума около 0.25 VS. Это оставляет промежуток шума 0.75 VS между шагами. В выходном сигнале будут и другие источники шума, которые также следует учитывать, такие как шум на шине питания VCCO.

Все три графика ниже показывают шум пульсаций на выходе ФНЧ для самого худшего случая пульсаций, когда на входе ЦАП постоянное значение 1. График показывает значение шума от пика до пика (peak-to-peak) как дробной части от шага ЦАП VS.

DS588 P2P noise fig03

Рис. 3. PPNFS как функция от RC и рабочей частоты для 10-битного DAC.

DS588 P2P noise fig04

Рис. 4. PPNFS как функция от RC и рабочей частоты для 8-битного DAC.

DS588 P2P noise fig05

Рис. 5. PPNFS как функция от RC и рабочей частоты для 6-битного DAC.

Ослабление сигнала на выходе. По соглашению частота среза ФНЧ определена как уровень передачи половины мощности. Частота среза простого пассивного RC-фильтра может быть выражена так:

fC = 1/(2πτ)

где:

fC частота среза фильтра.
π константа pi.
τ постоянная времени фильтра, RC.

Эта формула использовалась для создания графика рис. 6.

DS588 filter cutoff freq fig06

Рис. 6. Частота среза ФНЧ как функция от RC.

Рис. 6 может может использоваться вместе с рис. 3, 4 или 5 для выбора постоянной времени RC, которая будет оптимальна для конкретного приложения. На всех рисунках показано один и тот же диапазон RC.

Рис. 4 показывает, что значение RC = 13.0 x 10-6 даст шум peak-to-peak 0.25V, когда частота DAC 8-битного DAC равна 80 МГц. По рис. 6 можно определить, что частота среза фильтра с такой постоянной RC получится около 12 кГц. Если нужно получить только постоянный уровень напряжения (DC), например для программируемого генератора напряжения, то RC можно увеличить для снижения шума тактирования. С другой стороны, если основная частота аналогового выхода высокая, или у неё есть острые перепады (что в сущности одно и то же), то может понадобится уменьшить постоянную времени RC. При определении реальных значений компонентов ФНЧ нужно помнить, что R не должен быть меньше 2500 Ом.

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

Чтобы получить полную точность для каждой выборки DACin в Delta-Sigma DAC, скорость выборок (sample rate), т. е. скорость изменений DACin, должна быть меньше или равна 1/(2C_NUM_DAC_BITS) тактовой частоты CLK. Для некоторых приложений, таких как программируемые источники напряжения, выполнить это условие не составляет никакой проблемы.

С ростом разрядности DAC и ростом требуемой частоты выборок может стать невозможным выполнить вышеуказанный критерий. На практике частота выборки иногда превышает 1/(2C_NUM_DAC_BITS) частоты CLK. Хотя это компромисс в точности для высоких частот спектра сигнала, часто возможно допустить такое для получения удовлетворительных результатов. Например, 16-битный DAC в системе CD должен потребовать частоты тактов 2.9 ГГц для полной точности на высоких частотах. Но на практике используются намного меньшие значения тактовой частоты. Одна из причин такого решения - снижается чувствительность человеческого уха к искажениям на высоких частотах.

[Модуль интерфейса PLB]

Модуль интерфейса PLB предоставляет двунаправленный интерфейс между Delta-Sigma DAC IP core и PLB. Базовый элемент модуля интерфейса PLB - подчиненное подключение, которое предоставляет базовый функционал работы управляемого устройства (PLB slave).

IP, IP core сокращение IP означает Intellectual Property. Под этим подразумеваются цифровые блоки, защищенные копирайтом какого-то производителя (часто стороннего по отношению к Xilinx). Это может быть реализованный на логике кристалла FPGA какой-либо сложный интерфейсный блок (например контроллер USB, контроллер CAN и т. п.), или какое-то процессорное ядро (даже стандартное, например MCS-51, 8086, PowerPC или ARM).

PLB Processor Local Bus, локальная процессорная шина.

Контроллер обработки прерываний (Interrupt Service Controller). Этот блок является развитием семейства продуктов LogiCORE Xilinx, совместимых с технологией IBM CoreConnect™. Он поддерживает захват прерывания для подключенного IP-блока. Interrrupt Service Controller предоставляет следующие функции:

• Параметризованное количество прерываний, необходимое для IP.
• Для пользовательского IP предоставляются функции регистра состояния прерывания (Interrupt Status Register, ISR) и регистра разрешения прерывания (Interrupt Enable Register, IER).

Ниже приведено краткое описание, как установить регистры DAC для инициирования цифро-аналогового преобразования.

1. Запишите данные, которые должны быть преобразованы, в стек Data FIFO.
2. Разрешите DAC записью 1 в регистр управления.
3. Переведите сигнал Read_en в лог. 1 для одного такта SPLB_Clk, и значение, записанное в Data FIFO, начнет преобразовываться.
4. Если нужно преобразовать новое значение, запишите его в Data FIFO.

Таблица 1. Сигналы ввода/вывода XPS Delta-Sigma DAC.

Порт Имя сигнала Интерфейс I/O Начальное
состояние
Описание
Системные сигналы
P1 IP2INTC_Irpt System O 0 Системное прерывание.
P2 SPLB_Clk PLB I - Такты PLB.
P3 SPLB_Rst PLB I - Сброс PLB.
Сигналы мастера интерфейса PLB
P4 PLB_ABus[0:C_SPLB_AWIDTH] PLB I - Шина адреса.
P5 PLB_PAValid PLB I - Индикатор допустимости первичного адреса.
P6 PLB_masterID[0:C_SPLB_MID_WIDTH-1] PLB I - Идентификатор текущего мастера.
P7 PLB_RNW PLB I - Сигнал "чтение, не запись" (read not write).
P8 PLB_BE[0:C_SPLB_DWIDTH/8-1] PLB I - Разрешение байта.
P9 PLB_size[0 : 3] PLB I - Размер перемещаемых данных.
P10 PLB_type[0 : 2] PLB I - Тип перемещения данных.
P11 PLB_wrDBus[0:C_SPLB_DWIDTH-1] PLB I - Шина записи данных.
Не используемые сигналы интерфейса мастера PLB
P12 PLB_UABus[0:31] PLB I - Старшие биты адреса.
P13 PLB_SAValid PLB I - Допустимость вторичного адреса.
P14 PLB_rdPrim PLB I - Индикатор запроса чтения вторичного к первичному.
P15 PLB_wrPrim PLB I - Индикатор запроса записи вторичного к первичному.
P16 PLB_abort PLB I - Прекращение запроса по шине.
P17 PLB_busLock PLB I - Блокировка шины.
P18 PLB_MSize[0:1] PLB I - Индикатор ширины данных шины.
P19 PLB_TAttribute[0:15] PLB I - Атрибут перемещения данных.
P20 PLB_lockerr PLB I - Ошибка блокировки.
P21 PLB_wrBurst PLB I - Пакетное перемещение записи.
P22 PLB_rdBurst PLB I - Пакетное перемещение чтения.
P23 PLB_wrPendReq PLB I - Запрос ожидания шины на запись.
P24 PLB_rdPendReq PLB I - Запрос ожидания шины на чтение.
P25 PLB_rdPendPri[0:1] PLB I - Приоритет ожидания запроса шины на чтение.
P26 PLB_wrPendPri[0:1] PLB I - Приоритет ожидания запроса шины на запись.
P27 PLB_reqPri[0:1] PLB I - Приоритет текущего запроса.
Сигналы подчиненного устройства интерфейса PLB
P28 Sl_addrAck PLB O 0 Запрос адреса.
P29 Sl_SSize[0:1] PLB O 0 Размер шины данных.
P30 Sl_wait PLB O 0 Индикатор ожидания подчиненного устройства.
P31 Sl_rearbitrate PLB O 0 Индикатор скорости бит шины.
P32 Sl_wrDack PLB O 0 Подтверждение записи данных.
P33 Sl_wrComp PLB O 0 Индикатор завершения перемещения записи.
P34 Sl_rdBus[0:C_SPLB_DWIDTH-1] PLB O 0 Шина данных чтения.
P35 Sl_rdDAck PLB O 0 Подтверждение чтения данных.
P36 Sl_rdComp PLB O 0 Индикатор завершения перемещения чтения.
P37 Sl_MBusy[0:C_SPLB_NUM_MASTERS-1] PLB O 0 Индикатор занятости подчиненного устройства.
P38 Sl_MWrErr[0:C_SPLB_NUM_MASTERS-1] PLB O 0 Индикатор ошибки записи.
P39 Sl_MRdErr[0:C_SPLB_NUM_MASTERS-1] PLB O 0 Индикатор ошибки чтения.
Не используемые сигналы интерфейса подчиненного устройства PLB
P40 Sl_wrBTerm PLB O 0 Прекращение пакетного перемещения записи.
P41 Sl_rdWdAddr[0:3] PLB O 0 Чтение слова адреса.
P42 Sl_rdBTerm PLB O 0 Прекращение пакетного перемещения чтения.
P43 Sl_MIRQ[0: C_SPLB_NUM_MASTERS-1] PLB O 0 Запрос прерывания мастер.
Сигналы ЦАП
P44 Dac_clk_en System I - Разрешение тактирования ЦАП. Это позволяет сигналу SPLB_Clk тактировать защелку Sigma и D-триггер.
P45 Read_en System I - Разрешение чтения. Когда этот вход в лог. 1, новое значение считывается из FIFO.
P46 Dac_Out System O 0 Выход ЦАП. Здесь генерируется последовательность импульсов, поступающая на ФНЧ.

Параметры дизайна Delta-Sigma DAC. Чтобы позволить пользователю создать XPS Delta-Sigma DAC, который будет уникально удовлетворять потребностям пользовательской системы, некоторые функции управляются параметрами в проекте XPS Delta-Sigma DAC. Это позволяет получить проект, который использует для системы только необходимые ресурсы микросхемы программируемой логики, и будет работать с максимально возможной производительностью. В таблице 2 перечислены функции, которые привязаны к параметрам в XPS Delta-Sigma DAC core.

Таблица 2. Параметры дизайна XPS Delta-Sigma DAC.

Generic Функция/Описание Имя параметра Допустимые
значения
По умолчанию Тип VHDL
Системные параметры
G1 Целевое семейство FPGA C_FAMILY spartan3
spartan3e
spartan3a
spartan3adsp
aspartan3
aspartan3e
aspartan3a
aspartan3adsp
spartan6
virtex4
qvirtex4
qvvirtex4
virtex5
virtex5fx
virtex6
virtex6cx
virtex5 string
Параметры PLB
G2 Старший адрес C_HIGHADDR Диапазон адреса должен быть 2n-1, и больше или равен 0x1FF(3). Нет(1,2) std_logic_vector
G3 Базовый адрес C_BASEADDR Допустимый диапазон для адреса(3). Нет(1,2) std_logic_vector
G4 Ширина шины данных C_SPLB_DWIDTH 32, 64, 128 32 integer
G5 Ширина шины адреса C_SPLB_AWIDTH 32 32 integer
G6 Топология точка-точка или общая C_SPLB_P2P 0, 1 0 integer
G7 Ширина шины идентификатора мастера PLB C_SPLB_MID_WIDTH log2(C_SPLB_NUM_MASTERS) с минимальным значением 1. 3 integer
G8 Количество мастеров PLB C_SPLB_NUM_MASTERS 1..16 8 integer
G9 Ширина шины данных подчиненного устройства C_SPLB_NATIVE_DWIDTH 32 32 integer
G10 Поддержка пакетных передач C_SPLB_SUPPORTS_BURST 0 0 integer
Дельта-сигма ЦАП
G11 Разрядность C_NUM_DAC_BITS 2..16 8 integer
G12 Разрешение работы выхода в полную шкалу C_FULL_RANGE 1 работа в полной шкале
0 выход получает значение меньше на единицу веса младшего разряда
0 integer

Примечания:

(1). Значение по умолчанию не назначено. Это гарантирует, что пользователь установит актуальное значение, в противном случае компилятор выдаст ошибку.
(2). Например, C_BASEADDR = 0xE0000000, C_HIGHADDR = 0xE00001FF.
(3). Диапазон адресов, заданный C_BASEADDR и C_HIGHADDR, должен быть как минимум 0X200, и должен быть равен результату степени числа 2.
(4). С C_FULL_RANGE, установленным в 0, выход DAC будет (2n - 1)/2n. Здесь n это количество битов DAC, равное C_NUM_DAC_BITS.

[Зависимости портов]

Зависимости между параметрами дизайна ядра XPS Delta-Sigma DAC и сигналами ввода/вывода (I/O) показаны в таблице 3. Дополнительно, когда определенные функции задействованы параметрами в дизайне, связанная с ними логика больше не будет частью дизайна. Не используемые входные сигналы и связанные с ними выходные сигналы установлены в указанное значение.

Таблица 3. Параметры зависимостей портов для XPS Delta-Sigma DAC.

Generic Имя параметра На что влияет От чего зависит Описание взаимосвязи
Параметры дизайна
G4 C_SPLB_DWIDTH P8, P11, P34 - Ширина шины данных PLB и шины данных подчиненного устройства PLB
G5 C_SPLB_AWIDTH P4 - Ширина шины адреса PLB
G7 C_SPLB_MID_WIDTH P6 G8 log2(C_SPLB_NUM_MASTERS) с минимальным значением 1
Сигналы I/O
P4 PLB_ABus[0:C_SPLB_AWIDTH-1] - G5 Ширина шины адреса PLB меняется в соответствии с C_SPLB_AWIDTH
P6 PLB_masterID[0:C_SPLB_MID_WIDTH-1] - G7 Ширина PLB_mastedID меняется в соответствии с C_SPLB_MID_WIDTH
P8 PLB_BE[0:(C_SPLB_DWIDTH/8)-1] - G4 Ширина разрешения байта меняется в соответствии с C_SPLB_DWIDTH
P11 PLB_wrDBus[0:C_SPLB_DWIDTH-1] - G4 Ширина шины записи данных PLB меняется в соответствии с C_SPLB_DWIDTH
P34 Sl_rdBus[0:C_SPLB_DWIDTH-1] - G4 Ширина шины чтения данных PLB меняется в соответствии с C_SPLB_DWIDTH
P37 Sl_MBusy[0:C_SPLB_NUM_MASTERS-1] - G8 Ширина Sl_MBusy меняется в соответствии с C_SPLB_NUM_MASTERS
P38 Sl_MWrErr[0:C_SPLB_NUM_MASTERS-1] - G8 Ширина Sl_MBusy меняется в соответствии с C_SPLB_NUM_MASTERS
P39 Sl_MRdErr[0:C_SPLB_NUM_MASTERS-1] - G8 Ширина Sl_MRdErr меняется в соответствии с C_SPLB_NUM_MASTERS

[Описание регистров]

Внутренние регистры XPS Delta-Sigma DAC находятся по адресам смещения относительно базового адреса C_BASEADDR. Набор внутренних регистров XPS Delta-Sigma DAC описан в таблице 4.

Таблица 4. Регистры XPS Delta-Sigma DAC.

Имя регистра Адрес Доступ
Device Global Interrupt Enable Register (GIE) C_BASEADDR + 0x01C чтение/запись
IP Interrupt Status Register (IPISR) C_BASEADDR + 0x020 чтение/запись
IP Interrupt Enable Register (IPIER) C_BASEADDR + 0x028 чтение/запись
Control Register (CR) C_BASEADDR + 0x100 чтение/запись
Data FIFO (FIFO) C_BASEADDR + 0x104 чтение/запись
Data FIFO Occupancy (OCCY) C_BASEADDR + 0x108 чтение
Data FIFO programmable depth interrupt (PIRQ) C_BASEADDR + 0x10C чтение/запись

Control Register (CR). Определения бит для этого регистра показаны в таблице 5. Когда бит разрешения (EN) установлен в 0, это предотвращает XPS Delta-Sigma DAC от генерации последовательности импульсов, на выходе Dac_out будет 0.

DS588 DAC Control Register fig07

Рис. 7. Биты регистра CR.

Таблица 5. Биты регистра CR.

Биты Имя Доступ ядра Значение после сброса Описание
0..29 - - - зарезервировано
30 FIFO_RST чтение/запись 0 Сброс FIFO. 1 сбрасывает данные FIFO, 0 нормальная работа FIFO.
31 EN чтение/запись 0 Разрешение работы ЦАП. 1 разрешает работу XPS Delta-Sigma DAC, 0 сбрасывает и запрещает XPS Delta-Sigma DAC. Выход DAC будет находиться в нулевом состоянии.

Data FIFO. Это последовательный стек из 16 ячеек, предназначенный для ввода данных в XPS Delta-Sigma DAC. Биты Data FIFO показаны в таблице 6. Чтение из этого регистра даст текущее слово, которое в настоящей момент выводится из FIFO. Попытки записи в заполненный FIFO не рекомендуется, так как это нарушит нормальную последовательность преобразования выборок и приведет к потере байта данных.

Когда Data FIFO опустошается, и DAC разрешен, то выход DAC переходит в нулевой уровень.

Рис. 8 показывает место расположения данных в PLB, когда значение C_NUM_DAC_BITS установлено в 8 и C_FULL_RANGE установлено в 0. Если C_FULL_RANGE установлено в 1, и C_NUM_DAC_BITS установлено в 8, то биты данных от 23 до 31, но любое значение, большее чем 0X100, приведет к неопределенному выходу DAC.

DS588 DAC Data FIFO fig08

Рис. 8. Data FIFO.

Таблица 6. Определение бит Data FIFO.

Биты Имя Доступ ядра Значение после сброса Описание
0 .. [31 - C_NUM_DAC_BITS - C_FULL_RANGE] - - - зарезервировано
[32 - C_NUM_DAC_BITS - C_FULL_RANGE] .. 31 Данные чтение/запись не определено Данные для преобразования ЦАП.

Регистр Data FIFO Occupancy (OCCY). Это поле содержит значение занятости для Data FIFO. Чтение этого регистра может использоваться для определения, пуст ли FIFO, также эту информацию передает прерывание Data FIFO Empty. Прочитанная величина это двоичное значение счетчика, так что когда прочитаны все нули, то это означает, что ни одна из ячеек FIFO не заполнена, и чтение 10000 означает, что все 16 ячеек FIFO заполнены. Определения бит этого регистра показаны в таблице 7.

DS588 DAC OCCY fig09

Рис. 9. Data FIFO Occupancy Register (OCCY).

Таблица 7. Определения бит регистра OCCY.

Биты Имя Доступ ядра Значение после сброса Описание
0..26 - - - зарезервировано
27..31 Occupancy Value чтение 0x0 27 старший бит. Значение 10000 показывает, что заполнены все 16 ячеек FIFO.

Регистр программирования глубины срабатывания прерывания в зависимости от опустошения Data FIFO (Programmable Depth Interrupt Register, PIRQ). Это поле содержит значение, определяющее установку прерывания PIRQ. Когда это значение больше или равно OCCY, установиться прерывание PIRQ, и останется установленным, пока выполняется условие превышения или равенства. Определения бит показано в таблице 8.

DS588 DAC PIRQ fig10

Рис. 10. Data FIFO Programmable Depth Interrupt Register.

Таблица 8. Определение бит регистра PIRQ.

Биты Имя Доступ ядра Значение после сброса Описание
0..26 - - - зарезервировано
27..31 Compare Value чтение/запись 0x0 27 старший бит. Значение 00101 показывает, что когда 5 или меньше ячеек в FIFO заполнено, установится прерывание FIFO PIRQ.

[Прерывания]

Сигналы прерывания, которые генерирует XPS Delta-Sigma DAC, обрабатываются контроллером прерываний (Interrupt Service Controller, ISC). Этот узел предоставляет многие функции, обычно предоставляемые для обработки прерываний. IPIER и IPISR содержат отображения бит, как это показано на рис. 11. Пожалуйста обратитесь к руководству по Processor IP, часть 1, для получения полного описания GIE, IPISR и IPIER. У XPS Delta-Sigma DAC есть два уникальных прерывания, которые отправляются в CPU. Число в круглых скобках это номер бита прерывания.

DS588 DAC Interrupt Mapping fig11

Рис. 11. Отображение прерываний.

Таблица 9. Определение бит регистра прерываний Data FIFO.

Биты Имя Доступ ядра Значение после сброса Описание
0..29 - - - зарезервировано
30 FIFO EMPTY чтение/запись 0 Это прерывание установится и останется установленным, пока пуст FIFO.
31 FIFO PIRQ чтение/запись 0 Это прерывание установится и останется установленным, пока PIRQ равно или больше OCCY. Очистка этого прерывания требует, чтобы Data FIFO был заполнен на значение, большее PIRQ.

[Использование]

Для установки регистров DAC и инициирования преобразования требуется выполнить следующие шаги.

1. Инициализируйте регистры прерывания GIE и IPIER, как это необходимо, если используются прерывания. Подробное описание регистров прерывания см. в IP Reference Guide.
2. Запишите в Data FIFO данные, которые должны быть преобразованы в аналоговую форму.
3. Установите PIRQ для генерации прерывания до опустошения FIFO.
4. Разрешите DAC записью лог. 1 в регистр управления CR.
5. Переведите сигнал Read_en в лог. 1 для одного периода такта SPLB_Clk. Первое значение, которое было записано в Data FIFO, начнет преобразовываться после прохождения двух Dac_Clk_en.
6. После подходящего количества DAC_Clk_en переведите Read_en в лог. 1 на один такт и следующее значение начнет преобразовываться после двух Dac_Clk_en.
7. Если сигнал Read_en в лог. 1, и Data FIFO опустошился, то DACout перейдет в лог. 0. DACout останется в нуле, пока не будут записаны данные в Data FIFO, и при этом будет активен Read_en.

Диаграммы сигналов. Следующая диаграмма показывает генерацию управляющих сигналов для преобразования.

DS588 Control Signal Generation fig12

Рис. 12. Генерация для DAC управляющих сигналов преобразования.

Примечание 1: перевод сигнала Read_en в лог. 1 на 1 такт SPLB_Clk. Первое значение, записанное в Data FIFO, запустит его преобразование после двух импульсов Dac_Clk_en. Read_en должно быть сгенерировано, если FIFO не пуст.

[Реализация дизайна, использование ресурсов микросхемы логики и тесты производительности]

Производительность ядра. Поскольку ядро XPS Delta-Sigma DAC будет использоваться в FPGA вместе с другими модулями проекта, утилизация и интервалы времени, сообщаемые в этой секции, можно использовать только для общей, приблизительной оценки. Когда ядро XPS Delta-Sigma DAC комбинируется с другими узлами в системе, утилизация ресурсов FPGA и тайминг XPS Delta-Sigma DAC будет отличаться от результатов, приведенных здесь.

Утилизация ресурсов модулем XPS Delta-Sigma DAC для различных комбинаций параметров, измеренная на Virtex-4 FPGA, показана в таблице 10.

Таблица 10. Производительность и утилизация ресурсов на Virtex-4 FPGA (микросхема xc4vlx25-ff668-11).

Значения параметров Ресурсы устройства Производительность
DS588 C NUM DAC BITS DS588 C FULL RANGE DS588 C SPLB NUM MASTERS DS588 C SPLB P2P DS588 C SPLB DWIDTH DS588 C SPLB MID WIDTH Слайсов Триггеров
слайсов
LUT-ов fMAX (МГц)
2 0 1 1 32 1 165 143 175 198
4 0 4 0 64 2 240 237 170 198
8 0 8 0 128 3 287 295 200 186
8 1 8 0 128 3 271 302 203 167
16 0 8 0 64 3 323 346 222 166
16 1 16 0 128 4 401 411 241 203

Утилизация ресурсов модулем XPS Delta-Sigma DAC для различных комбинаций параметров, измеренная на Virtex-5 FPGA, показана в таблице 11.

Таблица 11. Производительность и утилизация ресурсов на Virtex-5 FPGA (микросхема xc5vlx30-ff676-2).

Значения параметров Ресурсы устройства
Производительность
DS588 C NUM DAC BITS DS588 C FULL RANGE DS588 C SPLB NUM MASTERS DS588 C SPLB P2P DS588 C SPLB DWIDTH DS588 C SPLB MID WIDTH Триггеров
слайсов
LUT-ов fMAX (МГц)
2 0 1 1 32 1 143 102 229
4 0 4 0 64 2 237 129 225
8 0 8 0 128 3 295 149 214
8 1 8 0 128 3 301 151 225
16 0 8 0 64 3 343 173 236
16 1 16 0 128 4 48 199 204

Утилизация ресурсов модулем XPS Delta-Sigma DAC для различных комбинаций параметров, измеренная на Spartan-3A DSP FPGA, показана в таблице 12.

Таблица 12. Производительность и утилизация ресурсов на Spartan-3A DSP FPGA (xc3sd3400a-fg676-4).

Значения параметров Ресурсы устройства Производительность
DS588 C NUM DAC BITS DS588 C FULL RANGE DS588 C SPLB NUM MASTERS DS588 C SPLB P2P DS588 C SPLB DWIDTH DS588 C SPLB MID WIDTH Слайсов Триггеров
слайсов
LUT-ов fMAX (МГц)
2 0 1 1 32 1 125 143 120 118
4 0 4 0 64 2 269 237 143 115
8 0 8 0 128 3 319 295 165 103
8 1 8 0 128 3 339 301 168 102
16 0 8 0 64 3 368 346 185 112
16 1 16 0 128 4 457 411 221 102

Утилизация ресурсов модулем XPS Delta-Sigma DAC для различных комбинаций параметров, измеренная на Virtex-6 FPGA, показана в таблице 13.

Таблица 13. Производительность и утилизация ресурсов на Virtex-6 FPGA (микросхема xc6vlx195t-1-ff1156).

Значения параметров Ресурсы устройства Производительность
DS588 C NUM DAC BITS DS588 C FULL RANGE DS588 C SPLB NUM MASTERS DS588 C SPLB P2P DS588 C SPLB DWIDTH DS588 C SPLB MID WIDTH Слайсов Триггеров
слайсов
LUT-ов fMAX (МГц)
2 0 1 1 32 1 61 88 123 168
4 0 4 0 64 2 75 161 176 206
8 0 8 0 128 3 89 192 217 219
8 1 8 0 128 3 95 196 220 168
16 0 8 0 64 3 98 232 253 197
16 1 16 0 128 4 108 262 288 204

Утилизация ресурсов модулем XPS Delta-Sigma DAC для различных комбинаций параметров, измеренная на Spartan-6 FPGA, показана в таблице 14.

Таблица 14. Производительность и утилизация ресурсов на Spartan-6 FPGA (xc6slxt100-2-fgg676).

Значения параметров Ресурсы устройства Производительность
DS588 C NUM DAC BITS DS588 C FULL RANGE DS588 C SPLB NUM MASTERS DS588 C SPLB P2P DS588 C SPLB DWIDTH DS588 C SPLB MID WIDTH Слайсов Триггеров
слайсов
LUT-ов fMAX (МГц)
2 0 1 1 32 1 53 88 110 100
4 0 4 0 64 2 82 161 155 110
8 0 8 0 128 3 95 192 185 110
8 1 8 0 128 3 95 196 186 100
16 0 8 0 64 3 99 232 206 100
16 1 16 0 128 4 100 262 218 100

Производительность системы. Для измерения производительности системы (FMAX) этого ядра, оно было добавлено к системе Virtex-4 FPGA, Virtex-5 FPGA и Spartan-3A DSP FPGA как "устройство на тесте" (Device Under Test, DUT), что показано на рис. 13, 14 и 15.

DS588 Virtex 4 FX FPGA System fig13

Рис. 13. Virtex-4 FX FPGA System.

DS588 Virtex 5 FX FPGA System fig14

Рис. 14. Virtex-5 FX FPGA System.

DS588 Spartan 3A DSP FPGA System fig15

Рис. 15. Spartan-3A DSP FPGA System.

Целевая микросхема FPGA была затем заполнена логикой для утилизации загрузки LUT и BRAM приблизительно на 70%, и утилизации I/O приблизительно на 80%. Использовались инструментальные опции по умолчанию и самая низкая по скорости (slowest speed grade) классификация для целевой микросхемы FPGA, и результирующие значения FMAX показаны в таблице 15.

Таблица 15. XPS Delta-Sigma DAC System Performance.

Целевой FPGA FMAX (МГц)
S3D3400-4 100
V4LX25-11 125
V5FXT70-1 150

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

1. DS516 Interrupt Control
2. XAPP154 Virtex Synthesizable Delta-Sigma DAC
3. Analog Devices Data Converter Reference Manual, Volume I, 1992.
4. High Performance Stereo Bit-Stream DAC with Digital Filter, R. Finck, IEEE Transactions on Consumer Electronics, Vol. 35, No. 4,Nov. 1989
5. IBM CoreConnect 128-Bit Processor Local Bus: Architecture Specifications version 4.6.

Поддержка. Xilinx предоставляет техническую поддержку для этого продукта LogiCORE, когда он используется так, как описано в его документации. Xilinx не гарантирует тайминг, функционал или поддержку продукта, если он реализован в устройствах, которые не определены в документации, если он настроен на параметры, выходящие за границы, разрешенные в документации, или если были сделаны изменения в любой секции дизайна, которая помечена "DO NOT MODIFY".

[Ссылки]

1. DS588 XPS Delta-Sigma Digital to Analog Converter site:xilinx.com.
2. Дельта-сигма модуляция.
3. Термины и сокращения, словарик.
4. Как установить Xilinx ISE Design Tools.