Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[Пр МП-систем] / МПиС_лаб2_нов_ред Грушко.doc
Скачиваний:
50
Добавлен:
07.02.2016
Размер:
2.15 Mб
Скачать

2.1. Краткая теория о среде Active-hdl

Active-HDL— среда разработки, моделирования и верификации проектов дляпрограммируемых логических интегральных схем, разработанная фирмойAldec.

Программа позволяет описывать устройства с помощью языков программирования аппаратуры, а также с помощью структурных схем. Изначально программа поддерживала только языкVHDL, но со временем добавилась поддержка языковVerilogиSystemC. С помощью программы можно графически проектироватьконечные автоматы, а также конвертировать HDL описание в графические структурные схемы и обратно.

Компоненты Active-VHDL

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

Таблица 1- Компоненты Active-VHDL

Компонент

Описание

Console

Окно консоли – это интерактивное окно, предназначенное для ввода - вывода текста. Оно обеспечивает ввод команд Active-VHDL и вывод сообщений сгенерированных Active-VHDL инструментальными средствами.

Design Browser

Окно просмотра проекта показывает текущее содержание проекта, включая:

  • файлы ресурсов, присоединенных к проекту;

  • содержание файлов рабочих библиотек определяемых по умолчанию;

  • структуру проектируемых устройств выбранных для моделирования;

  • сигналы и переменные, объявленные внутри избранной области текущего проекта.

HDL Editor

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

Language Assistant

Языковый помощник является вспомогательным инструментом который обеспечивает ряд типичных VHDL шаблонов и их логическое преобразование в функциональные блоки. Он объединен с HDL редактором так, чтобы можно было автоматически вставить желаемый шаблон в отредактированный исходный файл.

State Machine Editor

Редактор автоматов с конечными состояниями – графический инструмент, разработанный для редактирования диаграмм конечного автомата. Редактор осуществляет автоматический перевод графических примитивов в коды VHDL.

Waveform Viewer

Просмотрщик временных диаграмм показывает результаты моделирования, под действием тестовых сигналов. Это позволяет графически редактировать форму сигнала, для создания нужных испытательных векторов.

List

Окно списка показывает результаты моделирования, выполненные в сведенном в таблицы текстовом формате.

Watch

Окно средств наблюдения показывает текущие значения избранных сигналов и переменных в течение моделирования.

Processes

Окно процессов показывает текущее состояние одновременных процессов в разработанном проекте в течение моделирования.

Library Manager

Библиотечный менеджер разработан, чтобы управлять VHDL библиотеками и их содержанием.

Design Explorer

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

Script Editor

Редактор сценария - текстовый редактор с вмонтированным отладчиком. Он разработан, чтобы редактировать VBA Basic сценарии и выполнять команды Active-VHDL.

Структура файлов

При реализации проекта ряд файлов создается в каталоге проектов. Это файлы конфигурации проекта, исходные файлы, файлы формы сигнала, Active-VHDL проекты. Расширения файлов представлены в таблице.

Таблица 2- Расширения файлов в проекте

*.VHD

Источник VHDL код

*.VHQ

Источник VHDL код, сгенерированный из корневого файла

*.ASF

Исходный файл диаграммы состояний

*.DO

Файл сценария

*.BAS

Исходный командный файл

*.ADF

Файл описания проекта

*.WSP

Файл рабочей области окна

*.WFV

Файл формы сигнала

*.LOG

Файл отчета

*.ERF

Ошибки и сообщения компилятора

*.EPR

Список исходных файлов для компиляции

*.SDF

Стандартный файл задержки

*.INI

Библиотечный индексный файл

*.MFG

Библиотечный главный файл

*.DAT

Файл данных

*.OID

Вспомогательный файл Мастера HDL

*.TXT

Текстовый файл

Структура проекта

Каждый проект записан в отдельном каталоге, названном каталогом проектов. И каталог проектов, и проект имеет то же самое название. Каждый каталог проектов содержит подкаталоги SRC И GENERIC а также файлы описания проектов, которые имеют то же самое имя, как и название проекта, только с расширением .ADF.

Подкаталог SRC содержит исходные файлы VHDL или файлы диаграмм автоматов с конечными состояниями с расширением VHD или .ASF.

Подкаталог GENERIC содержит файл рабочей области окна с .WSP расширением и рабочей библиотекой проектов с .VLB расширением. Оба имеют то же самое название, как и имя проекта. Подкаталог GENERIC также содержит ряд рабочих файлов, которые используются в процессе синтеза и моделирования.

Конфигурация проекта и его состояние описаны в следующих файлах:

*.ADF – файл описания проекта, содержащий информацию относительно структуры проекта: исходные файлы и библиотеки, которые формируют проект.

*.WSP – файл рабочей области окна, содержащий данные относительно текущего состояния проекта. Он всегда восстанавливает все параметры после закрытия проекта и повторного его открытия. Текущий статус содержит информацию о том, какие файлы были открыты, и в каком месте текста расположен курсор, какие закладки были выбраны, какие окна раскрыты и т.д.

    1. Порядок выполнения работы

  1. На основании данных, полученных в первой части лабораторной работы, необходимо синтезировать проект на языке VHDL, работающий по заданному алгоритму (например, реализующий функцию Not_M,как в ПРИМЕРЕ п. 1.2.).

  2. В программе Active-HDL создаем новое рабочее пространство (рис. 2.1).

Рисунок 2.1 – Новое рабочее пространство в Active-HDL

В поле Type the workspace nameвводим имя рабочего пространства и нажимаемОК (рис. 2.2).

РисуРисунок 2.2 – Имя рабочего пространства в Active-HDL

В окне New Design Wizard выбираем Create an empty design и нажимаем Next (рис. 2.3).

Рисунок 2.3 – Создание пустого проекта в Active-HDL

В выпадающем списке Default HDL Language выбираем язык VHDL и нажимаем Next (рис. 2.4).

Рисунок 2.4 – Выбор языка

Откроется окно New Design Wizard (Мастер нового проекта) - инструмент, который помогает в создании новых проектов и добавлении новых файлов в процессе проектирования. В поле Type the design name необходимо ввести название микросхемы (не должно начинаться с цифры) и нажать Next (рис. 2.4).

Рисунок 2.5 – Название микросхемы в Active-HDL

В появившемся окне нажимаем Finish.

На панели design flow выбираем HDE (или на панели Design Browser выбираем Add New File, и на вкладке Wizards выбираем VHDL Source Code) (рис. 2.6).

Рисунок 2.6 – Расширенный маршрут проектирования

Выбираем шаблон языка VHDL и нажимаем ОК (рис. 2.7).

Рисунок 2.7 – Выбор языка

В окне New Source File Wizard оставляем галочку на Add the generated file to the design и нажимаем Next (рис. 2.8).

Рисунок 2.8 – Добавление генерируемого файла к проекту

Далее необходимо указать название создаваемого файла и нажать Next.

В появившемся окне New Source File Wizard – Ports необходимо указать входы и выходы микросхемы. Для этого нужно нажать на кнопку New, ввести имя порта в поле Name и указать в меню Port Direction тип порта (in-вход, out-выход, inout-двунаправленный порт).

В зависимости от количества одновременно входящих и выходящих портов, в разделе Array Indexes указывается их количество (отсчет начинается с 0).

Нажмаем кнопку Finish для создания скелетного файла (рис. 2.9).

Рисунок 2.9 – Ввод данных об интерфейсный портах проекта (обратите внимание, что a и b задаются в виде массивов, где слева указан старший разряд)

В результате создан файл-шаблон с расширением *.vhd.

На основании проектной части, нужно написать код работы микросхемы. Затем вставить его в сгенерированный код с расширением .vhd вместо -- enter your statements here (вводим формулу для Y=Not_M):

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity comp is

port(

a : in STD_LOGIC_VECTOR(3 downto 0);

b : in STD_LOGIC_VECTOR(3 downto 0);

Y : out STD_LOGIC

);

end comp;

architecture comp of comp is

begin

Y<=not(a(2) and a(3));

end comp;

Компилируем файл, нажав Compile All.

Для проверки правильности работы схемы необходимо создать испытательный стенд - Test Bench. Для этого в панели инструментов выбираем Tools/Generate Test Bench.

В появляющихся окнах выбираем Далее/Далее/Готово.

На панели Design Browser во вкладке Files открываем папку Test Bench, нажимаем правой кнопкой мыши на файле, с расширением .do и выбираем Execute.

В появившемся файле временных диаграм нужно задать входные сигналы (рис.).

Значение а(3:0) задаем с помощью счетчика (рис.).

Значение b(3:0) задаем порозрядно, в соответствии с заданием (рис. )

Запускаем процесс симуляции Simulation/Run. Результаты моделирования представлены на рис.

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