当前位置: 首页 > news >正文

FPGA基础 -- Verilog语言要素之整型数、实数、字符串

✅ 一、整型数(Integer)

Verilog 中的整型值支持如下几种方式表达:

1. 常规整数格式(literal)

10       // 默认十进制
8'd10    // 8位的十进制 10
8'b1010  // 8位的二进制
8'o12    // 8位的八进制(12=10)
8'hA     // 8位的十六进制(A=10)

2. 语法结构说明

[位宽]'[进制][数值]
  • 位宽:指明宽度,如 8'd10 是 8 位

  • 进制:

    • b:二进制(binary)
    • o:八进制(octal)
    • d:十进制(decimal)
    • h:十六进制(hex)
  • 数值:可带 xz 作为未定义或高阻位

    8'b1x0z_1101  // 中间含未知和高阻位
    

3. 有符号数与无符号数

  • 默认所有数字都是 无符号(unsigned)
  • 使用 signed 关键字声明符号变量:
reg signed [7:0] s_value;
  • 补码规则适用,仿真时注意符号扩展:
assign result = $signed(a) + $signed(b);

4. 特殊整数类型

类型用途说明
integer32位整数默认 signed,有符号
time64位整数表示时间单位
parameter常量合成后不可修改
localparam局部常量不可被覆盖(e.g. for generate)

✅ 二、实数(Real)

1. 实数的表示方式

real r;
r = 3.1415;
r = -0.5e+3;  // 科学记数法
  • real 是 IEEE 754 double precision(64 位)浮点数
  • 也支持 realtime 类型(语义更强调时间值)

2. 注意事项

项目描述
实数不可综合仅在仿真中使用,不可用于综合生成电路
不支持位运算实数不能进行 &, `, ^` 等按位操作
可用于函数/计算表达式用于仿真场景下的精确运算,如 $sin(), $exp() 等数学函数

3. 强制类型转换

real pi = 3.14;
int_part = $rtoi(pi);   // 转为整数

✅ 三、字符串(String)

1. 字符串定义方式

Verilog 没有 string 类型(SystemVerilog 才有),但可以用 reg [8*n-1:0] 形式来模拟字符串,每个字符一个字节:

reg [8*10-1:0] my_string;
initial my_string = "Hello_FPGA";

2. 字符串相关运用

  • 写入文件/显示信息

    $display("The result is: %s", my_string);
    $fwrite(file, "%s\n", my_string);
    
  • 字符串比较
    只能自己写逻辑或用 $strcmp()(SystemVerilog 支持)

  • 传递给任务/函数参数
    实际作为位向量处理(如 input [127:0] str

3. 特殊字符与转义符

转义符含义
\n换行
\t制表符
\"双引号
\\反斜杠

✅ 四、整型、实数与字符串的对比

特性整型数(integer)实数(real)字符串(string模拟)
表达精度精确有小数精度文本表示,不用于运算
可综合性✔(除 integer 类型)❌(仿真专用)❌(用于仿真显示与测试)
应用场景寄存器、电路计算模拟模型、延迟计算打印、日志、文件接口
内存结构固定位宽向量64 位浮点多字节字符拼接

✅ 五、综合建议

使用目的推荐类型原因
建立有限状态机、加法器整型位宽明确的向量便于综合与门控
模型计算/温度仿真等real更高精度仿真表达,但不能综合
测试台信息输出字符串模拟便于打印调试

相关文章:

  • Redis学习笔记——黑马点评 消息队列25-30
  • LeetCode-345. 反转字符串中的元音字母
  • (十五)深入了解 AVFoundation - 编辑:音视频裁剪与拼接
  • Python 脚本,用于将 PDF 文件高质量地转换为 PNG 图像
  • 设计模式:单例模式多种方式的不同实现
  • http测试方法三
  • 【动手学深度学习】3.7. softmax回归的简洁实现
  • 答题考试系统小程序ThinkPHP+UniApp
  • 【科研绘图系列】R语言绘制论文组图系列(multiple plots)
  • ai智能题库小程序题库刷题系统框架设计
  • 在Kibana上新增Elasticsearch生命周期管理
  • 【Spark征服之路-2.8-Spark-Core编程(四)】
  • Qwen3-Embedding-Reranker本地部署教程:8B 参数登顶 MTEB 多语言榜首,100 + 语言跨模态检索无压力!
  • 奇异值分解
  • 深度学习:人工神经网络基础概念
  • 数据驱动SEO:8种自动化实践,精准提升排名与监控效能
  • ECharts:柱状图背景虚线
  • 16. 线性表的链式表示和实现(5)
  • git如何强制拉取远程分支覆盖本地分支
  • 数据仓库面试题合集⑤
  • 湖北智能网站建设推荐/廊坊首页霸屏排名优化
  • 动态网站如何做登录界面/无货源网店怎么开
  • 福州模板做网站/个人友情链接推广
  • 电子商务网站建设与维护李建忠下载/产品推广哪个平台好
  • 响应式网站建设公司/百度网站怎么优化排名靠前
  • 公司的网站建设公司/关键词优化排名费用