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

Спец курс (Избранные главы VHDL)/Верификация описания — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
(Слайд:Верификация описания)
(Слайд:Основы языка SystemC)
Строка 32: Строка 32:
 
# Совместное моделирование с другими HDL-языками
 
# Совместное моделирование с другими HDL-языками
  
== Слайд:Основы языка SystemC ==
+
== Основы языка SystemC ==
===Слайд:Типы данных===
+
 
 +
===Слайд:Типы данных (Форматы и способ представления данных) ===
 +
[[Файл:Типы_данных.png]]
 +
 
 +
===Слайд:Типы данных (native)===
 +
<source lang="cpp">                // Пример типа данных C++
 +
int spark_offset;
 +
unsigned repairs = 0 ;            // Count repair
 +
unsigned long mileage;            // Miles driven
 +
short int speedometer;            // -20.. 0.. 100 MPH
 +
float temperature;                // Engine temp in C
 +
double time_of_last_request;      //Time of bus
 +
std:: string license_plate;      // Text for license
 +
const bool WARNING_LIGHT = true;  // Status
 +
enum compass {SW,W,NW,N,NE,E, SE, S} ;
 +
</source>
 +
 
 +
===Слайд:Типы данных (Arithmetic)===
 +
<source lang="cpp">                // Пример целочисленных типов данных C++
 +
sc_int<LENGTH> NAME...;
 +
sc_uint<LENGTH> NAME...;
 +
sc_bigint<BITWIDTH> NAME...;
 +
sc_biguint<BITWIDTH> NAME...;
 +
// SystemC integer data types
 +
sc_int<5> seat_position=3; //5 bits: 4 plus sign
 +
sc_uint<13> days_SLOC(4000); //13 bits: no sign
 +
sc_biguint<80> revs_SLOC; // 80 bits: no sign
 +
</source>
 +
 
 +
===Слайд:Типы данных (Boolean)===
 +
<source lang="cpp">                // Пример типа данных C++
 +
sc_bit NAME...;
 +
sc_bv<BITWIDTH> NAME...;
 +
</source>
 +
 
 +
* sc_bit и sc_bv могут принимать значения: '''SC_LOGIC_1''' и '''SC_LOGIC_0.'''
 +
* Для сокращения типов, можно использовать '''Log_1 и Log_0''' или '''‘1’ и ‘0’.'''
 +
* Над этим типом данных возможно выполнение битовых операций '''and, or, xor (&,|, ^).'''
 +
* Для обращения к отдельным битам и массивам '''[], range()'''.
 +
 
 +
 
 
===Слайд:События===
 
===Слайд:События===
 +
 +
 
===Слайд:Иерархия и структура проекта===
 
===Слайд:Иерархия и структура проекта===
 
===Слайд:Модель параллельной обработки===
 
===Слайд:Модель параллельной обработки===

Версия 14:49, 14 ноября 2012

Заголовок
Верификация описания.
Автор
Зайцев В.С.
Нижний колонтитул
Спец курс (Избранные главы VHDL)/Верификация описания
Дополнительный нижний колонтитул
Зайцев В.С., 13:16, 2 декабря 2013

Содержание

Слайд:Верификация описания

Процевв верификации.png

Слайд:Верификация описания:step

  • Среда моделирования
    • Active-HDL™
    • Riviera-PRO™
    • NC-Sim®
    • ModelSim®
    • QuestaSim®
    • VCS-MX®
  • Структура проекта
    • Тестовое окружение
    • RTL-модель (Verilog,VHDL)
    • Эталонная модель (SystemC)
    • Assert'ы (psl, OVVM, UVM)
    • Отчеты и базы по результатам моделирования

Слайд:Эталонная модель на языке SystemC

  1. Высокий уровень абстракции
  2. Скорость моделирования
  3. Возможности языка C++
  4. Инструменты для автоматизации
  5. Совместное моделирование с другими HDL-языками

Основы языка SystemC

Слайд:Типы данных (Форматы и способ представления данных)

Типы данных.png

Слайд:Типы данных (native)

                // Пример типа данных C++ 
 int spark_offset; 
 unsigned repairs = 0 ;            // Count repair
 unsigned long mileage;            // Miles driven
 short int speedometer;            // -20.. 0.. 100 MPH
 float temperature;                // Engine temp in C
 double time_of_last_request;      //Time of bus
 std:: string license_plate;       // Text for license
 const bool WARNING_LIGHT = true;  // Status
 enum compass {SW,W,NW,N,NE,E, SE, S} ;

Слайд:Типы данных (Arithmetic)

                // Пример целочисленных типов данных C++ 
sc_int<LENGTH> NAME...;
sc_uint<LENGTH> NAME...;
sc_bigint<BITWIDTH> NAME...;
sc_biguint<BITWIDTH> NAME...;
// SystemC integer data types
sc_int<5> seat_position=3; //5 bits: 4 plus sign
sc_uint<13> days_SLOC(4000); //13 bits: no sign
sc_biguint<80> revs_SLOC; // 80 bits: no sign

Слайд:Типы данных (Boolean)

                // Пример типа данных C++ 
sc_bit NAME...;
sc_bv<BITWIDTH> NAME...;
  • sc_bit и sc_bv могут принимать значения: SC_LOGIC_1 и SC_LOGIC_0.
  • Для сокращения типов, можно использовать Log_1 и Log_0 или ‘1’ и ‘0’.
  • Над этим типом данных возможно выполнение битовых операций and, or, xor (&,|, ^).
  • Для обращения к отдельным битам и массивам [], range().


Слайд:События

Слайд:Иерархия и структура проекта

Слайд:Модель параллельной обработки

Слайд:Добавление модулей и способы их соединения между собой

Слайд:Управление процессом и контроль статуса моделирования

Слайд: VHDL и SystemC конструкции

Слайд: Entity

Слайд: Architecture

Слайд: Generic

Слайд: Process без списка чувствительности

Слайд: Process со списком чувствительности

Слайд: Работа с файлами

Слайд: Работа с переменными

Слайд: Работа с сигналами

Слайд: Арифметические, логические, операции присваивания

Слайд: Конструкции С++

Слайд: Создание модуля

Слайд: Коммуникации между модулями

Слайд: Управление процессом моделирования (сообщения, запуск останов моделирования)

Слайд: Компиляция описания

Слайд: Запуск моделирования только SystemC описания

Слайд: Запуск моделирования SystemC описания и VHDL