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

  • Вид работы:
    Контрольная работа
  • Предмет:
    Физика
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,23 Мб
  • Опубликовано:
    2015-01-14
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Задание

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

)        Промоделировать схему, описанную на языке 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

, изображенный на рисунке 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-х частей:

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

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

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

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

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

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

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

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

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

library IEEE;IEEE.STD_LOGIC_1164.ALL;N is(A: in STD_LOGIC;: out STD_LOGIC);N;Behavioral of N is<=NOT A AFTER 1 NS;Behavioral;

) Файл описания модулей U2 (файл A2.vhd):IEEE;IEEE.STD_LOGIC_1164.ALL;A2 is(A, B, C, D: in STD_LOGIC;: out STD_LOGIC);A2;Behavioral of A2 is

begin

Y<= A AND B AFTER 2 NS;Behavioral;



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

library IEEE;IEEE.STD_LOGIC_1164.ALL;NAO3 is(A, B, C, D: in STD_LOGIC;: out STD_LOGIC);NAO3;Behavioral of NAO3 is<=NOT (A AND (B OR C OR D)) AFTER 5 NS;Behavioral;

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

library IEEE;IEEE.STD_LOGIC_1164.ALL;NO2 is(A, B: in STD_LOGIC;: out STD_LOGIC);NO2;Behavioral of NO2 is<=NOT (A OR B) AFTER 3 NS;Behavioral;

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

library IEEE;IEEE.STD_LOGIC_1164.ALL;NO3A2 is(A: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: out STD_LOGIC);NO3A2;Behavioral of NO3A2 is=<= NOT (A OR B OR (D AND C)) AFTER 5 NSBehavioral;

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

library IEEE;IEEE.STD_LOGIC_1164.ALL;NAOA2 is(A: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: out STD_LOGIC);NAOA2;Behavioral of NAOA2 is<=NOT (A AND (B OR (C AND D))) AFTER 4 NS;Behavioral;


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

library IEEE;IEEE.STD_LOGIC_1164.ALL;NA2 is(A: in STD_LOGIC;: in STD_LOGIC;: out STD_LOGIC);NA2;Behavioral of NA2 is<= NOT (A AND B);Behavioral;

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

library IEEE;IEEE.STD_LOGIC_1164.ALL;A4 is(A: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: in STD_LOGIC;: out STD_LOGIC);A4;Behavioral of A4 is<= A AND B AND C AND D; Behavioral;

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

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

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

library IEEE;IEEE.STD_LOGIC_1164.ALL;circuit is(X1, X2, X3, X4: in STD_LOGIC;, Y1, Y3: inout STD_LOGIC;, Y5: out STD_LOGIC);circuit;struct of circuit isN(A: in STD_LOGIC;: out STD_LOGIC);component;NA3O2(A, B, C, D: in STD_LOGIC;: out STD_LOGIC);component;NA4(A, B, C, D: in STD_LOGIC;: out STD_LOGIC);component;NAO3(A, B, C, D: in STD_LOGIC;: out STD_LOGIC);component;NO2(A, B: in STD_LOGIC;: out STD_LOGIC);component;NO3(A, B, C: in STD_LOGIC;: out STD_LOGIC);component;NO4(A, B, C, D: in STD_LOGIC;: out STD_LOGIC);component;NOAO2(A, B, C, D: in STD_LOGIC;: out STD_LOGIC);component;O2(A, B: in STD_LOGIC;: out STD_LOGIC);component;S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12: STD_LOGIC;

U1: N port map (Y1, S1);: N port map (X1, S2);: N port map (X4, S3);: NO2 port map (X2, Y4, S4);: N port map (X3, S5);: N port map (X2, S6);: O2 port map (X1, S1, S7);: N port map (S1, S8);: O2 port map (X1, S1, S9);: NA4 port map (X3, X1, S6, X4, S10);: NO2 port map (S2, X4, S11);: NA3O2 port map (S3, S4, X3, X1, S12);: NO4 port map (S5, S3, X1, S6, Y3);: NOAO2 port map (S3, S7, Y3, S8, Y2);: NO3 port map (S5, S2, X4, Y4);: NAO3 port map (S12, S11, X3, S6, Y1);: NA3O2 port map (S9, S10, X4, S6, Y5); 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;

circuit_tb IScircuit_tb;

behavior OF circuit_tb IS

circuit(: IN std_logic;: IN std_logic;: IN std_logic;: IN std_logic;: INOUT std_logic;: INOUT std_logic;: INOUT std_logic;: OUT std_logic;: OUT std_logic

);COMPONENT;

InputsX1: std_logic:= '0';X2: std_logic:= '0';X3: std_logic:= '0';X4: std_logic:= '0';

BiDirsY4: std_logic;Y1: std_logic;Y3: std_logic;

OutputsY2: std_logic;Y5: std_logic;

time_const: time:= 20 ns;

: circuit PORT MAP (=> X1,=> X2,=> X3,=> X4,=> Y4,=> Y1,=> Y3,=> Y2,=> Y5

);

Stimulus process_proc: process               

hold reset state for 10 ns.for 10 ns; <='0'; X2<='0'; X3<='0'; X4<='0';for time_const;<='0'; X2<='0'; X3<='0'; X4<='1';for time_const;<='0'; X2<='0'; X3<='1'; X4<='0';for time_const;<='0'; X2<='0'; X3<='1'; X4<='1';for time_const;<='0'; X2<='1'; X3<='0'; X4<='0';for time_const;<='0'; X2<='1'; X3<='0'; X4<='1';for time_const;<='0'; X2<='1'; X3<='1'; X4<='0';for time_const;<='0'; X2<='1'; X3<='1'; X4<='1';for time_const;<='1'; X2<='0'; X3<='0'; X4<='0';for time_const;<='1'; X2<='0'; X3<='0'; X4<='1';for time_const;<='1'; X2<='0'; X3<='1'; X4<='0';for time_const;<='1'; X2<='0'; X3<='1'; X4<='1';for time_const;<='1'; X2<='1'; X3<='0'; X4<='0';for time_const;<='1'; X2<='1'; X3<='0'; X4<='1';for time_const;<='1'; X2<='1'; X3<='1'; X4<='0';for time_const;<='1'; X2<='1'; X3<='1'; X4<='1';;process;;

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

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

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

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

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

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

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


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

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



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

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

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


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!