前言
Verilog中,可以使用多种方式表示数值。
1. 整数表示
1.1 整数数据类型
基数格式共有四种,分别是十进制('d 或 'D),十六进制('h 或 'H),二进制('b 或 'B),八进制('o 或 'O)。数值可以指定位宽,也可以不指定位宽。
二进制表示法:以’b’或’B’为前缀,后跟一串0和1的数字序列。例如,4位宽的二进制数值可以表示为4’b1010。
八进制表示法 , 以’o’ 或 ‘O’ 为前缀, 如八进制数77, 8’o77。八进制数值77转换为十进制表示是63。
十进制表示法:直接使用十进制数字表示。例如,十进制数值23可以表示为8’d23, 也可直接用 23。
十六进制表示法:以’h’或’H’为前缀,后跟一串0-9和A-F的数字序列。例如,8位宽的十六进制数值可以表示为8’h7F。32’h3022_c0de // 32bit 的十六进制数值,下划线 _ 是为了增强代码的可读性。
整数表示法:使用整数变量声明和赋值。例如,使用整数变量n表示数值100可以表示为integer n = 100。
1.2 整数转换函数
Verilog提供了一些系统函数来处理整数。
$dec():将十六进制或二进制表示的整数转换为十进制数。
$bin():将十进制或十六进制表示的整数转换为二进制数。
$hex():将十进制或二进制表示的整数转换为十六进制数。
module integer_example;
reg [7:0] binary_num = 8'b11001011;
reg [15:0] decimal_num = 134;
reg [7:0] hex_num = 8'hCB;
initial begin
$display("Binary number: %b", binary_num);
$display("Decimal number: %d", decimal_num);
$display("Hexadecimal number: %h", hex_num);
$display("Decimal representation of binary number: %d", $dec(binary_num));
$display("Binary representation of decimal number: %b", $bin(decimal_num));
$display("Hexadecimal representation of deci