Verilog语法回顾--门级和开关级模型

目录

门和开关的声明

门和开关类型

支持驱动强度的门

延迟

实例数组

and,nand,nor,or,xor,xnor

buf,not

bufif1,bufif0,notif1,notif0

MOS switches

Bidirectional pass switches

pullup,pulldown


参考《Verilog 编程艺术》魏家明著

Verilog共有14中逻辑门和12种开关,用于提供门级和开关级模型。

门和开关的声明

1.门和开关的类型由关键字命名。

2.可选驱动强度(Drive strength)

3.可选传输延迟(Propagation delay)

4.门和开关的实例名(Instance name)是可选的

5.实例化时可以使用实例数组(Instance array)

6.同一类型的多个实例在声明时可以使用逗号分隔,所有这样的实例具有同样的驱动强度和延迟要求。

门和开关类型

支持驱动强度的门

and,or,xor,nand,nor,xnor,buf,bufif0,bufif1,not,notif0,notif1,pulldown, pullup

它们可以使用的驱动强度分为两类strength0和strength1,分别对应驱动0和1的强度: 

strength0: supply0,strong0,pull0,weak0
strength1: supply1,strong1,pull1,weak1

 例子:

nor (highz1, strong0) n1(out1, in1, in2);

延迟

and #(10) a1 (out, in1, in2);         // only one delay
and #(10, 12) a2 (out, in1, in2);     // rise and fall delays
bufif0 #(10, 12, 11) (out, in, ctrl); // rise fall and turn-off delays

实例数组

可以通过实例数组一次实例化多个门或开关的实例。

例子:

module driver (input en,input [3:0] in,output [3:0] out
);bufif0 ar[3:0] (out, in, en);   // array of three-state buffersendmodulemodule busdriver (input [15:0] busin,output [7:0] bushigh, buslow,input enh, enl
);driver busar3 (busin[15:12], bushigh[7:4], enh);driver busar2 (busin[11:8], bushigh[3:0], enh);driver busar1 (busin[7:4], bushigh[7:4], enl);driver busar3 (busin[3:0], bushigh[3:0], enl);
endmodule

and,nand,nor,or,xor,xnor

1.它们都只能有一个输出端口,可以有多个输入端口,其中输出端口是第一个端口。

2.从逻辑上 nand = ~and,nor = ~or,xnor = ~xor;

例子:

and a1 (out, in1, in2, in3);

buf,not

1.它们都只能有一个输入端口,可以有多个输出端口,其中输入端口是最后的端口。

2.从逻辑上 nut = ~buf;

例子:

buf b1 (out1, out2, out3, in);

bufif1,bufif0,notif1,notif0

1.它们都只能有一个数据输出端口,一个数据输入端口和一个控制输入端口,第一个端口是数据输出端口,第二个端口是数据输入端口,第三个端口是控制输入端口。

2.对于bufif1和notif1,当控制等于1时,数据通过;当控制等于0时,输出为z

3.对于bufif0和notif0,当控制等于0时,数据通过;当控制等于1时,输出为z

例子:

bufif1 bf1 (outw, inw, controlw);

MOS switches

MOS开关有cmos,nmos,pmos,rcmos,mmos,rpmos

例子:

pmos p1 (out, data, control);cmos (w, datain, ncontrol, pcontrol);
// is equivalent to
nmos (w, datain, ncontrol);
pmos (w, datain, pcontrol);

Bidirectional pass switches

双向开关有tran,tranif1,tranif0,rtran,rtranif1,rtranif0

1.对于tran和rtran,它们有两个端口,都是双向数据端口。

2.对于tranif1,tranif0,rtranif1,rtranif0,它们都有三个端口,前两个端口是双向数据端口,第三个端口是控制输入端口。

3.对于tranif1和rtranif1,当控制端口等于1时,数据通过;当控制端口等于0时,输出为z;

4.对于tranif0和rtranif0,当控制端口等于0时,数据通过;当控制端口等于1时,输出为z;

例子:

tranif1 t1 (inout1, inout2, control1);

pullup,pulldown

pullup (strong1) p1 (meta), p2(netb);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/291421.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TSINGSEE青犀智慧工厂视频汇聚与安全风险智能识别和预警方案

在智慧工厂的建设中,智能视频监控方案扮演着至关重要的角色。它不仅能够实现全方位、无死角的监控,还能够通过人工智能技术,实现智能识别、预警和分析,为工厂的安全生产和高效运营提供有力保障。 TSINGSEE青犀智慧工厂智能视频监…

公司官网怎么才会被百度收录

在互联网时代,公司官网是企业展示自身形象、产品与服务的重要窗口。然而,即使拥有精美的官网,如果不被搜索引擎收录,就无法被用户发现。本文将介绍公司官网如何被百度收录的一些方法和步骤。 1. 创建和提交网站地图 创建网站地图…

C语言例3-5:阅读下列程序,写出程序运行的结果。

代码如下&#xff1a; #include <stdio.h> int main(void) {int i1,s3;do{si;if(s%70) continue;else i;}while(s<15);printf("%d",i);return 0; } 结果如下&#xff1a; 分析&#xff1a; s314437741111617i3468

四、e2studio VS STM32CubeIDE之STM32CubeIDE线程安全解决方案

目录 一、概述/目的 二、原因和办法 三、线程安全问题的描述 四、STM32解决方案 4.1 通用策略 4.2 RTOS策略 4.3 策略的讲解 4.3.1 裸机应用(策略2、3) 4.3.2 RTOS应用(策略4、5) 五、关键源码 四、e2studio VS STM32CubeIDE之STM32CubeIDE线程安全解决方案 一、概述…

Spring Boot简介及案例

文章目录 Spring Boot简介以下是一个简单的 Spring Boot Web 应用实例**步骤 1&#xff1a;创建 Spring Boot 项目****步骤 2&#xff1a;编写 RESTful 控制器****步骤 3&#xff1a;配置主类****步骤 4&#xff1a;运行并测试应用** Spring Boot简介 Spring Boot 是一个用于简…

怎么让ChatGPT批量写作原创文章

随着人工智能技术的不断发展&#xff0c;自然语言处理模型在文本生成领域的应用也日益广泛。ChatGPT作为其中的佼佼者之一&#xff0c;凭借其强大的文本生成能力和智能对话特性&#xff0c;为用户提供了一种高效、便捷的批量产出内容的解决方案。以下将就ChatGPT批量写作内容进…

【AI】命令行调用大模型

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 【AI】命令行调用大模型引入正文初始化项目撰写脚本全局安装 成果展示 【AI】命令…

Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装

文章目录 前言一、卸载本地 gnuradio二、安装 UHD 驱动三、编译及安装 gnuradio四、验证 前言 本地 Ubuntu 环境的 gnuradio 是按照官方指导使用 ppa 的方式安装 uhd 和 gnuradio 的&#xff0c;也是最方便的方法&#xff0c;但是存在着一个问题&#xff0c;就是我无法修改底层…

亚信安全联合人保财险推出数字安全保障险方案,双重保障企业数字化转型

数字化发展&#xff0c;新兴技术的应用与落地带来网络攻击的进一步演进升级&#xff0c;同时全球产业链供应链融合协同的不断加深&#xff0c;更让网络威胁的影响范围与危害程度不断加剧。 企业单纯依靠自身安全能力建设&#xff0c;能否跟上网络威胁的进化速度&#xff1f;能否…

Day49:WEB攻防-文件上传存储安全OSS对象分站解析安全解码还原目录执行

目录 文件-解析方案-目录执行权限&解码还原 目录执行权限 解码还原 文件-存储方案-分站存储&OSS对象 分站存储 OSS对象存储 知识点&#xff1a; 1、文件上传-安全解析方案-目录权限&解码还原 2、文件上传-安全存储方案-分站存储&OSS对象 文件-解析方案-目…

【深耕 Python】Data Science with Python 数据科学(2)jupyter-lab和numpy数组

关于数据科学环境的建立&#xff0c;可以参考我的博客&#xff1a;【深耕 Python】Data Science with Python 数据科学&#xff08;1&#xff09;环境搭建 Jupyter代码片段1&#xff1a;简单数组的定义和排序 import numpy as np np.array([1, 2, 3]) a np.array([9, 6, 2, …

深入解析快速排序算法

深入解析快速排序算法 一、快速排序算法简介二、快速排序算法过程三、快速排序算法示例四、快速排序算法分析1. 时间复杂度&#xff1a;2. 空间复杂度&#xff1a;3. 稳定性&#xff1a; 五、快速排序算法优化1. 优化基准元素的选择&#xff1a;2. 优化小数组的排序&#xff1a…

WIFI驱动移植实验:WIFI从路由器动态获取IP地址与联网

一. 简介 前面两篇文章&#xff0c;一篇文章实现了WIFI联网前要做的工作&#xff0c;另一篇文章配置了WIFI配置文件&#xff0c;进行了WIFI热点的连接。文章如下&#xff1a; WIFI驱动移植实验&#xff1a;WIFI 联网前的工作-CSDN博客 WIFI驱动移植实验&#xff1a;连接WIF…

工业镜头常用参数之实效F(Fno.)和像圈

Fno. 工业镜头中常用到的参数F&#xff0c;有时候用F/#&#xff0c;Fno.来表示&#xff0c;指的是镜头通光能力的参数。它可用镜头焦距及入瞳直径来表示&#xff0c;也可通过镜头数值孔径&#xff08;NA&#xff09;和光学放大倍率&#xff08;β&#xff09;来计算。有效Fno.…

【御控物联】JavaScript JSON结构转换(11):数组To数组——综合应用

文章目录 一、JSON结构转换是什么&#xff1f;二、术语解释三、案例之《JSON数组 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

VOC(客户之声)赋能智能家居:打造个性化、交互式的未来生活体验

随着科技的飞速发展&#xff0c;智能家居已成为现代家庭不可或缺的一部分。然而&#xff0c;如何让智能家居更好地满足用户需求&#xff0c;提供更贴心、更智能的服务&#xff0c;一直是行业关注的焦点。在这个背景下&#xff0c;VOC&#xff08;客户之声&#xff09;作为一种用…

Java NIO详解

一、概念 NIO, 即new io&#xff0c;也叫非阻塞io 二、NIO三个核心组件&#xff1a; Buffer数据缓冲区Channel通道Selector选择器 1、Buffer缓冲区 缓冲区本质上是一个可以存放数据的内存块&#xff08;类似数组&#xff09;&#xff0c;可以在这里进行数据写入和读取。此…

git 修改历史 commit message

目录 1&#xff0c;修改当前的2&#xff0c;修改历史的1&#xff0c;先查看 log2&#xff0c;开始修改 3&#xff0c;其他注意点1&#xff0c;中途不想修改了2&#xff0c;commit ID 会发生变化3&#xff0c;推送远程4&#xff0c;精准定位 1&#xff0c;修改当前的 直接使用下…

Linux实现m4a格式转换为wav格式

需要在linux上安装ffmpeg 参考博客 Linux上安装ffmpeg修改环境变量【这一点很重要&#xff0c;自己因为没有添加环境变量&#xff0c;捣鼓了很长时间】 将ffmpeg的绝对路径添加到 PATH 环境变量中&#xff0c;以让系统能找到ffmpeg的安装路径。 # /home//project/ffmpeg-6.1-a…

三个表的联合查询的场景分析-场景4:c表维护a和b表的id关联关系(一对多)

基础SQL演练&#xff0c;带详细分析&#xff0c;笔记和备忘。 目录 背景介绍 表数据 需求1&#xff1a;查询g表所有记录&#xff0c;以及关联的h的id 需求2&#xff1a;在需求1基础上&#xff0c;查出关联的h的其它字段&#xff08;name&#xff09; 需求3&#xff1a;在需…