Published using Google Docs
1629.vhdl.Лабораторная1
Updated automatically every 5 minutes

Московский Государственный Университет Приборостроения и Информатики

Кафедра ИТ-6 “Управление и моделирование систем

Лабораторная работа №1

“Система автоматизированного проектирования Quartus

по курсу 1629 “Современные информационные технологии

2011г.


Цель работы: изучение среды разработки и инструментальных средств САПР Quartus II Web Edition 11.1 Service Pack 1, изучение отладочной аппаратной платформы Cyclone II FPGA Starter Development Kit.

Аппаратное обеспечение: отладочная плата Cyclone II FPGA Starter Development Kit.

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

Запустите САПР Quartus II

Создайте новый проект.

Укажите любое имя проекта, укажите также имя top level entity.

Выберите тип устройства EP2C20F484C7:

Создайте новый VHDL файл

Сохраните новый файл под тем именем которое вы указали для “top level entity”.

Введите следующий код:

library ieee ;

use ieee.std_logic_1164.all ;

 

entity lab1 is

  port (

        a:   in std_logic ;

        b:   in std_logic ;

        c:   out std_logic

        ) ;

end lab1 ;

 

architecture a_lab1 of lab1 is

begin

  c <= a and b ;

end a_lab1 ;

 

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

 

Результаты синтеза:

Внесите изменения в исходный текст:

library ieee ;

use ieee.std_logic_1164.all ;

 

entity lab1 is

  port (

        a:   in std_logic ;

        b:   in std_logic ;

        c:   out std_logic

        ) ;

end lab1 ;

 

architecture a_lab1 of lab1 is

begin

process(a,b)

begin

  c <= a and b ;

end process ;

end a_lab1 ;

Результаты синтеза не должны измениться.

Внесите следующие изменения:

library ieee ;

use ieee.std_logic_1164.all ;

 

entity lab1 is

  port (

        clk: in std_logic ;

        a:   in std_logic ;

        b:   in std_logic ;

        c:   out std_logic

        ) ;

end lab1 ;

 

architecture a_lab1 of lab1 is

begin

process(clk)

begin

    if rising_edge(clk) then

            c <= a and b ;

    end if ;

end process ;

end a_lab1 ;

Изучите результаты синтеза и сделайте выводы:

Объясните, добавление каких операторов VHDL привело к появлению триггера? Если этот вопрос вызывает затруднения обратитесь к [Ikr1].

Добавьте асинхронный сигнал “сброс”. Теоретические и практические аспекты организации цепей сброса подробно освещены в статье Иосифа Каршенбойма [Ikr2].

library ieee ;

use ieee.std_logic_1164.all ;

 

entity lab1 is

  port (

        clk:   in std_logic ;

        reset: in std_logic ;

        a:         in std_logic ;

        b:         in std_logic ;

        c:         out std_logic

        ) ;

end lab1 ;

 

architecture a_lab1 of lab1 is

begin

process(reset,clk)

begin

         if reset='1' then

            c <= '0' ;

        elsif rising_edge(clk) then

            c <= a and b ;

        end if ;

end process ;

end a_lab1 ;

 

Результаты синтеза приведены ниже:

Напишите код на VHDL для синтеза аналогичной схемы с синхронным сбросом, который синтезируется в следующую схему:

Введите следующий код, реализующий делитель частоты в виде счетчика:

library ieee ;

use ieee.std_logic_1164.all ;

use ieee.std_logic_signed.all ;

use ieee.std_logic_arith.all ;

 

entity lab1 is

  port (

        clk: in std_logic ;

        led: out std_logic

        ) ;

end lab1 ;

 

architecture a_lab1 of lab1 is

signal counter: std_logic_vector(23 downto 0) := 

      b"0000_0000_0000_0000_0000_0000" ;

begin

        led <= counter(23) ;

process(clk)

        begin

            if rising_edge(clk) then

                counter <= counter + 1 ; 

            end if ;

        end process ;

end a_lab1 ;

 

 

Изучите результаты синтеза, объясните, как функционирует эта схема.

Добавьте код для реализации асинхронного или синхронного сброса.

 

Для размещения прошивки в микросхеме FPGA необходимо задать соответствия между логическими названиями сигналов на языке VHDL и физическими контактами микросхемы. В приведенной ниже таблице указаны входы микросхемы соединенные с четырьмя источниками синхронизации на плате.

Таблица 1. Сигналы синхронизации Cyclone II FPGA Starter Development Kit.

Присоедините сигнал CLOCK_50 к логическому входу clk с помощью утилиты Pin Planner. Аналогичным образом присоедините логический вывод led к одному из контактов микросхемы, указанных в следующей таблице.

Таблица 2. Светодиодные индикаторы.

Для вызова утилиты PinPlanner можно воспользоваться иконкой:

Внешний вид утилиты PinPlanner после указания всех соединений представлен ниже:

Закройте окно утилиты PinPlanner.

Запустите процесс компиляции файла-образа прошивки. Этот файл будет содержать информацию для конфигурирования вашего устройства (файл прошивки).

По окончании процесса компиляции, соедините плату Cyclone II FPGA Starter Development Kit c компьютером при помощи кабеля USB, запустите утилиту Programmer. При необходимости укажите в качестве целевого устройства USB-Blaster [USB-0] и нажмите кнопку Start. Если в списке устройств не найдено ни одного элемента - проверьте подключен ли кабель USB и включена ли плата. Возможно вам необходимо установить драйвера из папки Disk:\altera\11.0sp1\quartus\drivers\.

Использование утилиты SignalTap

Заключение и выводы

Дополнительные материалы

Типы файлов и расширения QUARTUS

Block Design File (.bdf) - файл со схемотехническим описанием, созданный в Quartus II Block Editor.

Block Symbol File (.bsf) - символьный файл, представляющий в схемотехническом дизайне мегафунцию, другой файл и т.п.

Pin-Out File (.pin) - текстовый файл содержащий назначения контактов микросхемы.

Programmer Object File (.pof) - бинарный файл, сгенерированный модулем Assembler, содержащий образ прошивки для загрузки в устройство.

SRAM Object File (.sof) - бинарный файл, сгенерированный модулем Assembler, содержащий образ прошивки для загрузки в устройство на основе SRAM.

Raw Binary File (.rbf) - бинарный файл, сгенерированный модулем Assembler, содержащий образ прошивки для загрузки в устройство. Предназначен для использования вне Quartus II.

Quartus II Project File (.qpf) - файл проекта Quartus II, содержащий информацию о версии Quartus II.

Quartus II Settings File (.qsf) - файл содержит настройки проекта, относящиеся к данной ревизии (revision). Синтаксис файла основан на Tcl.

Quartus II Workspace File (.qwf) - файл с настройками среды Quartus (расположение окон и т.п.)

Ссылки

[Ikr1]. Иосиф Каршенбойм. Написание кода, независимого от аппаратной платформы.

[Ikr2]. Иосиф Каршенбойм. Краткий курс HDL. Часть 10. Несколько слов о «сбросе».

[DE1.1]. DE1 Development and Education Board. Altera Corporation.  

[DE1.2]. Altera DE1 Board. Terasic Corporation.