首页 > 其他分享 >Verilog语法回顾--门级和开关级模型

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

时间:2024-03-30 13:33:28浏览次数:24  
标签:输出 -- 端口 开关 实例 Verilog bufif0 门级 out

目录

门和开关的声明

门和开关类型

支持驱动强度的门

延迟

实例数组

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 buffers
	endmodule
	
module 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);

标签:输出,--,端口,开关,实例,Verilog,bufif0,门级,out
From: https://blog.csdn.net/qq_53922164/article/details/137171023

相关文章

  • 欢迎体验BotBattle
    目录1.游戏网址2.玩法介绍3.推荐的示例代码1.游戏网址点击进入:app6735.acapp.acwing.com.cn2.玩法介绍首先,注册并登录账号在我的Bots页面查看并管理自己的Bot匹配开始前,亲自出马(玩家键入W/S/A/D控制你的蛇)或者由喜欢的Bot出战(如果创建过Bot)匹配成功后,两条蛇初始......
  • Kubernetes超详细教程,一篇文章帮助你从零开始学习k8s,从入门到实战
    k8s概述k8sgithub地址:https://github.com/kubernetes/kubernetes官方文档:https://kubernetes.io/zh-cn/docs/home/k8s,全程是kubernetes,这个名字源于希腊语,意为"舵手"或"飞行员”k8s这个缩写是因为k和s之间有八个字符Google在2014年开源了k8s项目,k8s是一个......
  • 实验报告( 重载,引用,指针,交换,字符串的连接 )
       一、实验目的:掌握函数重载的使用方法深入理解指针的概念,掌握指针的使用方法理解引用的概念,掌握引用作为函数参数的使用方法二、实验仪器或设备:微型计算机三、总体设计(设计原理、设计方案及流程等)实验内容:1、设计一组重载函数add(),至少包括:charadd(char,int);......
  • 语法回顾-《Verilog编程艺术》之赋值操作
    目录Verilog赋值操作连续赋值过程赋值参考《Verilog 编程艺术》魏家明著Verilog赋值操作1.连续赋值(Continuousassignment),用于对线网Nets的赋值2.过程赋值(Proceduralassignment),用于对变量variables的赋值3.过程连续赋值:assign/deassign和fork/realease赋值由两......
  • 语法回顾-《Verilog编程艺术》之表达式
    目录表达式操作符操作符优先级整数算数操作符比较操作符逻辑操作符位运算操作符归约操作符移位操作符条件操作符连接操作符操作数向量的抽取数组的访问字符串表达式位长符号表达式赋值和截断与x/z比较参考《Verilog 编程艺术》魏家明著表达式表达式是......
  • 羡青山有思,Java有接口
    本篇会加入个人的所谓‘鱼式疯言’❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......
  • SAC-IA+ICP配准
             SAC-IA(SampleConsensusInitialAlignment)和ICP(IterativeClosestPoint)是点云配准中常用的两个算法,可以使用 SAC-IA进行粗配准结合ICP进行精配准。1.核心思想SAC-IA:作用:SAC-IA用于粗配准,估计两个点云之间的初始变换矩阵。流程:随机选择源点云中......
  • 天下三分明月夜,独有快慢指针法(链表面试题篇)
    本篇会加入个人的所谓‘鱼式疯言’❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......
  • RANSAC(提取FPFH特征)+ICP配准
            RANSAC(RandomSampleConsensus)和ICP(IterativeClosestPoint)是点云配准中常用的两个算法,可以使用RANSAC进行粗配准结合ICP进行精配准。1.FPFH特征FPFH特征:定义:FPFH是一种点云特征描述子,用于表示点云中每个点的局部特征。计算过程:对于每个点,计算其法......
  • HOW - 图形格式SVG及其应用
    目录一、介绍:scalablevectorgraphic二、基本使用三、SVG字体:自定义图标或者符号四、SVGSprite:自定义图标五、动态FetchCDNSVG图标六、SVG压缩七、SvgvsCanvas一、介绍:scalablevectorgraphicSVG是可缩放矢量图形(ScalableVectorGraphics)的缩写......