ПЦУСБ/Лабораторная работа 4 — различия между версиями
Материал из Wiki
< ПЦУСБ
ANA (обсуждение | вклад) м (→Порядок выполнения работы) |
ANA (обсуждение | вклад) м (→Описание доступных ресурсов ПЛИС) |
||
Строка 27: | Строка 27: | ||
== Описание доступных ресурсов ПЛИС == | == Описание доступных ресурсов ПЛИС == | ||
− | |||
− | |||
[[Файл:S3BOARD-top-400.gif|frame|right|Рисунок 1 — [http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,799&Prod=S3BOARD Spartan-3 Starter Kit] ]] | [[Файл:S3BOARD-top-400.gif|frame|right|Рисунок 1 — [http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,799&Prod=S3BOARD Spartan-3 Starter Kit] ]] | ||
Строка 34: | Строка 32: | ||
[[Файл:S3BOARD-block-400.gif|frame|right|Рисунок 2 — [http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,799&Prod=S3BOARD Spartan-3 Starter Kit] ]] | [[Файл:S3BOARD-block-400.gif|frame|right|Рисунок 2 — [http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,799&Prod=S3BOARD Spartan-3 Starter Kit] ]] | ||
+ | На рисунке 1 представлен внешний вид отладочной платы [http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,799&Prod=S3BOARD Spartan-3 Starter Kit], включающей ПЛИС фирмы Xilinx Spartan-3 ([http://www.chipfind.ru/datasheet/pdf/xilinx/xc3s1xxx.pdf документация по микросхеме XC3S1000]). В таблице 1 представлены основные параметры, характеризующие ПЛИС XC3S1000. На рисунке 2 показаны основные компоненты и интерфейсы размещённые на отладочной плате: | ||
+ | * генератор синхросигнала на 50 МГц; | ||
+ | * вход внешней синхронизации; | ||
+ | * внешняя память инициализации ПЛИС (Flash PROM XCF04S) | ||
+ | * внешнее ОЗУ (512К × 16 бит) | ||
+ | * три 40-выводных разъёма, на которые выведены пользовательские выводы ПЛИС | ||
+ | * полоска из 8 светодиодов | ||
+ | * четыре семисегментных индикатора | ||
+ | * 4 кнопки | ||
+ | * 8 переключателей | ||
+ | * порты | ||
+ | ** PS/2 | ||
+ | ** VGA | ||
+ | ** RS232 (COM-порт) | ||
+ | |||
+ | |||
+ | {| align=center cellspacing="0" cellpadding="5" border="1" | ||
+ | |+ Таблица 1 – Параметры ПЛИС XC3S1000 | ||
+ | !rowspan=2| Device | ||
+ | !rowspan=2| System <br /> Gates | ||
+ | !rowspan=2| Logic <br /> Cells | ||
+ | !colspan=3| CLB Array (One CLB = Four Slices) | ||
+ | !rowspan=2| Distributed <br /> RAM (bits1) | ||
+ | !rowspan=2| Block RAM <br /> (bits 1) | ||
+ | !rowspan=2| Dedicated <br /> Multipliers | ||
+ | !rowspan=2| DCMs | ||
+ | !rowspan=2| Maximum <br /> User I/O | ||
+ | !rowspan=2| Maximum <br />Differential <br /> I/O Pairs | ||
+ | |- | ||
+ | ! Rows || Columns || Total CLBs | ||
+ | |- | ||
+ | ! XC3S1000 | ||
+ | | 1M | ||
+ | | 17,280 | ||
+ | | 48 | ||
+ | | 40 | ||
+ | | 1,920 | ||
+ | | 120K | ||
+ | | 432K | ||
+ | | 24 | ||
+ | | 4 | ||
+ | | 391 | ||
+ | | 175 | ||
+ | |} | ||
+ | |||
+ | |||
+ | === Описание интерфейса блока верхнего уровня (TOP-модуль) === | ||
+ | |||
+ | |||
+ | {| | ||
+ | | <div style="border: 2px solid #AEA; padding: 0.4em; border-bottom: none; border-right: none; background: HoneyDew"> | ||
+ | '''Листинг 1''' — VHDL-описание компонента верхнего уровня | ||
+ | ---- | ||
<big><source lang="vhdl"> | <big><source lang="vhdl"> | ||
library ieee; | library ieee; | ||
Строка 58: | Строка 109: | ||
-- выводы подключения внешнего ОЗУ | -- выводы подключения внешнего ОЗУ | ||
ADDR : out std_logic_vector(17 downto 0); -- L3 K5 K3 J3 J4 H4 H3 G5 E4 E3 F4 F3 G4 L4 M3 M4 N3 L5 | ADDR : out std_logic_vector(17 downto 0); -- L3 K5 K3 J3 J4 H4 H3 G5 E4 E3 F4 F3 G4 L4 M3 M4 N3 L5 | ||
− | DATA : inout std_logic_vector(31 downto 0); -- N1 M1 K2 C3 F5 G1 E2 D2 D1 E1 G2 J1 K1 M2 N2 P2 R1 P1 L2 J2 H1 F2 P8 D3 B1 C1 C2 R5 T5 R6 T8 N7 | + | DATA : inout std_logic_vector(31 downto 0); -- N1 M1 K2 C3 F5 G1 E2 D2 D1 E1 G2 J1 K1 M2 N2 P2 R1 P1 |
+ | -- L2 J2 H1 F2 P8 D3 B1 C1 C2 R5 T5 R6 T8 N7 | ||
CE : out std_logic_vector(1 downto 0); -- N5 P7 | CE : out std_logic_vector(1 downto 0); -- N5 P7 | ||
OE : out std_logic; -- K4 | OE : out std_logic; -- K4 | ||
Строка 88: | Строка 140: | ||
</source> | </source> | ||
</big> | </big> | ||
+ | </div> | ||
+ | |} | ||
Версия 10:52, 5 декабря 2013
Лекции ПЦУСБ
Лекции
Практические
Тесты
Лабораторные
- Лабораторная работа 1
- Лабораторная работа 2
- Лабораторная работа 3
- Лабораторная работа 4
Доп. материалы
Цель работы
Получить базовые навыки работы в программе ISE (создание проекта, подключение файла конфигурации, синтез схемы, сохранение синтезированной схемы в VHDL формате, программирование ПЛИС).
Задание
Реализовать заданный VHDL-моделью цифровой блок в ПЛИС, используя отладочную плату Spartan-3 Starter Kit, общий вид которой представлен на рисунке 1.
Порядок выполнения работы
- Создать новый проект в программе ISE
- Добавить в проект VHDL-модули (VHDL-файлы): модифицированный модуль верхнего уровня и модель блока из заданного варианта задания.
- Добавить в проект описание конфигурации выводов (UCF-файл)
- Провести все этапы синтеза до генерации прошивки ПЛИС включительно
- Просмотреть
- синтезированную схему
- отчет о синтезе схемы
- Сохранить синтезированное описание схемы в формате VHDL
- Подготовить отчет, включающий:
- Описание задания
- Скриншот синетезированной схемы
- Отчет о синтезе
Описание доступных ресурсов ПЛИС

Рисунок 1 — Spartan-3 Starter Kit

Рисунок 2 — Spartan-3 Starter Kit
На рисунке 1 представлен внешний вид отладочной платы Spartan-3 Starter Kit, включающей ПЛИС фирмы Xilinx Spartan-3 (документация по микросхеме XC3S1000). В таблице 1 представлены основные параметры, характеризующие ПЛИС XC3S1000. На рисунке 2 показаны основные компоненты и интерфейсы размещённые на отладочной плате:
- генератор синхросигнала на 50 МГц;
- вход внешней синхронизации;
- внешняя память инициализации ПЛИС (Flash PROM XCF04S)
- внешнее ОЗУ (512К × 16 бит)
- три 40-выводных разъёма, на которые выведены пользовательские выводы ПЛИС
- полоска из 8 светодиодов
- четыре семисегментных индикатора
- 4 кнопки
- 8 переключателей
- порты
- PS/2
- VGA
- RS232 (COM-порт)
Device | System Gates |
Logic Cells |
CLB Array (One CLB = Four Slices) | Distributed RAM (bits1) |
Block RAM (bits 1) |
Dedicated Multipliers |
DCMs | Maximum User I/O |
Maximum Differential I/O Pairs | ||
---|---|---|---|---|---|---|---|---|---|---|---|
Rows | Columns | Total CLBs | |||||||||
XC3S1000 | 1M | 17,280 | 48 | 40 | 1,920 | 120K | 432K | 24 | 4 | 391 | 175 |
Описание интерфейса блока верхнего уровня (TOP-модуль)
Листинг 1 — VHDL-описание компонента верхнего уровня library ieee; use ieee.std_logic_1164.all; entity top is port( CLK : in std_logic; -- синхросигнал 50 МГц (T9) BTN : in std_logic_vector(3 downto 0); -- кнопки (L14 L13 M14 M13) SW : in std_logic_vector(7 downto 0); -- переключатели (K13 K14 J13 J14 H13 H14 G12 F12) -- полоска светодиодов LED : out std_logic_vector(7 downto 0); -- P11 P12 N12 P13 N14 L12 P14 K12 -- семисегментный индикатор SEG : out std_logic_vector(7 downto 0); -- P16 N16 F13 R16 P15 N15 G13 E14 AN : out std_logic_vector(3 downto 0); -- E13 F14 G14 D14 -- выводы интерфейса RS232 RXD : in std_logic_vector(1 downto 0); -- N10 T13 TXD : out std_logic_vector(1 downto 0); -- T14 R13 -- выводы интерфейса VGA GRB : out std_logic_vector(2 downto 0); -- T12 R12 R11 VH : out std_logic_vector(1 downto 0); -- T10 R9 -- выводы интерфейса PS2 PS2 : inout std_logic_vector(1 downto 0); -- M16 M15 -- выводы подключения внешнего ОЗУ ADDR : out std_logic_vector(17 downto 0); -- L3 K5 K3 J3 J4 H4 H3 G5 E4 E3 F4 F3 G4 L4 M3 M4 N3 L5 DATA : inout std_logic_vector(31 downto 0); -- N1 M1 K2 C3 F5 G1 E2 D2 D1 E1 G2 J1 K1 M2 N2 P2 R1 P1 -- L2 J2 H1 F2 P8 D3 B1 C1 C2 R5 T5 R6 T8 N7 CE : out std_logic_vector(1 downto 0); -- N5 P7 OE : out std_logic; -- K4 WE : out std_logic; -- G3 BSEL : out std_logic_vector(3 downto 0)); -- R4 P5 T4 P6 end; architecture beh of top is begin -- отключение неиспользуемых выводов ADDR <= "000000000000000000"; DATA <= "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"; CE <= "11"; OE <= '1'; WE <= '1'; BSEL <= x"0"; TXD <= "11"; PS2 <= "ZZ"; GRB <= "000"; VH <= "00"; LED <= x"00"; SEG <= x"00"; AN <= x"F"; end architecture beh; |
Листинг файла конфигурации выводов ПЛИС (top.ucf)
|
Варианты заданий
Преобразователь из кода Грея в двоичный код 8-разрядного числа
- входы подключить к переключателям
- выходы подключить к линейке светодиодов
Листинг VHDL-модели
|
Преобразователь из двоичного кода в код Грея 8-разрядного числа
- входы подключить к переключателям
- выходы подключить к линейке светодиодов
Листинг VHDL-модели
|
Счетчик числа единиц и определение четности N-разрядного числа
Умножитель (4-разрядное число × 4-разрядное число)
- входы подключить к переключателям
- выходы подключить к линейке светодиодов
Листинг VHDL-модели
|
Сумматор (4-разрядное число + 4-разрядное число)
- входы подключить к переключателям
- выходы подключить к линейке светодиодов
Листинг VHDL-модели
|
Дешифратор из 3 в 8
- входы подключить к кнопкам
- выходы подключить к линейке светодиодов
Листинг VHDL-модели
|