Menu
CoddyTech

整数和实数

本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 8 课,共 90 课。

除了 wire 和 reg,Verilog 还有其他用于不同用途的数值数据类型。

整数

integer 是一种通用变量,可用于计数和计算。

  • 默认大小为 32 位
  • 有符号(可以存储负数)
  • 主要用于测试平台和 for 循环

声明整数:

integer i;        // 32 位有符号变量
integer count;    // 可以存储负数

使用整数:

integer i;

initial begin
  i = 0;           // 从 0 开始
  i = i + 1;       // 递增
  i = -5;          // 可以存储负数
  $display("i = %d", i);  // 打印:i = -5
end

实数

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

适用场景

在测试平台中:整数和实数通常用于循环计数器、计算以及检查预期值。它们能让测试代码更容易编写和理解。

在硬件中: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 在线编译器