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

ПЦУСБ/Лекция 6

Материал из Wiki
Перейти к: навигация, поиск
Лекции ПЦУСБ

Лекции

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

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

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

Заголовок
Операторы языка VHDL
Автор
Авдеев Н.А.
Нижний колонтитул
ПЦУСБ/Лекция 6
Дополнительный нижний колонтитул
Авдеев Н.А., 22:35, 22 ноября 2013


Содержание

Слайд: Содержание

  • типы (type), подтипы (subtype)
  • записи (record)
  • Разрешающая функция (resolved)
  • работа с файлами
  • конфигурация


Тестбенч для блока доступа

Структура папок в проекте

  • /final_project — Папка проекта. Создаётся переменная среды $final_project=<путь к папке>/final_project
    • /tb — файлы, относящиеся к среде верификации (тестбенчу)
      • block1_model.vhd
      • block1_pkg.vhd
      • block1_tb2.vhd
      • block1_TestCtrl.vhd
    • /testplan — тестовый план
    • /tmp — для логов, временных диаграмм и других временных файлов
    • /tst — тесты (входные или выходные)
    • /vhd — исходные тексты VHDL-модели тестируемого блока
      • block1_beh2_a.vhd
      • block1.vhd
    • /vsim — скрипты для запуска моделирования в ModelSim/Questa
      • compile.tcl — скрипт для компиляции проекта
      • sim.tcl — скрипт для запуска моделирования
      • wave.do — скрипт для добавления сигналов на временные диаграммы
    • /work — папка для хранения библиотек ModelSim/Questa
      • /work — библиотека work
  • modelsim.ini — файл настроек для ModelSim/Questa


Файл настроек modelsim.ini

[Library]
final_prj = work/final_prj
work = work/final_prj
 . . .
[vcom]
; Value of 1 or 1993 for VHDL-1993.
; Default or value of 2 or 2002 for VHDL-2002.
; Value of 3 or 2008 for VHDL-2008
VHDL93 = 2008
. . .
[vsim]
; vopt flow
; Set to turn on automatic optimization of a design.
VoptFlow = 0
; Simulator resolution
; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100.
Resolution = ns
; Default run length
RunLength = 100
; Maximum iterations that can be run without advancing simulation time
IterationLimit = 5000


Скрипты для запуска моделирования

Листинг файла compile.tcl
set wlibname final_prj
set wlibpath vhd
 
# Create the library.
if [file exists work/$wlibname] {
#    vdel -all
} else {
 vlib work/$wlibname
 # vmap $wlibname work/$wlibname
 # Create link "work" on main library
 # vmap work work/$wlibname
}
#foreach name [glob "${wlibpath}/*.vhd"] {vcom +cover=bcefsx -work $wlibname $name}
vcom +cover=bcefsx -work $wlibname vhd/block1.vhd
vcom +cover=bcefsx -work $wlibname vhd/block1_beh2_a.vhd
 
vcom -reportprogress 300 -work $wlibname tb/block1_pkg.vhd
vcom -reportprogress 300 -work $wlibname tb/block1_model.vhd
vcom -reportprogress 300 -work $wlibname tb/block1_TestCtrl.vhd
vcom -reportprogress 300 -work $wlibname tb/block1_tb2.vhd
 
if {[batch_mode]} {
  quit -f
}


Листинг файла sim.tcl

vsim -novopt -coverage work.block1_tb(tb2)
do vsim/wave.do
run -all


Структура тестирующей программы

Рисунок - Структурная схема тестбенча


Листинги файлов тестбенча





NEW