Смекни!
smekni.com

Разработка двоичного сумматора по модулю 13 (стр. 2 из 3)

Основные свойства VHDL:

Одно из главных свойств - это способность описывать аппаратуру и ее работу во времени. Поэтому основными в VHDL являются такие близкие разработчику понятия, как объект проекта, интерфейс, порт, архитектура, сигнал, атрибуты сигнала, операторы параллельного присвоения, процесс и др.

Сигнал в VHDL трактуется весьма широко и может быть скалярным (целым, вещественным, битовым и т. д.) или векторным (шинным), булевым или многозначным. Многозначная (реально 5-, 9- или 12-значная) логика дает возможность выявлять с помощью моделирования такие явления в схемах, как гонки, неопределенности на выходах схем (например, асинхронного RS-триггера при запрещенных значениях входных сигналов), решать задачи мультиплексирования шины.

1.3.2 Пакет WebPACK ISE

Программируемые логические интегральные схемы (ПЛИС) все более широко используются для создания цифровых систем различного назначения. Фирма Xilinx®, являясь ведущим мировым производителем ПЛИС, предоставляет разработчикам широкий спектр кристаллов с различной технологией производства, степенью интеграции, архитектурой, быстродействием, потребляемой мощностью и напряжением питания, выпускаемых в различных типах корпусов и в нескольких вариантах исполнения, включая промышленное, военное и радиационно-стойкое [1–5].

Кристаллы, выпускаемые фирмой Xilinx, в полной мере реализуют преимущества ПЛИС по сравнению с «жесткой логикой»:

· высокое быстродействие;

· возможность перепрограммирования непосредственно в системе;

· высокая степень интеграции, позволяющая разместить цифровое устройство в одном кристалле и тем самым снизить время и затраты на трассировку и производство печатных плат;

· сокращение времени цикла разработки и производства устройства;

· наличие мощных инструментов САПР, позволяющих устранить возможные ошибки в процессе проектирования устройства;

· сравнительно низкая стоимость (в пересчете на один логический вентиль);

· возможность последующей реализации проектов ПЛИС для серийного производства в виде заказных СБИС, что позволяет значительно снизить их себестоимость.

До недавнего времени, несмотря на все достоинства ПЛИС Xilinx, существовало обстоятельство сдерживающее их применение (особенно недорогих кристаллов при разработке несерийных устройств) — необходимость дополнительных затрат на приобретение пакета программных средств проектирования и программирования. Чтобы устранить это препятствие, фирма Xilinx предоставила разработчикам возможность использовать бесплатное программное обеспечение — пакет WebPACK™ ISE™ (Integrated Synthesis Environment). Цель настоящей публикации — познакомить разработчиков цифровых устройств с возможностями САПР WebPACK ISE и основами методики выполнения проектов в среде данного пакета.

1.3.2.1 Основные характеристики пакета WebPACK ISE

Программные средства WebPACK ISE представляют собой систему сквозного проектирования, которая реализует все этапы создания цифрового устройства на базе ПЛИС, включая программирование кристалла: разработка проекта, синтез, моделирование, трассировка и загрузка в кристалл. Версия 3.3WP8.0 САПР WebPACK ISE предназначена для проектирования цифровых устройств на базе ПЛИС производства Xilinx, относящихся как семействам CPLD: XC9500, XC9500XL, XC9500XV, XCR22V10, XCR3000 (XPLA1_3, XPLA2), XCR3000XL (XPLA3), XCR5000 (XPLA1_5), так и FPGA: Spartan™-II, Virtex™-E (только кристалл XCV300E), Virtex-II (кристаллы 2V40, 2V80 и 2V250).

Отличительные особенности пакета:

· поддержка различных методов описания проектируемых устройств (графических и текстовых);

· возможность использования проектов, подготовленных в других системах проектирования, в том числе в среде пакета Altera MAX+PlusII™;

· наличие схемотехнического редактора, укомплектованного набором обширных библиотек;

· интеллектуальные средства создания HDL (Hardware Description Language)-описаний, формирующие шаблоны на основании информации, предоставляемой пользователем, для языков описания аппаратуры VHDL, Verilog™ и ABEL™ HDL;

· высокоэффективные средства синтеза HDL-проектов, поддерживающие языки VHDL, Verilog и ABEL HDL, с возможностью оптимизации;

· развитые средства верификации проекта, позволяющие сократить полное время разработки устройства за счет обнаружения возможных ошибок на более ранних стадиях проектирования и сокращения длительности и количества возможных итераций;

· автоматические средства трассировки проекта в кристаллы различных семейств ПЛИС Xilinx с учетом оптимизации проекта по различным параметрам;

· средства программирования кристаллов семейств ПЛИС Xilinx, выполненных по различной технологии (CPLD и FPGA), поддерживающие несколько типов загрузочных кабелей JTAG-интерфейса;

· удобный для разработчика пользовательский интерфейс и наличие в каждом модуле пакета справочной системы, сокращающие время освоения САПР;

· наличие интегрированного с пакетом САПР набора инструментов и утилит других фирм, предоставляющих дополнительные удобства в процессе проектирования, включающего утилиту генерации тестовых сигналов HDL Bencher™, программу моделирования ModelSim XE Starter™ и редактор диаграмм состояний StateCAD™.


2. Практическая часть

2.1 Формирование логической последовательности

Десятичный сумматор с кодом 7-4-2-1. Этот код позиционный. Каждому разряду кодовой комбинации сопоставляется определенный весовой коэффициент, зависящий от позиции этого разряда. Если задана кодовая комбинация

, где
– двоичные символы, то десятичную цифру, соответствующую этой кодовой комбинации можно определить по формуле:

Таким образом, данный код имеет следующие обозначения цифр:

«0» – 0000; «4» – 0100; «8» – 1001; «12» - 1101.

«1» – 0001; «5» – 0101; «9» – 1010;

«2» – 0010; «6» – 0110; «10» - 1011;

«3» – 0011; «7» – 1000; «11» - 1100;

Для данного сумматора получена следующая логическая последовательность:

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) конъюнкт. термы(productterms) входы функц. блоков(func. blockinputs)
xc9500xl 23 160 92
CoolRunner 15 78 29

Вариант 2

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


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

Таблица 2.

Количество использованных ресурсов ПЛИС
макроячейки(macrocells) конъюнкт. термы(productterms) входы функц. блоков(func. blockinputs)
xc9500xl 24 167 98
CoolRunner 18 91 39

Вариант 3

Проанализировав данную схему (рис.4.), можно сделать вывод о том, что она является наиболее сложной схемой, в плане реализации, а также по количеству использованных ресурсов ПЛИС (таблица 3).

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


Таблица 3.

Количество использованных ресурсов ПЛИС
макроячейки(macrocells) конъюнкт. термы(productterms) входы функц. блоков(func. blockinputs)
xc9500xl 26 241 73
CoolRunner 20 67 29

2.3 Описание сумматора на языке VHDL

Данный способ реализации цифровых устройств пользуется наибольшей популярностью во всем мире. Ниже приведен текст на языке VHDL, описывающий поведение десятичного сумматора с кодом 7-4-2-1, и результаты трассировки данного варианта.

libraryIEEE;

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.