硬件描述語言和數字系統設計:第14章 復習_第1頁
硬件描述語言和數字系統設計:第14章 復習_第2頁
硬件描述語言和數字系統設計:第14章 復習_第3頁
硬件描述語言和數字系統設計:第14章 復習_第4頁
硬件描述語言和數字系統設計:第14章 復習_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 第14章 復習硬件描述語言和數字系統設計2主要內容:14.1 變量類型14.2 賦值語句14.3 Always過程塊14.4 組合、時序邏輯Verilog描述3Wire線網是最常用的一種類型網線聲明語句中可明確地指定位寬:Wire 7:0 data_in;如果聲明語句中沒指定位寬,默認位寬為一位。 wire en; assign enerror&wait; assign en=valid|clear; 在出現多個驅動源驅動同一根網線時,輸出會被短接在一起,采用wand或者wor類型來實現。14.1 變量類型4寄存器數據類型reg是最常見的數據類型reg類型使用保留字reg加以說明,形式如下:

2、Reg msb: lsb reg1, reg2, . . . reg N;msb和lsb 定義了范圍,并且均為常數值表達式。范圍定義是可選的;如果沒有定義范圍,缺省值為1位寄存器。例如:reg 3:0 Sat; /Sat為4 位寄存器。reg Cnt; /位1寄存器。reg 31:0 Kisp, Pisp, Lisp;5Verilog模塊兩種主要的信號類型: - 寄存器類型:reg 在always 塊中被賦值的信號,往往代表 觸發器,但不一定是觸發器。(數字邏輯電路中常常被綜合為D觸發器純組合邏輯電路中被綜合為連線) - 連線類型:wire 用 assign 關鍵詞指定的組合邏輯的信號或連線6

3、Verilog中reg與wire的不同點用寄存器 (reg)類型變量生成組合邏輯舉例: module rw1( a, b, out1, out2 ) ;input a, b;output out1, out2;reg out1;wire out2; assign out2 = a ; always (b) out1 = b;endmodule aout2BUFFbINVout17用寄存器 ( reg )類型變量生成觸發器的例子:module rw2( clk, d, out1, out2 ) ;input clk, d;output out1, out2;reg out1;wire out2;

4、 assign out2 = d & out1; always (posedge clk) begin out1 = d ; endendmodule dout2AND2i1clkout1D QDFFVerilog中reg與wire的不同點8連續/持續賦值語句 連續賦值用于數據流行為建模, 連續賦值語句建模的是組合邏輯電路。14.2賦值語句9連續/持續賦值語句例如, wire 3:0 Z, Preset, Clear; /線網說明 assign Z = Preset & Clear; /連續賦值語句 連續賦值的目標為Z,表達式右端為“Preset & Clear”。 注意連續賦值語句中的關鍵詞

5、assign。10 連續賦值語句在什么時候執行呢? 只要在右端表達式的操作數上有事件(事件為值的變化)發生時,表達式即被計算;如果結果值有變化,新結果就賦給左邊的線網。 在上面的例子中,如果Preset或Clear變化,就計算右邊的整個表達式。如果結果變化,那么結果即賦值到線網Z。11過程性賦值分兩類:1.阻塞性過程賦值2. 非阻塞性過程賦值12過程賦值語句(阻塞式) 賦值操作符是“=”的過程賦值是阻塞性過程賦值。例如: Reg A = 52; 是阻塞性過程賦值。 阻塞性過程賦值在其后所有語句執行前執行,即在下一語句執行行前該賦值語句完成執行。如下所示:13過程賦值語句(非阻塞式) 在非阻塞性

6、過程賦值中,使用賦值符號“ =”。例如:begin Load = 32; Reg A = Load; Reg B = Store;end14賦值語句的阻塞和非阻塞性質不會造成賦值語句本身生成的組合邏輯電路有任何不同,但是會影響以后對賦值結果的使用。建議對組合邏輯進行建模使用阻塞式賦值,而對時序邏輯進行建模使用非阻塞式賦值。15兩種不同的賦值語句區別要點:非阻塞(non-blocking) 賦值語句 ( b= a): - 塊內的賦值語句同時賦值; - b的值被賦成新值a的操作, 是與塊內其他 賦值語句同時完成的; - 建議在可綜合風格的模塊中使用不阻塞賦值。阻塞(blocking) 賦值語句 (

7、 b=a): - 完成該賦值語句后才能做下一句的操作; - b的值立刻被賦成新值a; - 時序電路中硬件沒有對應的電路,因而綜合結果未知。1614.3 Always過程塊Always過程塊既可表達組合邏輯也可表達時序邏輯。組合邏輯:always (a or b or c or d)時序邏輯:always ( posedge clk or negedge reset)17組合邏輯:組合邏輯的兩種Verilog HDL表示:用 assign 語句assign q = (al=1?) d : 0 ;always過程塊的電平觸發方式always (al or d) begin if (al=1) q

8、= d ; else q = 0; end14.4 組合、時序邏輯Verilog描述18使用always過程塊描述組合邏輯時,注意條件語句的完整性:如: always (al or d) begin if (al=1) q = d ; end如果不加else,則:生成的不是純組合邏輯。因為當 al=0時,q能保留原來的值,所以生成的電路中有鎖存器。19 同時,必須注意電平敏感的信號表是否完全,如: always (a or b or c or d ) begin out = (a & b & c) | (d & e); end 此時生成的不是純組合邏輯,因為當 e 變化時,out 不能立即跟著變化。只有當a 或 b 或 c 或 d 變化時e 的變化后果才顯示出來。可見需要有一個寄存器來儲存 e 的

溫馨提示

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

評論

0/150

提交評論