«…Труд избавляет человека от трех великих зол: скуки, порока, нужды…»

ПЦУСБ/Лабораторная работа 4 — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
м (Порядок выполнения работы)
м (Описание доступных ресурсов ПЛИС)
Строка 27: Строка 27:
  
 
== Описание доступных ресурсов ПЛИС ==
 
== Описание доступных ресурсов ПЛИС ==
 
=== Описание интерфейса блока верхнего уровня (TOP-модуль) ===
 
  
 
[[Файл: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

Лекции ПЦУСБ

Лекции

Практические
Тесты

Лабораторные

Доп. материалы

Содержание

Цель работы

Получить базовые навыки работы в программе ISE (создание проекта, подключение файла конфигурации, синтез схемы, сохранение синтезированной схемы в VHDL формате, программирование ПЛИС).


Задание

Реализовать заданный VHDL-моделью цифровой блок в ПЛИС, используя отладочную плату Spartan-3 Starter Kit, общий вид которой представлен на рисунке 1.


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

  1. Создать новый проект в программе ISE
    • Добавить в проект VHDL-модули (VHDL-файлы): модифицированный модуль верхнего уровня и модель блока из заданного варианта задания.
    • Добавить в проект описание конфигурации выводов (UCF-файл)
  2. Провести все этапы синтеза до генерации прошивки ПЛИС включительно
  3. Просмотреть
    • синтезированную схему
    • отчет о синтезе схемы
  4. Сохранить синтезированное описание схемы в формате VHDL
  5. Подготовить отчет, включающий:
    • Описание задания
    • Скриншот синетезированной схемы
    • Отчет о синтезе

Описание доступных ресурсов ПЛИС

Рисунок 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-порт)


Таблица 1 – Параметры ПЛИС XC3S1000
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;


Варианты заданий

Преобразователь из кода Грея в двоичный код 8-разрядного числа

  • входы подключить к переключателям
  • выходы подключить к линейке светодиодов

Преобразователь из двоичного кода в код Грея 8-разрядного числа

  • входы подключить к переключателям
  • выходы подключить к линейке светодиодов


Счетчик числа единиц и определение четности N-разрядного числа

Умножитель (4-разрядное число × 4-разрядное число)

  • входы подключить к переключателям
  • выходы подключить к линейке светодиодов


Сумматор (4-разрядное число + 4-разрядное число)

  • входы подключить к переключателям
  • выходы подключить к линейке светодиодов


Дешифратор из 3 в 8

  • входы подключить к кнопкам
  • выходы подключить к линейке светодиодов