Verilog中已有一些建立好的逻辑门和开关的模型。在所涉及的模块中,可通过实例引用这些门与开关模型,从而对模块进行结构化的描述。

逻辑门:

and (output,input,...)

nand (output,input,...)

or (output,input,...)

nor (output,input,...)

xor (output,input,...)

xnor (output,input,...)

缓冲器和与非门

buf (output,...,input)

not (output,...,input)

三态门:

bufif0 (output,input,enable)

bufif1 (output,input,enable)

notif0 (output,input,enable)

notif1 (output,input,enable)

MOS开关

nmos (output,input,enable)

pmos (output,input,enable)

rnmos (output,input,enable)

rpmos (output,input,enable)

CMOS开关

cmos (output,input,Nenable,Penable)

rcmos (output,input,Nenable,Penable)

双向开关:

tran (inout,inout2)

rtran (inout,inout2)

双向可控开关

tranif0 (inout1,inout2,control)

tranif1 (inout1,inout2,control)

rtranif0 (inout1,inout2,control)

rtranif1 (inout1,inout2,control)

上拉源和下拉源

pullup (output)

pulldown (output)

以下为上述门电路的真值表:

其中逻辑值L和H代表部分未知值。L表示0或者Z,H表示1或者Z;

附表1 与门真值表

and  0   1   x   z 
 0   0  0  0  0
 1  0  1   x  x
 x  0  x  x  x
 z  0  x  x  x

附表2 与非门真值表

nand  0   1   x   z 
 0   1  1  1  1
 1  1  0   x  x
 x  1  x  x  x
 z  1  x  x  x

附表3 或门真值表

or  0   1   x   z 
 0   0  1  x  x
 1  1  1   1  1
 x  x  1  x  x
 z  x  1  x  x

附表4 或非门真值表

nor  0   1   x   z 
 0   1  0  x  x
 1  0  0   0  0
 x  x  0  x  x
 z  x  0  x  x

附表5 异或门真值表

xor  0   1   x   z 
 0   0  1  x  x
 1  1  0   x  x
 x  x  x  x  x
 z  x  x  x  x

附表6 同或门真值表

xor  0   1   x   z 
 0   1  0  x  x
 1  0  1   x  x
 x  x  x  x  x
 z  x  x  x  x

附表7 缓冲器及与非门真值表

buf   not
Input Output   Input Output
0 0   0 1
1 1   1 0
x x   x x
z x   z x

附表8 缓冲器使能端真值表

Bufif0 Enable   Bufif1 Enable
0 1 x z 0 1 x z

D

A

T

A

0 0 z L L

D

A

T

A

0 z 0 L L
1 1 z H H 1 z 1 H H
x x z x x x z x x x
z x z x x z z x x x

附表9 缓冲器非门使能端真值表

notif0 Enable   notif1 Enable
0 1 x z 0 1 x z

D

A

T

A

0 1 z H H

D

A

T

A

0 z 1 H H
1 0 z L L 1 z 0 L L
x x z x x x z x x x
z x z x x z z x x x

附表10  MOS型控制端真值表

Pmos

Rpmos

Control  

Nmos

Rnmos

Control
0 1 x z 0 1 x z

D

A

T

A

0 0 z L L

D

A

T

A

0 z 0 L L
1 1 z H H 1 z 1 H H
x x z x x x z x x x
z z z z z z z z z z

规则:

1)缓冲门、非门都可以有多个输出,但是这些输出值都是相同的。

2)当nmos,pmos,cmos, tran, tranif0, tranif1类型的开关开启时,信号从输入到输出并不改变其强度。

3)当有电阻的开关,如rnmos, rpmos, rcmos, rtran, rtranif0, rtranif1类型的开关,开启式,信号从输入到输出会改变其强度。

Strength 减至
supply pull
strong pull
pull weak
large medium
weak medium
medium small
small small
highz highz

Verilog学习笔记基本语法篇(十三)...............Gate门的更多相关文章

  1. Verilog学习笔记基本语法篇(十二)········ 编译预处理

    h Verilog HDL语言和C语言一样也提供编译预处理的功能.在Verilog中为了和一般的语句相区别,这些预处理语句以符号"`"开头,注意,这个字符位于主键盘的左上角,其对应 ...

  2. Verilog学习笔记基本语法篇(九)········ 任务和函数

    task 和 function 说明语句分别用来定义任务和函数,利用任务和函数可以把函数模块分成许多小的任务和函数便于理解和调试.任务和函数往往还是大的程序模块在不同地点多次用到的相同的程序段.输入. ...

  3. Verilog学习笔记基本语法篇(十一)········ 常用系统函数

    1)系统任务:$monitor   格式: $monitor(p1,p2,p3...pn); $monitor; $monitoron; $monitoroff; 任务$monitor提供了监控输出列 ...

  4. Verilog学习笔记基本语法篇(十)········ 常用系统函数

    $display 和 $write 任务 格式: $display (p1,p2,...,pn); $write (p1,p2,..,pn); 这两个函数和系统的任务作用是用来输出信息,即将参数p2到 ...

  5. Verilog学习笔记基本语法篇(七)········ 生成块

    生成块可以动态的生成Verilog代码.可以用于对矢量中的多个位进行重复操作.多个模块的实例引用的重复操作.根据参数确定程序中是否包含某段代码.生成语句可以控制变量的声明.任务和函数的调用.还能对实例 ...

  6. Verilog学习笔记基本语法篇(八)········ 结构说明语句

    Verilog中的任何过程都可以属于以下四种结构的说明语句; 1) initial;  2) always;  3) task;   4) function; 1) initial说明语句: 一个程序 ...

  7. Verilog学习笔记基本语法篇(六)········ 循环语句

    在Verilog中存在着4种类型的循环语句,用来控制执行语句的执行次数. 1)forever语句: 连续执行的语句. 2)repeat语句:  连续执行n次的语句. 3)while语句:    执行语 ...

  8. Verilog学习笔记基本语法篇(四)·········块语句

    块语句是指将两条或者两条以上的语句组合在一起,使其在格式上更像一条语句.块语句分为两种: 1)用begin_end语句,通常用来标识顺序执行的语句,用它标识的块称作顺序块: 2)用fork_join语 ...

  9. Verilog学习笔记基本语法篇(三)·········赋值语句(待补充)

    在Verilog HDL语言中,信号有两种赋值方式. A)非阻塞赋值(Non-Blocking)方式(如:b<=a;) (1)在语句块中,上面语句所赋值的变量不能立即为下面的语句所用: (2)块 ...

随机推荐

  1. Atitit 代理CGLIB 动态代理 AspectJ静态代理区别

    Atitit 代理CGLIB 动态代理 AspectJ静态代理区别 1.1. AOP 代理主要分为静态代理和动态代理两大类,静态代理以 AspectJ 为代表:而动态代理则以 spring AOP 为 ...

  2. Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au

    Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au 1.1. Overview概论 支持母语优先的战略性产品,主要是针对不想以及不愿使用普通 ...

  3. atitit.错误:找不到或无法加载主类 的解决 v4 qa15.doc

    atitit.错误:找不到或无法加载主类 的解决 v4 qa15.doc 1.1. 修改此java文件,让他启动编译,还是不能生成了新的class, 1.2. 估计ide调试锁死class ,查看de ...

  4. JS---DOM操作有哪一些

    一  DOM对象有哪一些 1   windos 1.属性  opener 2.方法  open(),close() 例:<script langguage="javascript&qu ...

  5. 每天一个linux命令(11):nl命令

    nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等 ...

  6. Android入门(十七)Android多线程

    原文链接:http://www.orlion.ga/670/ 一.在子线程中更新UI Android中不允许在子线程中更新UI,只能在主线程中更新,但是我们有时候必须在子线程中执行一些耗时的任务,然后 ...

  7. 深入理解PHP内核(二)概览-PHP生命周期与Zend引擎

    本文参考自<深入理解PHP内核>,地址:https://github.com/reeze/tipi 本文链接:http://www.orlion.ml/232/ 1.SAPI接口 SAPI ...

  8. 查看abp框架异常信息

    abp框架中经常出现{"message":"An error has occurred."}的异常,并且也进入不到方法中,如果想查看详细信息,可以采用下面方法 ...

  9. OCP-052 & 053部分答案解析

    OCP~052 . GRANT ANY OBJECT PRIVILEGE(授予任何对象权限):允许被授权人将其本身不拥有的对象的对象权限授予他人,但不能授予自己. . ENABLE VALIDATE ...

  10. Java多线程系列--“JUC集合”07之 ArrayBlockingQueue

    概要 本章对Java.util.concurrent包中的ArrayBlockingQueue类进行详细的介绍.内容包括:ArrayBlockingQueue介绍ArrayBlockingQueue原 ...