Проектирование и физическая верификация цифровых устройств на ПЛИС
Предложен программно-аппаратный комплекс для проектирования, моделирования и верификации арифметических устройств на ПЛИС. Пропонується програмно-апаратний комплекс для проектування, моделювання та верифікації арифметичних пристроїв на ПЛІС. The soft-hardware complex to designing, modeling and verif...
Saved in:
| Date: | 2008 |
|---|---|
| Main Authors: | , , |
| Format: | Article |
| Language: | Russian |
| Published: |
Інститут кібернетики ім. В.М. Глушкова НАН України
2008
|
| Online Access: | https://nasplib.isofts.kiev.ua/handle/123456789/6500 |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Journal Title: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Cite this: | Проектирование и физическая верификация цифровых устройств на ПЛИС / В.Н. Опанасенко, А.Н. Лисовый, Е.В. Сорока // Комп’ютерні засоби, мережі та системи. — 2008. — № 7. — С. 76-85. — Бібліогр.: 4 назв. — рос. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraine| _version_ | 1859645348318806016 |
|---|---|
| author | Опанасенко, В.Н. Лисовый, А.Н. Сорока, Е.В. |
| author_facet | Опанасенко, В.Н. Лисовый, А.Н. Сорока, Е.В. |
| citation_txt | Проектирование и физическая верификация цифровых устройств на ПЛИС / В.Н. Опанасенко, А.Н. Лисовый, Е.В. Сорока // Комп’ютерні засоби, мережі та системи. — 2008. — № 7. — С. 76-85. — Бібліогр.: 4 назв. — рос. |
| collection | DSpace DC |
| description | Предложен программно-аппаратный комплекс для проектирования, моделирования и верификации арифметических устройств на ПЛИС.
Пропонується програмно-апаратний комплекс для проектування, моделювання та верифікації арифметичних пристроїв на ПЛІС.
The soft-hardware complex to designing, modeling and verification arithmetic devise based on PLD is offered.
|
| first_indexed | 2025-12-07T13:26:41Z |
| format | Article |
| fulltext |
Комп’ютерні засоби, мережі та системи. 2008, № 7 76
V. Opanasenko, A. Lisovyi,
E. Soroka
THE DESIGNING, MODELING
AND PHYSICAL VE-
RIFICATION OF DIGITAL DE-
VISES
The soft-hardware complex to de-
signing, modeling and verification
arithmetic devise based on PLD is
offered.
Пропонується програмно-апарат-
ний комплекс для проектування,
моделювання та верифікації ари-
фметичних пристроїв на ПЛІС.
Предложен программно-аппарат-
ный комплекс для проектирова-
ния, моделирования и верифика-
ции арифметических устройств
на ПЛИС.
В.Н. Опанасенко,
А.Н. Лисовый, Е.В. Сорока,
2008
УДК 004.315.5
В.Н. ОПАНАСЕНКО, А.Н. ЛИСОВЫЙ,
Е.В. СОРОКА
ПРОЕКТИРОВАНИЕ И
ФИЗИЧЕСКАЯ ВЕРИФИКАЦИЯ
ЦИФРОВЫХ УСТРОЙСТВ НА ПЛИС
Программируемые логические интегральные
схемы (ПЛИС) используются для реализации
цифровых устройств разного уровня сложно-
сти, что обеспечивается большим выбором
кристаллов и наличием мощных програм-
мных средств проектирования, верификации.
Использование готовых технических бло-
ков (IP-Core), моделирующих плат, которые
кроме ПЛИС, содержат модули памяти, ин-
терфейсы и другие компоненты, сокращает
время разработки проектов и улучшает их
качество.
На сегодняшний день фирма Xilinx [1]
предлагает для построения моделирующих
плат ПЛИС семейства Virtex-5, которое име-
ет несколько платформ: LXT, LX, SXT, FXT,
TXT, оптимизированных под разные задачи
или характеристики; SXT оптимизирована
под цифровую обработку сигналов (ЦОС).
Тактовая частота кристаллов этого семейства
достигает 550 МГц, а также предусмотрена
возможность обмена данными через шину
PCI-Express. Одна из современных модели-
рующих плат на базе Virtex-5 плата
BenONE-PCIe фирмы Nallatech [2].
Верификация сложных проектов модели-
рованием, как необходимый этап разработки,
в отдельных случаях является недостаточной
и требует физического моделирования, реа-
лизуемого с помощью целевой системы, ко-
торая служит для верификации и отработки
проектов устройств, взаимодействующих с
реальной окружающей средой.
Предлагается инструмент, позволяющий
проектировщику организовать интерфейс
ПРОЕКТИРОВАНИЕ И ФИЗИЧЕСКАЯ ВЕРИФИКАЦИЯ ЦИФРОВЫХ УСТРОЙСТВ НА ПЛИС
Комп’ютерні засоби, мережі та системи. 2008, № 7 77
моделирующей платы с окружающей средой без привлечения прикладного про-
граммиста, разработчика драйвера, поиска (и анализа) контроллера интерфейса,
а также использовать имеющиеся библиотечные элементы для построения
функциональных устройств. В совокупности все это позволит существенно уп-
ростить процесс физической верификации проектируемых устройств.
Постановка задачи
Целевая система состоит из Host-компьютера с инсталлированной системой
САПР ПЛИС, системы моделирования, библиотеки функциональных компонен-
тов (для проектирования функционального поля (ФП) и драйвера моделирую-
щей платы), библиотеки для работы с драйвером, прикладной программы (для
обмена данными с моделирующей платой). Для гибкости разработки приклад-
ных программ или в случае необходимости другого пользовательского интер-
фейса программы проектировщику предоставляется библиотека для работы с
драйвером (набор функций для работы с устройством). Моделирующая плата
состоит из контроллера шины, ОЗУ, аппаратного блока интерпретирующего
сигналы на контроллере, который читает/записывает данные с шины в регистр
или память и формирует сигнал начала работы “load”. После завершения обра-
ботки формируется “rdy” сигнал готовности результата. Проектировщик конфи-
гурирует только ФП, обмен данными с компьютером осуществляется через блок
регистров. Блок схема такой системы представлена на рис. 1.
В качестве примера построен инструмент на моделирующей плате (МП)
ADS-XLX-SP3-EVL400 [3] фирмы Avnet, которая подключается в слот шины
PCI. Используется кристалл ПЛИС семейства Spartan-3 типа XC3S400-FG456,
асинхронная память ОЗУ (1Mбайт) фирмы Cypress.
Библиотека функциональных блоков постоянно расширяется. В настоящее
время разработаны следующие блоки: сложения/вычитания, умножения, деле-
РИС. 1. Блок-схема компьютерной системы
В.Н. ОПАНАСЕНКО, А.Н. ЛИСОВЫЙ, Е.В. СОРОКА
Комп’ютерні засоби, мережі та системи. 2008, № 7 78
ния для чисел в формате с фиксированной и плавающей точкой, сложе-
ния/вычитания, умножения, деления для комплексных чисел, преобразования
форматов с фиксированной точкой в плавающую и обратно. Некоторые блоки
для одной и той же операции имеют несколько реализаций (функционируют по
разным алгоритмам) и архитектур (конвейер, машина состояний, комбинацион-
ная схема). Все блоки формируют флаги специальных значений, которые имеют
место в процессе вычислений, согласно стандартам (для плавающей точки
IEEE-754).
Деление по методу гарвардской итерации
Метод гарвардской итерации – один из наиболее эффективных алго-
ритмов [4]. Этот алгоритм часто используется для реализации на аппаратных
устройствах, так как его можно разбить на более простые составляющие части,
что позволяет реализовать их отдельно и соединить в одно целое. Данный алго-
ритм может быть использован для нахождения квадратного корня. Универсаль-
ность метода в том, что при реализации на аппаратном и программном уровнях
используется одинаковое количество итераций.
Метод гарвардской итерации предназначен в основном для деления чисел с
плавающей точкой. В данной работе этот метод модифицируется и используется
для деления целых чисел.
Алгоритм обеспечивает квадратичную сходимость результата. На каждой
итерации множитель R одновременно перемножается на делимое и делитель.
В результате этих действий делитель квадратично сходится к единице, а дели-
мое к результату.
Так как имеет место квадратичная сходимость и каждая итерация удваивает
количество единиц после запятой, то новый делитель будет иметь вид 0,11ххх…
В данном алгоритме умножение происходит до тех пор, пока делитель не будет
равен единице (0,1111…111).
Алгоритм деления по методу гарвардской итерации:
1) нормализация делителя;
2) определение первого множителя R;
3) умножение Y на R, вычисление Y1;
4) умножение X на R, вычисление X1;
5) вычисление X и Y из данных, полученных в п. 3) и п. 4);
6) переход к п. 3).
Структурная схема блока деления представлена на рис. 2.
Блоки “fd” – регистры для хранения входных операндов и сигнала загрузки
“load”. В “conv_idle” осуществляется анализ входных операндов на равенство
машинному нулю. В “conv_s1” – поиск старшей единицы в делителе и его
«нормализация» (сдвиг влево до первой «1»). Блоки “conv_s2_alg”,
“conv_s3_alg” – алгоритм по методу гарвардской итерации, “conv_last” – форми-
рование результата.
ПРОЕКТИРОВАНИЕ И ФИЗИЧЕСКАЯ ВЕРИФИКАЦИЯ ЦИФРОВЫХ УСТРОЙСТВ НА ПЛИС
Комп’ютерні засоби, мережі та системи. 2008, № 7 79
Р
И
С
.
2
.
С
тр
у
к
ту
р
н
ая
с
х
ем
а
б
л
о
к
а
д
ел
ен
и
я
В.Н. ОПАНАСЕНКО, А.Н. ЛИСОВЫЙ, Е.В. СОРОКА
Комп’ютерні засоби, мережі та системи. 2008, № 7 80
Алгоритм по методу гарвардской итерации в блоках “conv_s2_alg” и
“conv_s3_alg” описывается процессом на VHDL [4]:
Отличие блока “conv_s3_alg” от “conv_s2_alg” в том, что на выходные реги-
стры блока выдается вектор М3 (с которого и формируется результат) вместо
М1 и М2. Для формирования 16-разрядного результата необходимо 4 ступени из
блоков, описывающих алгоритм по методу гарвардской итерации.
Разработанный модуль на кристалле xa3s1000fgg456-4 может функциониро-
вать с частотой до 60 MHz и использует 4 % (375 Slices) кристалла.
Арифметика с комплексными числами
Комплексные числа используются при математическом описании многих
задач физики и техники (в гидродинамике, аэромеханике, электротехнике, атом-
ной физике и т. д.). Основные разделы классического математического анализа
приобретают полную ясность и законченность только при использовании ком-
плексных чисел, чем обусловливается центральное место, занимаемое теорией
функций комплексного переменного. Решение широкого круга задач требует
использования арифметических операций над комплексными числами, для ап-
паратной реализации которых в настоящее время используются программируе-
мые логические интегральные схемы (ПЛИС) типа FPGA (Field Programmable
Gate Array), которые позволяют реализовать не только алгоритм обработки дан-
ных, но и структуру устройства, выполнить заданный алгоритм.
Листинг
s2:process(clk,loadi)
variable R : std_logic_vector (17 downto 0);
variable M3 : std_logic_vector (33 downto 0);
variable M3i : std_logic_vector (63 downto 0);
begin
if (clk'event and clk = '1') then
FLAG<=FLAGi; --error
sine<=sinei;
load<=loadi;
n<=ni;
if loadi='1' then
if FLAGi='0' then
R:="100000000000000000"-("00"&b); --R=2-y 18bit
M3:=R(16 downto 0)*('0'&b); --M3=R*y 34bit
M3i:=a*("000000000000000"&R(16 downto 0)); --M3i=R*x 64bit
M1<=M3i(47 downto 16);
M2<=M3(31 downto 16);
end if;
end if;
end if;
end process;
ПРОЕКТИРОВАНИЕ И ФИЗИЧЕСКАЯ ВЕРИФИКАЦИЯ ЦИФРОВЫХ УСТРОЙСТВ НА ПЛИС
Комп’ютерні засоби, мережі та системи. 2008, № 7 81
Комплексными числами будем называть пары ),( yx вещественных (дейст-
вительных) чисел x и y, для которых правила выполнения арифметических опе-
раций сложения, умножения и деления определены следующим образом:
),( 212121 yyxxzz , ),( 1221212121 yxyxyyxxzz ,
2
2
2
2
2112
2
2
2
2
2121
2
1 ,
yx
yxyx
yx
yyxx
z
z
.
На рис. 3 показана блок-схема модуля сложения/вычитания двух комплекс-
ных чисел с одновременным получением результата действительной и мнимой
частей на выходах. Блок LUT (Look-Up-Table) является комбинационным уст-
ройством, выполняющим операцию сложения или вычитания. Для суммирова-
ния (вычитания) используются функциональные генераторы, образующие раз-
ряды суммируемых чисел и располагаемые в одном ряду матрицы кристалла.
Эти разряды соединяются между собой через логику ускоренного переноса.
Цепи синхронизации, связанные с синхровходами входных и выходных ре-
гистров (Rg), на схеме условно не показаны. Состояние „0‟ сигнала a_s соответ-
ствует выполнению операции сложения, состояние „1‟ – операции вычитания.
В таблице приведены аппаратные (количество Slices, триггеров (FF) и LUT)
и временные оценки модуля.
ТАБЛИЦА. Аппаратные и временные оценки модуля сложение/вычитание
Тип кристалла Разрядность
модуля
Slices FF LUT Частота,
МГц
XC3S400-5FG456
16 48 96 32 230
32 96 192 64 192
XC5VLX30-3FF324
16 24 96 32 525
32 56 192 64 455
РИС. 3. Блок-схема модуля сложения/вычитания двух комплексных чисел
В.Н. ОПАНАСЕНКО, А.Н. ЛИСОВЫЙ, Е.В. СОРОКА
Комп’ютерні засоби, мережі та системи. 2008, № 7 82
Блок-схема модуля умножения двух комплексных чисел с одновременным
получением результата действительной и мнимой частей на двух выходах пред-
ставлена на рис. 4.
Операция умножения в проекте может быть выполнена путем создания со-
ответствующего модуля различными способами: описанием поведения или
структуры модуля на языке VHDL, включением в схему элемента умножения из
библиотеки при работе со схематическим редактором, формированием IP-Core
с помощью средства Core
Generator.
Кроме модулей умно-
жения, создаваемых с ис-
пользованием сумматоров на
основе LUT, в кристаллах
серии Spartan-3 имеются
встроенные умножители
Mult18x18, а в кристаллах
серии Virtex-5 – специали-
зированные секции DSP48E,
реализующие выполнение
умножения 25x18 бит, а
также другие функции, тре-
буемые при цифровой обра-
ботке сигналов.
При использовании DSP48E в 16-разрядном модуле все операции выполня-
ются внутри этих элементов, которые программируются на выполнение умно-
жения с комплексными числами. На рис. 5 показана блок-схема модуля на базе
четырех DSP48E, реализующая операцию умножения.
При использовании DSP48E в 32-разрядном модуле внутри этих элементов
выполняются операции запоминания и умножения входных сигналов, операции
сложения (вычитания) и запоминания выходных сигналов осуществляются эле-
ментами LUT и FF кристалла.
Если умножение выполняется с двумя 32-разрядными числами со знаком,
представленными в дополнительных кодах, то для выполнения одной операции
умножения требуется 4 умножителя (Mult18x18 или DSP48E), два сумматора и
дополнительная логика, обеспечивающая масштабирование частичных произве-
дений и сумм. Таким образом, общее число умножителей, реализующих опера-
цию умножения с 32-разрядными числами, составляет 16.
Операция деления может быть выполнена IP-модулем, сформированным с
помощью инструментальных средств Core Generator, или модулем, создаваемым
компилятором Xilinx Synthesis Technology (XST) на основе поведенческого
HDL-описания. IP-модуль деления с фиксированной точкой выполняет деление
в двух режимах: с целым остатком и дробным остатком. Делимое в режиме де-
ления с целым остатком равно сумме частного, умноженного на делитель, и ос-
татка. Результат (частное и остаток) представлены на двух разных выходах
РИС. 4. Блок-схема модуля умножения двух
комплексных чисел
ПРОЕКТИРОВАНИЕ И ФИЗИЧЕСКАЯ ВЕРИФИКАЦИЯ ЦИФРОВЫХ УСТРОЙСТВ НА ПЛИС
Комп’ютерні засоби, мережі та системи. 2008, № 7 83
целыми числами. В режиме деления с дробным остатком последний равен част-
ному от деления целого остатка на делитель и представлен на выходе целым
числом в виде: (IntRmd/Divisor)×2F для чисел без знака и (IntRmd/Divisor)×2(F-1)
для чисел со знаком, где F – разрядность двоичного кода остатка (Fmax = 32).
IP-модуль использует конвейерный принцип вычисления и позволяет выбрать
количество синхросигналов (Clk), требуемых для выполнения одной операции
деления из ряда 1, 2, 4, 8. Задержка появления результата на выходе от начала
загрузки операндов определяется произведением TClk×L, где L число импуль-
сов Clk, сформированных за этот отрезок времени. Величина такой задержки
зависит от разрядности делимого (М), типа модуля, числа синхросигналов, тре-
буемых для выполнения одной операции, разрядности двоичного кода остатка.
Временная диаграмма работы модуля деления изображена на рис. 6.
РИС. 6. Временная диаграмма работы модуля деления двух чисел со знаком
РИС. 5. Блок-схема модуля умножения на базе 4-х DSP48E
В.Н. ОПАНАСЕНКО, А.Н. ЛИСОВЫЙ, Е.В. СОРОКА
Комп’ютерні засоби, мережі та системи. 2008, № 7 84
Блок схема модуля де-
ления изображена на рис.7.
Модуль содержит 16-разряд-
ные умножители с 32-разряд-
ными выходами, 32-разряд-
ные сумматоры и делители.
На рис. 8 показана струк-
турная схема модуля умно-
жения двух комплексных
чисел в формате с плаваю-
щей точкой с одновремен-
ным получением результата
действительной и мнимой
частей на двух выходах. В
модуле “keml_flag” осущест-
вляется анализ и генерирует-
ся общий флаг для действи-
тельной и мнимой частей
результата. Блок “add_sub_fp – сложение/вычитание в формате с плавающей
точкой имеет конвейерную архитектуру и состоит из 6 ступеней, “keml_flag” –
комбинационная схема, поэтому модуль можно использовать как конвейер.
РИС. 7. Блок-схема модуля деления двух
комплексных чисел
РИС. 8. Структурная схема модуля умножения двух комплексных чисел
ПРОЕКТИРОВАНИЕ И ФИЗИЧЕСКАЯ ВЕРИФИКАЦИЯ ЦИФРОВЫХ УСТРОЙСТВ НА ПЛИС
Комп’ютерні засоби, мережі та системи. 2008, № 7 85
Блок “Mult_fp_new” – комбинационная схема с регистрами на выходе, осу-
ществляет перемножение чисел в формате с плавающей точкой; “Compmult” –
осуществляет анализ регистров флагов блоков “Mult_fp_new” и генерирует сиг-
нал загрузки в блок “add_sub_fp”. Модуль является конвейером с 7 ступенями.
При реализации рассмотренных блоков в кристалле XC3S400-FG456 были
получены следующие оценки: модуль сложения/вычитания задействует 974
слайсов (27 % от общего числа) – 6-ступенчатый конвейер с периодом синхро-
сигнала 13,3 нс; модуль умножения задействует 1220 слайсов (34 % от общего
числа) – 7-ступенчатый конвейер с периодом синхросигнала 26,37 нс.
Выводы. Синтезированные модули верифицированы методом моделирова-
ния в системе ModelSim Xilinx Edition MXE III с помощью стенда для провер-
ки, что подтверждает правильность их функционирования.
Полученные результаты будут использованы при разработке сложных вы-
числительных устройств с использованием типовых технических решений
(в виде библиотечных элементов IP-Core) функциональных блоков в качестве
составных компонентов для реализации таких устройств на одном кристалле.
1. Xilinx ISE 9 Software Manuals / Available at http://www.xilinx.com.
2. Virtex-5 LX Platform Overview / Available at http://www.xilinx.com.
3. Семенец В.В., Хаханова И.В., Хаханов В.И. Проектирование цифровых систем с использо-
ванием языка VHDL. – Харьков: ХНУРЕ, 2003. – 492 с.
4. Anderson S.F., Earle J.G., Goldschmidt R.F., Power D.M. The IBM system / 360 model 91:
floating point execution unit // IBM J. Res. And developm. – 1967. – 11, N 1. – P. 3453.
Получено 01.04.2008
http://www.xilinx.com/
http://www.xilinx.com/
|
| id | nasplib_isofts_kiev_ua-123456789-6500 |
| institution | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| issn | 1817-9908 |
| language | Russian |
| last_indexed | 2025-12-07T13:26:41Z |
| publishDate | 2008 |
| publisher | Інститут кібернетики ім. В.М. Глушкова НАН України |
| record_format | dspace |
| spelling | Опанасенко, В.Н. Лисовый, А.Н. Сорока, Е.В. 2010-03-04T16:07:26Z 2010-03-04T16:07:26Z 2008 Проектирование и физическая верификация цифровых устройств на ПЛИС / В.Н. Опанасенко, А.Н. Лисовый, Е.В. Сорока // Комп’ютерні засоби, мережі та системи. — 2008. — № 7. — С. 76-85. — Бібліогр.: 4 назв. — рос. 1817-9908 https://nasplib.isofts.kiev.ua/handle/123456789/6500 004.315.5 Предложен программно-аппаратный комплекс для проектирования, моделирования и верификации арифметических устройств на ПЛИС. Пропонується програмно-апаратний комплекс для проектування, моделювання та верифікації арифметичних пристроїв на ПЛІС. The soft-hardware complex to designing, modeling and verification arithmetic devise based on PLD is offered. ru Інститут кібернетики ім. В.М. Глушкова НАН України Проектирование и физическая верификация цифровых устройств на ПЛИС The designing, modeling and physical verification of digital devises Article published earlier |
| spellingShingle | Проектирование и физическая верификация цифровых устройств на ПЛИС Опанасенко, В.Н. Лисовый, А.Н. Сорока, Е.В. |
| title | Проектирование и физическая верификация цифровых устройств на ПЛИС |
| title_alt | The designing, modeling and physical verification of digital devises |
| title_full | Проектирование и физическая верификация цифровых устройств на ПЛИС |
| title_fullStr | Проектирование и физическая верификация цифровых устройств на ПЛИС |
| title_full_unstemmed | Проектирование и физическая верификация цифровых устройств на ПЛИС |
| title_short | Проектирование и физическая верификация цифровых устройств на ПЛИС |
| title_sort | проектирование и физическая верификация цифровых устройств на плис |
| url | https://nasplib.isofts.kiev.ua/handle/123456789/6500 |
| work_keys_str_mv | AT opanasenkovn proektirovanieifizičeskaâverifikaciâcifrovyhustroistvnaplis AT lisovyian proektirovanieifizičeskaâverifikaciâcifrovyhustroistvnaplis AT sorokaev proektirovanieifizičeskaâverifikaciâcifrovyhustroistvnaplis AT opanasenkovn thedesigningmodelingandphysicalverificationofdigitaldevises AT lisovyian thedesigningmodelingandphysicalverificationofdigitaldevises AT sorokaev thedesigningmodelingandphysicalverificationofdigitaldevises |