Розробка двійкового суматора на мові VHDL

Автор работы: Пользователь скрыл имя, 13 Марта 2014 в 19:27, курсовая работа

Краткое описание

У даній роботі показані основні принципи формування логічної послідовності двійкового суматора. Синтезовано суматор за допомогою пакету Decomposer, описано суматор на мові VHDL. А також було використано систему наскрізного проектування - програмні засоби WebPACK ISE.

Прикрепленные файлы: 1 файл

Автоматизація компютерних систем.docx

— 189.62 Кб (Скачать документ)

 

2. Практична частина

2.1 Формування логічної послідовності 

Десятковий суматор з кодом 7-4-2-1. Цей код позиційний. Кожному розряду кодової комбінації зіставляється певний ваговий коефіцієнт, що залежить від позиції цього розряду. Якщо задана кодова комбінація , де - двійкові символи, то десяткову цифру, відповідну цієї кодової комбінації можна визначити за формулою:

Таким чином, даний код має наступні позначення чисел:

«0» – 0000; «4» – 0100; «8» – 1000; «C» - 1100.

«1» – 0001; «5» – 0101; «9» – 1001; «D» - 1101

«2» – 0010; «6» – 0110; «A» - 1010; «E» - 1110

«3» – 0011; «7» – 0111; «B» - 1011; «F» - 1111

Для даного суматора отримана наступна логічна послідовність:

00 01 01 02 02 03 03 04 04 05 05 06 06 08 ** **

08 09 09 0A 0A 0B 0B 0C 0C 0D 0D 10 ** ** ** **

01 02 02 03 03 04 04 05 05 06 06 08 08 09 ** **

09 0A 0A 0B 0B 0C 0C 0D 0D 10 10 11 ** ** ** **

02 03 03 04 04 05 05 06 06 08 08 09 09 0A ** **

0A 0B 0B 0C 0C 0D 0D 10 10 11 11 12 ** ** ** **

03 04 04 05 05 06 06 08 08 09 09 0A 0A 0B ** **

0B 0C 0C 0D 0D 10 10 11 11 12 12 13 ** ** ** **

04 05 05 06 06 08 08 09 09 0A 0A 0B 0B 0C ** **

0C 0D 0D 10 10 11 11 12 12 13 13 14 ** ** ** **

05 06 06 08 08 09 09 0A 0A 0B 0B 0C 0C 0D ** **

0D 10 10 11 11 12 12 13 13 14 14 15 ** ** ** **

06 08 08 09 09 0A 0A 0B 0B 0C 0C 0D 0D 10 ** **

10 11 11 12 12 13 13 14 14 15 15 16 ** ** ** **

** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **

** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **

08 09 09 0A 0A 0B 0B 0C 0C 0D 0D 10 10 11 ** **

11 12 12 13 13 14 14 15 15 16 16 18 ** ** ** **

09 0A 0A 0B 0B 0C 0C 0D 0D 10 10 11 11 12 ** **

12 13 13 14 14 15 15 16 16 18 18 19 ** ** ** **

0A 0B 0B 0C 0C 0D 0D 10 10 11 11 12 12 13 ** **

13 14 14 15 15 16 16 18 18 19 19 1A ** ** ** **

0B 0C 0C 0D 0D 10 10 11 11 12 12 13 13 14 ** **

14 15 15 16 16 18 18 19 19 1A 1A 1B ** ** ** **

0C 0D 0D 10 10 11 11 12 12 13 13 14 14 15 ** **

15 16 16 18 18 19 19 1A 1A 1B 1B 1C ** ** ** **

0D 10 10 11 11 12 12 13 13 14 14 15 15 16 ** **

16 18 18 19 19 1A 1A 1B 1B 1C 1C 1D ** ** ** **

 

 

2.2 Синтез суматора за допомогою пакету Decomposer

Варіант 1

Варіант 1 складається з 3 суматорів і 5 блоків. Схема наведена на малюнку 2. Результати трасування для різних типів мікросхем наведені в таблиці 1.

Рис.2. Схема суматора. Варіант 1.

Таблиця 1.

 

Кількість використаних ресурсыв ПЛІС

 

макрокомірки

(macrocells)

конюнкт. терми

(product terms)

входи функц. блоків

(func. block inputs)

xc9500xl

23

160

92

CoolRunner

15

78

29


 

 

 

 

Варіант 2

Ця схема складається з 4-х суматорів, 2-х елементів «виключає або» і 4-х блоків. Схема наведена на рис.3. Результати трасування для різних типів мікросхем наведені в таблиці 2.

Рис.3. Схема суматора. Варіант 2.

Таблиця 2.

 

Кількість використаних ресурсыв ПЛІС

 

макрокомірки

(macrocells)

конюнкт. терми

(product terms)

входи функц. блоків

(func. block inputs)

xc9500xl

24

167

98

CoolRunner

18

91

39


 

 

 

 

 

Варіант 3

Проаналізувавши дану схему (рис.4.), можна зробити висновок про те, що вона є найбільш складною схемою, в плані реалізації, а також за кількістю використаних ресурсів ПЛІС (таблиця 3).

Рис.4. Схема суматора. Вариант 3.

Таблиця 3.

 

Кількість використаних ресурсыв ПЛІС

 

макрокомірки

(macrocells)

конюнкт. терми

(product terms)

входи функц. блоків

(func. block inputs)

xc9500xl

26

241

73

CoolRunner

20

67

29


 

 

 

2.3 Опис суматора на мові VHDL.

Даний спосіб реалізації цифрових пристроїв користується найбільшою популярністю в усьому світі. Нижче наведений текст мовою 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.

 

Ккількість використаних ресурсів ПЛІС

 

макрокомірка

(macrocells)

конюнкт. терми

(product terms)

входи функц. блоків

(func. block inputs)

xc9500xl

18

241

74

CoolRunner

21

80

42


 

 

2.4 Порівняльний аналіз використовуваних ресурсів для різних варіантів реалізації схеми

 

Таблиця 5. Результати трасування для xc9500xl.

xc9500xl

Кількість використаних ресурсів ПЛІС

 

macrocells

product terms

function block inputs

Варіант 1

23

160

92

Варіант 2

24

167

98

Варіант 3

26

241

73

Варіант 4 (VHDL)

18

241

74


 

Таблиця 6. Результати трасування для CoolRunner.

CoolRunner

Кількість використаних ресурсів ПЛІС

 

macrocells

product terms

function block inputs

Вариант 1

15

78

29

Вариант 2

18

91

39

Вариант 3

20

67

29

Вариант 4 (VHDL)

21

80

42


 

 

2.5 Покриття блоків

Провівши порівняльний аналіз за таблицями 5, 6, можна зробити висновок про те, що оптимальним є перший варіант розкладання. Проведемо покриття блоків за допомогою мультиплексорів типу 4/1.

За допомогою мультиплексора типу 4/1 можна реалізувати будь-яку логічну функцію 3-х аргументів, оскільки при розкладанні виключаються 2 аргумента, а на входи подаються функції одного аргументу. Це можуть бути або константи «0», «1», або функція тотожності, або функція інверсії 3-го аргументу.

Логічна послідовність першого блоку:

0012 345* 6633 700*

Матриці розкладання мають вигляд:

2) 

3) 

 

Використовуючи дані розкладання, уявімо схему даного блоку (графічна робота "Схема електрична принципова блоку DC1").

Логічна послідовність другого блоку:

0112 2302 1203 0013 0222 0013 13*3 1120

Матриці розкладання мають вигляд:

1) 

2) 

 

Використовуючи дані розкладання, уявімо схему даного блоку (графічна робота "Схема електрична принципова блоку DC2").

Логічна послідовність третього блоку:

0123 0124 056* 723*

 

Матриці розкладання мають вигляд:

1) 

2) 

3) 

 

Використовуючи дані розкладання, уявімо схему даного блоку (графічна робота "Схема електрична принципова блоку DC3").

Логічна послідовність четвертого блоку:

0123 4560 2347 *476

Матриці розкладання мають вигляд:

1) 

2) 

3) 

 
Використовуючи дані розкладання, уявімо схему даного блоку (графічна робота "Схема електрична принципова блоку DC4").

Логічна послідовність п'ятого блоку:

0123 4125 2345 6457

Матриці розкладання мають вигляд:

1) 

2) 

3) 

 

Використовуючи дані розкладання, уявімо схему даного блоку (графічна робота "Схема електрична принципова блоку DC5").

Після покриття блоку отримали наочну економію ресурсів ПЛІС.

 

Таблица 7.

 

Кількість використаних ресурсів ПЛІС

 

макрокомірки

(macrocells)

конюнкт. терми

(product terms)

входи функц. блоків

(func. block inputs)

xc9500xl

20

160

91

CoolRunner

15

77

29


 

 

Висновок

Для нетривіальних схем методи декомпозиції дають суттєвий виграш по відношенню до використовуваних ресурсів. Як видно з таблиць 5-6, традиційний в наш час підхід опису цифрових пристроїв (VHDL) для суматора в коді 7-4-2-1 при трасуванні в кристал не дає істотного виграшу, ніж схема, отримана в результаті декомпозиції .

З таблиць 5-6, видно, що для різних типів ПЛІС оптимальний результат дають різні варіанти реалізації. Це пов'язано з особливістю структури тих чи інших ПЛІС і вимагає окремих досліджень.

Пошук оптимального рішення задачі синтезу складається з розгляду та аналізу декількох варіантів реалізації комбінаційної схеми для різних типів ПЛІС. У деяких випадках виникає необхідність оцінювати не тільки використовувані ресурси ПЛІС, але і затримку проходження сигналу через схему.

Як видно з таблиць 5-6, для реалізації суматора за модулем 13 з ваговими коефіцієнтами 7-4-2-1 найбільш оптимальними варіантами є схеми № 1 і № 2. Після покриття схеми № 1 мультиплексорами типу 4/1, помітний істотний виграш у використанні ресурсів ПЛІС, про що свідчать результати таблиці 7.

 

 

 

Література

  1. Коновалов В.М., Бєлов А.А., Коновалов І.В., Нежельскій П.М.: Автоматизований синтез комбінаційних логічних схем на основі багаторівневої декомпозиції. - КФ МГТУ ім. Н.Е. Баумана, - 35с . : Ил.
  2. Голубєв Ю.П.:Автоматизація проектування перетворювачів дискретної інформації. - Калуга: Видавництво «Гриф», 2003. -652 С.
  3. Соловйов В.В.: Проектування цифрових систем на основі програмованих логічних інтегральних схем. - М.: Гаряча лінія - Телеком, 2001. - 636 с.
  4. Кузелін М.О., Книшев Д.А., Зотов В.Ю.: Сучасні сімейства ПЛІС фірми Xilinx. Довідковий посібник. - М.: Гаряча лінія - Телеком, 2004 . - 440 с.
  5. VHDL для проектирования вычислительных устройств,  Сергиенко А. М ст.49-63.

 

 

 


Информация о работе Розробка двійкового суматора на мові VHDL