Рис.3. Схема сумматора. Вариант 2.
Таблица 2.
Количество использованных ресурсов ПЛИС
макроячейки
(macrocells)
конъюнкт. термы
(product terms)
входы функц. блоков
(func. block inputs)
xc9500xl
24
167
98
CoolRunner
18
91
39
Вариант 3
Проанализировав данную схему (рис.4.), можно сделать вывод о том, что она является наиболее сложной схемой, в плане реализации, а также по количеству использованных ресурсов ПЛИС (таблица 3).
Рис.4. Схема сумматора. Вариант 3.
Таблица 3.
26
241
73
20
67
29
Данный способ реализации цифровых устройств пользуется наибольшей популярностью во всем мире. Ниже приведен текст на языке VHDL, описывающий поведение десятичного сумматора с кодом 7-4-2-1, и результаты трассировки данного варианта.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity sum_vhdl is
Port ( I : in std_logic_vector(8 downto 0);
O : out std_logic_vector(4 downto 0));
end sum_vhdl;
architecture Behavioral of sum_vhdl is
signal sum: std_logic_vector(4 downto 0);
signal sum_prom: std_logic_vector(3 downto 0);
signal A: std_logic_vector(3 downto 0);
signal B: std_logic_vector(3 downto 0);
begin
A <= I(4 downto 1) when I(4 downto 1) < "0111" else (I(4 downto 1) - "0001");
B <= I(8 downto 5) when I(8 downto 5) < "0111" else (I(8 downto 5) - "0001");
sum <= ('0'&A) + ('0'&B) + I( 0 );
sum_prom(3 downto 0) <= sum(3 downto 0) when sum < "01101"
else (sum(3 downto 0) + "0011");
O(3 downto 0) <= sum_prom(3 downto 0) when sum_prom(3 downto 0) < "0111"
else (sum_prom(3 downto 0) + "0001");
O( 4 ) <= '0' when sum < "01101" else '1';
end Behavioral;
Таблица 4.
74
21
80
42
Таблица 5. Результаты трассировки для xc9500xl.
macrocells
product terms
function block inputs
Вариант 1
23
160
92
Вариант 2
Вариант 4 (VHDL)
Таблица 6. Результаты трассировки для CoolRunner.
15
78
Проведя сравнительный анализ по таблицам 5, 6, можно сделать вывод о том, что оптимальным является первый вариант разложения. Проведем покрытие блоков при помощи мультиплексоров типа 4/1.
С помощью мультиплексора типа 4/1 можно реализовать любую логическую функцию 3-х аргументов, поскольку при разложении исключаются 2 аргумента, а на входы подаются функции одного аргумента. Это могут быть либо константы «0», «1», либо функция тождества, либо функция инверсии 3-го аргумента.
Логическая последовательность первого блока:
0012 345* 6633 700*
Матрицы разложения имеют вид:
1)
2)
3)
Используя данные разложения, представим схему данного блока (графическая работа “Схема электрическая принципиальная блока DC1”).
Логическая последовательность второго блока:
0112 2302 1203 0013 0222 0013 13*3 1120
Используя данные разложения, представим схему данного блока (графическая работа “Схема электрическая принципиальная блока DC2”).
Логическая последовательность третьего блока:
0123 0124 056* 723*
Используя данные разложения, представим схему данного блока (графическая работа “Схема электрическая принципиальная блока DC3”).
Логическая последовательность четвертого блока:
0123 4560 2347 *476
Используя данные разложения, представим схему данного блока (графическая работа “Схема электрическая принципиальная блока DC4”).
Логическая последовательность пятого блока:
0123 4125 2345 6457
Используя данные разложения, представим схему данного блока (графическая работа “Схема электрическая принципиальная блока DC5”).
После покрытия блокa получили наглядную экономию ресурсов ПЛИС.
Таблица 7.
77
Для нетривиальных схем методы декомпозиции дают существенный выигрыш по отношению к используемым ресурсам. Как видно из таблиц 5-6, традиционный в наше время подход описания цифровых устройств (VHDL) для сумматора в коде 7-4-2-1 при трассировке в кристалл не дает существенного выигрыша, чем схема, полученная в результате декомпозиции.
Из таблиц 5-6, видно, что для разных типов ПЛИС оптимальный результат дают разные варианты реализации. Это связано с особенностью структуры тех или иных ПЛИС и требует отдельных исследований.
Поиск оптимального решения задачи синтеза складывается из рассмотрения и анализа нескольких вариантов реализации комбинационной схемы для различных типов ПЛИС. В некоторых случаях возникает необходимость оценивать не только используемые ресурсы ПЛИС, но и задержку прохождения сигнала через схему.
Как видно из таблиц 5-6, для реализации сумматора по модулю 13 с весовыми коэффициентами 7-4-2-1 наиболее оптимальными вариантами являются схемы №1 и №2. После покрытия схемы №1 мультиплексорами типа 4/1, заметен существенный выигрыш в использовании ресурсов ПЛИС, о чем свидетельствуют результаты таблицы 7.
Список литературы
· Коновалов В.Н., Белов А.А., Коновалов И.В., Нежельский П.Н.: Автоматизированный синтез комбинационных логических схем на основе многоуровневой декомпозиции. – КФ МГТУ им. Н.Э. Баумана, – 35с.: ил.
· Голубев Ю.П.: Автоматизация проектирования преобразователей дискретной информации. – Калуга: Издательство «Гриф», 2003. -652 с.
· Грэгори, Кейт: Использование Visual C++ 6. Специальное издание.: Пер. с англ. – М.; СПб.; К.: Издательский дом «Вильямс», 2003. – 864 с.: ил.
· Соловьев В.В.: Проектирование цифровых систем на основе программируемых логических интегральных схем. – М.: Горяцая линия-Телеком, 2001. – 636 с. ил.
· Кузелин М.О., Кнышев Д.А., Зотов В.Ю.: Современные семейства ПЛИС фирмы Xilinx. Справочное пособие. – М.: Горячая линия–Телеком, 2004. – 440 с.: ил.
Страницы: 1, 2, 3