Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПИС_ЛАБ РАБ ПЛИС ISE_2015.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

Текст модели rs-триггера- защелки на языке vhdl в 9 значном алфавите приведен ниже.

library IEEE;-- используется стандартная библиотека IEEE

use IEEE.STD_LOGIC_1164.ALL;

entity RST is port (S, R: in std_logic; Q: out std_logic); end RST;

architecture POVED of RST is

begin process (R,S) begin

if (R='1') and (S='0') then Q<='1'; -- установка в 1

elsif (R='0') and (S='1') then Q<='0';--сброс в 0

end if;

end process;

end;

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

Ниже приведен пример описания счетчика на языке VHDL в 9- значном алфавите для понижения в 226 раз частоты тактовых сигналов, поступающих на тестируемую схему (счетчик включается как дополнительный узел в проект на стадии его отладки на плате).

Длительность переходных процессов при нажатии кнопки обычно менее 2 мс. Если период пониженной тактовой частоты более секунды, то вероятность того, что дребезг контактов кнопки, сопоставленной с входным сигналом, совпадет с фронтом тактового сигнала не более 1/500, что для лабораторных работ вполне достаточно.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity counter is Port ( CLOCK : in STD_LOGIC;COUNT_OUT : out STD_LOGIC);

end counter;

architecture Behavioral of counter is

signal count_int : std_logic_vector (25 downto 0) := ( others=>’0’);

begin process (CLOCK) begin

if CLOCK='1' and CLOCK'event then count_int <= count_int + 1;end if ;

end process ;

COUNT_OUT <= count_int(25);

end Behavioral;

Вариант 3. Схема формирования коротких одиночных импульсов при нажатии кнопки входного сигнала на отладочной плате.

Длительность импульса ─ один такт входного генератора платы, работающего на частоте 50 МГц. Кнопка соединяется с входом CE формирователя. Импульс на выходе Form_OUT появляется через 100000 тактов (200000 нс) после нажатия кнопки. Точнее, если кнопка посылает сигнал «1» в течении не менее 100000 тактов (0,2 мс).

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity form is

generic(form_count_size:integer :=15);

Port ( CLOCK,CE : in STD_LOGIC; Form_OUT : out STD_LOGIC;

end form;

architecture Behavioral of form is

constant ALL1: std_logic_vector (form_count_size-1 downto 0):= (others =>’1’);

signal count_int : std_logic_vector (form_count_size-1 downto 0) := ( others=>’0’);

begin process (CLOCK, CE) begin

if CE=’0’ then count_int<=( others=>’0’);

elsif CLOCK='1' and CLOCK'event then

if (CE=’1) and( count_int < ALL1 ) then

count_int <= count_int + 1; end if ;

end if;

end process ;

Form_OUT <= ‘1’ when count_int=( ALL1-1) else ‘0’ ;

end Behavioral;

Контрольные вопросы

ВОПРОСЫ из области проектирования синхронных схем

  1. Что такое полностью синхронная схема?

  2. Перечислите преимущества и недостатки синхронных схем перед асинхронными

  3. Какие требования к сети разводки синхросигналов в микросхеме

  4. Что такое балансировка конвейера и латентность?

  5. Чем определяется предел быстродействия конвейерной схемы

  6. В каких случаях дублирование регистров лучше чем установка буферных элементов?

  7. Какая примерно нагружечная способность элементов 1533 серии и 1554?

  8. Что такое управляемые синхросигналы в схеме и их + и –

ВОПРОСЫ из области автоматизированного синтеза и опций управления синтезаторов

  1. Какие критерии проектирования схемы вы можете задавать синтезатору?

  2. Чем отличается схема показанная в RTL-view от схемы Technological view?

  3. Чем отличаются временные диаграммы поведенческого и посттрассировочнового моделирования?

  4. Что дает посттрассировочное моделирование при нарушении времен предустановки-удержания в схеме?

  5. Почему отличаются времена задержек в проводниках в отчетах синтезатора и в отчетах трассировщика( в постсинтезном моделировании?

  6. Влияют ли задержки, указанные в исходном описании схемы на VHDL на задержки схемы, построенной синтезатором?

  7. Как получить отчет о потребляемой мощности спроектированной схемы?

ВОПРОСЫ из области языков описания аппаратуры,автоматизированного синтеза и моделирования

  1. Чем отличается поведенческое и структурное описание [7-9] проекта на языке VHDL?

  2. Что надо сделать, чтобы построить самопроверяющуюся тестирующую программу? См. пример теста для D-триггера в лаб.1.

  3. Зачем подключают пакет STD_LOGIC_1164? Какие значения могут принимать сигналы пакета?

  4. Что такое синтезабельное подмножество VHDL?

  5. В чем основное отличие синтезабельных описаний схем с памятью и комбинационных схем?

  6. Чем отличаются такие элементы ПЛИС FPGA ,как LUT, SLICE, CLB?

  7. Есть ли в составе внутренних элементов ПЛИС Спартан- 3 тристабильные буферы?

  8. Как описывать тристабильные буферы на VHDL?

  9. Какие действия в САПР ISE необходимы для синтеза спроектированного узла?

  10. Как вывести на экран ПЭВМ временную диаграмму всех (включая внутренние) сигналов моделируемой схемы?

  11. Как убрать дребезг контактов отладочной платы при проверке схем?

  12. При каких ошибках описания при синтезе появляются триггеры защёлки?

  13. Как узнать быстродействие и задержки в схеме на ПЛИС по отчетам САПР?

  14. Постройте таблицу истинности функции «И» в 4х значном алфавите 0,1,X,Z (подмножество 9-значного алфавита STD_LOGIC_1164).

  15. В алфавите std_logic реализована функция разрешения rezolved. ,позволяющая реализовать общую шину. Как реализовать функцию МОНТАЖНОЕ «И»?

  16. Чем отличаются ПЛИС типа CPLD от типа FPGA?

  17. Когда у Вас в проекте много триггеров , какой тип ПЛИС- CPLD или FPGA предпочтительнее выбрать?

  18. Чем отличается VHDL описание D-триггера с асинхронным сбросом и D-триггера с синхронным сбросом?

  19. Какой пакет надо подключать, чтобы использовать операцию сложения (+) над векторами типа std_logic_vector ?.

  20. Чем отличаются в пакете std_logic_1164 типы std_logic и std_ulogic?

21.Какие данные можно увидеть в отчете САПР ISE SYNTHESYS REPORT?

22.Какие порядки задержек логических элементов ПЛИС и трассировочных элементов( сравните на примере вашего проекта)

23. Какие задержки входных и выходных буферов ПЛИС ?

24.Можно ли проследить пути с максимальными задержками вашего проекта по отчетам САПР?

25 Какой оператор надо включить в текст конструкторских ограничений при разводе тактового сигнала не через тактовый буфер?

26. Перечислите параллельные операторы VHDL

27.Чем отличается семантика оператора присваивания в переменную от присваивания в сигнал?

28. Перечислите последовательные операторы VHDL

29.Чем отличается семантика оператора присваивания в переменную от присваивания в сигнал

30. Что надо учитывать при наличии операторов присваивания в один и тот же сигнал в разных процессах?.

31. Как вы представляете реализацию RS триггера защелки описанного в примере антидребезговой схемы в базисе ПЛИС?

Элементы языка описания аппаратуры VHDL--------------------------------

32.Отличаются ли в языке VHDL имена (идентификаторы), набранные большими буквами от имен, набранных малыми?

33.Чем VHDL операторы присваивания в сигнал (signal)<= отличаются от операторов присваивания в переменные(variable):= ?

34.Чем инерциальная задержка сигнала отличается от транспортной и какими средствами VHDL они отображаются?

35.Приведите основные отличия языка VHDL от языка программирования типа PASCAL.

36. Перечислите параллельные операторы VHDL.

37. Зачем нужно описание компонент в структурных моделях.

38. Чем отличаются поведенческие и структурные VHDL описания ?

39.Как строится типичная тестирующая программа (test bench) ?

40 В каком алфавите выполнено описание Д-триггера и зачем используется функция to_X01 в правой части оператора присваивания в сигнал?

41. Что правильнее - использовать в описании условия срабатывания триггера if ( clk='1' and clk'event) then или if rising_edge(clk) then ?

ВОПРОСЫ ДЛЯ тех, кто защищает работу гораздо позднее сроков – например в декабре

1) Опишите функциональную и структурную модель дешифратора 2 х4

2) Опишите функциональную и структурную модель мультиплексора 2 х 1

3)Опишите функциональную и структурную модель RS-триггера-защелки

4)Опишите функциональную модель Д- триггера с установочным входом

5)Опишите функциональную модель J-K триггера

6) Опишите функциональную модель буферного элемента с тристибильным выходом типа АП3

ЛАБОРАТОРНАЯ РАБОТА №2

Вариант выполнения на ПЛИС типа СPLD

Описание лабораторного стенда на базе

отладочной платы XC2-XL.

Стенд спроектирован студентами МЭИ Войтеком Д. и Розыевым А. на базе отладочной платы XC2-XL фирмы DIGILENT и изготовлен в ЗАО ТЕХНОР.

Плата XC2-XL включает в себя две микросхемы ПЛИС типа CPLD: Xilinx CoolRunner-2 XC2C256 CPLD и Xilinx XC9572XL CPLD. Для программирования ПЛИС используется интерфейс JTAG. Контроллер JTAG и контроллер программирования флэш-ПЗУ располагаются на микросхеме ПЛИС и обеспечивают простую технологию ее перепрограммирования .

Состав стенда:

  1. Отладочная плата XC2-XL

    1. Xilinx CoolRunner2 XC2C256 CPLD в корпусе типа TQ144;

    2. Xilinx XC9572XL CPLD в корпусе VQ44 ( не используется в лаб. работах ) ;

    3. тактовый генератор 1.8432 МГц

  2. Модуль индикации и кнопок

    1. 8 светодиодов

    2. 8 фиксируемых переключателей

    3. 4 нажимные кнопки

  3. Корпус

  4. Кабель JTAG для подключения к ПК по интерфейсу LPT

  5. Автономное питание 3 В ( две батарейка типа AA 1.5 В)

  6. Блок питания от 5 до 9 В (нужен дополнительно, если не используются батарейки )

Структурная схема отладочной платы представлена на рис. 3.

Рис. 3. Структурная схема отладочной платы XC2-XL

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

Рис.4. Схема соединения ПЛИС XC2C256 и XC9572XL с разьемами.

(при программировании платы микросхему XC9572XL обходим -bypass)

Ниже таблица соответствия номеров светодиодов и кнопок,установленных на лицевой панели стенда с именам контактов корпуса микросхемы ПЛИС XC2C256-TQ144 ( Cool-Runner 2 ):

№ светодиода

№ контакта м/мы XC2C256

№ кнопки

№ контакта м/мы XC2C256

0

P142

1

P115

1

P139

2

P117

2

P137

3

P119

3

P135

4

P121

4

P133

5

P125

5

P131

6

P128

6

P129

7

P130

7

P126

8

P132

9

P134

10

P136

11

P138

12

P140

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

Формат файла ограничений. ucf такой же, как для ПЛИС типа FPGA

NET "имя_сигнала" LOC = "имя_контакта" ;

например

NET "clk" LOC = "p38" ; --такт clk на тактовый генератор

NET "left" LOC = "p138" ;-- вход left на кнопку

NET "q<0>" LOC = "p126" ; --выход q<0> на светодиод

NET "q<1>" LOC = "p129" ;