門級建模

?

學習目標

學習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.pswp.cn/news/542440.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542440.shtml
英文地址,請注明出處:http://en.pswp.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 …