Integer And Real
Часть раздела Основы путешествия по Verilog на Coddy. Урок 8 из 90.
Помимо wire и reg, в Verilog есть другие типы данных для чисел, предназначенные для разных целей.
Целое число
integer — это переменная общего назначения для подсчёта и вычислений.
- Размер по умолчанию — 32 bit
- Signed (can store negative numbers)
- Используется главным образом в тестовых стендах и для циклов
Объявление integer:
integer i; // 32-битная знаковая переменная
integer count; // Может хранить отрицательные числаИспользование integer:
integer i;
initial begin
i = 0; // Начать с 0
i = i + 1; // Считать вверх
i = -5; // Может хранить отрицательное
$display("i = %d", i); // Выводит: i = -5
endReal
real используется для чисел с плавающей точкой (чисел с десятичными знаками).
- Хранит дробные значения
- Используется в тестбенчах для вычислений
- Не может быть синтезирован в аппаратное обеспечение
Объявление real:
real pi; // Переменная с плавающей точкой
real voltage;Использование real:
real pi;
initial begin
pi = 3.14159; // Десятичное значение
pi = 22.0 / 7.0; // Результат деления
$display("pi = %f", pi); // Выводит: pi = 3.142857
endГде их использовать
В тестовых стендах: Типы integer и real обычно используются для счётчиков циклов, вычислений и проверки ожидаемых значений. Они упрощают написание и понимание тестового кода.
В аппаратной части: Эти типы обычно не синтезируются, то есть их нельзя преобразовать в реальные схемы. Для аппаратной части, которая будет размещена на FPGA или микросхеме, вместо этого используйте reg и wire.
Задание
Дополните код, чтобы тестовый стенд заработал.
Что нужно сделать:
- Объявите integer с именем i (счётчик цикла for)
- Объявите real с именем value (для вычисления)
Попробуйте сами
module test;
// Объявить integer с именем i
// Объявить real с именем value
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
endmoduleВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
1Введение
Что такое VerilogАппаратное обеспечение и программное обеспечениеВаш первый модульКомментарииУровни абстракции проектирования4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicПотренируйтесь самостоятельно: Онлайн-компилятор Verilog