首页/新闻资讯/正文详情

Verilog基础:强度建模与net型信号的多驱动问题(一)

发布时间:2026/11/6 1:13:15 来源:云帆数科 栏目:资讯中心
Verilog基础:强度建模与net型信号的多驱动问题(一)
相关阅读Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482写在最前面强度建模是Verilog HDL提供的针对仿真的特性对于综合是没有意义的无法通过强度建模改变综合结果中门的驱动强度。一、强度建模基础Verilog HDL提供了针对线网信号0、1、x、z的精准强度建模方式这样可以允许将两个线网信号进行线与操作从而更加精确地描述出硬件行为。强度建模可以在两个地方使用一个是连续赋值语句另一个是门级建模。一个强度由两部分组成一部分表示信号0的强度称为strength0一部分表示信号1的强度称为strength1。strength0包括以下几种supply0供电级低电平strong0强驱动级低电平pull0上下拉级低电平weak0弱驱动级低电平以及highz0高阻级低电平。strength1包括以下几种supply1供电级高电平strong1强驱动级高电平pull1上下拉级高电平weak1弱驱动级高电平以及highz1高阻级高电平。需要特别注意的是(highz0, highz1)以及它的等效表示(highz1, highz0)是非法的原因也会很简单这会导致输出永远是高阻。尽管对强度进行了这种划分但为了预测信号组合的结果可以将强度视为几个连续区域的组合。表1就展示了强度的连续性左侧列出了用于指定强度名。右侧给出了相关的强度水平。表1 线网型信号的强度水平强度名强度等级supply07strong06pull05large04weak03medium02small01highz00highz10small11medium12weak13large14pull15strong16supply17在表1中有四类驱动强度supply、strong、pull、weak这些强度是门级建模的输出net信号和连续赋值语句的左值net信号所拥有的。在表1中还存在三类电荷储存强度large、medium、small只有在声明trireg线网型变量时能指定。注意这里我们没有讨论highz类这是因为其比较特殊后面会进行详细说明。可以将表1写成下面图1的比例尺形式这也是后面讨论强度建模细节的方式。图1 强度比例尺如果net型信号拥有确定的值1则其强度应该全部由strength1部分的强度水平组成不能包括highz1。如果net型信号拥有确定的值0则其强度应该全部由strength0部分的强度水平组成不能包括highz0。如果一个net型信号的值是x则其部分拥有strength0的强度部分拥有strength1的强度比如一个Stx信号指的是一个强度范围从strong0到strong1的信号。如果net型信号拥有值z则代表其强度一定是highz类至于是highz0还是highz1我们一般不做区分。另外还有两种特殊的信号值H和L这会在后面进行说明。二、门级建模和连续赋值语句引入的强度在上一节我们介绍了强度建模的引入方式下面进行详细阐述。首先给出门级建模和连续赋值语句语法的BNF范式如图2和图3所示。有关BNF范式的相关内容可以看笔者的以往文章。图2 门级建模语法的BNF范式图3 连续赋值语句语法的BNF范式在图2和图3中我们可以看到驱动强度[drive_strength]是门级建模和连续赋值语句的可选项如果不指定驱动强度[drive_strength]则默认驱动强度为(strong0, strong1)。还要注意的是对于net声明连续赋值语句同样可以使用驱动强度[drive_strength]这与普通的连续赋值语句没有区别。有了语法的基础下面就可以举例说明驱动强度的基本概念了。wire a, b, c, d, e; assign a 1; //net型信号a拥有单个强度strong拥有信号值1用St1表示 assign (strong1, strong0) a 1; //与上面的形式等价 assign (strong0, strong1) a 1; //与上面的形式等价 assign (weak0, strong1) a 0; //net型信号a拥有单个强度weak拥有信号值0用We0表示 assign b 1bx; //net型信号b拥有强度范围strong0到strong1拥有信号值x用Stx表示 assign (weak0, pull1) b 1bx; //net型信号b拥有强度范围weak0到pull1拥有信号值x用35x表示 assign c 1bz; //net型信号c拥有强度hignz拥有信号值z用HiZ表示 not (pull0, weak1) (d, 1b0); //net型信号d拥有单个强度pull拥有信号值0用Pu0表示 wire (weak0, supply1) e 1b0; //net型信号e拥有单个强度weak拥有信号值0用We0表示 //尽管我们的例子全部是变量net但是对于矢量net同样适用这里要注意的是不管是连续赋值的左值net型信号还是门级建模的输出信号信号的值是由输出决定的而和输入或指定的驱动强度无关这很好理解因为输入可以是没有驱动强度的variable型信号比如reg型信号而指定的强度相当于只是给结果附上了一个属性而不影响结果的值下面举例说明。wire a, b; assign (pull1, supply0) b 1b0; //b的强度是supply值是0用Su0表示 assign (pull0, supply1) a b; //a的强度是pull值是0用Pu0表示a的强度与b的强度无关a的值与b的值有关下一章Verilog基础强度建模二-CSDN博客首先来说明一下什么叫信号拥有单个强度和确定值其实如果一个net型信号拥有单个强度那它一定拥有确定值。首先我们把上一章中的比例尺给出如图4所示。下面举例说明单个强度和确定值的定义。https://blog.csdn.net/weixin_45791458/article/details/135704743?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22135704743%22%2C%22source%22%3A%22weixin_45791458%22%7D

相关推荐

SystemVerilog基础:并行块fork-join、join_any、join_none(上)
SystemVerilog基础:并行块fork-join、join_any、join_none(上)

相关阅读 SystemVerilog基础https://blog.csdn.net/weixin_45791458/category_12517449.html?spm1001.2014.3001.5482 有关Verilog中顺序块和并行块的相关内容已经在之前的Verilog基础的文章讲过,如下所示。 Verilog基础:块语句https://blog.csdn.net… · 2026/11/6 1:13:15

JS逆向|shopee虾皮请求头反爬|x-sap-Ri|x-sap-Sec|af-ac-enc-dat|反爬
JS逆向|shopee虾皮请求头反爬|x-sap-Ri|x-sap-Sec|af-ac-enc-dat|反爬

前言 该文章为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系作者删除~ 需求 目标网站: aHR0cHM6Ly9zaG9wZWUuY28uaWQ 详情页商品接口: aHR0cHM6Ly9zaG9wZWUuY28uaWQvY… · 2026/11/6 1:13:15

Android P 通过FTM(Fine Time Measure) RTT(Round Trip Time) 实现室内定位
Android P 通过FTM(Fine Time Measure) RTT(Round Trip Time) 实现室内定位

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:12:15

霞鹜文楷:免费商用开源楷体字体完整指南
霞鹜文楷:免费商用开源楷体字体完整指南

霞鹜文楷:免费商用开源楷体字体完整指南 【免费下载链接】LxgwWenKai An open-source Chinese font derived from Fontworks Klee One. 一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。 项目地址: https://gitcode.com/GitHub_Trending/lx… · 2026/11/6 1:22:20

agent-browser多会话并行完全指南:如何同时运行多个浏览器互不干扰
agent-browser多会话并行完全指南:如何同时运行多个浏览器互不干扰

agent-browser多会话并行完全指南:如何同时运行多个浏览器互不干扰 【免费下载链接】agent-browser Browser automation CLI for AI agents 项目地址: https://gitcode.com/GitHub_Trending/agen/agent-browser agent-browser 是一款面向 AI Agent 的浏览器自… · 2026/11/6 1:22:20

八大网盘直链下载:LinkSwift 网页脚本完整新手指南
八大网盘直链下载:LinkSwift 网页脚本完整新手指南

八大网盘直链下载:LinkSwift 网页脚本完整新手指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘… · 2026/11/6 1:22:20

WildGS-SLAM如何运行自己的视频?自定义数据集与相机内参配置完全解析
WildGS-SLAM如何运行自己的视频?自定义数据集与相机内参配置完全解析

【免费下载链接】WildGS-SLAM [CVPR 2025] WildGS-SLAM: Monocular Gaussian Splatting SLAM in Dynamic Environments 项目地址: https://gitcode.com/gh_mirrors/wi/WildGS-SLAM 点击查看 免费下载 WildGS-SLAM 是一个 CVPR 2025 收录的动态环境单目高斯泼溅&… · 2026/11/6 1:22:20

OpenMDW-1.1 许可证商用落地指南:Nemotron 合规自查清单
OpenMDW-1.1 许可证商用落地指南:Nemotron 合规自查清单

OpenMDW-1.1 许可证商用落地指南:Nemotron 合规自查清单 【免费下载链接】NVIDIA-Nemotron-3.5-Transcribe-30B-A4B 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/NVIDIA-Nemotron-3.5-Transcribe-30B-A4B 拿到这份 34B 权重文件,你的产… · 2026/11/6 1:22:20

5种网页截图方案全解析
5种网页截图方案全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:21:20

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

三菱PLC数据采集到数据库的时序设计:Python+MC协议实战
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

ASIC主模式RTL设计:状态机与三态驱动的流片级实现
ASIC主模式RTL设计:状态机与三态驱动的流片级实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码