Синтез схемы двоичного сумматора по модулю 10
Электронный компонент ПЛИC, теоретические сведения. Проработка различных вариантов реализации двоичного сумматора. Логический синтез трех вариантов схемы сумматора, выбор схемы, сложность реализации которой на кристаллах ПЛИС является наименьшей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.04.2014 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
Введение
1. Теоретическая часть
1.1 Электронный компонент ПЛИC
1.2 Декомпозиция логических схем
1.2.1 Параллельная декомпозиция
1.2.2 Последовательная декомпозиция
2. Синтез схемы сумматора по модулю 10
2.1 Числовая последовательность сумматора
2.2 Декомпозиция логической схемы сумматора
2.3 Детализация и покрытие заданными элементами отдельных блоков схем
2.4 Схема с кодопреобразователями на входах и выходах и декомпозиция отдельных блоков
2.5 Описание сумматора на языке VHDL
2.6 Сравнительный анализ затрат ресурсов ПЛИС
Выводы
Введение
двоичный сумматор плис схема
Сумматоры предназначены для нахождения суммы нескольких многоразрядных чисел. Если слагаемые и сумма представлены в двоичной позиционной системе счисления, то сумматоры называются двоичными. Комбинационными называются такие сумматоры, которые не имеют обратных связей от выходов ко входам, то есть реализуются комбинационными логическими схемами. В отличие от комбинационных, имеются накапливающие сумматоры, в которых одним из слагаемых является сумма, найденная на предыдущем шаге вычислений.
Сумматоры бывают последовательные и параллельные. В последовательном сумматоре слагаемые поступают поразрядно последовательно во времени. Значение сигнала переноса в старший разряд запоминается. Следовательно, последовательный сумматор не может быть реализован комбинационной логической схемой. В параллельном сумматоре слагаемые поступают в виде параллельных кодов. Суммирование -ч разрядов слагаемых производится в - м разряде сумматора. Сигнал переноса, сформированный в - м разряде, передается в - й разряд сумматора.
Многоразрядные комбинационные двоичные сумматоры строятся из одноразрядных.
1. Теоретическая часть
1.1 Электронный компонент ПЛИC
ПЛИС (программируемая логическая интегральная схема) - это большие интегральные микросхемы матричного типа, позволяющие программным способом реализовать логические функции большой сложности. Архитектура ПЛИС имеют потенциально большее быстродействие по сравнению с микроконтроллерами и DSP процессорами. Это объясняется возможностью аппаратного распараллеливания вычислений.
Таким образом можно перечислить основные области применения ПЛИС:
§ Высокоскоростная обработка данных;
§ Алгоритмы ЦОС, особенно где требуется обработка данных в реальном времени;
§ Задачи обработки информации, требующие большого количества пользовательских выводов;
§ Промежуточных этап проектирования СБИС;
§ Узкоспециальные алгоритмы, построенные на жестких временных диаграммах;
§ Проекты, где требуется большое число портов ввода-вывода.
В процессе проектирования устройств на ПЛИС используют языки описания устройств HDL (Hardwaredescriptionlanguage) - VHDL, Verilog, Abel, AHDL. Этап проектирования устройства на ПЛИС заключается в описании устройства на языке HDL, перевода описания в базис выбранной ПЛИС, трассировка внутренних ресурсов ПЛИС в соответствии ссо списком цепей, генерация результирующей прошивки.
На данный момент основными производителями ПЛИС являются: Xilinx, Altera, Actel, Lattice.
В современных периферийных и основных компьютерных устройствах платы расширения в системе PlugandPlay имеют специальную микросхему -- ПЛИС, которая позволяет плате сообщать свой идентификатор и список требуемых и поддерживаемых ресурсов.
Особенности программирования ПЛИС.
В настоящее для "больших" время используются в основном две технологии для хранения информации о конфигурвции - статическое ОЗУ (SRAM) или электрически перепрограммируемое ПЗУ (EPRM или EEPROM или FLASH).
В любом случае создание файла конфигурации современных ПЛИС невозможно без автоматизированных систем проектирования. Такие системы выпускают как все ведущие производители ПЛИС (www.altera.com)ALTERA, (www.xilinx.com)XILINX, так и другие компании.
При работе в подобных системах конфигурация схемы, которая должна быть получена "внутри" ПЛИС или алгоритм ее работы задается либо на текстовом языке описаний (ADHL, VDHL или Verilog) напоминающем язык программирования высокого уровня (например Си), либо на графическом уровне - в виде электрической схемы (в форматах OrCAD или PCAD), либо при помощи блок-схем алгоритмов или графиков входных и выходных сигналов. В дальнейшем все этапы работы, включая программирование или загрузку ПЛИС выполняет автоматизированная система.
1.2 Декомпозиция логических схем
Поскольку на этапе декомпозиции требуется уменьшение сложности схемы, необходимо ввести критерий сложности. Абстрактной оценкой сложности схемы будем считать величину
(бит),
где - количество входов, а - количество выходов КЛС.
Рис. 1. Логическая схема с входами и выходами.
Это количество бит информации, необходимое для полного описания логической последовательности синтезируемой схемы. Такая оценка сложности связана с принятым способом представления логических функций. Сложностью устройства, состоящего из нескольких блоков , будем считать суммарную сложность всех входящих в него блоков:
1.2.1 Параллельная декомпозиция
Исходная сложность схемы равна
(бит).
После разделения сложность схемы составляет
(бит).
Рис. 2. Параллельная декомпозиция логических блоков.
Разделение будем считать целесообразным, если в результате сложность схемы уменьшается:
(1)
Из выражения (1) следует, что . В этом случае целесообразно выделить параллельный блок. Это означает, что выходов зависят фиктивно от некоторых входов .
Фиктивной называется зависимость выходных сигналов от входных, если при изменении состояния на каком-либо входе логической схемы не происходит изменение состояния на определенном выходе этой схемы.
Таким образом, процедура выделения параллельного блока должна включать проверку существенной зависимости каждого выхода от каждого из входов. Это удобно делать с помощью поочерёдного разложения логической последовательности в матрицу по каждой из входных переменных. В полученной таким образом матрице содержится две строки.
Два числа каждого столбца поразрядно суммируются по модулю два в двоичном коде. После выполнения этой операции над всеми столбцами мы получим двоичных чисел, над которыми затем выполняется поразрядная операция «ИЛИ». В результате получается одно двоичное число, единицы которого отмечают те входы, которые существенно зависят от рассматриваемого входа (по которому проводилось разложение).
Описанная процедура повторяется для каждой из входных переменных и результаты заносятся в специальную таблицу.
1.2.2 Последовательная декомпозиция
При последовательной декомпозиции схема может быть представлена в следующем виде:
Рис.3. Последовательная декомпозиция.
Сложность схемы после разделения:
(2)
В данном случае критерий разделения блоков несколько меняется - сложность описания схемы не должна возрастать. Если - выражение (2) не имеет физического смысла. При в правой части неравенства получается отрицательное число, а в левой - положительное, что тоже не имеет физического смысла.
Следовательно, условием разделения блоков является .
Это означает, что число состояний на выходе первого (старшего) блока по крайней мере в 2 раза меньше, чем количество состояний на его входах ( и ). То есть, на некоторые комбинации на входе выход схемы реагирует одинаковым образом. Эти входные комбинации будем называть неразличимыми (в противном случае - различимые комбинации).
Следовательно, разделение на 2 последовательных блока целесообразно, если число различимых комбинаций входных переменных по крайней мере вдвое меньше общего числа всех комбинаций этих же переменных. Критерием блока будем считать число .
Блок 1 на рис. 2 будем считать старшим блоком, поскольку он управляет работой блока 2 (младшего). Число выходов старшего блока хотя бы на единицу меньше числа его входов. Значит, число состояний его выходов, равное , хотя бы в два раза меньше, чем число состояний входов, равное . Это говорит о том, что среди всевозможных комбинаций состояний входов старшего блока будут такие пары наборов, которые дают одну и ту же комбинацию выходных сигналов. Такие пары наборов состояний входов называются неразличимыми блоком 1. Очевидно, что если два каких-то набора неразличимы блоком 1, то они неразличимы и всем комбинационным устройством.
Если разложить числовую последовательность, заданного нам комбинационного, устройства по переменным первого блока, то получится матрица с строками и столбцами. По вертикали в этой матрице будут изменять свои значения входные переменные первого блока, а, по горизонтали - те переменные, которые не вошли в первый блок. Если два каких-то набора значений входных сигналов старшего блока неразличимы, то они неразличимы при любых значениях, не вошедших в этот блок переменных. Поэтому неразличимые комбинации переменных первого блока будут давать в матрице одинаковые строки. Число различных строк в матрице будет, по крайней мере, вдвое меньше, чем общее число строк.
Процедура поиска последовательного блока заключается в разложении числовой последовательности устройства по различным группам аргументов и в отыскании такой матрицы, в которой число различных строк, по крайней мере, вдвое меньше, чем их общее число.
Процесс начинается с поиска двухвходового блока с одним выходом. Для этого числовая последовательность поочерёдно разлагается по различным парам аргументов и находится такая матрица, которая имеет лишь две (из четырёх) различные строки. Если в процессе построения матрицы мы уже обнаружили хотя бы три различных строки, то матрицу до конца можно не достраивать и сразу же переходить к следующему варианту.
Если, перебрав все возможные варианты разложения по парам аргументов, мы не нашли матрицу, удовлетворяющую условию выделения блока, то это значит, что двухвходовый блок выделить нельзя и следует перейти к поиску трёхвходового блока. Для этого числовая последовательность разлагается в матрицу по всевозможным тройкам аргументов. Теперь мы ищем матрицу с четырьмя (или меньше) различными строками. И так далее.
2. Синтез схемы сумматора по модулю 10
2.1 Числовая последовательность сумматора
Дан сумматор, который имеет схему следующего вида:
Рис.4. Схема сумматора.
Схема данного сумматора имеет 9 входов и 5 выходов.и - шестнадцатеричные цифры - 0, 1, 2 …,, , , , , . и входной и выходной сигналы переноса, принимают значения 1 или 0 (есть перенос или нет). Сложность исходной схемы бит.
Исходные данные:
Весовые коэффициенты: 6-4-2-1
Цифры |
Код |
|
0 |
0000 (0) |
|
1 |
0001 (1) |
|
2 |
0010 (2) |
|
3 |
0011 (3) |
|
4 |
0100 (4) |
|
5 |
0101 (5) |
|
6 |
1000 (8) |
|
7 |
1001 (9) |
|
8 |
1010 (A) |
|
9 |
1011 (B) |
Получим систему собственных функций сумматора. Наличие переноса в старший разряд будем обозначать знаком ~ над соответствующей цифрой.
Допустим , принимает значения 0…, а или 1 (всего 32 значения). Во второй строке , также принимает значения 0…, а или 1 и т.д. до значения .
2.2 Декомпозиция логической схемы сумматора
Декомпозицию блока сумматора будем проводить в программе Decomposer.
После ввода исходной логической последовательности (таблица 1) получаем синтезируемую схему сумматора
Рис. 5. Синтезируемая схема сумматора.
Проводя параллельную и последовательную декомпозицию исходной схемы сумматора, получаем следующую схему:
Рис. 6. Схема разложения сумматора с выделенными двоичными сумматорами.
Блоки 8 и 9 имеют последовательность 0112 1223, блок 1 имеет последовательность 0 2 5 9 1 4 8 A 4 8 AD 5 9 C *, блоки 2 и 4 имеют последовательность 0 1 1 *, блоки 3 и 5 имеют последовательность 0 1 1 2 и блок 7 имеет последовательность 0 1 1 0.
Проводя параллельную и последовательную декомпозицию блока 1, получим следующую схему
Рис. 7. Схема разложения блока 1 сумматора.
2.3 Детализация и покрытие заданными элементами отдельных блоков схемы
Рассмотрим блоки 2 и 4 с последовательностью 0 1 1 *. Доопределим до 0 1 1 1. На выходе получим стандартный блок ИЛИ (or2)
Рис. 8. Блок 2 и 4 в программе Decomposer.
Рис. 9. Блок 2 и 4 в программе XilinxProjectNavigator
Проводя параллельную и последовательную декомпозицию блоков 3 и 5 получим следующую схему
Рис. 10. Блок 3 и 5 в программе Decomposer.
Рис. 11. Блок 3 и 5 в программе Decomposer.
Рис. 12. Схема блоков и стандартные сумматоры в программе XilinxProjectNavigator.
Рис. 13. Окончательный вариант схемы в программе XilinxProjectNavigator.
2.4 Схема с кодопреобразователями на входах и выходах и декомпозиция отдельных блоков
Декомпозицию входного кодопреобразователя сумматора будем проводить в программе Decomposer. Последовательность входногокодопреобразователя 012345 **6789**** в соответствии с таблицей 3.
Таблица 3
Изображение |
Значение |
|
0 |
0 |
|
1 |
1 |
|
2 |
2 |
|
3 |
3 |
|
4 |
4 |
|
5 |
5 |
|
6 |
* |
|
7 |
* |
|
8 |
6 |
|
9 |
7 |
|
A |
8 |
|
B |
9 |
|
C |
* |
|
D |
* |
|
E |
* |
|
F |
* |
После ввода исходной логической последовательности получаем синтезируемую схему входного кодопреобразователя
Рис. 14. Синтезируемая схема входногокодопреобразователя.
Рис. 15. Входной блок кодопреобразователя.
Рис. 16. Схема входного блока в программе XilinxProjectNavigator.
Декомпозицию выходного кодопреобразователя сумматора будем проводить в программе Decomposer. Последовательность выходного кодопреобразователя 00 01
02 03 04 05 08 09 0A 0B 10 11 12 13 14 15 18 19 1A 1B ** ** ** ** ** ** ** ** ** ** ** ** в соответствии с таблицей 4.
Таблица 4.
Значение |
Изображение |
|
0 |
00 |
|
1 |
01 |
|
2 |
02 |
|
3 |
03 |
|
4 |
04 |
|
5 |
05 |
|
6 |
08 |
|
7 |
09 |
|
8 |
0А |
|
9 |
0В |
|
A |
10 |
|
B |
11 |
|
C |
12 |
|
D |
13 |
|
E |
14 |
|
F |
15 |
|
10 |
18 |
|
11 |
19 |
|
12 |
1А |
|
13 |
1В |
|
14 |
** |
|
15 |
** |
|
16 |
** |
|
17 |
** |
|
18 |
** |
|
19 |
** |
|
1A |
** |
|
1B |
** |
|
1C |
** |
|
1D |
** |
|
1E |
** |
|
1F |
** |
После ввода исходной логической последовательности получаем синтезируемую схему входного кодопреобразователя
Рис. 17. Схема выходного кодопреобразователя.
Рис. 18. Схема выходного кодопреобразователя.
Блоки 8 и 15 имеют последовательность 011* , * доопределяем единицей и получаем стандартный блок ИЛИ.
Блоки 12 имеет последовательность 1*01, * доопределим единицей и получаем стандартный блок ИЛИ с инвертированным нижним входом
Рис. 19. Схема выходного кодопреобразователями в программе XilinxProjectNavigator.
Рис. 20. Окончательный вариант схемы сумматора с кодопреобразователями в программе XilinxProjectNavigator.
2.5 Описание сумматора на языке VHDL
libraryIEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity SUM10 is
Port ( I : in std_logic_vector(8 downto 0);
O: out std_logic_vector(4 downto 0));
end SUM10;
architecture Behavioral of SUM10 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) < "0110" else (I(4 downto 1) - "0010");
B <= I(8 downto 5) when I(8 downto 5) < "0110" else (I(8 downto 5) - "0010");
sum<= ('0'&A) + ('0'&B) + I( 0 );
sum_prom(3 downto 0) <= sum(3 downto 0) when sum < "1010"
else (sum(3 downto 0) + "0110");
O(3 downto 0) <= sum_prom(3 downto 0) when sum_prom(3 downto 0) < "0110" else (sum_prom(3 downto 0) + "0010");
O( 4 ) <= '0' when sum < "1010" else '1';
endBehavioral;
Для того чтобы связать нашу программу с дешифратором, нужно преобразовать данный код в схему с помощью функции CreateSchematicSymbol:
Рис. 21. Окончательный вариант схемы сумматора.
2.6 Сравнительный анализ затрат ресурсов ПЛИС для разработанных схем и VHDL описания (для семейства CPLD xc95xx)
Таблица 5. Семейство ПЛИС XC9500XLCPLDs
Способ |
Макроячейки |
Коньюктивные термы |
Функциональные блоки |
|
Сумматор (декомпозиция логических схем) |
11 /288 (4%) |
132 /1440 (9%) |
38 /864 (4%) |
|
КП |
14 /288 (5%) |
170 /1440 (12%) |
68 /864 (8%) |
|
VHDL |
16/288 (6%) |
208/1440 (14%) |
65/864 (8%) |
Выводы
В результате выполнения данного курсового проекта были проработаны различные варианты реализации двоичного сумматора по модулю 10.
Проведен логический синтез трех вариантов схемы сумматора и выбрана для дальнейшего исследования схема, сложность реализации которой на кристаллах ПЛИС является наименьшей. После прошивки сумматора на стендах ЛСЦ-002 определены затраты программных ресурсов, необходимых для реализации сумматора. Как видно из таблицы 5 наименьшие затраты имеет место в варианте описания сумматора с помощью декомпозиции логических схем. Вторым наиболее выгодным вариантом реализации является схема с кодопреобразователями на входах и выходах.Самым ресурсоёмким, но самым быстрым по реализации оказался вариант сумматорана языке VHDL.
С требованиями к программным ресурсам в количестве 4%макроячеек, 9% конъюнктивных термов и 4% функциональных блоков, описание сумматора с помощью декомпозиции логических схем является самым удачным вариантом реализации сумматора.
Размещено на Allbest.ru
...Подобные документы
Разработка функциональных схем основных узлов сумматора-умножителя. Минимизация функции алгоритмом Рота. Поиск простых импликант. Минимизация картами Карно-Вейча. Эффективность минимизации. Логический синтез комбинационного устройства с шестью входами.
контрольная работа [36,3 K], добавлен 31.03.2013Алгоритм реализации арифметической операции и разработка блок-схемы устройства. Составление и минимизация логических выражений работы блоков. Логическая схема регистра, сумматора, сдвига и мультиплексора. Анализ и синхронизация работы устройства.
курсовая работа [1,2 M], добавлен 27.02.2014Логические узлы как основа устройства компьютера. Логические операции, позволяющие производить анализ получаемой информации и таблицы истинности. Условное высказывание, импликация, эквивалентность. Структура полного одноразрядного двоичного сумматора.
реферат [211,7 K], добавлен 14.12.2010Правила двоичного сложения. Таблица и схема истинности полусумматора и полного сумматора. Таблица, стуктурная и логическая схема истинности для полувычитателя и полного вычитателя. Использование сумматоров для вычитания. Работа суммирующего устройства.
учебное пособие [99,7 K], добавлен 06.02.2009Общая структура и принцип функционирования синхронного управляющего автомата. Анализ граф схемы алгоритма управляющего автомата и детализация блока памяти. Структурный синтез логического преобразователя и разработка электрической функциональной схемы.
курсовая работа [222,6 K], добавлен 19.02.2013Алгоритм умножения двоичных чисел. Выбор и описание структурной схемы операционного автомата. Реализация содержательной граф-схемы алгоритма. Построение отмеченной граф-схемы и структурной таблицы переходов и выходов. Правила кодирования на D-триггерах.
курсовая работа [273,2 K], добавлен 01.04.2013Исследование элементов на транзисторно-транзисторной логике. Логическая схема одноразрядного и полного сумматора. Оптимизация функции с помощью карты Карно. Синтез двухразрядного компаратора и проверка его работы. Моделирование преобразователей кодов.
контрольная работа [3,5 M], добавлен 27.03.2016Факторизация покрытия и выбор функциональной схемы ячейки минимальной стоимости. Построение схемы в универсальном базисе. Тип схемы элемента. Перевод в базис ИЛИ-НЕ. Определение исходных данных для расчёта принципиальной схемы логического элемента.
курсовая работа [704,8 K], добавлен 15.06.2014Анализ вариантов проектных решений и выбор на его основе оптимального решения. Синтез функциональной схемы микропроцессорной системы на основе анализа исходных данных. Процесс разработки аппаратного и программного обеспечения микропроцессорной системы.
курсовая работа [469,1 K], добавлен 20.05.2014Функциональная организация процессора. Сложение с нормализацией, синтез операций, выборка команды. Описание структурной схемы процессора. Синтез управляющего автомата, разметка граф схемы. Разбиение микроопераций по полям и кодирование логических условий.
курсовая работа [91,8 K], добавлен 24.09.2010Разновидности конструктивных решений реализации весового оборудования. Разработка блок-схемы предустановок, блок-схемы измерения веса, блок-схемы вывода информации о весе в компьютер, блок-схемы устройства и программы работы микропроцессорного блока.
курсовая работа [525,4 K], добавлен 13.02.2023Проект функционального узла для выполнения микроопераций в вычислительной системе; анализ вариантов реализации. Интегральная и электрическая схемы узла; оценка переходных процессов и предельного быстродействия. Расчет и выбор генератора тактовых сигналов.
курсовая работа [540,1 K], добавлен 21.10.2012Выбор и обоснование параметров входа, разработка кодека. Исследование кодов, исправляющих ошибки, которые могут возникать при передаче, хранении или обработке информации по разным причинам. Синтез принципиальной схемы парафазного буфера и декодера.
курсовая работа [582,8 K], добавлен 24.03.2013Распределение шин интерфейса, их связь с внешней системой, выбор алгоритмов арифметических и логических операций. Построение структурной схемы микро-ЭВМ, определение формата микрокоманд, составление таблиц соответствия двоичного и символьного кодирований.
курсовая работа [1,6 M], добавлен 05.06.2013Построение универсального лабораторного комплекса вычислительной техники. Создание программы-эмулятора контроля арифметическо-логического устройства с использованием остаточных кодов по модулю 3. Обоснование элементной базы; синтез основных узлов АЛУ.
курсовая работа [1,9 M], добавлен 01.10.2013Структурная и функциональная схема операционной части блока обработки команд. Совмещение регистрового и относительного с базированием и индексированием режимов адресации. Синтез самопроверяемой схемы встроенного контроля для комбинационной схемы.
контрольная работа [21,2 K], добавлен 02.03.2014Систематизация, закрепление и расширение теоретических и практических знаний. Выбор методов построения проектируемого устройства, синтез функциональных узлов, схемы контроля, расчеты электронных схем. Проектирование конструкций, технологических процессов.
методичка [84,3 K], добавлен 28.12.2009Проектирование цифровых устройств на ПЛИС фирмы Xilinx с применением языка VHDL, использование систем Leonardo Spectrum, Foundation Express и Integrated Synthesis Environment (ISE). Синтез и реализация проекта, разработка регистровой схемы и умножителя.
курсовая работа [2,3 M], добавлен 28.06.2009Синтез структуры простого магистрального процессора с одним АЛУ, выполняющего 8 заданных команд. Разработка формата и кодировки команд, структурной схемы процессора, функциональные схемы всех его блоков в целом с указанием шин и управляющих сигналов.
реферат [123,9 K], добавлен 18.05.2009Типовые комбинационные схемы. Основы математического аппарата анализа и синтеза логических устройств. Функциональная полнота элементов Шеффера и Пирса. Логические элементы, образующие логический базис. Особенности синтеза схем с запрещенными комбинациями.
методичка [977,1 K], добавлен 28.04.2009