整数和实数
本课属于 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。
挑战
补全代码,让测试平台正常工作。
要做什么:
- 声明一个名为 i 的整数(用作循环计数器)
- 声明一个名为 value 的实数(用于计算)
亲手试试
module test;
// 声明一个名为 i 的整数变量
// 声明一个名为 value 的实数变量
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
endmodule这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Verilog 在线编译器