pullup和pulldown在verilog中的使用方法

article/2025/10/30 5:45:08

0 前言

这段时间涉及到了IO-PAD,在IO-PAD的RTL的时候注意到了pullup和pulldown,对这个知识比较好奇,就研究了一下,顺便记录下来,IO-PAD的内容等我再研究研究再考虑记录吧 >_<

1 pullup和pulldown的介绍

pullup和pulldown并非是verilog的内置原语,仅在仿真或综合过程中起作用,用来设置信号的默认状态

在实际的硬件电路中,用来代表上拉和下拉,就比如在I2C中,SCL和SDA两个信号是open-drain的,在实际使用过程中往往需要接上拉电阻,如下图

接在VCC的两个电阻就是上拉电阻,这个上拉电阻在verilog中就可以用pullup表示

下面结合实例来看看怎么使用

2 不使用pullup和pulldown的情况

`timescale 1ns/10ps
module tb;logic dout;logic sel;assign dout = sel ? 1'bz : 1'b0;initial beginsel = 1'b0;#10;sel = 1'b1;#10;sel = 1'b0;#10;$finish;end // initial begininitial begin$monitor("\t", $time, ,"sel = %0b,  dout = %0b", sel, dout);endendmodule

在这个例子中,当sel = 1'b1时输出highzsel = 0时输出0,在initial·中对sel先后赋值0和1,来看看运行结果

可以看到当sel = 0时,dout = 0,当sel = 1时,dout = z,这个结果符合预期

注意,在这个例子中,并没有使用到pullup,下面给出使用pullup的例子

2 使用pullup和pulldown的情况

`timescale 1ns/10ps
module tb;logic dout;logic sel;assign dout = sel ? 1'bz : 1'b0;pullup(dout);initial beginsel = 1'b0;#10;sel = 1'b1;#10;sel = 1'b0;#10;$finish;end // initial begininitial begin$monitor("\t", $time, ,"sel = %0b,  dout = %0b", sel, dout);endendmodule

同样的例子,加上了pullup(dout)语句(第7行),其他的均为改变,首先可以看到pullup有被highlight,说明这是一个关键词

下面开始编译

报错了,给的原因是logic声明的变量不能连接到带有驱动强度的gate输出端,那把logic声明改成wire,修改后的代码如下

`timescale 1ns/10ps
module tb;wire dout;logic sel;assign dout = sel ? 1'bz : 1'b0;pullup(dout);initial beginsel = 1'b0;#10;sel = 1'b1;#10;sel = 1'b0;#10;$finish;end // initial begininitial begin$monitor("\t", $time, ,"sel = %0b,  dout = %0b", sel, dout);endendmodule

再次编译

编译通过,下面执行仿真,来看看仿真结果

可以看到在这个例子中,当sel = 1时,dout = 1,不再是highz

3 push-pull和open-drain的介绍

就拿mos管来简单介绍一下吧

这是一个push-pull的电路,由两个mos管组成,上面的是PMOS,下面的是NMOS

IN = 1时,NMOS导通,PMOS截止,最终OUT = 0,电流方向为OUT -> NMOS,这个过程叫

IN = 0时,NMOS截止,PMOS导通,最终OUT = 1,电路方向为PMOS -> OUT,这个过程叫

这就是push-pull(推挽)

这是open-drain,与push-pull不同的是上面的PMOS换成了电阻,这个电阻就是上拉电阻

同样的,当IN = 1时,NMOS导通,OUT = 0

那当 IN = 0时呢?NMOS截止,如果此时不接上拉电阻,那么OUT端此时的状态是不确定的(单看这个电路的情况下)

当接入一个上拉电阻后,由于MOS管截止后,电阻可以看做是无穷大,此时从VDD -> GND就可以看做是一个电阻R和一个电阻无穷大的NMOS串联,那么在OUT点的电压自然约等于VDD


OK,先这样,至于在用pullup的时候为什么不能用logic声明,下次介绍吧


http://chatgpt.dhexx.cn/article/rPCEa51c.shtml

相关文章

电阻(4)之上拉电阻与下拉电阻详解

原文地址点击这里: 上拉(Pull Up )或下拉(Pull Down)电阻(两者统称为“拉电阻”)最基本的作用是:将状态不确定的信号线通过一个电阻将其箝位至高电平(上拉)或低电平(下拉),无论它的具体用法如何,这个基本的作用都是相同的,只是在不同应用场合中会对电阻的阻值…

解决安装文件时2502、2503错误

在安装文件时有时会出现2502、2503错误&#xff0c;重复安装也不会有什么改变&#xff0c;让人很是头疼。这种问题一般是权限的问题导致的&#xff0c;一般有两种解决办法&#xff0c;第一种就是提升当前用户的权限&#xff0c;第二种就是直接使用CMD安装&#xff0c;这里主要说…

java卸载错误2503_修复控制面板卸载程序时提示错误代码2502、2503的方法

在平常生活中大家是如何卸载软件的呢&#xff1f;有的用户会使用第三方工具&#xff0c;例如软件管家等来进行卸载&#xff0c;这样操作的用户占大多数&#xff0c;但是无法将软件卸载干净。有的用户会直接将安装目录全部删掉&#xff0c;这样操作的用户较少。最理想的卸载软件…

联发科MT2503D处理器详细参数介绍

MT2503D集成了一个ARM7EJ-STM内核&#xff0c;它是运行高级gsm协议软件的主处理器&#xff0c;以及多媒体应用程序、单数字信号处理器核&#xff0c;它管理低层 层次调制解调器和先进的音频功能&#xff0c;嵌入式处理器运行蓝牙基带和链路控制协议和蓝牙无线电控制。 MT 2503…

java内部错误2503_win10安装和卸载Java jdk错误出现2503,2502错误

本人android studio3.0运行helloworld都报错,打开不了守护进程,然后看网上说java版本可能不对,想卸载java,发现任务管理器怎么都卸载不了,网上说的两个办法都试了没用,一天的挣扎,终于找到下面网址的解决办法。 在使用java安装程序时,有时候会出现安装和卸载失败的问题…

MT2503D完整规格书,MT2503D daatsheet资料下载

MT2503D SOC Processor Datasheet MT2503D是一种基于低功耗CMOS工艺的集成前沿电源管理单元、模拟基带和无线电电路的单片芯片。 MT2503D是一个功能丰富和功能非常强大的单芯片解决方案&#xff0c;用于高端GSM/GPRS能力。基于32位ARM7EJ-STMRISC处理器&#xff0c;MT2503D的卓…

java卸载2503,无法安装msi格式软件提示错误代码2502、2503怎么办?

无法安装msi格式软件提示错误代码2502、2503怎么办?一遇英文界面&#xff0c;就感觉心里没底&#xff0c;偏偏薄名女偏逢薄命郎&#xff0c;安装msi格式软件&#xff0c;出现了下面界面&#xff1a; The installer has encountered an unexpected error installing this packa…

python错误2503_Win10卸载python总是提示error2503失败各种解决办法

最近win10的电脑装了python的3.4,然后想卸载,就总是提示error 2053,类似于这种: 下面是我的坎坷解决之路: 1、网上说,任务管理器 --> 详细信息 --> explorer.exe结束任务,结束资源管理器,然后,文件--运行新任务 -- 如下图所示: 然后重复卸载操作,然后还是失败…

解决安装node失败 报错2503

此问题是如何遇到的呢&#xff1f; 在node官网下载的安装包&#xff0c;在安装到最后突然报出一个 2503 的弹窗&#xff0c;具体报错内容如下&#xff1a; 导致安装失败&#xff01; 解决方式&#xff1a; 电脑&#xff1a;window 1. 在win 搜索框 找到 “Windows PowerS…

Nodejs安装时出现2503错误

解决方案&#xff1a; 1、管理员身份运行命令行 2、进入nodejs安装包目录 3、在命令行运行以下指令

安装出现2503 error

输入命令&#xff1a; msiexec /package "D:\TortoiseGit-2.13.0.1-64bit.msi"

MT2503原理图芯片资料整合下载,MT2503处理器概述

MT2503处理器在过去两年里,可以说很火的一款物联网芯片了。就是不知道今年咋样了。我也整理了MT2503的一些技术资料,如:datasheet,源码,参考设计,原理图,FAQ等,比较全面,需要的可在下方留言,笔者来分享给你 下面就来讲讲这款SOC吧。 MT2503芯片是基于ARMv7和采用高…

安装nodejs报错2503

提示&#xff1a;解决安装软件报2503错误的方法&#xff08;windows系统&#xff09; 安装Nodejs报错 背景 背景 提示&#xff1a;发现软件装不上背景步骤 现有windows 10操作系统官网下载安装node 官网地址傻瓜式一步步安装&#xff0c;最后报错如下图&#xff1a;报错原因…

QGis 安装 the error code 2503

1、管理员方式打开 CMD命令行&#xff1b; 2、运行 msiexec /package "E:\QGIS-OSGeo4W-3.22.5-1.msi" &#xff1b;

【推荐系统】:协同过滤和基于内容过滤概述

【推荐系统】&#xff1a;协同过滤和基于内容过滤概述 &#x1f338;个人主页&#xff1a;JOJO数据科学&#x1f4dd;个人介绍&#xff1a;统计学top3高校统计学硕士在读&#x1f48c;如果文章对你有帮助&#xff0c;欢迎✌关注、&#x1f44d;点赞、✌收藏、&#x1f44d;订阅…

协同过滤相似度

使用不同相似度计算方式实现协同过滤 如果 买/没买 点/没点数据 0/1 适合使用杰卡德相似度 - from sklean.metrics import jaccard_similarity_score - jaccard_similarity_score(df[item A],df[item B]) -一般使用评分去做协同过滤 推荐使用皮尔逊相关系数 - 评分预测 基于用…

协同过滤算法_协同过滤在新闻推荐CTR预估中的应用

概述协同过滤算法是推荐系统中的最基本的算法&#xff0c;该算法不仅在学术界得到了深入的研究&#xff0c;而且在工业界也得到了广泛的应用。本文介绍最基本的基于物品的和基于用户的协同过滤算法&#xff0c;并结合新闻推荐的CTR预估&#xff0c;介绍基于物品的协同过滤算法在…

python协同过滤_协同过滤的python简易实现

原标题&#xff1a;协同过滤的python简易实现 了解推荐算法的人对协同过滤都不陌生&#xff0c;协同过滤就寻找和被推荐客户品味相似的客户&#xff0c;找出利用这些相似客户的偏好特征为用户推荐产品。下面就通过一个简单的示例将协同过滤加以实现。 关注我们公众号的粉丝都知…

python实现 基于邻域的算法之协同过滤(电影推荐实战)

1 介绍 1.1 用户行为数据 用户行为数据通常把包括&#xff1a;网页浏览、购买点击、评分和评论等。 用户行为在个性化推荐系统中一般分为两种&#xff1a; 显性反馈行为&#xff08;explicit feedback&#xff09; 包括&#xff1a;用户明确表示明确对物品喜好的行为&#…

协同过滤1

协同过滤 协同过滤推荐&#xff08;Collaborative Filtering recommendation&#xff09;是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同&#xff0c;协同过滤分析用户兴趣&#xff0c;在用户群中找到指定用户的相似&a…