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

FPGA基础 -- Verilog语言要素之数据类型:线网类型

Verilog 数据类型:线网类型(Net Types)


一、什么是 Net(线网类型)?

Net(线网类型)用于表示电路中的**“物理连线”,其值由连接到它的驱动器决定**,自身不能被过程块(如 always)直接赋值。

它代表“电信号”而非“变量”,例如模块端口连接、逻辑门输出等。


二、常用的线网类型

类型含义说明
wire默认线网类型表示由某个驱动器驱动的普通信号线
tri三态线支持多个驱动器;用于建模三态总线(带 z)
wand有线与(wired-AND)多个驱动器同时连接时执行按位 AND
wor有线或(wired-OR)多个驱动器同时连接时执行按位 OR
tri0默认为 0 的三态线未驱动时值为 0
tri1默认为 1 的三态线未驱动时值为 1
supply0电源 GND 模拟恒为 0,强驱动
supply1电源 VDD 模拟恒为 1,强驱动
triand三态与少用
trior三态或少用

三、重点类型详解

1. wire 类型(最常用)

wire a, b, c;
assign c = a & b;
  • 无法在 always 块中赋值;
  • 必须被 assign 或其他模块驱动;
  • 用于模块端口连接、逻辑表达式、组合逻辑建模。

2. tri 类型(三态总线建模)

tri [7:0] data_bus;
assign data_bus = (enable) ? data_out : 8'bz;
  • 模拟多设备驱动一条总线;
  • z 表示设备释放总线;
  • 多个模块使用 tri 同驱时,会使用“分辨函数”判断最终值。

3. wandwor

适用于多个模块并联输出信号时做特殊处理:

wand 示例(有线与):
wand final_signal;
assign final_signal = a;  // 模块1
assign final_signal = b;  // 模块2

final_signal = a & b;(Verilog 内部自动按位 AND)

wor 示例(有线或):
wor interrupt;
assign interrupt = int_dev1;
assign interrupt = int_dev2;

interrupt = int_dev1 | int_dev2;

这种方式用于多个源联合控制一个信号的场景,例如:

  • wand:多个模块必须都准备好才允许信号通过(协同机制)
  • wor:任意一个模块产生中断即响应(抢占机制)

四、Net 类型与 reg 的区别

特性net 类型(如 wire)reg 类型
驱动机制必须由连续赋值 assign 驱动只能由过程块(alwaysinitial)赋值
用于建模连线、组合逻辑、模块接口状态保持、寄存器、时序逻辑
多驱动支持支持(由强度分辨函数决定)不支持(reg 变量只能由一个过程块赋值)
值变化时间信号线传播延迟决定在时钟边沿或事件触发时更新
可综合性

五、线网类型的使用场景举例

1. 模块端口连接

module top;wire clk, rst, data;submodule u1 (.clk(clk), .rst(rst), .data(data));submodule u2 (.clk(clk), .rst(rst), .data(data));
endmodule

2. 三态总线驱动

assign data_bus = (write_enable) ? data_out : 8'bz;

3. 模拟系统电源

supply1 VDD;
supply0 GND;

六、Verilog-2001 补充

Verilog-2001 引入 logic 类型(非线网类型),可用于替代 reg,表示“自动类型推导”,可用于 SystemVerilog 的信号统一建模。

logic ready;

✅ 总结表:常见线网类型对比

Net 类型用途多驱动支持可驱动方式
wire最基本的线网类型assign, gate
tri三态总线assign, z
wand有线与(多个驱动取 AND)多个 assign
wor有线或(多个驱动取 OR)多个 assign
supply0/1电源信号建模固定为 0 或 1

相关文章:

  • Mysql初级
  • HTML知识全解析:从入门到精通的前端指南(上)
  • FPGA基础 -- Verilog语言要素之向量线网与标量线网
  • 模糊查询 的深度技术解析
  • C++中std命名空间介绍与使用
  • AWS WAF保护Web应用程序
  • ABP vNext + Sentry + ELK Stack:打造高可用异常跟踪与日志可视化平台
  • GPU算力应用迈出关键一步:DPIN与南洋生物科技合作落地
  • Cross-Edge Orchestration of Serverless Functions With Probabilistic Caching
  • Axios 知识点全面总结
  • Adixen ASM380 氦气检漏仪 阿尔卡特Mobile high performance helium leak detector
  • 《汇编语言:基于X86处理器》第1章 复习题和练习
  • C++ 学习 网络编程 2025年6月17日19:56:47
  • Java 时间处理指南:从“踩坑”到“填坑”实战
  • 20倍光学镜头怎么实现20+20倍数实现
  • 基于CNN卷积神经网络识别汉字合集-视频介绍下自取
  • PostgreSQL的扩展lo
  • AI智能体应用市场趋势分析
  • Uniapp性能优化全面指南:从原理到实践
  • 【数据分析三:Data Storage】数据存储
  • 怎样免费设计网站建设/2345导网址导航下载
  • 高端企业网站建设好的公司/整合营销公司排名
  • 樟木头仿做网站/发布悬赏任务的推广平台
  • 沙河网站建设/如何推广新产品的方法
  • 官方网站后台怎样做超链接/wordpress免费建站
  • 企业网站seo多少钱/网站建设设计