Особенности языка VHDL для программирования кристаллов ПЛИС
Рассмотрены особенности языка описания аппаратных средств для программирования структуры пре-
 образователей чисел с плавающей точкой в числа с фиксированной точкой и обратно. Алгоритмы
 представлены путем поведенческого описания на языке VHDL. Рассмотрены различные конструкции&#...
Gespeichert in:
| Datum: | 2006 |
|---|---|
| Hauptverfasser: | , |
| Format: | Artikel |
| Sprache: | Russisch |
| Veröffentlicht: |
Інститут програмних систем НАН України
2006
|
| Schlagworte: | |
| Online Zugang: | https://nasplib.isofts.kiev.ua/handle/123456789/2319 |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Zitieren: | Особенности языка VHDL для программирования кристаллов ПЛИС / В.Н. Опанасенко, А.Н. Лисовый // Проблеми програмування. — 2006. — N 1. — С. 70-78. — Бібліогр.: 3 назв. — рос. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraine| _version_ | 1860208539167883264 |
|---|---|
| author | Опанасенко, В.Н. Лисовый, А.Н. |
| author_facet | Опанасенко, В.Н. Лисовый, А.Н. |
| citation_txt | Особенности языка VHDL для программирования кристаллов ПЛИС / В.Н. Опанасенко, А.Н. Лисовый // Проблеми програмування. — 2006. — N 1. — С. 70-78. — Бібліогр.: 3 назв. — рос. |
| collection | DSpace DC |
| description | Рассмотрены особенности языка описания аппаратных средств для программирования структуры пре-
образователей чисел с плавающей точкой в числа с фиксированной точкой и обратно. Алгоритмы
представлены путем поведенческого описания на языке VHDL. Рассмотрены различные конструкции
для организации функции сдвига битов регистра и функции доступа к отдельным битам регистра, ко-
торые являются базовыми в преобразователях. Верификация преобразователей реализована методом
моделирования в системе ModelSim Xilinx Edition - MXE II.
Розглянуто особливості мови опису апаратних засобів для програмування структури перетворювачів чисел із плаваючою точкою в числа з фіксованою точкою й зворотним перетворенням. Алгоритми реалізовано шляхом поведінкового опису мовою VHDL. Розглянуто різні конструкції для організації функції зрушення бітів регістра й функції доступу до окремих бітів регістра, які є базовими в перетворювачах. Верифікація перетворювачів реалізована методом моделювання в системі ModelSim Xilinx Edition - MXE II.
Features of the Hardware Description Language (HDL) for programming the structure of the converter of number with a floating point into number with a fixing point and inversing convert are considered. Algorithms are implemented by means behavorial description of the VHDL Language. Different construction for forming of the function of shifting bites register and function of access to individual bites of register is offered.
|
| first_indexed | 2025-12-07T18:13:20Z |
| format | Article |
| fulltext |
Інструментальні засоби та середовища програмування
© В.Н. Опанасенко, А.Н. Лисовый, 2006
70 ISSN 1727-4907. Проблеми програмування. 2006. № 1
УДК 004.274
В.Н. Опанасенко, А.Н. Лисовый
ОСОБЕННОСТИ ЯЗЫКА VHDL ДЛЯ ПРОГРАММИРОВАНИЯ
КРИСТАЛЛОВ ПЛИС
Рассмотрены особенности языка описания аппаратных средств для программирования структуры пре-
образователей чисел с плавающей точкой в числа с фиксированной точкой и обратно. Алгоритмы
представлены путем поведенческого описания на языке VHDL. Рассмотрены различные конструкции
для организации функции сдвига битов регистра и функции доступа к отдельным битам регистра, ко-
торые являются базовыми в преобразователях. Верификация преобразователей реализована методом
моделирования в системе ModelSim Xilinx Edition - MXE II.
Введение
Решение широкого круга задач тре-
бует использования представления чисел в
формате с плавающей точкой (ФПТ) вместо
формата с фиксированной точкой (ФФТ).
Так как основным форматом представления
чисел в современных компьютерах является
ФФТ, то полный набор операций для чисел
ФПТ содержит, кроме арифметических,
операции по преобразованию форматов.
Функциональные IP-блоки ФПТ находят
широкое применение при построении мате-
матических сопроцессоров, DSP-процес-
соров, встроенных арифметических сопро-
цессоров. В связи с этим рядом фирм раз-
рабатываются собственные IP-блоки для
обработки операндов ФПТ (согласно стан-
дарту IEEE-754 [1]) для кристаллов про-
граммируемых логических интегральных
схем (ПЛИС) FPGA (Field Programmable
Gate Array) [2], которые позволят про-
граммировать не только алгоритм обра-
ботки данных, но также структуру устрой-
ства, реализующего заданный алгоритм. Та-
кие IP-блоки можно легко настраивать в со-
ответствии с требованиями нового проекта,
и они, как правило, независимы от техноло-
гии изготовления ПЛИС. Наиболее важным
свойством готового технического решения
является его гарантированное воспроизве-
дение в новом проекте в соответствии со
спецификацией, определенной разработчи-
ком этого решения и уточненной разработ-
чиком проекта. Следует отметить, что опи-
сание модели с помощью HDL-технологии
(Hardware Description Language – язык опи-
сания аппаратных средств) позволяет не
только сделать ее перенастраиваемой и не-
зависимой от технологии, но и выполнять ее
моделирование и синтез с использованием
инструментальных средств различных фирм
[3]. Благодаря сетевым технологиям проек-
тировщик в соответствии со сформулиро-
ванными техническими требованиями по
сети Internet может получить оптимизиро-
ванное логическое ядро и включить его в
свой проект.
Проектирование и реализация циф-
ровых устройств на современной элемент-
ной базе может быть выполнено на ПЛИС.
Одним из подходов к проектированию уст-
ройства является использование HDL-тех-
нологии, которая представляет собой ком-
плекс инструментальных средств САПР и
методологию проектирования, ориентиро-
ванных на описание проекта с помощью
языка HDL (VHDL или Verilog). Основными
предпосылками для внедрения в практику
HDL-технологии являются: внедрение про-
мышленных стандартов, обеспечивающих
эффективное и оптимальное проектиро-
вание средств электроники и вычислите-
льной техники; увеличение логической ем-
кости элементной базы (например, кри-
сталлы Virtex-4 содержат до 10 млн логиче-
ских вентилей или 125 тыс. логических яче-
ек); развитие инструментальных средств
САПР и в первую очередь средств автома-
тического синтеза и верификации. Такие
возможности HDL-технологии, как иерар-
хическое проектирование, переносимость
библиотек, платформонезависимость, по-
зволяют использовать имеющиеся IP-блоки
в качестве макроэлементов для разработки
новых технических решений в виде
IP-блоков (soft cores).
Інструментальні засоби та середовища програмування
71
Если до недавнего времени основ-
ным способом описания проектов являлся
графический синтез схемы устройства, вы-
полняемый схематическим редактором, то в
последнее время предпочтение отдается
текстовому описанию, подобному тексту
программы. Этим достигается компактность
и более строгая формализация описания в
соответствии со стандартом используемого
языка.
Описание в виде текста на
HDL-языке регламентируется соответст-
вующими стандартами. Следует отметить,
что синтаксически правильное описание на
HDL-языке не всегда может быть синтези-
ровано, т.е. представлено в виде аппаратной
модели, полученной после компиляции из
HDL-кода. Так, например, не могут быть
синтезированы сигналы и переменные типа
с плавающей точкой, операторы Wait с па-
раметром задержки и т.д. Перечень несин-
тезируемых элементов во многом зависит от
конкретного средства синтеза и типа вы-
бранного кристалла. Некоторые конструк-
ции могут синтезироваться в различных
проектах по разному, к примеру, конструк-
ция For может синтезироваться как после-
довательная комбинационная схема (итера-
ции выполняются последовательно с помо-
щью одного синхросигнала) или как схема,
каждая итерация цикла будет выполняться
по новому синхросигналу.
Постановка задачи
Рассмотрим описание структур, реа-
лизующих преобразование чисел одинарной
точности ФПТ в формат ФФТ и обратно по-
средством языка VHDL. Операнд одинар-
ной точности ФПТ, согласно стандарту
IEEE-754, представлен 32 битами: 1 бит для
знака, 8 бит для порядка и 23 бита для дро-
би мантиссы. Данный формат предполагает
наличие «скрытого» старшего бита, что по-
зволяет представить истинное значение
мантиссы на самом деле 24 битами.
Операнд ФПТ представляется выра-
жением
MA ES .12)1( 127 ××−= − ,
где S – знак числа; Е – показатель порядка
(смещенный на значение b=127); 1.М – нор-
мализованная мантисса.
Формат операнда и диапазон допус-
тимых значений представлен на рис. 1.
Операнд ФФТ представлен 32 би-
тами (1 бит для знака и 31 бит для модуля
целого числа) и определяется выражением
N)(A S ×−= 1 ,
где: S – знак числа; N – значение целого
числа.
Формат операнда и диапазон допус-
тимых значений представлен на рис. 2.
Диапазон допустимых значений опе-
ранда ФФТ меньше диапазона допустимых
значений операнда ФПТ.
Преобразователь чисел ФПТ в ФФТ
должен генерировать флаг ошибки при вы-
ходе за диапазон допустимых значений опе-
ранда ФФТ, а при преобразовании числа
Формат операнда с плавающей точкой Диапазон допустимых значений операнда
Рис. 1
Формат операнда с фиксированной
точкой
Диапазон допустимых значений операнда
Рис. 2
Інструментальні засоби та середовища програмування
72
ФФТ в ФПТ может наблюдаться некоторая
погрешность, так как мантисса числа ФПТ
ограничена 24 битами, а модуль числа ФФТ
содержит 31 бит.
Описание преобразователей на языке
VHDL
Числа ФФТ и ФПТ, рассматриваются
как 32-разрядные бит–векторы. В качестве
входного операнда используется бит–вектор
а, в качестве выходного – b. Вводятся до-
полнительные переменные: a1, a_inv1,
a_inv, ind, i, b_x, count, M_i, M_u, которые
относятся к разным типам данных и имеют
определенные назначение.
Преобразование чисел ФФТ в ФПТ.
Рассмотрим реализацию преобразователя
ФП1, который основан на базовых конст-
рукциях языка VHDL.
Процесс описания преобразователя
состоит из 5 этапов.
1. С помощью конструкции if фор-
мируется дополнительная переменная а1, в
которой число представлено в прямом коде.
2. С помощью конструкции For оп-
ределяется индекс бита, в котором первый
раз встречается единица при просмотре а1
слева направо (от старших значащих бит к
младшим).
3. С помощью трех конструкций if
формируется мантисса числа ФПТ.
4. Определяется значение порядка
числа ФПТ.
5. Значения знакового бита числа
ФФТ записываются в знаковый бит числа
ФПТ.
Как было описано выше, не все коды,
полученные в результате описания, могут
быть синтезированы в системе САПР
ПЛИС. Например, конструкции, в которых
в качестве индексов при доступе к бит–век-
тору, использовались переменные, не по-
b(31 downto 0)<="00000000000000000000000000000000";
if a(30 downto 0)="0000000000000000000000000000000" then
a1(30 downto 0):=a(30 downto 0);
else
if a(31)='0' then
a1(30 downto 0):=a(30 downto 0);
else
a_inv1:=conv_integer(a(30 downto 0))-1;
a_inv(30 downto 0):=conv_std_logic_vector(a_inv1,31);
a1(30 downto 0):=not(a_inv(30 downto 0));
end if;
end if;
ind:=31;
for i in 30 downto 0 loop
if a1(i)='1' then
ind:=i;
if ind<24 and ind>0 then
b(22 downto 23-ind)<=a1(ind-1 downto 0);
end if;
if ind>23 then
b(22 downto 0)<=a1(ind-1 downto ind-23);
end if;
b(30 downto 23)<=conv_std_logic_vector(127+ind,8);
exit;
end if;
end loop;
b(31)<=a(31);
rdy<='0';
Інструментальні засоби та середовища програмування
73
зволяют проходить этап синтеза в ранних
версиях САПР Xilinx ISE Foundation.
Преобразователь ФФТ в ФПТ может
быть модифицирован, этап, в котором фор-
мируется мантисса числа ФПТ, может быть
вынесен из конструкции For, данный под-
ход реализован в преобразователе ФП2.
Одним из способов организации уст-
ройства может быть использование конст-
рукции Case (машины состояний). Принцип
конструкции состоит в том, что в каждом
состоянии выполняются заданные операции
и определяется переход к следующему со-
стоянию. Операции в каждом состоянии
выполняются по новому синхросигналу.
Данный подход используется в том случае,
когда требуется уменьшить длительность
синхросигнала, что приводит к увеличению
аппаратных затрат. В конструкции Case
легко организовать любые циклы, в том
числе с переменным количеством итераций,
что не всегда возможно при использовании
конструкции For, которая позволяет ис-
пользовать ограниченное количество итера-
ций.
На основе указанных свойств рас-
смотрим реализацию преобразователя ФП3.
Преобразователь представляет машину со-
стояний, имеющую семь состояний, связан-
ных между собой условными переходами.
Переход в первое состояние происходит с
помощью оператора присвоения “state
<=S1;” Последующие переходы осуществ-
ляются после выполнения операции данного
состояния. В последнем состоянии (седь-
мом) выполняются операции и устройство
переходит в ожидание нового сигнала за-
грузки “load=’1’”.
Преобразование чисел ФПТ в ФФТ.
Рассмотрим реализацию преобразователя
ПФ2. Он генерирует флаг ошибки “er-
ror_x<='1'” при выходе за диапазон допус-
тимых значений операнда ФФТ.
Процесс описания преобразователя
состоит из 7 этапов.
1. С помощью двух конструкций if
отбираются все числа ФПТ, значение по-
рядка которых не входит в допустимый
диапазон 157127 ≤≤ E . Числа ФПТ, значе-
ние порядка которых больше 157, выходят
за диапазон допустимых значений числа
ФФТ, а числа, степень порядка которых
меньше 127, при преобразовании в ФФТ
представляются нулевым значением.
2. Значения знакового бита числа
ФПТ записывается в знаковый бит числа
ФФТ.
3. С помощью операции присвоения
в дополнительную переменную b_x записы-
вается значение мантиссы числа ФПТ вме-
сте со скрытым битом.
4. Значение ind – число, которое оп-
ределяет количество сдвигов вправо (в сто-
рону младших значащих бит) дополнитель-
ной переменной.
5. Выполняется сдвиг вправо с по-
мощью SHR-функции, которая входит в па-
кет STD_LOGIC_UNSIGNED.
6. Анализируется знак дополнитель-
ной переменной и осуществляется ее пере-
вод в дополнительный код.
7. Значение дополнительной пере-
менной присваивается выходному регистру
в качестве результата.
Альтернативой функции сдвига SHR
может быть анализ переменной ind и пере-
запись части бит–вектора входного опе-
ранда а в бит–вектор выходного операнда b.
Данный подход, реализованный в преобра-
зователе ПФ1, характеризуется использова-
нием переменных в качестве индексов бит–
вектора и представляется только послед-
ними версиями САПР Xilinx ISE Foundation.
Преобразователь чисел ФПТ в ФФТ
может быть представлен как машина,
имеющая четыре состояния. Этот подход,
реализован в преобразователе ПФ3.
Вход в первое состояние осуществ-
ляется по сигналу загрузки “load=’1’”. Дан-
ное состояние реализует анализ входного
операнда в ФПТ: если операнд может быть
представлен в формате с ФФТ, то осущест-
вляется переход в состояние 2, в противном
случае – переход в состояние 3. В состоянии
2 непосредственно реализуется преобразо-
вание операндов.
Аппаратные (в пересчете на количе-
ство слайсов, которые определяют логиче-
скую сложность кристалла ПЛИС) и вре-
менные оценки для предложенных реализа-
ций модулей преобразователей форматов
представлены в табл. 1.
Для варианта ФП3 время преобразо-
вания (Tmin = 20 нс) имеет место только в
Інструментальні засоби та середовища програмування
74
if load='1' then
rdy<='1';
i:=0;
state <= S1;
end if;
case state is
when S1 =>
if a(30 downto 0)="0000000000000000000000000000000" then
state <= S7;
else
b(30 downto 0)<="0000000000000000000000000000000";
if a(31)='0' then a1(30 downto 0):=a(30 downto 0);
else a_inv1:=conv_integer(a(30 downto 0))-1;
a_inv(30 downto 0):=conv_std_logic_vector(a_inv1,31);
a1(30 downto 0):=not(a_inv(30 downto 0));
end if;
state <= S2;
end if;
when S2 =>
for ind in 30 downto 0 loop
if a1(ind)='1' then
i:=ind;
state <= S3;
exit;
end if;
end loop;
when S3 =>
if i=0 then
b(0)<='1';
state <= S6;
else state <= S4;
end if;
when S4 =>
if i<24 then
b(22 downto 23-i)<=a1(i-1 downto 0);
state <= S6;
else
state <= S5;
end if;
when S5 =>
b(22 downto 0)<=a1(i-1 downto i-23);
state <= S6;
when S6 =>
b(30 downto 23)<=conv_std_logic_vector(127+i,8);
b(31)<=a(31);
rdy<='0';
when S7 =>
b(31 downto 0)<=a(31 downto 0);
rdy<='0';
when others =>
null;
end case;
Інструментальні засоби та середовища програмування
75
том случае, если значение исходного опе-
ранда представляется нулевым значением, т.
е. вероятность этого случая есть ( 3121 ), во
всех остальных случаях время преобразова-
ния определяется величиной Tmax = 60 нс.
Для варианта ПФ3 время преобразо-
вания (Tmin = 16 нс) имеет место только в
том случае, если значение степени порядка
не входит в диапазон представления резуль-
тирующего операнда ФФТ, т. е. вероятность
этого случая есть ( )122(1 58 +− ), во всех
остальных случаях время преобразования
определяется величиной Tmax = 24 нс.
Верификация преобразователей
Верификация предложенных струк-
тур преобразователей осуществлена мето-
дом моделирования в системе ModelSim
Xilinx Edition - MXE II. В табл. 2
представлены результаты верификации
процесса преобразования массива входных
операндов ФФТ в ФПТ, а также, для
большей наглядности, десятичные значения
этих чисел.
В табл. 3 приведены результаты
верификации процесса преобразования
массива входных операндов ФПТ в ФФТ, а
также десятичные значения этих чисел и
значения флага ‘Ошибка’ (Er). Этот флаг
принимает значение “1” (когда результат
выходит за диапазон представления допус-
тимых значений операнда в ФФТ) и значе-
ние “0” (результат входит в диапазон пред-
ставления допустимых значений операнда в
ФФТ).
Задача выбора оптимальной структуры
В результате синтеза имеем не-
сколько структурных реализаций алгоритма
преобразования форматов ФП1, ФП2, ФП3
для преобразования ФФТ в ФПТ и ПФ1,
ПФ2, ПФ3 для обратного преобразования
форматов. Решение задачи выбора опти-
мальной структурной ПЛИС–реализации
алгоритма не может быть определено стро-
rdy<='1';
error_x<='0';
b_x(31 downto 0):="00000000000000000000000000000000";
if a(30 downto 23)>="01111111" then
if a(30 downto 23)>"10011101" then
error_x<='1';
else
b_x(31):=a(31);
b_x(30 downto 7):='1'&a(22 downto 0);
ind:=157-conv_integer(a(30 downto 23));
count:=conv_unsigned(ind,5);
M_i:=conv_integer(b_x(30 downto 0));
M_u:=conv_unsigned(M_i,31);
M_u:= SHR(M_u,count);
b_x(30 downto 0):=conv_std_logic_vector(M_u,31);
if b_x(31)='1' then
b_inv(30 downto 0):=not(b_x(30 downto 0));
b_inv1:=conv_integer(b_inv(30 downto 0))+1;
b_x(30 downto 0):=conv_std_logic_vector(b_inv1,31);
end if;
end if;
else
error_x<='1';
end if;
b(31 downto 0)<=b_x(31 downto 0);
rdy<='0';
Інструментальні засоби та середовища програмування
76
гими аналитическими целевыми функ-
циями. Кроме того, необходимо учитывать
наличие довольно мощного ряда кристаллов
ПЛИС, каждая из имеющихся серий пред-
ставлена множеством кристаллов, отли-
чающихся быстродействием, потребляемой
мощностью, логической емкостью, типом
корпуса, количеством выводов и другими
важными параметрами.
Целевая функция в аналитическом
виде может быть найдена одним из прибли-
женных методов. Наиболее распространен-
Таблица 1. Аппаратные и временные оценки модулей преобразователей форматов
Время реализации
операции преобразования
форматов (нс)
Тип модуля Количество слайсов Период
синхросигналов
Clk (нс)
Tmin Tmax
ФП1 396 19 19 19
ФП2 290 23 23 23
ФП3 390 14 2*10=20 6*10=60
ПФ1 248 16 16 16
ПФ2 109 14 14 14
ПФ3 153 14 2*8=16 3*8=24
if load='1' then
rdy<='1';
error_x<='0';
b_x(31 downto 0):="00000000000000000000000000000000";
state <= S1;
end if;
case state is
when S1 =>
if a(30 downto 23)>="01111111" and a(30 downto 23)<="10011101" then
state <= S2;
else state <= S3;
end if;
when S2 =>
ind:=157-conv_integer(a(30 downto 23));
count:=conv_unsigned(ind,5);
M_i:=conv_integer('1'&a(22 downto 0)&"0000000");
M_u:=conv_unsigned(M_i,31);
M_u:= SHR(M_u,count);
b_x(30 downto 0):=conv_std_logic_vector(M_u,31);
if a(31)='1' then
b_inv(30 downto 0):=not(b_x(30 downto 0));
b_inv1:=conv_integer(b_inv(30 downto 0))+1;
b_x(30 downto 0):=conv_std_logic_vector(b_inv1,31);
end if;
state <= S4;
when S3 =>
error_x<='1';
b(31 downto 0)<=b_x(31 downto 0);
when S4 =>
b(31)<=a(31);
b(30 downto 0)<=b_x(30 downto 0);
rdy<='0';
when others =>
null;
Інструментальні засоби та середовища програмування
77
ными являются методы линейной или нели-
нейной интерполяции и экстраполяции по
нескольким опорным точкам. Эти точки
(структурные реализации алгоритма) полу-
чаются путем предварительного формиро-
вания вариантов реализаций алгоритма или
взяты из набора, имеющихся в составе
САПР, готовых CORE - ядер.
Из множества этих точек, где каждой
l – й точке соответствует ПЛИС–реализа-
ция с параметрами >< ll QT , , формируется
множество Парето мощностью M на плос-
кости QT − с учетом соотношений
ml TTTT ≤≤≤≤≤ KK21 ;
ml QQQQ ≥≥≥≥≥ KK21 .
В общем виде задача выбора опти-
мального варианта реализации алгоритма
сводится к минимизации функционала
min⇒+= lll QTL βα (1)
с учетом ограничений
≤
≤
,
;
0
0
QQ
TT
l
l (2)
где βα , – весовые коэффициенты, которые
могут быть определены, например, методом
экспертных оценок; 00, QT – заданные пре-
дельные значения параметров lT и lQ .
Если заданным ограничениям (2)
удовлетворяет единственная точка множе-
ства Парето, то реализация, соответствую-
щая этой точке, является результирующей.
Если ограничениям (2) удовлетворяют не-
сколько таких точек, то необходимо мини-
мизировать функционал (1).
Таблица.2. Результаты верификации преобразования ФФТ в ФПТ
Значения входных операндов ФФТ
в дополнительном коде
Значения
входных
операндов
(десятичные)
Значения выходных операндов ФПТ
Значения
выходных
операндов
(десятичные)
00000000000000000000000000000000
10000000000000000000000000000100
00000000000000000000000000010000
00000000000000000000000001000000
10000000000000000000000100000000
00000000000000000000010000000001
00000000000000000001000000000100
00000000000000000100000000010000
10000000000000010000000001000000
10000000000001000000000100000000
00000000000100000000010000000001
00000000010000000001000000000100
10000001000000000100000000010000
00000100000000010000000001000000
10010000000001000000000100000000
0
-2147483644
16
64
-2147483392
1025
4100
16400
-2147418048
-2147221248
1049601
4198404
-2130690032
67174464
-1878785792
00000000000000000000000000000000
11001110111111111111111111111111
01000001100000000000000000000000
01000010100000000000000000000000
11001110111111111111111111111110
01000100100000000010000000000000
01000101100000000010000000000000
01000110100000000010000000000000
11001110111111111111110111111111
11001110111111111111011111111110
01001001100000000010000000001000
01001010100000000010000000001000
11001110111111011111111101111111
01001100100000000010000000001000
11001110110111111111011111111110
0
-2147483520
16
64
-2147483392
1025
4100
16400
-2147417984
-2147221248
1049601
4198404
-2130689920
67174464
-1878785792
Таблица.3. Результаты верификации преобразования ФПТ в ФФТ
Значения входных операндов ФПТ
Значения
входных
операндов
(десятичные)
Значения выходных операндов ФФТ в
дополнительном коде Er
Значения
выходных
операндов
(десятичные)
00000000000000000000000000000000
01000000110000000000000000000000
11000001110000000000000000000000
01000010010000000000000000000000
01001010010000000000000000000000
11000110010000000000000000000000
01001011010000000000000000000000
01000111010000000000000000000000
11000111110000000000000000000000
01001000010000000000000000000000
01001000110000000000000000000000
11001011110000000000000000000000
11001110110000000000000000000000
01001111110000000000000000000000
0
6
-24
48
3145728
-12288
12582912
49152
-98304
196608
393216
-251165824
-1610612736
6442450944
00000000000000000000000000000000
00000000000000000000000000000110
11111111111111111111111111101000
00000000000000000000000000110000
00000000001100000000000000000000
11111111111111111101000000000000
00000000110000000000000000000000
00000000000000001100000000000000
11111111111111101000000000000000
00000000000000110000000000000000
00000000000001100000000000000000
11111110100000000000000000000000
10100000000000000000000000000000
00000000000000000000000000000000
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
6
-24
48
3145728
-12288
12582912
49152
-98304
196608
393216
-251165824
-1610612736
0
Інструментальні засоби та середовища програмування
78
Выводы
Рассмотренные особенности конст-
рукций языка VHDL позволяют сделать вы-
вод о том, что при поведенческом описании
структур для преобразования форматов не
все конструкции могут быть использованы
для ввода проекта в САПР ПЛИС, так как
этап синтеза в этих системах не поддержи-
вает полный набор конструкций. Использо-
вание инструментальных средств FPGA Ex-
press и программ размещения и трассировки
системы Xilinx Foundation Series позволило
осуществить синтез и реализацию преобра-
зователей в кристалле XCV600E–BG432–8,
аппаратные и временные оценки которых
приведены в табл.1. Полученное множество
реализаций позволяет выбрать оптимальный
вариант структурной реализации преобра-
зования форматов по критериям аппаратных
и временных затрат. По результатам анализа
табл. 1 можно сделать следующие выводы.
Для преобразования ФФТ в ФПТ вариант
ФП1 является самым быстродействующим,
при этом требует для реализации наиболь-
шего количества слайсов. Вариант ФП2 яв-
ляется менее быстродействующим по срав-
нению с ФП1 и аппаратных затрат требу-
ется меньше. Вариант ФП3 для Т(макс) по
сравнению с вариантом ФП1 требует мень-
шего количества слайсов и является более
медленным, но по сравнению с вариантом
ФП2 реализуется большими аппаратными
затратами и является еще медленнее, по-
этому эта реализация может быть исклю-
чена из дальнейшего рассмотрения. Вариант
ФП3 для Т(мин) по сравнению с вариантом
ФП1 требует меньше слайсов и обладает
меньшим быстродействием, но по сравне-
нию с вариантом ФП2 требует больших ап-
паратных затрат и меньшего времени пре-
образования.
Для преобразования ФПТ в ФФТ ва-
риант ПФ2 по сравнению с вариантами ПФ1
и ПФ3 обладает самым высоким быстро-
действием, при этом для его реализации ис-
пользуется наименьшее количество слайсов.
Поэтому варианты ПФ1 и ПФ3 могут быть
исключены из дальнейшего рассмотрения.
Это связано с использованием функции
сдвига вправо SHR, которая входит в пакет
STD_LOGIC_UNSIGNED.
Синтезированные преобразователи
верифицированы методом моделирования в
системе ModelSim Xilinx Edition - MXE II с
помощью стенда для проверки, что под-
тверждает правильность их функциониро-
вания.
1. Hollash S. IEEE Standard 754 Floating Point Num-
bers / Available. - htpp:// IEEE / IEEE Standard 754
Floating-Point.htm.
2. Xilinx Data Book 2004 / Available. - http: // sup-
port.xilinx.com /partinfo /databook.htm.
3. VHDL'93. IEEE Standard VHDL Language Refer-
ence Manual. IEEE Std 1076-1993. – 289 p.
Получено 21.09.05
Об авторах
Опанасенко Владимир Николаевич
канд. техн. наук, ст. науч. сотрудник
Место работы автора
Институт кибернетики им. В.М. Глушкова
Киев, просп. Акад. Глушкова, 40
Тел.(сл.). (044) 526 2598
Тел. (дом.). (044) 530 7091
E-mail: vlopanas@ukr.net
Лисовый Александр Николаевич
студент
Место работы автора
Национальный авиационный университет
Киев, просп. Комарова, 1
Тел.(сл.). (044) 526 2598
Тел. (дом.). (044) 402 9341
E-mail: vlopanas@ukr.net
|
| id | nasplib_isofts_kiev_ua-123456789-2319 |
| institution | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| issn | 1727-4907 |
| language | Russian |
| last_indexed | 2025-12-07T18:13:20Z |
| publishDate | 2006 |
| publisher | Інститут програмних систем НАН України |
| record_format | dspace |
| spelling | Опанасенко, В.Н. Лисовый, А.Н. 2008-09-17T13:59:27Z 2008-09-17T13:59:27Z 2006 Особенности языка VHDL для программирования кристаллов ПЛИС / В.Н. Опанасенко, А.Н. Лисовый // Проблеми програмування. — 2006. — N 1. — С. 70-78. — Бібліогр.: 3 назв. — рос. 1727-4907 https://nasplib.isofts.kiev.ua/handle/123456789/2319 004.274 Рассмотрены особенности языка описания аппаратных средств для программирования структуры пре-
 образователей чисел с плавающей точкой в числа с фиксированной точкой и обратно. Алгоритмы
 представлены путем поведенческого описания на языке VHDL. Рассмотрены различные конструкции
 для организации функции сдвига битов регистра и функции доступа к отдельным битам регистра, ко-
 торые являются базовыми в преобразователях. Верификация преобразователей реализована методом
 моделирования в системе ModelSim Xilinx Edition - MXE II. Розглянуто особливості мови опису апаратних засобів для програмування структури перетворювачів чисел із плаваючою точкою в числа з фіксованою точкою й зворотним перетворенням. Алгоритми реалізовано шляхом поведінкового опису мовою VHDL. Розглянуто різні конструкції для організації функції зрушення бітів регістра й функції доступу до окремих бітів регістра, які є базовими в перетворювачах. Верифікація перетворювачів реалізована методом моделювання в системі ModelSim Xilinx Edition - MXE II. Features of the Hardware Description Language (HDL) for programming the structure of the converter of number with a floating point into number with a fixing point and inversing convert are considered. Algorithms are implemented by means behavorial description of the VHDL Language. Different construction for forming of the function of shifting bites register and function of access to individual bites of register is offered. ru Інститут програмних систем НАН України Інструментальні засоби і середовища програмування Особенности языка VHDL для программирования кристаллов ПЛИС Особливості мови VHDL для програмування кристалів ПЛІС Features of the VHDL Language for programming of the PLD Article published earlier |
| spellingShingle | Особенности языка VHDL для программирования кристаллов ПЛИС Опанасенко, В.Н. Лисовый, А.Н. Інструментальні засоби і середовища програмування |
| title | Особенности языка VHDL для программирования кристаллов ПЛИС |
| title_alt | Особливості мови VHDL для програмування кристалів ПЛІС Features of the VHDL Language for programming of the PLD |
| title_full | Особенности языка VHDL для программирования кристаллов ПЛИС |
| title_fullStr | Особенности языка VHDL для программирования кристаллов ПЛИС |
| title_full_unstemmed | Особенности языка VHDL для программирования кристаллов ПЛИС |
| title_short | Особенности языка VHDL для программирования кристаллов ПЛИС |
| title_sort | особенности языка vhdl для программирования кристаллов плис |
| topic | Інструментальні засоби і середовища програмування |
| topic_facet | Інструментальні засоби і середовища програмування |
| url | https://nasplib.isofts.kiev.ua/handle/123456789/2319 |
| work_keys_str_mv | AT opanasenkovn osobennostiâzykavhdldlâprogrammirovaniâkristallovplis AT lisovyian osobennostiâzykavhdldlâprogrammirovaniâkristallovplis AT opanasenkovn osoblivostímovivhdldlâprogramuvannâkristalívplís AT lisovyian osoblivostímovivhdldlâprogramuvannâkristalívplís AT opanasenkovn featuresofthevhdllanguageforprogrammingofthepld AT lisovyian featuresofthevhdllanguageforprogrammingofthepld |