XPS Delta-Sigma ЦАП |
![]() |
Добавил(а) microsin | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Преобразователь цифровых данных в аналоговый сигнал, ЦАП (digital to analog converter, DAC) находит широкое применение в генераторах сигналов и программируемых источниках напряжения. Для дельта-сигма ЦАП, пример которого приведен в этой статье (перевод [1]), для получения аналогового сигнала дополнительно требуется только простейший ФНЧ, состоящий из резистора и конденсатора. Описываемый ЦАП обладает следующими возможностями: • Интерфейс PLB, основанный на спецификации PLB v4.6. Примечание: расшифровку всех незнакомых терминов и аббревиатур см. во врезках и в [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), который управляет ФНЧ из резистора и конденсатора. Рис. 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 раскрывается с его возможностью конфигурировать и интегрировать ядра 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 • Системы, периферийные устройства, тактирование трассировки и отладки - Аппаратные периферийные интерфейсы Zynq-EPP • Прерывания • Подключения периферийных устройств к мультиплексированному вводу/выводу [Настройка ядер 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 (загрузчики первого уровня) Для устройств, которые получены из каталога Xilinx Embedded IP, пакет SDK также автоматически генерирует bare-metal-драйверы и BSP - для подключения к коду без операционной системы или к коду RTOS, а также драйверы Linux и BSP. Таким способом XPS позволяет разработчикам надолго игнорировать необходимость разработки firmware и низкоуровневого кода BSP, что иначе потребовалось бы для разработки загрузчика операционной системы и приложения. [Преимущества XPS] Учет в разработке аппаратных возможностей устройств Xilinx: • XPS импортирует предоставленный Xilinx файл аппаратной конфигурации, который дает возможность для XPS узнать об электрических, периферийных и программируемых параметрах для каждой микросхемы Xilinx. Интеграция с каталогом Xilinx Embedded IP: • Каталог Xilinx Embedded IP содержит десятки проверенных ядер IP с поддержкой plug and play. Графический мастер настройки конфигурации: XPS содержит мастер настройки платформы (Platform Configuration Wizard) и Base System Builder, что позволяет разработчикам быстро и просто конфигурировать среду XPS для конкретного выбора микросхемы логики и платы (Target Reference Design). Гарантируется корректность соединений: • XPS, зная специфичные параметры аппаратуры, позволяет получить гарантию, что все соединения будут правильные и функциональные. Интеграция с инструментарием разработки Xilinx: XPS работает совместно с другими инструментами Xilinx, чем обеспечивается совместное планирование проекта вместе со средой PlanAhead, автоматическая генерация программы вместе с SDK, симуляция с помощью iSim, отладка аппратуры и программы с помошью ChipScope Pro, генерация дизайна в среде ISE. XPS Delta-Sigma DAC можно использовать в различных приложениях: • Программируемый генератор напряжения: может быть сгенерировано изменяемое напряжение с уровнями между 0V и VCCO, с гранулярностью, определяемой шириной шины DACin. В этих приложениях напряжение обычно не должно изменяться быстро, так что постоянная времени RC может быть выбрана достаточно большой для минимизации шума. Рис. 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% или меньше. Фильтрация последовательности импульсов. В среднем диапазоне напряжений сигнал на выходе 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) выраженный дробным значением от шагового напряжения. Сравнение шумовых характеристик 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 Это выражение было использовано для создания графиков рис. 3, 4 и 5 (см. врезку). Эти графики могут использоваться для определения значения постоянной времени RC с учетом напряжения шума самого плохого случая и рабочей частоты. Например, для 8-битного DAC на тактовой частоте 80 МГц можно выбрать значение RC = 13.0x10-6, соответствующее пиковому напряжению шума около 0.25 VS. Это оставляет промежуток шума 0.75 VS между шагами. В выходном сигнале будут и другие источники шума, которые также следует учитывать, такие как шум на шине питания VCCO. Все три графика ниже показывают шум пульсаций на выходе ФНЧ для самого худшего случая пульсаций, когда на входе ЦАП постоянное значение 1. График показывает значение шума от пика до пика (peak-to-peak) как дробной части от шага ЦАП VS. Рис. 3. PPNFS как функция от RC и рабочей частоты для 10-битного DAC. Рис. 4. PPNFS как функция от RC и рабочей частоты для 8-битного DAC. Рис. 5. PPNFS как функция от RC и рабочей частоты для 6-битного DAC. Ослабление сигнала на выходе. По соглашению частота среза ФНЧ определена как уровень передачи половины мощности. Частота среза простого пассивного RC-фильтра может быть выражена так: fC = 1/(2πτ) где: fC частота среза фильтра. Эта формула использовалась для создания графика рис. 6. Рис. 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. Ниже приведено краткое описание, как установить регистры DAC для инициирования цифро-аналогового преобразования. 1. Запишите данные, которые должны быть преобразованы, в стек Data FIFO. Таблица 1. Сигналы ввода/вывода XPS Delta-Sigma DAC.
Параметры дизайна Delta-Sigma DAC. Чтобы позволить пользователю создать XPS Delta-Sigma DAC, который будет уникально удовлетворять потребностям пользовательской системы, некоторые функции управляются параметрами в проекте XPS Delta-Sigma DAC. Это позволяет получить проект, который использует для системы только необходимые ресурсы микросхемы программируемой логики, и будет работать с максимально возможной производительностью. В таблице 2 перечислены функции, которые привязаны к параметрам в XPS Delta-Sigma DAC core. Таблица 2. Параметры дизайна XPS Delta-Sigma DAC.
Примечания: (1). Значение по умолчанию не назначено. Это гарантирует, что пользователь установит актуальное значение, в противном случае компилятор выдаст ошибку. [Зависимости портов] Зависимости между параметрами дизайна ядра XPS Delta-Sigma DAC и сигналами ввода/вывода (I/O) показаны в таблице 3. Дополнительно, когда определенные функции задействованы параметрами в дизайне, связанная с ними логика больше не будет частью дизайна. Не используемые входные сигналы и связанные с ними выходные сигналы установлены в указанное значение. Таблица 3. Параметры зависимостей портов для XPS Delta-Sigma DAC.
[Описание регистров] Внутренние регистры XPS Delta-Sigma DAC находятся по адресам смещения относительно базового адреса C_BASEADDR. Набор внутренних регистров XPS Delta-Sigma DAC описан в таблице 4. Таблица 4. Регистры XPS Delta-Sigma DAC.
Control Register (CR). Определения бит для этого регистра показаны в таблице 5. Когда бит разрешения (EN) установлен в 0, это предотвращает XPS Delta-Sigma DAC от генерации последовательности импульсов, на выходе Dac_out будет 0. Рис. 7. Биты регистра CR. Таблица 5. Биты регистра CR.
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. Рис. 8. Data FIFO. Таблица 6. Определение бит Data FIFO.
Регистр Data FIFO Occupancy (OCCY). Это поле содержит значение занятости для Data FIFO. Чтение этого регистра может использоваться для определения, пуст ли FIFO, также эту информацию передает прерывание Data FIFO Empty. Прочитанная величина это двоичное значение счетчика, так что когда прочитаны все нули, то это означает, что ни одна из ячеек FIFO не заполнена, и чтение 10000 означает, что все 16 ячеек FIFO заполнены. Определения бит этого регистра показаны в таблице 7. Рис. 9. Data FIFO Occupancy Register (OCCY). Таблица 7. Определения бит регистра OCCY.
Регистр программирования глубины срабатывания прерывания в зависимости от опустошения Data FIFO (Programmable Depth Interrupt Register, PIRQ). Это поле содержит значение, определяющее установку прерывания PIRQ. Когда это значение больше или равно OCCY, установиться прерывание PIRQ, и останется установленным, пока выполняется условие превышения или равенства. Определения бит показано в таблице 8. Рис. 10. Data FIFO Programmable Depth Interrupt Register. Таблица 8. Определение бит регистра PIRQ.
[Прерывания] Сигналы прерывания, которые генерирует XPS Delta-Sigma DAC, обрабатываются контроллером прерываний (Interrupt Service Controller, ISC). Этот узел предоставляет многие функции, обычно предоставляемые для обработки прерываний. IPIER и IPISR содержат отображения бит, как это показано на рис. 11. Пожалуйста обратитесь к руководству по Processor IP, часть 1, для получения полного описания GIE, IPISR и IPIER. У XPS Delta-Sigma DAC есть два уникальных прерывания, которые отправляются в CPU. Число в круглых скобках это номер бита прерывания. Рис. 11. Отображение прерываний. Таблица 9. Определение бит регистра прерываний Data FIFO.
[Использование] Для установки регистров DAC и инициирования преобразования требуется выполнить следующие шаги. 1. Инициализируйте регистры прерывания GIE и IPIER, как это необходимо, если используются прерывания. Подробное описание регистров прерывания см. в IP Reference Guide. Диаграммы сигналов. Следующая диаграмма показывает генерацию управляющих сигналов для преобразования. Рис. 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).
Утилизация ресурсов модулем XPS Delta-Sigma DAC для различных комбинаций параметров, измеренная на Virtex-5 FPGA, показана в таблице 11. Таблица 11. Производительность и утилизация ресурсов на Virtex-5 FPGA (микросхема xc5vlx30-ff676-2).
Утилизация ресурсов модулем XPS Delta-Sigma DAC для различных комбинаций параметров, измеренная на Spartan-3A DSP FPGA, показана в таблице 12. Таблица 12. Производительность и утилизация ресурсов на Spartan-3A DSP FPGA (xc3sd3400a-fg676-4).
Утилизация ресурсов модулем XPS Delta-Sigma DAC для различных комбинаций параметров, измеренная на Virtex-6 FPGA, показана в таблице 13. Таблица 13. Производительность и утилизация ресурсов на Virtex-6 FPGA (микросхема xc6vlx195t-1-ff1156).
Утилизация ресурсов модулем XPS Delta-Sigma DAC для различных комбинаций параметров, измеренная на Spartan-6 FPGA, показана в таблице 14. Таблица 14. Производительность и утилизация ресурсов на Spartan-6 FPGA (xc6slxt100-2-fgg676).
Производительность системы. Для измерения производительности системы (FMAX) этого ядра, оно было добавлено к системе Virtex-4 FPGA, Virtex-5 FPGA и Spartan-3A DSP FPGA как "устройство на тесте" (Device Under Test, DUT), что показано на рис. 13, 14 и 15. Рис. 13. Virtex-4 FX FPGA System. Рис. 14. Virtex-5 FX FPGA System. Рис. 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.
Еще раз напомним, что на приведенные результаты FMAX влияют общие параметры синтезированной системы, по поэтому приведенные данные предоставлены только как оценочные. Их значения не гарантируются на всех вариантах реализации систем. 1. DS516 Interrupt Control Поддержка. Xilinx предоставляет техническую поддержку для этого продукта LogiCORE, когда он используется так, как описано в его документации. Xilinx не гарантирует тайминг, функционал или поддержку продукта, если он реализован в устройствах, которые не определены в документации, если он настроен на параметры, выходящие за границы, разрешенные в документации, или если были сделаны изменения в любой секции дизайна, которая помечена "DO NOT MODIFY". [Ссылки] 1. DS588 XPS Delta-Sigma Digital to Analog Converter site:xilinx.com. |