Моделирование схемы

Методика разработки и анализ цифровой схемы, содержащей не менее трех последовательностных устройств и комбинационных. Моделирование схемы, описанной на языке VHDL с использованием Xilinx WebPackISE. Выбор и обоснование необходимых аппаратных средств.

Рубрика Физика и энергетика
Вид контрольная работа
Язык русский
Дата добавления 16.10.2014
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Задание

1) Выбрать (разработать самостоятельно) цифровую схему содержащую не менее трех последовательностных устройств и трех комбинационных.

2) Промоделировать схему, описанную на языке VHDL. Для моделирования использовать Xilinx WebPackISE.

Рисунок 1. Структурная схема для моделирования

Таблица 1. Описание логических функций каждого блока и вносимых каждым блоком задержек передачи сигнала

Имя элемента

Функция элемента

Задержка (ns)

N

Y=

1

NAO3

Y=

5

NO2

Y=

3

NO3A2

5

NA2

2

NAOA2

4

A2

y=AB

2

A4

y=ABCD

4

1. Выбор аппаратных средств

схема комбинационный моделирование

Аппаратную реализацию данного проекта произведем на основе ПЛИС. ПЛИС - программируемая логическая интегральная схема (англ. programmable logic device, PLD) - это большие интегральные микросхемы матричного типа, позволяющие программным способом реализовать логические функции большой сложности. Другими словами это электронный компонент, используемый для создания цифровых интегральных схем.

В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования). Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры HDL (англ. Hardware description language) - VHDL, Verilog, Abel, и т.д. Описание нашего проекта произведем на VHDL (англ. Very high speed integrated circuits Hardware Description Language), т.к. VHDL является базовым языком при разработке аппаратуры современных вычислительных систем.

Для реализации проекта используем ПЛИС фирмы Xilinx потому что:

- основанная в 1984 году американская компания Xilinx является одним из лидеров в области производства ПЛИС-микросхем и занимает более 50% рынка ПЛИС;

- хорошая техническая поддержка. На сайте www.xilinx.com можно найти всю необходимую информацию для работы с микросхемами данной фирмы;

- программное обеспечение ISE фирмы Xilinx давно известно как средство, обеспечивающее высокую производительность разрабатываемых устройств с программируемой логикой, при этом ISE является простым в освоении и недорогим продуктом. Например, ISE WebPACK является бесплатным, свободно загружаемым через интернет средством проектирования, которое обеспечивает сквозной маршрут проектирования для ПЛИС. Этот САПР включает синтез и моделирование на HDL, размещение и трассировку проектов, а также программирование кристаллов по JTAG-интерфейсу.

В настоящее время наибольшую распространенность получили два типа архитектур ПЛИС: CPLD и FPGA.

· CPLD (англ. complex programmable logic device). Серии ПЛИС типа CPLD: CoolRunner и XC9500, предназначенных для использования в различных портативных устройствах - мобильных телефонах, GPS-навигаторах, КПК и т.д. Для микросхем данного типа главными критериями является минимизация размеров и потребляемой мощности. CPLD состоит из блоков, расположенных на одном кристалле. Каждый блок соединен с блоками ввода-вывода, осуществляющими высокоскоростной обмен с другими микросхемами, кроме того, все блоки связаны между собой внутренними параллельными шинами. На Рисунке 2 приведен пример внутренней структуры PAL-like блоков и их соединения в CPLD.

Рисунок 2. Структура CPLD

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

Рисунок 3. Внутренняя организация блока микросхемы CPLD

Буфер позволяет настраивать выводы чипа, как на ввод, так и на вывод сигналов. Чтобы вывод микросхемы мог стать входным, достаточно перевести соответствующий буфер в высокоимпедансное состояние. Дальнейший путь прохождения сигнала может быть запрограммирован. На схеме это указывается символом Х, стоящим на пересечении вертикальных и горизонтальных линий.

Для ПЛИС данной архитектуры характерно крайне низкая потребляемая мощность в статическом режиме (потребляемый ток порядка десятков микроампер), которая линейно возрастает с увеличением тактовой частоты. Также для данной архитектуры характерны жесткие временные задержки между макроячейками, а следовательно и выводами микросхемы. Типичное время задержки между выводами (pin-to-pin) составляет единицы наносекунд. Прошивка ПЛИС данной архитектуры хранится внутри микросхемы в энергонезависимой памяти.

· FPGA (англ. field-programmable gate array). Для реализации крупных проектов удобно использовать чипы, обладающие еще большей логической вместимостью. Такими чипами и являются программируемые пользователем вентильные матрицы FPGA фирмы Xilinx семейств Virtex, Kintex, Spartan, Artix. По своей структуре FPGA отличаются от CPLD, потому что не содержат матриц И и матриц ИЛИ. Вместо этого, FPGA включают в себя специальные логические блоки LUT (англ. Lookup tables) - таблицы преобразования, позволяющие реализовывать логические функции для реализации требуемых функций. Общая структура FPGA изображена на Рисунке 4.

Рисунок 4. Общая структура FPGA

Типичный чип FPGA содержит три типа элементов: логические блоки, блоки ввода-вывода для соединения с внешними выводами чипа и программируемые ключи для создания соединений между блоками. Логические блоки размещаются в узлах решетки вертикальных и горизонтальных проводников, с помощью которых можно создавать самые различные соединения между блоками. Соединения являются программируемыми и осуществляются путем настройки внутренних соединительных ключей, обозначенных на рисунке красным цветом. Соединения с блоками ввода-вывода также программируются. У различных серий FPGA реальное число программируемых ключей значительно отличается, что необходимо учитывать при выборе фирмы-изготовителя и конкретных микросхем.

Каждый логический блок LUT в FPGA обычно имеет небольшое число входов и один выход. Каждый LUT содержит запоминающие ячейки, которые используются при реализации небольшой логической функции. Каждая ячейка способна хранить значение одной логической переменной, т.е. 0 или 1. Размер LUT определяется числом входов, которое зависит от типа микросхемы. На рисунке 5 показана структура небольшого LUT. Он имеет два входа x1 и x2, и один выход f.

Рисунок 5. Структура LUT

LUT, изображенный на рисунке 5, способен реализовать любую логическую функцию двух переменных. Поскольку таблица истинности функций двух переменных имеет четыре строки, этот LUT имеет четыре запоминающих ячейки. Одна ячейка соответствует значению выхода в каждой строке таблицы истинности. Входные переменные x1 и x2 используются как адресные входы трех мультиплексоров, которые в зависимости от значений x1 и x2 передают содержание одной из этих четырех запоминающих ячеек на выход LUT. Для программирования LUT необходимо лишь сохранить таблицу истинности реализуемой функции в ячейках памяти блока.

Запоминающие ячейки LUT в FPGA энергозависимы. Это означает, что они теряют свое содержимое всякий раз при отключении питания. Следовательно, чип FPGA должен запрограммироваться каждый раз при включении питания. Обычно, данные, необходимые для программирования хранятся в микросхеме ППЗУ, расположенной на той же плате, что и чип FPGA. Данные, хранимые в ППЗУ, автоматически переписываются в ячейки памяти FPGA при включении питания.

Современные ПЛИС FPGA содержат аппаратные умножители в том числе с накоплением (MAC), блоки внутренней памяти, аппаратные интерфейсы для DDRx SDRAM, аппаратные ядра PCIexpress, встроенные микропроцессорные ядра, трансиверы для организации скоростной передачи данных между ПЛИС и внешними устройствами.

Для реализации нашего проекта выберем CPLD микросхему XC9536XL семейства XC9500XL фирмы Xilinx потому что:

- наш проект достаточно простой, реализует лишь логические функции, поэтому емкости данной микросхемы вполне достаточно. Также данная микросхема полностью совместима по выводам с микросхемой XC9572XL, которая имеет в 2 раза большую емкость и может быть использована при расширении проекта;

- достаточное количество пользовательских входов-выходов;

- прошивка ПЛИС данной архитектуры хранится внутри микросхемы в энергонезависимой памяти;

- задержка от входа до выхода по всем выводам до 5 нс.

2. Описание программы на VHDL

Для моделирования запустим среду ISE Xilinx:

Рисунок 6. Запуск ISE Xilinx

Создаем новый проект с названием Curs.

Рисунок 7. Создание проекта

Введем дополнительные параметры проекта

Рисунок 8. Ввод дополнительных данных

Разметим схему проекта изображенную на рисунке 1. Пронумеруем на схеме все модули и внутренние сигналы нашего проекта, обозначив их буквами U и S соответственно (рисунок 9).

Рисунок 9. Схема проекта с обозначенными модулями и сигналами.

Составим описание каждого модуля, входящего в схему, на языке VHDL.

Описание модуля в VHDL состоит из 3-х частей:

1. описание библиотек;

2. блок entity с описанием входов и выходов;

3. реализация architecture.

Учитывая введенные обозначения и данные таблицы 1, добавим в проект программы Xilinx ISE описание каждого модуля схемы. Для этого требуется выбрать пункт «New Source.», как показано на рисунке ниже:

Рисунок 10. Создание файла проекта

Далее в качестве типа добавляемого файла установить «VHDL Module» и два раза нажать кнопку Next.

Рисунок 11. Добавление в проект файла с VHDL описанием модуля схемы

Названия файлов для элементов будем брать из колонки «Имя элемента» таблицы 1.

1) Файл описания модулей U3, U4, U5, U6, U7, U8, U9, U10, U11, U12 (файл N.vhd):

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity N is

Port (A: in STD_LOGIC;

Y: out STD_LOGIC);

end N;

architecture Behavioral of N is

begin

Y<=NOT A AFTER 1 NS;

end Behavioral;

2) Файл описания модулей U2 (файл A2.vhd):

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity A2 is

Port (A, B, C, D: in STD_LOGIC;

Y: out STD_LOGIC);

end A2;

architecture Behavioral of A2 is

begin

Y<= A AND B AFTER 2 NS;

end Behavioral;

3) Файл описания модуля U16, U18 (файл NAO3.vhd):

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity NAO3 is

Port (A, B, C, D: in STD_LOGIC;

Y: out STD_LOGIC);

end NAO3;

architecture Behavioral of NAO3 is

begin

Y<=NOT (A AND (B OR C OR D)) AFTER 5 NS;

end Behavioral;

4) Файл описания модуля U1 (файл NO2.vhd):

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity NO2 is

Port (A, B: in STD_LOGIC;

Y: out STD_LOGIC);

end NO2;

architecture Behavioral of NO2 is

begin

Y<=NOT (A OR B) AFTER 3 NS;

end Behavioral;

5) Файл описания модуля U15 (файл NO3A2.vhd):

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity NO3A2 is

Port (A: in STD_LOGIC;

B: in STD_LOGIC;

C: in STD_LOGIC;

D: in STD_LOGIC;

Y: out STD_LOGIC);

end NO3A2;

architecture Behavioral of NO3A2 is

begin

Y=<= NOT (A OR B OR (D AND C)) AFTER 5 NS

end Behavioral;

6) Файл описания модуля U13 (файл NAOA2.vhd):

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity NAOA2 is

Port (A: in STD_LOGIC;

B: in STD_LOGIC;

C: in STD_LOGIC;

D: in STD_LOGIC;

Y: out STD_LOGIC);

end NAOA2;

architecture Behavioral of NAOA2 is

begin

Y<=NOT (A AND (B OR (C AND D))) AFTER 4 NS;

end Behavioral;

7) Файл описания модуля U14 (файл NA2.vhd):

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity NA2 is

Port (A: in STD_LOGIC;

B: in STD_LOGIC;

Y: out STD_LOGIC);

end NA2;

architecture Behavioral of NA2 is

begin

Y<= NOT (A AND B);

end Behavioral;

8) Файл описания модулей U17 (файл A4.vhd):

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity A4 is

Port (A: in STD_LOGIC;

B: in STD_LOGIC;

C: in STD_LOGIC;

D: in STD_LOGIC;

Y: out STD_LOGIC);

end A4;

architecture Behavioral of A4 is

begin

Y<= A AND B AND C AND D;

end Behavioral;

Добавим в проект файл полного структурного описания схемы (файл circuit.vhd). Данный файл требуется установить как модуль верхнего уровня, выбрав во всплывающем меню пункт «Set as Top Module».

Рисунок 12. Установка файла circuit.vhd. как модуля верхнего уровня.

10) Файл описания всей схемы проекта cicuit.vhd:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

entity circuit is

Port (X1, X2, X3, X4: in STD_LOGIC;

Y4, Y1, Y3: inout STD_LOGIC;

Y2, Y5: out STD_LOGIC);

end circuit;

architecture struct of circuit is

component N

Port (A: in STD_LOGIC;

Y: out STD_LOGIC);

end component;

component NA3O2

Port (A, B, C, D: in STD_LOGIC;

Y: out STD_LOGIC);

end component;

component NA4

Port (A, B, C, D: in STD_LOGIC;

Y: out STD_LOGIC);

end component;

component NAO3

Port (A, B, C, D: in STD_LOGIC;

Y: out STD_LOGIC);

end component;

component NO2

Port (A, B: in STD_LOGIC;

Y: out STD_LOGIC);

end component;

component NO3

Port (A, B, C: in STD_LOGIC;

Y: out STD_LOGIC);

end component;

component NO4

Port (A, B, C, D: in STD_LOGIC;

Y: out STD_LOGIC);

end component;

component NOAO2

Port (A, B, C, D: in STD_LOGIC;

Y: out STD_LOGIC);

end component;

component O2

Port (A, B: in STD_LOGIC;

Y: out STD_LOGIC);

end component;

signal S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12: STD_LOGIC;

begin

U1: N port map (Y1, S1);

U2: N port map (X1, S2);

U3: N port map (X4, S3);

U4: NO2 port map (X2, Y4, S4);

U5: N port map (X3, S5);

U6: N port map (X2, S6);

U7: O2 port map (X1, S1, S7);

U8: N port map (S1, S8);

U9: O2 port map (X1, S1, S9);

U10: NA4 port map (X3, X1, S6, X4, S10);

U11: NO2 port map (S2, X4, S11);

U12: NA3O2 port map (S3, S4, X3, X1, S12);

U13: NO4 port map (S5, S3, X1, S6, Y3);

U14: NOAO2 port map (S3, S7, Y3, S8, Y2);

U15: NO3 port map (S5, S2, X4, Y4);

U16: NAO3 port map (S12, S11, X3, S6, Y1);

U17: NA3O2 port map (S9, S10, X4, S6, Y5);

end struct;

3. Тестирование и анализ результата

Для моделирования цифровой схемы следует в закладке Design установить пункт Simulation.

Рисунок 13. Вкладка Simulation

Добавим файл cicuit_tb.vhd для описания симуляции проекта, выбрав тип файла VHDL TestBench в меню NewSource. В файле cicuit_tb.vhd схема проекта cicuit.vhd представлена в виде компонента. В процессе stim_proc задаются входные воздействия для X1, X2, X3, X4 согласно таблице 2. Значения входных портов изменяются через интервал времени time_const, который нужно выбирать так, чтобы схема успевала реагировать на изменения входных данных.

Рисунок 14. Создание файла симуляции проекта circuit_tb

Файл описания симуляции схемы проекта cicuit_tb.vhd:

USE ieee.std_logic_1164.ALL;

ENTITY circuit_tb IS

END circuit_tb;

ARCHITECTURE behavior OF circuit_tb IS

COMPONENT circuit

PORT (

X1: IN std_logic;

X2: IN std_logic;

X3: IN std_logic;

X4: IN std_logic;

Y4: INOUT std_logic;

Y1: INOUT std_logic;

Y3: INOUT std_logic;

Y2: OUT std_logic;

Y5: OUT std_logic

);

END COMPONENT;

- Inputs

signal X1: std_logic:= '0';

signal X2: std_logic:= '0';

signal X3: std_logic:= '0';

signal X4: std_logic:= '0';

- BiDirs

signal Y4: std_logic;

signal Y1: std_logic;

signal Y3: std_logic;

- Outputs

signal Y2: std_logic;

signal Y5: std_logic;

constant time_const: time:= 20 ns;

BEGIN

uut: circuit PORT MAP (

X1 => X1,

X2 => X2,

X3 => X3,

X4 => X4,

Y4 => Y4,

Y1 => Y1,

Y3 => Y3,

Y2 => Y2,

Y5 => Y5

);

- Stimulus process

stim_proc: process

begin

- hold reset state for 10 ns.

wait for 10 ns;

X1<='0'; X2<='0'; X3<='0'; X4<='0';

wait for time_const;

X1<='0'; X2<='0'; X3<='0'; X4<='1';

wait for time_const;

X1<='0'; X2<='0'; X3<='1'; X4<='0';

wait for time_const;

X1<='0'; X2<='0'; X3<='1'; X4<='1';

wait for time_const;

X1<='0'; X2<='1'; X3<='0'; X4<='0';

wait for time_const;

X1<='0'; X2<='1'; X3<='0'; X4<='1';

wait for time_const;

X1<='0'; X2<='1'; X3<='1'; X4<='0';

wait for time_const;

X1<='0'; X2<='1'; X3<='1'; X4<='1';

wait for time_const;

X1<='1'; X2<='0'; X3<='0'; X4<='0';

wait for time_const;

X1<='1'; X2<='0'; X3<='0'; X4<='1';

wait for time_const;

X1<='1'; X2<='0'; X3<='1'; X4<='0';

wait for time_const;

X1<='1'; X2<='0'; X3<='1'; X4<='1';

wait for time_const;

X1<='1'; X2<='1'; X3<='0'; X4<='0';

wait for time_const;

X1<='1'; X2<='1'; X3<='0'; X4<='1';

wait for time_const;

X1<='1'; X2<='1'; X3<='1'; X4<='0';

wait for time_const;

X1<='1'; X2<='1'; X3<='1'; X4<='1';

wait;

end process;

END;

Для запуска процесса симуляции необходимо во вкладке Design, при отмеченном Simulation, выделить файл описания симуляции проекта cicuit_tb.vhd, а затем во вкладке Process запустить Simulate Behavioral Model.

Рисунок 15. Запуск симуляции проекта

Для проверки правильности описания схемы следует сравнить временную диаграмму и значения таблицы 2. При проверке требуется учитывать влияние на прохождение сигнала временных задержек компонентов схемы.

Временная диаграмма для рассматриваемой схемы имеет вид:

Рисунок 16. Временная диаграмма работы схемы

При проверке видно, что работа схемы соответствует заданию.

Для верификации также следует сравнить заданную структурную схему с RTL представление синтезированной схемы. Для этого надо во вкладке Desigin, при выбранном Implementation, выделить модуль верхнего уровня (circuit.vhd), а в закладке Process выбрать пункт View RTL Schematic:

Рисунок 17. Запуск RTL представления синтезированной схемы

Далее в появившемся диалоге выбрать пункт «Start with a schematic of the top-level block».

Из RTL схемы видно, что синтезированная схема соответствует исходной.

Список литературы

1) Зотов В.Ю. Проектирование цифровых устройств на основе ПЛИС фирмы XILINX в САПР WebPACK ISE. - М.: Горячая линия-Телеком, 2003. - 624 с.

2) Бибило П.Н. Основы языка VHDL: изд 3-е, доп. - М: Издательство ЛКИ, 2007 - 328 с.

Размещено на Allbest.ru


Подобные документы

  • Этапы расчета параметров схемы замещения сети. Особенности моделирования линий электропередач. Анализ трехлучевой схемы замещения. Основное назначение программного комплекса LinCorWin. Рассмотрение способов вывода в ремонт электросетевого оборудования.

    контрольная работа [2,9 M], добавлен 04.11.2012

  • Обоснование схемы электрических соединений. Выбор количества отходящих линий и генераторов на УТЭЦ. Дистанционное управление выключателями. Выбор контрольно-измерительных приборов для основных цепей схемы. Описание конструкции распределительных устройств.

    курсовая работа [675,8 K], добавлен 27.10.2012

  • Краткое описание, принципиальная тепловая схема и основные энергетические характеристики паротурбинной установки. Моделирование котла-утилизатора и паровой конденсационной турбины К-55-90. Расчет тепловой схемы комбинированной энергетической установки.

    курсовая работа [900,4 K], добавлен 10.10.2013

  • Основные виды физических полей в конструкциях РЭС. Моделирование теплового поля интегральной схемы в САПР ANSYS. Моделирование поля электромагнитного поля интегральной схемы, изгибных колебаний печатного узла. Высокая точность и скорость моделирования.

    методичка [4,2 M], добавлен 20.10.2013

  • Формирование структурной схемы электростанции. Технико-экономическое обоснование принципиальной схемы электрических соединений. Выбор структурной схемы станции, основного оборудования. Выбор схемы электрических соединений всех РУ. Расчет жестких шин.

    курсовая работа [5,7 M], добавлен 20.03.2011

  • Выбор и обоснование главной схемы электрических соединений подстанции. Расчет токов короткого замыкания. Выбор коммутационных аппаратов, сборных шин и кабелей. Контрольно-измерительные приборы. Схемы открытого и закрытого распределительных устройств.

    курсовая работа [369,6 K], добавлен 22.09.2013

  • Разработка выдачи мощности и главной схемы гидроэлектростанции. Построение однолинейной схемы станции. Расчет токов короткого замыкания. Определение суммы базисных сопротивлений на участке цепи. Выбор и обоснование необходимого оборудования для ГЭС.

    курсовая работа [440,2 K], добавлен 21.10.2014

  • Конструирование электронных схем, их моделирование на ЭВМ на примере разработки схемы усилителя постоянного тока. Балансная (дифференциальная) схема для уменьшения дрейфа в усилителе постоянного тока. Режим работы каскада и данные элементов схемы.

    курсовая работа [1,4 M], добавлен 27.08.2010

  • Выбор схемы и системы электрической сети. Выбор типа проводки, способа ее выполнения и схемы электроснабжения. Прокладка кабелей в кабельных сооружениях. Выбор силовых пунктов распределения энергии на участках панелей распределительных устройств.

    курсовая работа [157,0 K], добавлен 16.06.2011

  • Технология производства и режим электропотребления приемников. Расчет электрических нагрузок. Выбор числа, мощности и расположения цеховых трансформаторных подстанций и компенсирующих устройств. Выбор схемы и расчет низковольтной электрической сети.

    курсовая работа [1,9 M], добавлен 31.03.2018

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.