Menu
CoddyTech

Integer и Real

Часть раздела Основы путешествия по Verilog на Coddy. Урок 8 из 90.

Помимо wire и reg, в Verilog есть другие типы данных для чисел, предназначенные для разных целей.

Целое число

integer — это переменная общего назначения для подсчётов и вычислений.

  • Размер по умолчанию — 32 бита
  • Со знаком (может хранить отрицательные числа)
  • Используется в основном в тестовых стендах и циклах

Объявление целого числа:

integer i;        // 32-битная переменная со знаком
integer count;    // Может хранить отрицательные числа

Использование целого числа:

integer i;

initial begin
  i = 0;           // Начать с 0
  i = i + 1;       // Увеличить на 1
  i = -5;          // Может хранить отрицательные значения
  $display("i = %d", i);  // Выводит: i = -5
end

Вещественные числа

real используется для чисел с плавающей точкой (чисел с десятичной дробной частью).

  • Хранит дробные значения
  • Используется в тестовых стендах для вычислений
  • Не может быть синтезирован в аппаратную часть

Объявление вещественной переменной:

real pi;           // Переменная с плавающей точкой
real voltage;

Использование вещественных чисел:

real pi;

initial begin
  pi = 3.14159;               // Десятичное значение
  pi = 22.0 / 7.0;            // Результат деления
  $display("pi = %f", pi);    // Выводит: pi = 3.142857
end

Где их использовать

В тестовых стендах: Целые числа и вещественные числа часто используют для счётчиков циклов, вычислений и проверки ожидаемых значений. Благодаря им тестовый код проще писать и понимать.

В аппаратуре: тип real не синтезируется, то есть его нельзя преобразовать в реальную схему. Тип integer можно синтезировать, и его часто используют в качестве счётчика цикла, но для сигналов аппаратуры, которая будет размещена на FPGA или микросхеме, используйте reg и wire.

challenge icon

Задание

Дополните код, чтобы тестовый стенд работал.

Что нужно сделать:

  1. Объявите целочисленную переменную i (счётчик цикла)
  2. Объявите вещественную переменную value (для вычислений)

Попробуйте сами

module test;
  
  // Объявите целочисленную переменную с именем i

  
  // Объявите вещественную переменную с именем value

  
  initial begin
    i = 7;
    value = i * 0.5;
    $display("i = %0d, value = %f", i, value);
    
    $finish;
  end
  
endmodule
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Verilog