Спец курс (Избранные главы VHDL)/Верификация описания — различия между версиями
Материал из Wiki
Vidokq (обсуждение | вклад) (→Слайд:Верификация описания) |
Vidokq (обсуждение | вклад) (→Слайд:Основы языка SystemC) |
||
| Строка 32: | Строка 32: | ||
# Совместное моделирование с другими HDL-языками | # Совместное моделирование с другими HDL-языками | ||
| − | == | + | == Основы языка 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
Слайд:Верификация описания
Слайд:Верификация описания:step
- Среда моделирования
- Active-HDL™
- Riviera-PRO™
- NC-Sim®
- ModelSim®
- QuestaSim®
- VCS-MX®
- Структура проекта
- Тестовое окружение
- RTL-модель (Verilog,VHDL)
- Эталонная модель (SystemC)
- Assert'ы (psl, OVVM, UVM)
- Отчеты и базы по результатам моделирования
Слайд:Эталонная модель на языке SystemC
- Высокий уровень абстракции
- Скорость моделирования
- Возможности языка C++
- Инструменты для автоматизации
- Совместное моделирование с другими HDL-языками
Основы языка SystemC
Слайд:Типы данных (Форматы и способ представления данных)
Слайд:Типы данных (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().


