Устройство испытаний макета системы моделирования помехоустойчивых кодов

 

Полезная модель относится к области электротехники, в частности к устройству сети переключения сигналов (передачи данных), контрольным и испытательным устройствам. Задача, на решение которой направлено заявляемое изобретение - повышение эффективности испытания радиоэлектронной аппаратуры, в частности, системы моделирования помехоустойчивых кодов. Технический эффект достигается за счет минимизации паразитных управляющих воздействий и балансировки регистров в результате разделения на функциональные блоки, что позволяет отлаживать блок кодирование-декодирование, максимально допустимой тактовой частоте. 1 п.ф., 2 ил.

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

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

1) Моделирование алгоритма на языке высокого уровня (С-C++, Matlab, Octave, SystemC) причем в целых числах.

2) Если присутствует большой объем вычислений то моделирование на графическом процессоре общего назначения с использованием стандартов OpenCL [http://www.khronos.org/opencl/], CUDA [www.nvidia.ru/object/cuda_home_new_ru.html]. Наиболее перспективным и унифицируемым языком программирования является стандарт OpenCL, где декларируется исполняемость одного и того же кода на всех возможных платформах (CPU, GPU, FPGA), однако, в настоящее время реализация OpenCL для ПЛИС (программируемой логической интегральной схемы) используется подход, продекларированный фирмой Altera в качестве перспективного направления [www.altera.com/b/opencl.html].

Данный подход может использоваться также для демонстрации разрабатываемых алгоритмов в реальном времени, поскольку, по сути, графический процессор общего назначения является массивом процессоров выполняющих общие инструкции с разными данными параллельно (SIMD). Наряду с этим, видны ограничения данного метода по сравнению с реализацией на ПЛИС, состоящие в том, что реализация на ПЛИС позволяет выполнять различные последовательности инструкций с различными наборами данных параллельно (MIMD), в том числе применять конвейерную обработку.

3) Реализация алгоритма на ПЛИС (программируемая логическая интегральная схема) [Стешенко В.Б. ПЛИС фирмы Altera: Проектирование устройств обработки сигнала, Москва 2000], представляющей собой набор логических элементов на плате с возможностью их программно коммутировать. Описание алгоритма в этом случае состоит из статического описания коммутации элементов и динамического описания их взаимодействия (VHDL, Verilog). Здесь уже помимо правильности реализации алгоритма встают вопросы энергопотребления и физического быстродействия. На каждый элемент дизайна подается синхроимпульс, обеспечивающий его динамическое взаимодействие с остальными, причем сам элемент имеет емкость и/или индуктивность коммутирующая линия также имеет активное и реактивное сопротивление, которое растет с размерами дизайна, что вынуждает увеличивать напряжение питания с целью предотвратить "размывание" фронтов синхронизирующих импульсов. Все выше изложенные факторы ограничивают тактовую частоту ПЛИС 200 МГц. В настоящее время идут попытки использовать язык высокого уровня для программирования ПЛИС, что осложняется тем фактом, что языки высокого уровня не имеют средств для описания статических связей. Однако, есть библиотечные расширения (SystemC) над языком C/C++, которые позволяют моделировать системное поведение модели посредством описания интерфейсов, очередей, сигналов в статическом и динамическом виде, но подобное расширение по синтаксису уже ближе к языку VHDL, и выбор языка для реализации возможен по предпочтению разработчика.

Верификация разрабатываемых алгоритмов достигается за счет последовательного применения тестовых векторов разработанных на предыдущих стадиях. Тестовый вектор может являться оцифрованной смесью сигнала и шума, бинарной конфигурацией ошибок с заданными свойствами, любым набором тестовых значений, который будучи поданными на вход разрабатываемого устройства или элемента этого устройства вызовут предсказанную (на предыдущей стадии) реакцию. Хотелось бы отметить, что алгоритмы помехоустойчивого кодирования исправляют все ошибки, в том числе ошибки разработчика и программиста, поэтому часть тестов не связанная с моделированием Монте-Карло в белом гауссовском шуме, может быть пройдена успешно и при наличии ошибок в реализации. Полную верификацию обеспечивают статистически достоверное моделирование по методу Монте Карло в канале БГШ (Д.В.Кирьянов, Е.Н.Кирьянова Вычислительная физика - М.: Полибук Мультимедиа, 2006).

Оценка сложности реализации алгоритма на ПЛИС (без его непосредственной реализации) является сложной многокритериальной оптимизационной задачей и не может быть решена в чистом виде. Однако, следует заметить, что по существу каждая реализуемая архитектура является функцией вида:

[пропускная способность, задержка] = F (тактовая частота, энергопотребление, количество занятых вентилей, ).

Пояснить это можно следующим образом: пропускную способность любого устройства можно удвоить, например, полностью продублировав его. Таким образом, казалось бы, сложность реализации возрастет вдвое, но это неверно. В данном случае мы пренебрегаем сложностью реализации мультиплексоров входных и выходных данных, что при высоких скоростях критично. В каждой архитектуре существуют "узкие места" ограничивающие быстродействие и пропускную способность, например, передача данных с компьютера на плату. Здесь очевидным решением является конвейер: пока один пакет загружают в декодер, другой пакет декодируется, третий выгружают из декодера. Каждый раз разработчик разрешает вопрос последовательно или параллельно, вернее, в нашем приложении вопрос стоит так: множество простых узлов, которые последовательно обрабатывают информацию или один сложный процессор (реализованный на ПЛИС), который обрабатывает большой объем данных параллельно. В наиболее упрощенном виде для каждой архитектуры-кандидата должна быть получена зависимость: удельная пропускная способность (информационных бит на такт микросхемы) - сложность (количество вентилей), далее исходя из ограничивающих требований и технического задания должен быть сделан обоснованный выбор. Однако следует отметить, что точность такой оценки достаточно низка в силу следующего факта. Логическая единица ПЛИС (группа элементов, объединенных общим управлением) обычно содержит несколько мультиплексоров, множество однобитных сумматоров ("XOR"), объединенных в цепь, множество элементов "AND" и однобитных инверсных элементов ("flip-flop"), задаваемую пользователем таблицу значений-констант (look up table LUT), а также несколько регистров. Если алгоритм - дизайн требует только элементов "XOR", то элементы "AND" из тех логических блоков не могут быть задействованы другими дизайнами, поскольку управляющие цепи уже заняты. Поскольку разводит алгоритм на плату специализированный софт, то учет этого фактора может носить только эмпирический характер. Что касается энергопотребления микросхемы, то различают статическое энергопотребление и динамическое энергопотребление. Статическое энергопотребление определяют утечки по постоянному току при подаче напряжения на р-n переходы. Динамическое энергопотребление состоит из двух частей: энергия переключения транзистора при смене логического состояния и энергия тока короткого замыкания, связанная с перемещением заряда между транзисторами в триггере. Важно отметить, что значительная часть динамического энергопотребления составляет так называемый "glitch" или паразитные управляющие воздействия, вызванные рассогласованием задержек в коммутирующих цепях управляющего сигнала. Такое рассогласование является главным ограничителем тактовой частоты ПЛИС и в случае значительных паразитных управляющих воздействий может привести к неправильной работе алгоритма, но, даже, если уровня паразитного сигнала недостаточно для осуществления несвоевременного срабатывания триггера, мощность источника питания все равно будет рассеяна впустую. Для минимизации задержек в коммутируемых путях применяют два типа архитектур:

1) островную - каждый модуль представляет собой плотно упакованную структуру соединенную с другими структурами двумерной сетью содержащей вертикальные и горизонтальные каналы

2) древовидную - наиболее общеупотребительное для подачи сигналов синхронизации.

Основным способом борьбы с рассогласованием задержек является равномерное распределение логики и регистров (балансировка регистров), таким образом, чтоб за такт ПЛИС между двумя регистрами успевали проходить все логические операции, связанные с перераспределением зарядов в транзисторе. Архитектура высокой пропускной способности увеличивает количество бит в секунду, которые могут быть обработаны конструкцией за счет раскрытия каждого итеративного цикла путем конвейерной обработки, штрафом за это является пропорциональное увеличение площади дизайна и количества вентилей. Здесь вентиль используют как единицу измерения сложности чипа. Под вентилем обычно понимают логический элемент "И-НЕ" и сложность каждого модуля оценивают в количестве элементов "И-НЕ" из которых может собрана эта схема. Учитывая, что ПЛИС помимо элементов "И-НЕ" использует другие элементы оценка в сложность в вентилях ПЛИС не соответствует оценке сложности в вентилях СБИС.

Архитектура с малой задержкой сводит к минимуму задержки путем удаления конвейера регистров. Штрафом за удаление конвейера регистров является увеличение комбинаторной задержки между регистрами. Временные ограничения также налагаются на тактовую частоту схемы. Добавление слоев регистров улучшает время путем деления критического пути на два пути с меньшими задержками. Разделение логических функций на более мелкие функции, которые могут быть реализованы параллельно, уменьшает задержку критического пути. Также должен быть удален приоритет исполнения кода, там где он не нужен, например, конструкция типа if(){}else{} приведет к более сложному схемотехническому решению, чем конструкция if() if() так как во втором случае обе ветви будут реализованы параллельно [ru.wikibooks.org/wiki/Язык_Си_в_примерах]. Архитектуру алгоритма, реализованного на ПЛИС, удобно представлять разделенной на функциональные блоки в соответствии с классификацией Мили [Mealy, George H. (1955). A Method to Synthesizing Sequential Circuits. Bell Systems Technical Journal, pp.1045-1079.] и Мура [Moore E.F. Gedanken-experiments on Sequential Machines. Automata Studies, Annals of Mathematical Studies, 34, 129-153. Princeton University Press, Princeton, N.J. (1956)]. В рамках этого описания машина Мили это автомат с конечным числом состояний, который формирует выходное значение и осуществляет переходы между своими состояниями на основе входного воздействия и своего текущего состояния. В отличии от машины Мили, машина Мура не допускает внешних воздействий и переход между состояниями является только функцией текущего состояния.

Наиболее близким к предлагаемому является устройство, описанное в [Coding And Scripting Techniques For FSM Designs With Synthesis-Optimized, GlitchFree Outputs (2000) by Clifford E Cummings, SNUG'2000 Boston (Synopsys Users Group Boston, MA, 2000) Proceedings] В этом устройстве функционально выделяют 4 блока: блок холостого хода 1, блок кодирования-декодирования 2, блок ввода данных 3, блок вывода результатов 4. Каждый блок представляет собой машину Мили, где входное воздействие реализовано на комбинационной логике, а выходные значения записывают в регистр, что позволяет достичь балансировки регистров и избежать паразитных управляющих воздействий. Управляет работой такого устройства блок управления 5 (внешний компьютер).

Блок управления 5 своим первым выходом соединен с первым входом блока холостого хода 1, второй вход которого соединен с выходом блока вывода результатов 4. Выход блока холостого хода 1 соединен со вторым входом блока ввода данных 3, первый вход которого соединен вторым выходом устройства управления 5, формирующим сигнал разрешения чтения данных. Третий вход блока ввода данных 3, который является входом сигнала запроса данных, соединен с первым выходом блока кодирования-декодирования 2. Третий выход блока управления 5, формирующий разрешающий кодирование-декодирование сигнал, соединен со вторым входом блока кодирования-декодирования 2. Четвертый выход блока управления 5, выход управления на разрешение вывода результатов, соединен с первым входом блока вывода результатов 4, второй вход которого соединен с выходом сигнала запроса вывода результатов блока кодирования-декодирования 2.

Работает устройство прототип следующим образом: после включения питания устройство находится в состоянии "холостой ход", в котором ожидает команд блока управления 5. При получении сигнала, разрешающего чтение данных, устройство 5 передает управление в блок ввода данных 3, который осуществляет чтение данных от внешнего устройства и запись во внутреннюю память ПЛИС. Далее по разрешающему кодирование-декодирование сигналу блока управления 5 блок ввода данных передает сигнал в блок кодирования-декодирования 2, который читает данные из внутренней памяти, осуществляет их кодирование помехоустойчивым кодом, имитацию передачи по радиоканалу, декодирование данных на приемной стороне, запись статистики переданых данных в ПЛИС. Для передачи следующего пакета данных для кодирования блок кодирования-декодирования 2 формирует сигнал запроса данных для блока ввода данных 3. При достижении заданного числа переданных пакетов данных блок кодирования-декодирования 2 формирует сигнал запроса вывода результатов для блока вывода результатов 4.

Однако, недостатком прототипа является отсутствие возможности проводить отладку и инспекцию ПЛИС в режиме "кодирование - декодирование".

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

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

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

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

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

Графические материалы представленные в описании:

Фиг.1 - представлена структурная схема устройства прототип.

Фиг.2 - представлена структурная схема предлагаемого устройства.

Предлагаемое устройство испытаний макета системы моделирования помехоустойчивых кодов состоит из блока управления 5, первый выход которого соединен с первым входом блока холостого хода 1, второй вход блока холостого хода 1 соединен с выходом блока вывода результатов 4. Выход блока холостого хода 1 соединен со вторым входом блока ввода данных 3, первый вход которого соединен вторым выходом устройства управления 5, формирующим сигнал разрешения чтения данных. Третий вход блока ввода данных 3, который является входом сигнала запроса данных, соединен с первым выходом блока кодирования-декодирования 2. Третий выход блока управления 5, формирующий разрешающий кодирование-декодирование сигнал, соединен со вторым входом блока кодирования-декодирования 2. четвертый выход блока управления 5, выход управления на разрешение вывода результатов, соединен с первым входом блока вывода результатов 4, второй вход которого соединен с выходом сигнала запроса вывода результатов блока кодирования-декодирования 2. Пятый вход-выход блока управления 5 соединен с первым входом-выходом блока отладки 6, который является входом-выходом промежуточных данных. Второй вход блока отладки 6 соединен с третьим выходом блока кодирования-декодирования 2, формирующим сигнал передачи управления, второй выход блока отладки 6 соединен с третьим входом блока кодирования-декодирования 2.

Работает устройство следующим образом: после включения питания устройство находится в состоянии "холостой ход", в котором ожидает команд блока управления 5. При получении сигнала, разрешающего чтение данных, устройство 5 передает управление в блок ввода данных 3, который осуществляет чтение данных от внешнего устройства и запись во внутреннюю память ПЛИС. Далее по разрешающему кодирование-декодирование сигналу блока управления 5 блок ввода данных передает сигнал в блок кодирования-декодирования 2, который осуществляют формирование пакетов данных, кодирование их помехоустойчивым кодом, формирование отсчетов дискретного белого шума, моделируют прохождение пакетов данных через канал с аддитивным белым гауссовским шумом, декодируют принятые пакеты, формируют статистику ошибок. Для передачи следующего пакета данных для кодирования блок кодирования-декодирования 2 формирует сигнал запроса данных для блока ввода данных 3. При достижении заданного числа переданных пакетов данных блок кодирования-декодирования 2 формирует сигнал запроса вывода результатов для блока вывода результатов 4.

В блоке отладки 6 по сигналам блока управления 5 посредством интерфейсов USB или Ethernet передают промежуточные отладочные данные на блок управления (внешний компьютер). Также в блоке отладки 6 осуществляют инспекцию параметров ПЛИС, например,

- Значение потребления тока на цифровой части ФАПЧ ПЛИС;

- Значение потребления тока внутренней и периферийной логики ПЛИС;

- Значение потребления тока на банках памяти и портах ввода вывода ПЛИС;

- Значение потребления тока на блоке поддержки шины РСI Express 3.0;

- Значение потребления тока в цепи питания высокоскоростного передатчика дифференциального сигнала;

- Значение потребления тока в цепи питания высокоскоростного приемника дифференциального сигнала;

Блок отладки 6 позволяет, работая на меньшей тактовой частоте, анализировать промежуточные результаты работы блока кодирования-декодирования 2, например, данных с каждой стадии конвейерной обработки.

Все блоки устройства реализованы на ПЛИС.

Сигналы синхронизации на чертежах не показаны.

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



 

Похожие патенты:

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

Изобретение относится к области аналитической химии и может быть использовано для создания быстродействующих переносных портативных приборов для обнаружения и идентификации химических веществ в воздухе

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

Изобретение относится к источнику питания для уроков физики
Наверх