Проектирование и оценка сегментированного DAC

В этом примере показано, как спроектировать и оценить сегментированный DAC с помощью эталонной архитектуры и проверить DAC с помощью DAC Testbench. В данном примере используйте таблицу данных AD9775. Это коммерческий, готовый 14-разрядный ЦАП от аналоговых устройств.

Настройка сегментированной модели теста DAC

Откройте модель SegmentedDACTestbench, присоединенная к этому примеру, в качестве вспомогательного файла. Модель состоит из блока Segmented DAC и теста DAC.

model = 'SegmentedDacTestbench';
open_system(model);

Сегментированный блок DAC

Блок Сегментированный DAC состоит из ряда сегментов, проводных параллельно. Каждый из этих сегментов питается подмножеством входных данных слова. Результаты преобразований из каждого сегмента DAC суммируются, чтобы получить выход для полного входного слова.

open_system([model '/Segmented DAC'], 'force');

Блок Logical Вектора Conversion разделяет вход слово на биты компонента. Внутри каждого сегмента блок Selector выбирает подмножество входного слова для этого сегмента, а другой блок Logical Vector Conversion преобразует его обратно в скалярное значение для сегмента DAC, чтобы преобразовать. Отдельными сегментами DAC являются бинарные взвешенные блоки DAC. Их настройки параметров устанавливаются во время инициализации модели блоком Segmented DAC. Наконец, выходы сегментов складываются и масштабируются в ссылку блока Сегментированный DAC.

Дважды кликните блок Segmented DAC, чтобы открыть диалоговое окно Параметры Блоков. Используйте таблицу в центре, чтобы задать параметры отдельных сегментов DAC. Эффекты параметров таблицы на общую операцию DAC суммируются в правом нижнем углу.

Полярность Входа задана Unipolar, Ссылка (V) установлена на 1.20 V, смещение (V) установлено на 0 V, Времена (Времена) урегулирования устанавливаются на 11e-9 s, и для допуска времени урегулирования (LSB) задано значение 0.025 LSB на основе таблицы данных.

В таблице Параметры сегмента вставьте строку с тремя строками для определения трехсегментной архитектуры DAC. Установите для бит верхней и нижней строк значение 5 и биты средней строки, чтобы 4. Это устанавливает сегмент LSB (заданный как верхняя строка) и сегмент MSB (заданный как нижняя строка) таким образом, чтобы каждый был 5-битным DAC, в то время как средний сегмент является 4-битным DAC. Установите значения в полях Ошибка и Gain Error для всех сегментов 0. Щелкните в любом месте строки или сдвиг + Щелкните несколько строк в таблице, чтобы выбрать их. Когда выбрана строка, используйте кнопки в правой части таблицы, чтобы переместить ее вверх или вниз в таблице, изменяющейся в том месте, где ее сегмент находится относительно входа слова. Сегмент верхней строки всегда преобразует LSB, а нижний - MSB. Чтобы добавить или удалить сегменты, используйте кнопки под таблицей.

Измерение показателей эффективности постоянного тока с помощью метода Endpoint

Дважды кликните блок DAC Testbench, чтобы открыть диалоговое окно Параметры Блоков. Опция Измерение (Measurement) выбрана как DC. Установите частоту преобразования Start (Гц) в 9e6 Гц. На вкладке Setup нажмите кнопку Autofill setup parameters, чтобы автоматически распространить параметры DAC на панель тестирования. Установите значения Времен (Времен) урегулирования 21e-9 s, чтобы гарантировать, что результаты измерения постоянного тока даже частично не основаны на переходах между кодами. На вкладке Target Metric нажмите кнопку Autofill target metric, чтобы автоматически передать целевые метрики DAC в testbench. Применить изменения. Установите рекомендуемые минимальные времена (времена) остановки симуляции как время остановки модели, нажав кнопку Set as model stop time.

Запустите симуляцию для 36.41 мс.

bdclose(model);
sim(model);

Измеренные ошибки смещения и усиления, отображаемые на значке теста DAC, находятся в пределах допуска ошибки (LSB) от их ожидаемых значений.

$$ E_{\%FS} = \frac{100 \cdot E_{LSB}}{2^{N_{bits}}} = \frac{10}{2^{14}}
= 0.00061 \%FS $$

Дважды кликните блок DAC Testbench, чтобы открыть диалоговое окно Параметры Блоков. Нажмите кнопку Plot DC analysis results, чтобы просмотреть передаточную кривую DAC, нелинейность конечной точки и нелинейность наилучшего соответствия.

Измерьте метрики эффективности AC с помощью одного тонального сигнала

Дважды кликните блок DAC Testbench, чтобы открыть диалоговое окно Параметры Блоков. Установите опцию Measurement следующим AC . На вкладке Stimulus, частота преобразования Start (Гц) устанавливается в 9e6 Гц, чтобы позволить выходу DAC рассчитаться между преобразованиями. На вкладке Setup нажмите кнопку Autofill setup parameters, чтобы автоматически распространить параметры DAC на панель тестирования. Применить изменения. Установите рекомендуемые минимальные времена (времена) остановки симуляции как время остановки модели, нажав кнопку Set as model stop time.

set_param([model '/DAC Testbench'], 'MeasureOption', 'AC');

Откройте диалоговое окно Параметры сегментированных блоков DAC и установите значения ошибок смещение и Gain в таблице Segment settings на 0 для всех сегментов. Это препятствует тому, чтобы нарушения линейности влияли на гармоническую эффективность.

mask = Simulink.Mask.get([model '/Segmented DAC']);
paramSegmentSettings = mask.getParameter('SegmentSettings');
ctrlSegmentSettings = paramSegmentSettings.DialogControl;
ctrlSegmentSettings.setTableCell([1, 3], 'Value', '0');
ctrlSegmentSettings.setTableCell([2, 3], 'Value', '0');
ctrlSegmentSettings.setTableCell([3, 3], 'Value', '0');
ctrlSegmentSettings.setTableCell([1, 5], 'Value', '0');
ctrlSegmentSettings.setTableCell([2, 5], 'Value', '0');
ctrlSegmentSettings.setTableCell([3, 5], 'Value', '0');

Запустите симуляцию для 180 мс.

set_param(model, 'StopTime', '0.18');
sim(model);
Warning: The file containing block diagram '<a href="matlab:open_system
('msbUtilities')">msbUtilities</a>' is shadowed by a file of the same name
higher on the MATLAB path. This can cause unexpected behavior. For more
information see <a href="matlab:helpview([docroot
'/toolbox/simulink/helptargets.map'], 'shadowing')">"Avoiding Problems with
Shadowed Files"</a> in the Simulink documentation.

The file containing the block diagram is:
S:\22\jadams.Brf.DacExamples\matlab\toolbox\msblks\msblks\internal\msbUtilities.slx.
The file higher on the MATLAB path is:
S:\22\jadams.Brf.DacExamples\matlab\toolbox\msblks\msblks\msbUtilities.slx 

Измерения гармонических искажений отображаются на значке теста DAC.