«Работать добросовестно — значит: работать, повышая свою квалификацию, проявляя инициативу в совершенствовании продукции, технологий, организации работ, оказывая не предусмотренную должностными инструкциями помощь другим сотрудникам (включая и руководителей) в общей им всем работе.

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

Материал из Wiki
Перейти к: навигация, поиск
м (Уровень сложности 1)
м (Уровень сложности 1)
 
(не показаны 12 промежуточных версий 1 участника)
Строка 16: Строка 16:
  
 
=== Варианты заданий ===
 
=== Варианты заданий ===
 +
==== Уровень сложности 0 ====
 +
 +
Разработать синтезируемое VHDL-описание блока де/кодирования данных в заданном коде и тестовое окружение (testbenh) для проверки работы блока.
 +
# Тип кодировки 1-256 ([[media:ISO15693-2.pdf|Стандарт ISO 15693-2 (pdf)]]). [[#Задание 1|Описание задания]].
 +
## блок кодирования данных;
 +
## блок декодирования данных.
 +
# Тип кодировки 1-4 (iso-15693-2) [[Файл:ISO15693-2.pdf]]. [[#Задание 2|Описание задания]].
 +
## блок кодирования данных;
 +
## блок декодирования данных.
 +
# Тип кодировки манчестер (iso-15693-2) [[Файл:ISO15693-2.pdf]]. [[#Задание 3|Описание задания]].
 +
## блок кодирования данных;
 +
## блок декодирования данных.
 +
# Тип кодировки FM0 (iso-18000-6) [[Файл:ISO18000-6REV1v62.pdf]]. [[#Задание 4|Описание задания]].
 +
## блок кодирования данных;
 +
## блок декодирования данных.
 +
# Тип кодировки код Миллера (iso-18000-6) [[Файл:ISO18000-6REV1v62.pdf]]. [[#Задание 5|Описание задания]].
 +
## блок кодирования данных;
 +
## блок декодирования данных.
 +
# Тип кодировки iso-18000-6 [[Файл:Input_18000-6_(E)REV1_v62.pdf]]. [[#Задание 6|Описание задания]].
 +
## блок кодирования данных;
 +
## блок декодирования данных.
 +
# Тип кодировки ATA-5575 [[Файл:Doc9167.pdf]]. [[#Задание 7|Описание задания]].
 +
## блок кодирования данных;
 +
## блок декодирования данных.
 +
 +
Описание заданий приведено ниже.
 +
  
 
==== Уровень сложности 1 ====
 
==== Уровень сложности 1 ====
Строка 31: Строка 58:
 
# таймер с выводом на семисегментный индикатор.
 
# таймер с выводом на семисегментный индикатор.
 
# секундомер с выводом на семисегментный индикатор.
 
# секундомер с выводом на семисегментный индикатор.
 +
# Преобразователь 8 битного двоичного кода в код Грея
 +
#* входной код задаётся переключателями и выводится на семисегментный индикатор в 16-м виде
 +
#* код Грея отображается на светодиодах
 +
# Преобразователь 8 битного кода Грея в двоичный код
 +
#* входной код Грея задаётся переключателями и выводится на семисегментный индикатор в 16-м виде
 +
#* двоичный код отображается на светодиодах
 +
# Световые эффекты на строке светодиодов (плавное управление яркостью бегущего огонька)
  
 
==== Уровень сложности 2 ====
 
==== Уровень сложности 2 ====
Строка 51: Строка 85:
 
# Калькулятор ([×|+|-]) в терминале. Задание входных и выходных данных и кода операции по интерфейсу RS232. (Например, набираешь в терминале "2+8=", после набора символа '=' из ПЛИС возвращается результат выражения.  
 
# Калькулятор ([×|+|-]) в терминале. Задание входных и выходных данных и кода операции по интерфейсу RS232. (Например, набираешь в терминале "2+8=", после набора символа '=' из ПЛИС возвращается результат выражения.  
 
# Отобразить на экране монитора надпись "ПЦУСБ" через VGA интерфейс.
 
# Отобразить на экране монитора надпись "ПЦУСБ" через VGA интерфейс.
 +
 +
 +
=== Описание заданий уровня сложности 0 ===
 +
 +
{{Info|Выбрать один из вариантов заданий (сообщить номер задания преподавателю лично или по эл. почте). Задания предполагают работу в паре, где один разрабатывает кодер, другой декодер для одного типа кодировки. Поэтому желательно выполнять задания в паре.}}
 +
 +
При выполнении заданий следует учитывать следующие общие требования:
 +
# Разработать ''синтезируемое'' VHDL-описание блока.
 +
#* Название entity - '''coder''', '''decoder'''.
 +
#* Название architecture - '''beh'''.
 +
#* Название портов in - '''D_I, clk, rst'''.
 +
#* Название портов out - '''D_O'''.
 +
#* Типы портов - std_logic[_vector].
 +
#* Внутренние сигналы называть так, чтобы было интуитивно понятно их названия.
 +
#* Должна быть обеспечена возможность стыковки блоков кодирования и декодирования (по выводам) для совместной верификации (при выполнении работы в паре).
 +
# Разработать тестовое окружение для запуска моделирования на языке VHDL.
 +
#* Использовать структуру тестбенча (ТБ), описанную в [[ПЦУСБ/Лекция_6|лекции 6]]. ТБ включает блок кодирования, блок декодирования (при работе в паре), блок model, блок TestCtrl.
 +
#* Название entity - '''tb'''.
 +
#* Название architecture - '''beh'''.
 +
#* Входные тесты (входные данные) должны читаться из файла, а выходные данные должны записываться в файл.
 +
#** Функции чтения/записи из файла могут быть описаны по примеру из книги {{книга| автор = Бибило П.Н.| название = VHDL. Эффективное использование при проектировании цифровых систем| место = М.| издательство = СОЛОН-ПРЕСС| allpages = 344| isbn = 5-98003-293-2| год = 2006}}.
 +
# Синтезировать полученную схему в программе ISE для базисе любой ПЛИС.
 +
<!--
 +
#* для синтеза использовать:
 +
#** библиотеку [[alib.syn]] логических элементов
 +
#** скрипт для проведения синтеза [[syn.tcl]]
 +
#* сохранить синтезированное (структурное) описание схемы
 +
-->
 +
#* Подготовить лог синтеза, в котором отображаются число элементов или площадь, и максимальное быстродействие схемы.
 +
# Провести моделирование синтезированной схемы совместно с исходным описанием.
 +
#* Модифицировать ТБ так, чтобы провести моделирование блоков кодирования/декодирования по исходным и синтезированным моделям одновременно. Сравнить эквивалентность функционирования двух VHDL-описаний блоков.
 +
#* Для моделирования синтезированной схемы использовать VHDL-описание библиотеки логических элементов [[alib.vhd]].
 +
#* Привести отчет о покрытии кода (по всем видам). Покрытие исходного VHDL описания блоков кодирования/декодирования должно быть 100%.
 +
# Использовать структуру папок проекта, описанную в [[ПЦУСБ/Лекция_6|лекции 6]]. Компиляция и запуск моделирования (до и после синтеза) должны быть автоматизированы с помощью соответствующих TCL-скриптов и BAT файлов.
 +
 +
 +
=====Задание 1 =====
 +
 +
{|  class=standard
 +
! Задание 1-1
 +
! Задание 1-2
 +
|-
 +
|
 +
# Разработать синтезируемое VHDL-описание блока кодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
|
 +
# Разработать синтезируемое VHDL-описание блока декодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
# Тип кодировки FM0 (iso-18000-6) [[Файл:ISO18000-6REV1v62.pdf]]
 +
 +
|-
 +
|colspan=2|
 +
 +
{{Hider|Тип кодировки 1-256 ([[Файл:ISO15693-2.pdf|ISO 15693-2]]). Описание}}
 +
{| class=standard align=center width=100%
 +
!colspan=2| Тип кодировки 1-256 (iso-15693-2) [[Файл:ISO15693-2.pdf]]
 +
|-
 +
|colspan=2|
 +
[[Файл:1-265_кодировка.jpg|600px|center]]
 +
 +
* Частота тактового сигнала 13.56 MHz
 +
* Перед стартом передачи данных посылать SOF
 +
 +
[[Файл:Sof_1-256_kod.jpg|500px|center]]
 +
 +
* После завершения передачи данных EOF
 +
 +
[[Файл:Eof_1-256.jpg|300px|center]]
 +
|}
 +
{{Hider|end}}
 +
|}
 +
 +
=====Задание 2=====
 +
 +
{|  class=standard
 +
! Задание 2-1
 +
! Задание 2-2
 +
|-
 +
|
 +
# Разработать синтезируемое VHDL-описание блока кодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
|
 +
# Разработать синтезируемое VHDL-описание блока декодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
 +
|-
 +
!colspan=2| Тип кодировки 1-4 (iso-15693-2) [[Файл:ISO15693-2.pdf]]
 +
|-
 +
|colspan=2|
 +
[[Файл:1-4_кодировка.jpg|600px|center]]
 +
 +
* Частота тактового сигнала 13.56 MHz
 +
* Перед стартом передачи данных посылать SOF
 +
 +
[[Файл:Sof_1-4_kod.jpg|500px|center]]
 +
 +
* После завершения передачи данных EOF
 +
 +
[[Файл:Eof_1-256.jpg|300px|center]]
 +
|}
 +
 +
 +
=====Задание 3=====
 +
 +
 +
{|  class=standard
 +
! Задание 3-1
 +
! Задание 3-2
 +
|-
 +
|
 +
# Разработать синтезируемое VHDL-описание блока кодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
|
 +
# Разработать синтезируемое VHDL-описание блока декодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
# Тип кодировки код Миллера (iso-18000-6) [[Файл:ISO18000-6REV1v62.pdf]]
 +
 +
|-
 +
!colspan=2| Тип кодировки манчестер (iso-15693-2) [[Файл:ISO15693-2.pdf]]
 +
|-
 +
|colspan=2|
 +
[[Файл:Manchester_cod.jpg|600px|center]]
 +
 +
* Частота тактового сигнала 13.56 MHz
 +
* Перед стартом передачи данных посылать SOF
 +
 +
[[Файл:Sof_manchester_kod.jpg|600px|center]]
 +
 +
* После завершения передачи данных EOF
 +
 +
[[Файл:Eof_manchester_kod.jpg|600px|center]]
 +
|}
 +
 +
 +
=====Задание 4 =====
 +
 +
{| class=standard
 +
! Задание 4-1
 +
! Задание 4-2
 +
|-
 +
|
 +
# Разработать синтезируемое VHDL-описание блока кодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
## Выходной порт DATA_O, для выдачи закодированных данных
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
 +
|
 +
# Разработать синтезируемое VHDL-описание блока декодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
|-
 +
!colspan=2| Тип кодировки FM0 (iso-18000-6) [[Файл:ISO18000-6REV1v62.pdf]]
 +
|-
 +
|colspan=2|
 +
[[Файл:FM0_кодировка.jpg|600px|center]]
 +
 +
|-
 +
|colspan=1|
 +
* Число передаваемых данных задается generic паратмером NUM_SEND_BIT
 +
|
 +
* Число принимаемых данных задается в generic параметре NUM_GET_BIT!
 +
|-
 +
|colspan=2|
 +
* Частота тактового сигнала 1.98 MHz
 +
* Частота закодированных данных 640 KHz
 +
* Перед стартом передачи данных посылать SOF
 +
 +
[[Файл:Sof_FM0_kod.jpg|300px|center]]
 +
 +
|-
 +
|colspan=1|
 +
* После завершения передачи данных, посылать EOF
 +
|
 +
* Прекращать прием после прихода символа EOF или после получения заданного числа бит.
 +
|-
 +
|colspan=2|
 +
[[Файл:Eof_FM0.jpg|450px|center]]
 +
|}
 +
 +
 +
=====Задание 5 =====
 +
 +
{|  class=standard
 +
! Задание 5-1
 +
! Задание 5-2
 +
|-
 +
|
 +
# Разработать синтезируемое VHDL-описание блока кодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
## Выходной порт DATA_O, для выдачи закодированных данных
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
|
 +
# Разработать синтезируемое VHDL-описание блока декодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
## Входной порт DATA_I, для принимаемых от кодера данных
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
 +
|-
 +
!colspan=2| Тип кодировки код Миллера (iso-18000-6) [[Файл:ISO18000-6REV1v62.pdf]]
 +
|-
 +
|colspan=2|
 +
[[Файл:Миллер_кодировка.jpg|500px|center]]
 +
[[Файл:Миллер кодировка состояния.jpg|200px|center]]
 +
 +
|-
 +
|
 +
* Число передаваемых данных задается в generic параметре NUM_SEND_BIT !
 +
|
 +
* Число принимаемых данных задается в generic параметре NUM_GET_BIT!
 +
|-
 +
|colspan=2|
 +
 +
* Частота тактового сигнала 1.98 MГц
 +
* Частота закодированных данных 320 кГц (два такта выходной частоты на один бит данных, см. рис.)
 +
|-
 +
|
 +
* Перед стартом передачи данных посылать SOF
 +
|
 +
* Прием данных начинать после получения SOF
 +
|-
 +
|colspan=2|
 +
[[Файл:Sof_миллер_kod.jpg|350px|center| Символ SOF]]
 +
|-
 +
|
 +
* После завершения передачи данных посылать EOF
 +
|
 +
* Прекращать прием после прихода символа EOF или после приема NUM_GET_BIT
 +
|-
 +
|colspan=2|
 +
 +
[[Файл:Eof_миллер.jpg|500px|center|Символ EOF]]
 +
 +
|}
 +
 +
=====Задание 6=====
 +
 +
{|  class=standard
 +
! Задание 6-1
 +
! Задание 6-2
 +
|-
 +
|
 +
# Разработать синтезируемое VHDL-описание блока кодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
## Выходной порт DATA_O, для выдачи закодированных данных
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
|
 +
# Разработать синтезируемое VHDL-описание блока декодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
## Входной порт DATA_I, для принимаемых от кодера данных
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
|-
 +
!colspan=2| Тип кодировки iso-18000-6 [[Файл:Input_18000-6_(E)REV1_v62.pdf]]
 +
|-
 +
|colspan=2|
 +
[[Файл:Input_18000_кодировка.jpg|400px|center]]
 +
|-
 +
|
 +
* Число передаваемых данных задается в generic параметре NUM_SEND_BIT !
 +
|
 +
* Число принимаемых данных задается в generic параметре NUM_GET_BIT!
 +
|-
 +
|
 +
* Частота тактового сигнала 8 MHz
 +
|
 +
* Частота тактового сигнала 1.92 MHz
 +
|-
 +
|colspan=2|
 +
* Tari= 6.25us (см. рис.)
 +
* RTcal= (Data-0) + (Data-1)=3 * Tari = 18.75us
 +
|-
 +
|
 +
* Перед стартом передачи данных посылать SOF
 +
|
 +
* Данные декодировать после получения SOF
 +
|-
 +
|colspan=2|
 +
[[Файл:Sof input 18000 kod.jpg|400px|center]]
 +
|-
 +
|
 +
* Завершение передачи данных после посылки NUM_SEND_BIT бит данных.
 +
|
 +
* Полученный символ кодирует 1, если его длинна больше RTcal/2, если меньше, то кодирует логический 0.
 +
* Завершение передачи данных после посылки NUM_SEND_BIT бит данных.
 +
|}
 +
 +
 +
=====Задание 7=====
 +
 +
{| class=standard
 +
! Задание 7-1
 +
! Задание 7-2
 +
|-
 +
|
 +
# Разработать синтезируемое VHDL-описание блока кодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
## Выходной порт DATA_O, для выдачи закодированных данных
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
 +
|
 +
# Разработать синтезируемое VHDL-описание блока декодирования данных.
 +
## Входные порты: D_I, clk, rst.
 +
## Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
 +
# Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
 +
## Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
 +
## Блок формирования тактового сигнала.
 +
## Блок формирования сигнала сброса по питанию.
 +
## Выходной порт DATA_O, для выдачи закодированных данных
 +
# Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
 +
|-
 +
!colspan=2|Тип кодировки ATA-5575 [[Файл:Doc9167.pdf]]
 +
|-
 +
|colspan=2|
 +
[[Файл:Wrie_mode_raduga1.jpg|300px|center]]
 +
|-
 +
|
 +
* Число передаваемых данных задается в generic параметре NUM_SEND_BIT !
 +
|
 +
* Число передаваемых данных задается в generic параметре NUM_GET_BIT !
 +
|-
 +
|colspan=2|
 +
* Частота тактового сигнала 125 кГц
 +
* Для кодирования данных смотри таблицу
 +
|-
 +
|
 +
* Старт передачи данных - первая пауза.
 +
|
 +
* Старт приема данных - первая пауза D_I равен 0.
 +
|-
 +
|colspan=2|
 +
[[Файл:Wrie_mode_raduga1_table.jpg|600px|center]]
 +
|-
 +
|
 +
* Завершение передачи данных после посылки NUM_SEND_BIT бит данных.
 +
|
 +
* Завершение приема данных после получения NUM_GET_BIT бит данных.
 +
|}

Текущая версия на 15:17, 14 апреля 2014

Лекции ПТСиПЦУвСБ

Лекции

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

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

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

Содержание

Доступное оборудование


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

Уровень сложности 0

Разработать синтезируемое VHDL-описание блока де/кодирования данных в заданном коде и тестовое окружение (testbenh) для проверки работы блока.

  1. Тип кодировки 1-256 (Стандарт ISO 15693-2 (pdf)). Описание задания.
    1. блок кодирования данных;
    2. блок декодирования данных.
  2. Тип кодировки 1-4 (iso-15693-2) Файл:ISO15693-2.pdf. Описание задания.
    1. блок кодирования данных;
    2. блок декодирования данных.
  3. Тип кодировки манчестер (iso-15693-2) Файл:ISO15693-2.pdf. Описание задания.
    1. блок кодирования данных;
    2. блок декодирования данных.
  4. Тип кодировки FM0 (iso-18000-6) Файл:ISO18000-6REV1v62.pdf. Описание задания.
    1. блок кодирования данных;
    2. блок декодирования данных.
  5. Тип кодировки код Миллера (iso-18000-6) Файл:ISO18000-6REV1v62.pdf. Описание задания.
    1. блок кодирования данных;
    2. блок декодирования данных.
  6. Тип кодировки iso-18000-6 Файл:Input 18000-6 (E)REV1 v62.pdf. Описание задания.
    1. блок кодирования данных;
    2. блок декодирования данных.
  7. Тип кодировки ATA-5575 Файл:Doc9167.pdf. Описание задания.
    1. блок кодирования данных;
    2. блок декодирования данных.

Описание заданий приведено ниже.


Уровень сложности 1

  1. Преобразователь 8-ми разрядного числа из двоичного кода в двоично-десятичный код с отображением на семисегментном индикаторе в десятичном виде
    • a) Преобразователь 10-разрядного числа из двоичного кода в двоично-десятичный код с отображением на 4-х позиционном семисегментном индикаторе в десятичном виде с последовательным вводом двоичного числа.
  2. Преобразователь числа из двоично-десятичного кода в 8-ми разрядный двоичный код с отображением на линейке светодиодов
    • входной код отображается на семисегментном индикаторе в десятичном виде
    • выходной код отображается на линейке светодиодов
  3. Калькулятор (4-разрядное число [×|+|-] 4-разрядное число)
    • значения входных аргументов задаётся переключателями, при этом эти значения отображаются в шестнадцатеричном виде на семисегментном индикаторе (первых два индикатора)
    • значение результата вычислений отображается в шестнадцатеричном виде на семисегментном индикаторе (вторые 2 индикатора)
    • выполняемая арифметическая операция задаётся кнопками, при этом на светодиодах фиксируется номер операции.
  4. часы с выводом на семисегментный индикатор.
  5. таймер с выводом на семисегментный индикатор.
  6. секундомер с выводом на семисегментный индикатор.
  7. Преобразователь 8 битного двоичного кода в код Грея
    • входной код задаётся переключателями и выводится на семисегментный индикатор в 16-м виде
    • код Грея отображается на светодиодах
  8. Преобразователь 8 битного кода Грея в двоичный код
    • входной код Грея задаётся переключателями и выводится на семисегментный индикатор в 16-м виде
    • двоичный код отображается на светодиодах
  9. Световые эффекты на строке светодиодов (плавное управление яркостью бегущего огонька)

Уровень сложности 2

  1. Функция "Эхо" для терминала. Т.е. получение байта с компьютера по RS232 и отправка его обратно в ПК.
  2. Отобразить на экране монитора шахматную доску через VGA интерфейс.
  3. Термометр на основе температурного сенсора (DS18B20, 1-WIRE) с выводом значения на семисегментный индикатор либо на ЖКИ дисплей.
  4. Калькулятор с клавиатурой (матрица 4×4 кнопки) с отображением на светодиодном (4-х позицонном) или ЖКИ дисплее:
    • Операции (+|–|÷|×|...) над целыми числами;
    • Операции (+|–|÷|×|...) над целыми и вещественными числами;
    • Тригонометрические операции (sin|cos|tg|ctg|...) над целыми и вещественными числами;
  5. Редактор текста с вводом с клавиатуры (PS/2)
    • с выводом на ЖКИ дисплей LCD12864 (128×64 пикселей);
    • с выводом в терминал по протоколу RS232.
  6. часы реального времени (PCF8563 RTC Board) с выводом на семисегментный индикатор либо на ЖКИ дисплей.
    • дополнительные функции: таймер, секундомер, будильник и др.

Уровень сложности 3

  1. Калькулятор ([×|+|-]) в терминале. Задание входных и выходных данных и кода операции по интерфейсу RS232. (Например, набираешь в терминале "2+8=", после набора символа '=' из ПЛИС возвращается результат выражения.
  2. Отобразить на экране монитора надпись "ПЦУСБ" через VGA интерфейс.


Описание заданий уровня сложности 0

Информация

Выбрать один из вариантов заданий (сообщить номер задания преподавателю лично или по эл. почте). Задания предполагают работу в паре, где один разрабатывает кодер, другой декодер для одного типа кодировки. Поэтому желательно выполнять задания в паре.

При выполнении заданий следует учитывать следующие общие требования:

  1. Разработать синтезируемое VHDL-описание блока.
    • Название entity - coder, decoder.
    • Название architecture - beh.
    • Название портов in - D_I, clk, rst.
    • Название портов out - D_O.
    • Типы портов - std_logic[_vector].
    • Внутренние сигналы называть так, чтобы было интуитивно понятно их названия.
    • Должна быть обеспечена возможность стыковки блоков кодирования и декодирования (по выводам) для совместной верификации (при выполнении работы в паре).
  2. Разработать тестовое окружение для запуска моделирования на языке VHDL.
    • Использовать структуру тестбенча (ТБ), описанную в лекции 6. ТБ включает блок кодирования, блок декодирования (при работе в паре), блок model, блок TestCtrl.
    • Название entity - tb.
    • Название architecture - beh.
    • Входные тесты (входные данные) должны читаться из файла, а выходные данные должны записываться в файл.
      • Функции чтения/записи из файла могут быть описаны по примеру из книги Бибило П.Н. VHDL. Эффективное использование при проектировании цифровых систем — М.: СОЛОН-ПРЕСС, 2006. — 344 p. — ISBN 5-98003-293-2..
  3. Синтезировать полученную схему в программе ISE для базисе любой ПЛИС.
    • Подготовить лог синтеза, в котором отображаются число элементов или площадь, и максимальное быстродействие схемы.
  4. Провести моделирование синтезированной схемы совместно с исходным описанием.
    • Модифицировать ТБ так, чтобы провести моделирование блоков кодирования/декодирования по исходным и синтезированным моделям одновременно. Сравнить эквивалентность функционирования двух VHDL-описаний блоков.
    • Для моделирования синтезированной схемы использовать VHDL-описание библиотеки логических элементов alib.vhd.
    • Привести отчет о покрытии кода (по всем видам). Покрытие исходного VHDL описания блоков кодирования/декодирования должно быть 100%.
  5. Использовать структуру папок проекта, описанную в лекции 6. Компиляция и запуск моделирования (до и после синтеза) должны быть автоматизированы с помощью соответствующих TCL-скриптов и BAT файлов.


Задание 1
Задание 1-1 Задание 1-2
  1. Разработать синтезируемое VHDL-описание блока кодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
  1. Разработать синтезируемое VHDL-описание блока декодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
  4. Тип кодировки FM0 (iso-18000-6) Файл:ISO18000-6REV1v62.pdf
Задание 2
Задание 2-1 Задание 2-2
  1. Разработать синтезируемое VHDL-описание блока кодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
  1. Разработать синтезируемое VHDL-описание блока декодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
Тип кодировки 1-4 (iso-15693-2) Файл:ISO15693-2.pdf
1-4 кодировка.jpg
  • Частота тактового сигнала 13.56 MHz
  • Перед стартом передачи данных посылать SOF
Sof 1-4 kod.jpg
  • После завершения передачи данных EOF
Eof 1-256.jpg


Задание 3
Задание 3-1 Задание 3-2
  1. Разработать синтезируемое VHDL-описание блока кодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
  1. Разработать синтезируемое VHDL-описание блока декодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
  4. Тип кодировки код Миллера (iso-18000-6) Файл:ISO18000-6REV1v62.pdf
Тип кодировки манчестер (iso-15693-2) Файл:ISO15693-2.pdf
Manchester cod.jpg
  • Частота тактового сигнала 13.56 MHz
  • Перед стартом передачи данных посылать SOF
Sof manchester kod.jpg
  • После завершения передачи данных EOF
Eof manchester kod.jpg


Задание 4
Задание 4-1 Задание 4-2
  1. Разработать синтезируемое VHDL-описание блока кодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
    4. Выходной порт DATA_O, для выдачи закодированных данных
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
  1. Разработать синтезируемое VHDL-описание блока декодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
Тип кодировки FM0 (iso-18000-6) Файл:ISO18000-6REV1v62.pdf
FM0 кодировка.jpg
  • Число передаваемых данных задается generic паратмером NUM_SEND_BIT
  • Число принимаемых данных задается в generic параметре NUM_GET_BIT!
  • Частота тактового сигнала 1.98 MHz
  • Частота закодированных данных 640 KHz
  • Перед стартом передачи данных посылать SOF
Sof FM0 kod.jpg
  • После завершения передачи данных, посылать EOF
  • Прекращать прием после прихода символа EOF или после получения заданного числа бит.
Eof FM0.jpg


Задание 5
Задание 5-1 Задание 5-2
  1. Разработать синтезируемое VHDL-описание блока кодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
    4. Выходной порт DATA_O, для выдачи закодированных данных
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
  1. Разработать синтезируемое VHDL-описание блока декодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных. (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок записи принимаемых данных в файл.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
    4. Входной порт DATA_I, для принимаемых от кодера данных
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
Тип кодировки код Миллера (iso-18000-6) Файл:ISO18000-6REV1v62.pdf
Миллер кодировка.jpg
Миллер кодировка состояния.jpg
  • Число передаваемых данных задается в generic параметре NUM_SEND_BIT !
  • Число принимаемых данных задается в generic параметре NUM_GET_BIT!
  • Частота тактового сигнала 1.98 MГц
  • Частота закодированных данных 320 кГц (два такта выходной частоты на один бит данных, см. рис.)
  • Перед стартом передачи данных посылать SOF
  • Прием данных начинать после получения SOF
Символ SOF
  • После завершения передачи данных посылать EOF
  • Прекращать прием после прихода символа EOF или после приема NUM_GET_BIT
Символ EOF
Задание 6
Задание 6-1 Задание 6-2
  1. Разработать синтезируемое VHDL-описание блока кодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
    4. Выходной порт DATA_O, для выдачи закодированных данных
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
  1. Разработать синтезируемое VHDL-описание блока декодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
    4. Входной порт DATA_I, для принимаемых от кодера данных
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
Тип кодировки iso-18000-6 Файл:Input 18000-6 (E)REV1 v62.pdf
Input 18000 кодировка.jpg
  • Число передаваемых данных задается в generic параметре NUM_SEND_BIT !
  • Число принимаемых данных задается в generic параметре NUM_GET_BIT!
  • Частота тактового сигнала 8 MHz
  • Частота тактового сигнала 1.92 MHz
  • Tari= 6.25us (см. рис.)
  • RTcal= (Data-0) + (Data-1)=3 * Tari = 18.75us
  • Перед стартом передачи данных посылать SOF
  • Данные декодировать после получения SOF
Sof input 18000 kod.jpg
  • Завершение передачи данных после посылки NUM_SEND_BIT бит данных.
  • Полученный символ кодирует 1, если его длинна больше RTcal/2, если меньше, то кодирует логический 0.
  • Завершение передачи данных после посылки NUM_SEND_BIT бит данных.


Задание 7
Задание 7-1 Задание 7-2
  1. Разработать синтезируемое VHDL-описание блока кодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
    4. Выходной порт DATA_O, для выдачи закодированных данных
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
  1. Разработать синтезируемое VHDL-описание блока декодирования данных.
    1. Входные порты: D_I, clk, rst.
    2. Выходные порты: D_O, возможно добавление доп. сигналов обратной связи.
  2. Разработать тестовое окружение для запуска моделирования и проверки корректности передаваемых данных (Можно на SystemC, можно и на VHDL).
    1. Тестовое окружение содержит в себе блок чтения данных из файла и подачи данных на D_I.
    2. Блок формирования тактового сигнала.
    3. Блок формирования сигнала сброса по питанию.
    4. Выходной порт DATA_O, для выдачи закодированных данных
  3. Запуск моделирования, добавления сигналов и выполнение должны быть автоматизированны (script).
Тип кодировки ATA-5575 Файл:Doc9167.pdf
Wrie mode raduga1.jpg
  • Число передаваемых данных задается в generic параметре NUM_SEND_BIT !
  • Число передаваемых данных задается в generic параметре NUM_GET_BIT !
  • Частота тактового сигнала 125 кГц
  • Для кодирования данных смотри таблицу
  • Старт передачи данных - первая пауза.
  • Старт приема данных - первая пауза D_I равен 0.
Wrie mode raduga1 table.jpg
  • Завершение передачи данных после посылки NUM_SEND_BIT бит данных.
  • Завершение приема данных после получения NUM_GET_BIT бит данных.