第5章Verilog設計深入_第1頁
第5章Verilog設計深入_第2頁
第5章Verilog設計深入_第3頁
第5章Verilog設計深入_第4頁
第5章Verilog設計深入_第5頁
已閱讀5頁,還剩65頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第5章

Verilog設計深入

5.1過程中的兩類賦值語句

5.1.1阻塞式賦值

5.1.2非阻塞式賦值

5.2過程結構總結1.過程語句為一無限循環語句2.過程中的語句具有順序和并行雙重性

3.過程語句本身是并行語句

4.過程中只允許描述對應單一時鐘的同步時序邏輯

5.不完整條件語句與時序電路的關系

電路活動的并發性硬件電路的不同部分是同時工作的。在同一時刻,電路中不同位置的信號可能同時發生變化,這就是硬件電路的并發性(concurrents)。因此assign語句是并行執行的。在同步時序電路中,當一個時鐘信號到來時,相連的所有觸發器都會動作,要描述這一特性,必須使相應的賦值同時完成。因此在用always過程塊中來描述時序電路時,VerilogHDL就規定了非阻塞賦值語句的同時、并行性。HDL描述中的并發性always過程的描述相當于一個進程。assign語句可以等效描述為一個always過程塊。

always@(a,b,c)begindout=a&b|c;

end顯然一個模塊描述中的多個assign語句或always過程都應是并行執行的。整個數字電路或系統可看成是一個相互間通信的并發進程的集合。assigndout=a&b|c;并發性與賦值操作:例assign與非阻塞賦值的并行性assignQ1=A|B;assignQ2=B^C;assignQ1=C&A;過程描述always@(A,B,C)begin

Q1<=A|B;Q2<=B^C;Q1<=C&A;endassign描述Q1賦值發生沖突,不允許語法允許,Q1賦值僅最后一次生效阻塞/非阻塞賦值(1)在過程賦值中,阻塞賦值是理想化的數據傳輸,賦值不需要時間,立即完成,與通常軟件描述語言中的賦值操作類似;而對非阻塞賦值,VerilogHDL假定等號右邊的表達式向左邊變量的賦值不是立即的,而是需要一個延時δ,δ是從過程啟動到結束之間的延遲。因此非阻塞賦值語句左邊的變量要在過程結束時(延時δ后)才能獲得賦值,若有多條非阻塞賦值語句,則在延時δ后同時完成賦值。阻塞/非阻塞賦值(2)但always過程塊中的語句又都被稱為順序語句,順序語句是依“順序”執行的。可以這樣理解非阻塞賦值:等號右邊的表達式的計算是按順序的,當執行到該語句時被計算,但等號左邊變量獲得賦值則要等過程結束,δ時延之后。因此,過程中的非阻塞賦值語句具有順序與并行的雙重性。這樣的語義規則主要是為了滿足描述電路實際中并發特性的需要。阻塞vs.非阻塞賦值(1)M1=1;M2=1&1=1;Q=1;M1=1;M2=1&0=0;Q=0|0=0;A=0?>1,B=0?>1always@(A,B,C)begin

M1=A;M2=B&M1;Q=M1|M2;end非阻塞式賦值示例always@(A,B,C)begin

M1<=A;M2<=B&M1;Q<=M1|M2;end阻塞式賦值示例阻塞vs.非阻塞賦值(2)moduleDFF3(CLK,D,Q);

outputQ;inputCLK,D;rega,b,Q;always@(posedgeclk)begina<=D;b<=a;Q<=b;endendmodule阻塞賦值示例moduleDFF3(CLK,D,Q);

outputQ;inputCLK,D;rega,b,Q;always@(posedgeclk)begina=D;Q=b;b=a;b=a;Q=b;a=D;endendmodule非阻塞賦值示例阻塞vs.非阻塞賦值(3)當一個always過程塊中同時包含阻塞與非阻塞賦值語句時,非阻塞賦值會在阻塞語句都執行完畢后再一起執行。下列代碼中b1較a1更早被賦值!always

@(*)

begin

if(in1==1)…//第1行a1<=4’B1010;//第2行…

if(in2==0)…//第15+n行…b1=4’B0011;//第30+m行…

end5.1過程中的兩類賦值語句

5.1.3深入認識阻塞賦值和非阻塞式賦值的特點

5.1過程中的兩類賦值語句

5.1.3深入認識阻塞賦值和非阻塞式賦值的特點

阻塞vs.非阻塞賦值(5)一般用阻塞賦值描述組合邏輯;非阻塞賦值描述同步時序邏輯中邊沿敏感的操作。由于阻塞賦值語句的書寫順序影響電路綜合結果,一般時序電路描述時不建議使用。可以在一個always過程中對同一變量進行多次阻塞式賦值;但對同一變量的多次非阻塞式賦值,起作用的是最后一次。只有當語句的執行次序不影響結果時,阻塞和非阻塞賦值才是等價的。不要在一個always塊中混合使用阻塞和非阻塞賦值。完整vs.不完整條件語句(1)

完整vs.不完整條件語句(2)5.25.25.3移位寄存器設計

5.3.1含同步預置功能的移位寄存器設計

杭州電子科技大學EDA技術20移位寄存器(1)

可以用來寄存數據與代碼,還可以用來實現數據的串行—并行轉換、數值的運算以及數據的處理。是計算機的主要部件之一。數據可以在時鐘脈沖作用下一次逐位右移或左移。4.3

基本時序電路描述杭州電子科技大學EDA技術21移位寄存器(2)右移寄存器Q3Q2FF2DFF3DFF1DQ1R0FF0DQ0RiQ0Q1Q2Q3RD清04.3

基本時序電路描述杭州電子科技大學EDA技術22移位寄存器設計含同步預置功能的移位寄存器

4.3基本時序電路描述moduleSHFT1(CLK,LOAD,DIN,QB);//右移移位寄存器

outputQB;inputCLK,LOAD;input[7:0]DIN;reg[7:0]REG8;always@(posedgeCLK)begin

if(LOAD)REG8<=DIN;

elseREG8[6:0]<=REG[7:1];endassignQB=REG[8];//always過程塊與assign語句并行執行endmodule5.3移位寄存器設計

5.3.2模式可控的移位寄存器設計

5.3移位寄存器設計

5.3.2模式可控的移位寄存器設計

5.3移位寄存器設計

5.3.3使用移位操作符設計移位寄存器

V>>n與V<<n表示將變量V中的數據右/左移n

位,移出的位用0填補。5.3移位寄存器設計

符號數的移位操作符:

5.3移位寄存器設計

5.3.3使用移位操作符設計移位寄存器

5.4乘法器設計及相關語句應用5.4.1參數定義關鍵詞parameter杭州電子科技大學EDA技術29設計重用通過parameter定義在設計時設置可變參數,可使所設計的電路模塊成為可參數化的,不僅可提高代碼的可讀性和可維護性,也便于設計重用。設計的可重用性是提高設計效率、降低設計成本的手段,對實際工程設計有重要意義。通常將數據位數、總線寬度等參數用parameter定義。5.4乘法器設計及相關語句應用5.4.2整數型寄存器類型定義

5.4乘法器設計及相關語句應用5.4.3for語句用法

5.4乘法器設計及相關語句應用5.4.3for語句用法

5.4乘法器設計及相關語句應用5.4.4repeat語句用法

5.4乘法器設計及相關語句應用5.4.5while語句用法

5.4乘法器設計及相關語句應用5.4.5while語句用法

5.5if語句一般用法

5.5if語句一般用法

5.5if語句一般用法

5.5if語句一般用法

5.5if語句一般用法

5.6三態與雙向端口設計5.6.1三態控制電路設計

5.6三態與雙向端口設計5.6.2雙向端口設計

杭州電子科技大學EDA技術43雙向端口應用雙向端口一般用于總線接口器件

5.3三態門與雙向端口5.6三態與雙向端口設計5.6.2雙向端口設計

5.6三態與雙向端口設計5.6.2雙向端口設計

5.6.3三態總線控制電路設計

5.6三態與雙向端口設計5.6.3三態總線控制電路設計

5.6三態與雙向端口設計5.6.3三態總線控制電路設計

5.7模可控計數器設計

5.7.1同步加載模型設計

5.7模可控計數器設計

5.7.1同步加載模型設計

5.7模可控計數器設計

5.7.2異步加載模型設計

5.7模可控計數器設計

5.7.2異步加載模型設計

5.7模可控計數器設計

5.7.3異步清0加載模型設計

5.7模可控計數器設計

5.7.3異步清0加載模型設計

5.7模可控計數器設計

5.7.4同步清0加載模型設計

5.8半整數與奇數分頻電路設計5.8半整數與奇數分頻電路設計5.8半整數與奇數分頻電路設計5.9Verilog的描述風格

5.9.1RTL描述5.9.2行為描述

5.9Verilog的描述風格

5.9.3數據流描述

5.9.4結構描述實驗與設計5-1半整數與奇數分頻器設計5-2模可控計數器設計

實驗與設計5-3VGA彩條信號顯示控制電路設計

實驗與設計5-3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論