门级建模

 

学习目标

学习Verilog提供的门级原语

理解门的实例引用、门的符号以及and/or,buf/not类型的门的真值表

学习如何根据电路的罗技图来生成Verilog描述

讲述门级设计中的上升、下降和关断延迟

解释门级设计中的最小、最大和典型延迟

 1.门的类型

1.1与门(and)和或门(or)

具有一个标量输出端和多个标量输入端。端口列表中的第一个端口必定是输出端口,其后为输入端

可以使用的属于与/或门类的其他门的术语包括:

and(与门) or(或门) xor(异或门) nand(与非门) nor(或非门) xnor(同或门)

 

 

wire OUT,IN1,IN2;
//基本门的实例引用
and a1(OUT,IN1,IN2);
nand na1(OUT,IN1,IN2);
or or1(OUT,IN1,IN2);
nor nor1(OUT,IN1,IN2);
xnor nx1(OUT,IN1,IN2);//输入端超过两个,三输入端的与非门
nand na1_3inp(OUT,IN1,IN2,IN3);//实例引用门时,不给实例命名
and(OUT,IN1,IN2);//合法的门实例引用

 

基本门的真值表

and01xz
00000
101xx
x0xxx
z0xxx

 

nand01xz
01111
110xx
x1xxx
z1xxx

 

or01xz
001xx
11111
xx1xx
zx1xx

 

nor01xz
010xx
10000
xx0xx
zx0xx

 

xor01xz
001xx
110xx
xxxxx
zxxxx

 

xnor01xz
010xx
101xx
xxxxx
zxxxx

1.2缓冲器/非门

buf/not门具有一个标量输入和多个标量输出。

 缓冲门(buf)/非门(not)

输入端口必须是在实例端口列表的最后一个。

//基本门的实例引用
buf b1(OUT1,IN);
not n1(OUT1,IN);//输出端多余两个
buf b1_2out(OUT1,OUT2,IN);//实例引用门时,不给实例命名
not (OUT1,IN );//合法的门实例引用

 真值表

bufinout
 00
 11
 xx
 zz

 

notinout
 01
 10
 xx
 zx

带控制端的缓冲器/非门(bufif/notif)

Verilog提供了其他4个带有控制信号端口的buf/not门

bufif1 bufif0 notif1 notif0

真值表

  ctrl
 bufif101xz
in0z0LL
1z1HH
xzxxx
zzxxx

 

  ctrl
 bufif001xz
in00zLL
11zHH
xxzxx
zxzxx

 

  ctrl


 notif101xz
in0z1HH
1z0LL
xzxxx
zzxxx

 

  ctrl

 notif001xz
in01zHH
10zLL
xxzxx
zxzxx

2.门延迟

2.1上升、下降、关断延迟

上升延迟

门的输出从0,x,z变化为1所需的时间称为上升延迟。

下降延迟

门的输出从1,x,z变化为0所需的时间

关断延迟

关断延迟是指门的输出从0,1,x变化为z所需的时间

PS如果值变化到不确定值x,则所需的时间可以看成是以上三种延迟值中最小的那个。

延迟值说明的类型

//以下三种延迟都等于delay_time所表示的延迟时间
and #(delay_time) a1(out,i1,i2);//说明上升延迟和下降延迟
and #(rise_val,fall_val) a2(out,i1,i2);//说明上升延迟,下降延迟和关断延迟
bufif0 #(rise_val,fall_val, turnoff_val) b1(out,in,control);

2.2最小/典型/最大延迟

//一个延迟
//若最小延迟=4
//若典型延迟=5
//若最大延迟=6
and #(4:5:6) a1(out,i1,i2);//两个延迟
//若最小延迟,上升延迟=3,下降延迟=5,关断延迟=min(3,5)
//若典型延迟,上升延迟=4,下降延迟=6,关断延迟=min(4,6)
//若最小延迟,上升延迟=5,下降延迟=7,关断延迟=min(5,7)
and #(3:4:5,5:6:7) a2(out,i1,i2);//三个延迟
//若最小延迟,上升延迟=2,下降延迟=3,关断延迟=4
//若最小延迟,上升延迟=3,下降延迟=4,关断延迟=5
//若最小延迟,上升延迟=4,下降延迟=5,关断延迟=6
and #(2:3:4,3:4:5,4:5:6) a3(out,i1,i2);//启动仿真器,使用最大延迟进行仿真
>verilog test.v +maxdelays//启动仿真器,使用最小延迟进行仿真
>verilog test.v +mindelays//启动仿真器,使用典型延迟进行仿真
>verilog test.v +typedelays

 

转载于:https://www.cnblogs.com/fxygrzb/p/5936782.html

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

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

相关文章

linux .net 控制台应用程序,VisualStudioCode创建的asp.net core控制台程序部署到linux

1、asp.net core控制台程序static void Main(string[] args){int times10;while(times>0){Console.WriteLine("Hello World!");times--;Thread.Sleep(1000);}}2、发布发布前,修改test2.csproj文件(项目名称为test2)Exenetcoreapp2.1centos.7-x64主要添…

数组长度属性以及JavaScript中的示例

JavaScript长度属性 (JavaScript length property) length property is used to get and set the length of an array in JavaScript. length属性用于获取和设置JavaScript中数组的长度。 Syntax to get the length of an array: 获取数组长度的语法: array_name.…

怎么挖linux内核的漏洞,linux内核漏洞分析实战看看专家是怎么一步步...-卓优商学院问答...

推荐回答Linux内核调试方法kdb:只能在汇编代码级进行调试;优点是不需要两台机器进行调试。gdb:在调试模块时缺少一些至关重要的功能,它可用来查看内核的运行情况,包括反汇编内核函数。kgdb:能很方便的在源码…

COGS182 [USACO Jan07] 均衡队形[RMQ]

182. [USACO Jan07] 均衡队形 ★★ 输入文件:lineup.in 输出文件:lineup.out 简单对比时间限制:4 s 内存限制:128 MB 题目描述 农夫约翰的 N (1 ≤ N ≤ 50,000) 头奶牛,每天挤奶时总会按同样的顺序站好。一日…

string中concat_JavaScript中带示例的String concat()方法

string中concat字符串concat()方法 (String concat() Method) concat() is a string method in JavaScript, it is used to concatenate (join) two or more strings and returns a new joined string. concat()是JavaScript中的字符串方法,用于连接(联接)两个或多个…

linux全自动备份网站到百度云盘,Linux定时备份数据到百度云盘(示例代码)

导读:如今的百度云盘免费容量都是2T了,即使把电脑上所有的东东都放上去,也还有大把的剩余空间。对于站长来说,是完全可以充分利用这些硬盘空间的,现在我们就用百度云盘来备份Linux服务器上的数据。一直在想&#xff0c…

python dict底层实现_dict实现原理和哈希表

dict底层实现在Python中,字典是依靠散列表或说哈希表(Hash Table)进行实现的,使用开放地址法解决冲突。所以其查找的时间复杂度会是O(1),下文会具体讲解哈希表的工作原理和解决冲突时的具体方法。也就是说,字典也是一个数组&#…

网际控制报文协议icmp_网络中的ICMP(Internet控制消息协议)

网际控制报文协议icmpICMP(Internet控制消息协议)简介 (Introduction to ICMP (Internet Control Message Protocol)) IP (Internet Protocol) is a network layer protocol. The responsibility of delivering data (Logical Addressing) to any network is done by the IP (I…

谈色

最近很苦恼,像是到了男人的生理期,或者说是类似动物的发情期,见到露长腿的女人总喜欢看。 其实我是并不喜欢这样盯着看,或许是男人的本色,十个男人九个色的本性,总是会不自觉的去偷看,更有甚者还…

linux系统怎样写单片机程序,单片机知识是Linux驱动开发的基础之一以及如何学单片机...

这是arm裸机1期加强版第1课第2、3节课程的wiki文字版。为什么没前途也要学习单片机?因为它是个很好的入口。学习单片机可以让我们抛开复杂的软件结构,先掌握硬件操作,如:看原理图、芯片手册、写程序操作寄存器等。在上一节视频里&…

python教程循环语句_Python教程:关于Python 循环语句

Python 循环语句本章节将向大家介绍Python的循环语句,程序在一般情况下是按顺序执行的。编程语言提供了各种控制结构,允许更复杂的执行路径。循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式&#x…

math.pow int_Java Math类static int min(int i1,int i2)与示例

math.pow int数学类静态int min(int i1,int i2) (Math Class static int min(int i1 , int i2) ) This method is available in java.lang package. 此方法在java.lang包中可用。 This method is used to return the minimum one of both the given arguments or in…

bat 批处理 常用命令和乱码问题

为什么80%的码农都做不了架构师?>>> rem echo off ECHO OFF XCOPY E:\test.bat D:\ IF ERRORLEVEL 1 ECHO 文件拷贝Failure IF ERRORLEVEL 0 ECHO 文件拷贝Success :start set /p first"1记事本,2远程:" if %first% LEQ 2 (IF %first% …

SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载

作者:yx 文章目录 一、发布服务二、代码加载三、结果展示 一、发布服务 SuperMap iServer支持将地图发布为ArcGIS REST地图服务,您可以在发布服务时直接勾选ArcGIS REST地图服务,如下图所示: 也可以在已发布的地图服务中&#x…

c语言中的运算符及其含义_按位运算符及其在C语言中与Example一起使用

c语言中的运算符及其含义1)&(按位与) (1) & (bitwise AND)) It does AND on every bit of two numbers. The result of AND is 1 only if both bits are 1. 它对两个数字的每一位进行“与”运算。 仅当两个位均为1时,AND的结果才为1。 Example: 例&…

能上网的Linux系统,那一款linux能上网

zhoushao12 于 2009-02-24 19:13:07发表:linux日常使用中,最重要的就是网络(本人觉得)特别时ubuntu .但是现在电信偏偏搞什么账号加密要用互联星空软件才可以拨号,更可恶的是这X软件只有Windws版的!! 使得在linux下拨号上网变得十分麻烦!在网上找了很久终于找到解决方法!!下面拿…

李洪强经典面试题37

1.写一个NSString类的实现 (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; (id) stringWithCString: (c*****t char*)nullTerminatedCString encoding: (NSStringEncoding)encoding { NSString *obj; obj [self al…

new file会创建文件吗_Rust 文件系统处理之文件读写 Rust 实践指南

Rust 中,文件读写处理简单而高效。代码也很紧凑,容易阅读。我们从读取文件的字符串行、避免读取写入同一文件、使用内存映射随机访问文件这三个文件处理中的典型案例来了解一下。文件处理场景大家都很熟悉,因此闲言少叙,直接看代码…

python 打印文件名_在Python中打印文件名,关闭状态和文件模式

python 打印文件名Prerequisite: Opening, closing a file/open(), close() functions in Python 先决条件: 在Python中打开,关闭文件/ open(),close()函数 1)文件名(file_object.name) (1) File name (file_object.name)) To get the file …