Разработка и исследование высокоскоростных генераторов псевдослучайных равномерно распределенных двоичных последовательностей (1025663), страница 23
Текст из файла (страница 23)
Микросхема ПЛИС представляетсобой набор большого количества однотипных переконфигурируемых ячеек. При программировании ПЛИС задается конфигурация каждой ячейки и набор связей между ними, что позволят реализовывать различныецифровые схемы. Основным достоинством ПЛИС по сравнению с другимитехнологиями является возможность многократного перепрограммирования «на лету» без использования сложного и дорогостоящего оборудования. Для описания цифровых систем используются специальные языки,такие как VHDL, Verilog, AHDL и др.В настоящее время наибольшее распространение получили две разновидности ПЛИС: CPLD (complex programmable logic device) и FPGA (fieldprogrammable gate array).
По сравнению с CPLD, FPGA обычно обладаютна два - три порядка большей логической емкостью (числом эквивалентных логических вентилей), более низким энергопотреблением, меньшей интенсивностью отказов, а также обеспечивают неограниченное количество-150перепрограммирований [9].Для реализации генераторов псевдослучайных последовательностейна основе клеточныхавтоматовбылавыбранамикросхемаFP^ACyclone II (EP2C35F672C6) корпорации Altera, относящаяся к семействунедорогих ПЛИС начального уровня. Основные характеристики м и к р ° с х е _мы приведены в табл. 8.Т а б л и и . а 8.Основные характеристики микросхемы EP2C35F672C6ПараметрКоличество ячеекКоличество блоков памяти М4К (4 Кб)Число выводов микросхемы, доступных пользователюСтоимость1Значение'33 2 1 610 5475около $15U__По материалам http://www.buyaltera.com для единичных закупок по состоянию на 2 3 .
0 6 - 2 Uбез учета транспортных, таможенных и иных накладных расходовВ терминологии Altera ячейки ПЛИС называются логическими; элементами (logic elements, LE). Каждый логический элемент м и к р о с х е м ыCyclone II включает следующие основные компоненты (см. рис. 5.1) '- таблицу преобразования (look-up table, LUT) с 4 входами, п о з в о л я ю щую реализовать произвольную булеву функцию от четырехapx^y1s/ieii~тов;- программируемый триггер, способный функционировать в р е ж И ^6'Т, JK или RS;- программируемые внутренние связи.При программировании ПЛИС задаются значения таблицы п р е о ^ Р3 3 0"вания, соответствующие каждому из 2 4 наборов значений ее входов. JS/Lynbтиплексоры позволяют использовать либо таблицу преобразования:, -лиоотриггер, либо их последовательное соединение.
Также при n p o r p a i v t ^ ^ P 0 вании задаются внутренние связи между ячейками на кристалле F F ' ^ 3 - ^ --151-Яп+пО ^UcllaZ чUciLci<+щLUTDQoutput^ENA'CLKw i a -•~1U -Р и с . 5.1. Структура логического элемента FPGA Altera Cyclone II (обозначения соответствуют принятым в [20])5.2.ОПИСАНИЕ РЕАЛИЗАЦИИДля оценки возможности аппаратной реализации генераторов на основе клеточных автоматов был разработан ее прототип на базе FPGAAltera Cyclone II. В качестве инструмента разработки использовалась среда Altera Quartus II, а в качестве основного способа описания схемы — языкVHDL [38].Функциональная схема прототипа приведена на рис.
5.2. В его составвходят следующие функциональные блоки:- блок reset_sync, обеспечивающий синхронную подачу асинхронногосигнала сброса r e s e t _ n схемы на все остальные блоки;- блок c o n t r o l l e r , формирующий управляющие сигналы для остальных блоков схемы и управляющий ее функционированием в целом;- блок generator, реализующий комбинированный генератор на основеклеточных автоматов и вырабатывающий псевдослучайную последовательность;- блок ram, реализующий ОЗУ и обеспечивающий промежуточное хранение псевдослучайной последовательности;- блок uart_tx, реализующий универсальный асинхронный передатчики обеспечивающий однонаправленное взаимодействие с компьютеромчерез СОМ-порт в соответствии со стандартом TIA-232 [76] (ранееRS-232).elk•*—freset_syncelkreset n - • -sync_reset_nasync_reset_ncontrollerelkreset_nuart ctsn««[>>-enerator_enatransmitter_enauart_cts mem_wraddr[8..0]uart_rtsmem_rdaddr[8..0]status[1..0]-£>o•status[1..0]uart txS'clkreset_ntxduart txdелtoidlestartgeneratorelkdata[255..0]4'clkq[7..0]data[7..0]data[255..0]reset_nwraddress[8..0]enawrenrdaddress[13..0]- • data[255..0]Рис.
5.2. Функциональная схема прототипа аппаратной реализации генераторов псевдослучайных последовательностей на основе клеточных автоматов (обозначения соответствуют принятым в среде AlteraQuartus II)-153После включения схемы или подачи сигнала сброса r e s e t _ п блокомg e n e r a t o r в течение 512 тактов вырабатывается 128 Кбит псевдослучайной последовательности, которая по 256-разрядной шине записывается впамять ram, а также подается напрямую на выходы d a t a , подключенныек выводам микросхемы FPGA. По окончании выработки последовательности генератор, отключается (блок c o n t r o l l e r формирует на его входе епанеактивный уровень напряжения) и включается передатчик u a r t _ " t x (на.в х о д ; s t a r t подается активный уровень).
Передатчик преобразует д а н н ы е ,полученные из памяти ram по параллельной 8-разрядной шине, в последовательный код, формирует стартовые и стоповые биты; в. соответствии состандартом TIA-232 и осуществляет выдачу информации на выход u a r t _ txdj подключенный к выводу микросхемы FPGА. После завершения пере- ,дачи блок c o n t r o l l e r отключает передатчик u a r t _ t x , и- схема з а в е р ш а е тсвою работу.•• •5.2.1. Б л о к G E N E R A T O R — Р Е А Л И З А Ц И Я Г Е Н Е Р А Т О Р АБлок g e n e r a t o r реализует комбинированный генератор на о с н о в е клеточных автоматов (см.
раздел 3.3).Для описания ячеек памяти клеточных автоматов, регистрасдвигас линейными обратными- связями и локальных функций на языке V H D bиспользуются;массивы значений типа s t d _ l o g i с соответствующей р а з м е р ности:- для: клеточных автоматов С\ и С г-массивы: i _ c a l и 1 _ с а 2 ;- для Р С Л О С —массив i _ l f s r ;- для локальных функций связи клеточных автоматов С\ и С г — м а с с и вы c_funci и c_func2.Окрестности каждой ячейки описываются в. VHDL-коде в в и , д ви н _дексов элементов массивов i _ c a l и i_ca2. Значения указанных э л е м е н т о виспользуются для формирования вектора их значений, который в п о с л е д ствии используется как индекс в массиве значений локальной ф у н к ц и и связи c_funci или c_func2.
Такой подход позволяет строить р е а л и з а ц и и : как.классических, так и неоднородных клеточных автоматов по единомуципу.прин-154Обновление элементов массивов i_cal, i_ca2 и i _ l f s r (т.е. записьновых значений в триггеры) выполняется по восходящему фронту сигнала синхронизации elk и реализуется при помощи комбинационной логики.Значения на выходе data блока generate формируются путем примененияоперации «исключающее или» к соответствующим элементам массивов i_cal и i_ca2. Обновление триггеров и формирование значений на выходеблока осуществляются в течение одного такта, что позволяет достичь высокого быстродействия — 23,8 Гбит/с при частоте 100 МГц (1 Гбит = 2 3 0 бит).Вход епа позволяет управлять работой генератора: при низком уровнесигнала выработка псевдослучайной последовательности не производится,а состояние клеточных автоматов и регистра сдвига не изменяется.Вход reset_n предназначен для сброса ячеек памяти клеточных автоматов и РСЛОС в начальные значения.
Отметим, что активным длясигнала reset_п является низкий уровень напряжения.5.3.ХАРАКТЕРИСТИКИПРОТОТИПОВ АППАРАТНОЙРЕАЛИЗАЦИИВ рамках диссертационной работы разработаны прототипы аппаратной реализации комбинированного генератора псевдослучайных последовательностей TD12 на основе классических клеточных автоматов и комбинированного генератора псевдослучайных последовательностей ND32 наоснове неоднородных клеточных автоматов (см. приложение П.6).
Выборiуказанных генераторов обусловлен хорошими статистическими свойствамиих выходных последовательностей.Начальные значения ячеек РСЛОС в прототипе реализации генератора с целью упрощения реализации являются фиксированными, и описываются набором1100100100001111110110101010001 о"0010000101101000110000100011010(значения приведены в порядке возрастания номера ячейки — от младшегок старшему).Основные характеристики прототипов приведены в табл. 9.
Из табли-Таблица 9.Основные характеристики прототипа аппаратной реализации генераторов псевдослучайныхпоследовательностей на основе клеточных автоматовПараметрГенераторTD12ГенераторND32100 МГц23,8 Гбит/с140 МГц33,4 Гбит/с100 МГц23,8 Гбит/с149 МГц35,5 Гбит/сХарактеристики быстродействияНоминальная тактовая частотаНоминальное быстродействиеМаксимальная тактовая частота1Максимальное быстродействиеИспользование ресурсов FPGAОбщее количество логических элементовКомбинационных без триггераТриггеров без комбинационной частиТриггеров с комбинационной частьюКоличество логических элементов в блоке generatorПо результатам статического анализа временных задержек в среде Altera Quartus II22 004 / 33 126 (66%) 1198 / 33126 (4%)210675610093763721892 / 33 126 (66%) 1084 / 33126 (3%)ел^I-156цы видно, что аппаратная реализация комбинированных генераторов наоснове неоднородных клеточных автоматов является намного более эффективной и требует почти в 20 раз меньших аппаратных ресурсов FPGA,поскольку локальная функция связи от четырех аргументов, используемая в неоднородных клеточных автоматах, может быть реализована припомощи:всего одной таблицы преобразования (LUT).Номинальное быстродействие прототипов составляет 23J8F6HT/C натактовой, частоте 100 МРц.