Menu
Coddy logo textTech

Integer и Real

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

В дополнение к wire и reg, в Verilog существуют другие типы данных для чисел, предназначенные для различных целей.

Integer

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

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

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

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

Использование integer:

integer i;

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

Real

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

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

В тестбенчах: Integers и reals обычно используются для счетчиков циклов, вычислений и проверки ожидаемых значений. Они делают тестовый код проще для написания и понимания.

В аппаратном обеспечении: Эти типы обычно не являются синтезируемыми — это означает, что они не могут быть преобразованы в реальные схемы. Для аппаратного обеспечения, которое будет размещено на FPGA или чипе, используйте вместо них reg и wire.

challenge icon

Задание

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

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

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

Шпаргалка

integer – 32-битная знаковая переменная для счетчиков и вычислений (тестбенчи, циклы):

integer i;
integer count;

initial begin
  i = 0;
  i = i + 1;
  i = -5;  // can store negatives
end

real – переменная с плавающей точкой для дробных значений (только для тестбенчей, не синтезируется):

real pi;

initial begin
  pi = 3.14159;
  pi = 22.0 / 7.0;
  $display("pi = %f", pi);
end

И integer, и real используются только в тестбенчах. Для синтезируемого оборудования используйте reg и wire.

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

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

  
  // Объявить вещественное число с именем value

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

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

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