電子設計自動化(eda)實驗指導書_第1頁
電子設計自動化(eda)實驗指導書_第2頁
電子設計自動化(eda)實驗指導書_第3頁
電子設計自動化(eda)實驗指導書_第4頁
電子設計自動化(eda)實驗指導書_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電子設計自動化(EDA)實驗指導書前言近些年來,電子設計自動化(EDA)技術發(fā)展迅速。一方面,各種大容量、高性能、低功耗的可編程邏輯器件不斷推出,使得專用集成電路(ASIC)的生產商感受到空前的競爭壓力。另一方面,出現了許多EDA設計輔助工具,這些工具大大提高了新型集成電路的設計效率,使更低成本、更短周期的復雜數字系統(tǒng)開發(fā)成為可能。于是一場ASIC與FPGA/CPLD之爭在所難免。然而PLD器件具有先天的競爭優(yōu)勢,那就是可以反復編程,在線調試。EDA技術正是這場較量的推動引擎之一。一般來說,EDA技術就是以計算機為平臺,以EDA軟件工具為開發(fā)環(huán)境,以HDL為設計語言,以可編程器件為載體,以AS

2、IC、SOC芯片為目標器件,以電子系統(tǒng)設計為應用方向的電子產品自動化設計過程。設計者只需編寫硬件描述語言代碼,然后選擇目標器件,在集成開發(fā)環(huán)境里進行編譯,仿真,綜合,最后在線下載調試。整個過程,大部分工作由EDA軟件完成。全球許多著名的可編程器件提供商都推出了自己的集成開發(fā)工具軟件,如Altera公司的MAX+PLUS、Quartus 軟件;Xilinx公司的Foundation 、ISE軟件,Lattice公司的ispExpert軟件,Actel公司的Libero軟件等。這些軟件的推出,極大地促進了集算法設計、芯片編程、電路板設計于一體的EDA技術的發(fā)展。另外,在以SOC芯片為目標器件的電子

3、系統(tǒng)設計要求下,可編程器件的內部開始集成高速的處理器硬核、處理器軟核、DSP模塊、大量的存儲資源、高速的串行收發(fā)模塊、系統(tǒng)時鐘管理器、多標準的I/O接口模塊,亦使得設計者更加得心應手,新一輪的數字革命由此引發(fā)。EDA技術是一門實踐性很強的學科,要培養(yǎng)出具有競爭力的一流IC設計人才,動手能力是關鍵。只有通過理論學習,加上現場實驗,在使用軟件編程加硬件調試的過程中真正獲得鍛煉,增長技能。ZY11EDA13BE型實驗系統(tǒng)采用主板加適配板加擴展板的靈活結構,可方便進行基于不同PLD芯片的實驗開發(fā),并易于升級,符合當前高校在此方面對人才培養(yǎng)的要求。我們相信,只要學生扎扎實實完成本實驗系統(tǒng)的所有實驗,并在

4、此基礎上利用現有硬件資源開發(fā)出新的數字應用系統(tǒng),學生的潛力會得到最大程度的發(fā)揮,對EDA技術的學習也會有質的飛躍,從而為推動我國數字系統(tǒng)設計技術的發(fā)展做出更大的貢獻。本實驗手冊是我校電子設計自動化(EDA)課程實驗指導的主要依據。根據實驗大綱要求,共包含8個實驗,其中實驗二、三、四為必做,實驗五、六、七、八至少選做一個。目錄實驗一 EDA軟件的熟悉與使用1實驗目的1實驗內容1實驗原理1實驗步驟1實驗報告1實驗思考題2實驗二 1位全加器的設計3實驗目的3實驗內容3實驗儀器3實驗原理3實驗注意事項4實驗步驟4實驗報告4思考題4實驗三 基本組合邏輯電路的VHDL模型6實驗目的6實驗內容6實驗儀器6實

5、驗原理6實驗步驟12實驗四 基本時序邏輯電路的VHDL模型13實驗目的13實驗內容13實驗儀器13實驗原理13實驗步驟31實驗五 Melay型有限狀態(tài)機的設計32實驗目的32實驗內容32實驗儀器32實驗原理32實驗步驟34實驗六 ROM設計35實驗目的35實驗內容35實驗儀器35實驗原理35實驗步驟36實驗七 鍵盤控制電路設計38實驗目的38實驗內容38實驗儀器38實驗原理38實驗步驟40實驗八 交通燈實驗41實驗目的41實驗內容41實驗儀器41實驗原理41實驗步驟42附錄一 實驗要求43附錄二 實驗成績的考核與評定辦法44附錄三 實驗項目設置與內容45實驗一 EDA軟件的熟悉與使用實驗目的1

6、熟悉ALTERA公司EDA設計工具軟件QuartusII 5.0。2熟悉ZY11EDA13BE型實驗箱。實驗內容1學習QuartusII 5.0軟件課件。2學習QuartusII 5.0軟件的安裝,重要菜單命令含義。3熟悉ZY11EDA13BE型實驗箱的結構與組成。4模仿課件中實例動手操作一遍,掌握采用QuartusII 5.0軟件設計流程。實驗原理參考QuartusII 5.0軟件學習課件。實驗步驟1在教師的指導下,學習軟件課件。2由教師演示QuartusII 5.0軟件的安裝,介紹菜單命令功能。3參考課件實例,動手操作軟件,按照流程做完從新建文件,編譯,仿真,分配引腳等軟件操作部分的全過程

7、。4參考第一部分實驗系統(tǒng)簡介,熟悉ZY11EDA13BE型實驗箱結構,組成,了解各模塊的基本作用,了解主板I/O分布情況,認識液晶屏,并口連接器,晶振,JTAG接口,邏輯筆,跳線等器件或組件。實驗報告1繪制出QuartusII 5.0軟件設計的詳細流程圖。2描述出QuartusII 5.0軟件是如何進行目標器件選擇,I/O分配和鎖定引腳的。3描述出QuartusII 5.0軟件help菜單功能,如何有效的使用它。4寫出系統(tǒng)主板的I/O口分布情況。5寫出ZY11EDA13BE型實驗箱撥碼開關CTRL各檔的作用。6描述出一個完整的實驗流程。實驗思考題1QuartusII 5.0軟件支持那些器件,該

8、軟件有什么局限性?2QuartusII 5.0軟件使用中大小寫字母是否有區(qū)別?3在進行一個完整的實驗流程時應注意些什么?實驗二 1位全加器的設計實驗目的1掌握QuartusII 5.0軟件使用流程。2熟悉ZY11EDA13BE型實驗箱的開關按鍵模塊,LED顯示模塊。實驗內容在QuartusII 5.0軟件中使用原理圖輸入法設計并實現一個1位全加器。實驗儀器1ZY11EDA13BE型實驗箱通用編程模塊,配置模塊,開關按鍵模塊,LED顯示模塊。2并口延長線,JTAG延長線。(所有實驗均包括,以下實驗中均略去)。3安裝QuartusII 5.0軟件的PC機。(所有實驗均包括,以下實驗中均略去)。實驗

9、原理1位全加器可以用兩個半加器及一個或門連接而成,半加器原理圖的設計方法很多,我們用一個與門、一個非門和同或門(xnor為同或符合,相同為1,不同為0)來實現。先設計底層文件:半加器,再設計頂層文件全加器。(1)半加器的設計半加器表達式:進位:co=a and b和 :so=a xnor (not b)半加器原理圖如下:(2)全加器的設計全加器原理圖如下:實驗注意事項實驗指導書中的所有實驗內容都是針對主板系統(tǒng)的核心芯片EP1K30QC208-2來設計的,實驗原理中提供了管腳分配情況,管腳分配好后必須通過成功編譯才可以下載配置。 實驗步驟1在QuartusII 5.0軟件中新建原理圖文件,輸入原

10、理圖,進行編譯,仿真。2指定目標器件,并對編譯通過的原理圖分配管腳(可參考實驗原理),分配完后再編譯一次。3用并口延長線連接計算機機箱并口和實驗箱并口插座,用JTAG延長線連接通用編程模塊下載接口插座和配置模塊核心芯片下載接口插座,接通實驗箱電源,將實驗箱電源按鈕APW1,APW2按下,電源指示燈PL0-PL4亮。4下載配置文件f_adder.pof到目標芯片。5將撥碼開關CTRL的(2)、(4)、(8)均設置為“ON”。6撥位開關KD1、KD2、KD3分別作為全加器a輸入,b輸入和進位c輸入。LED1、LED2分別作為全加器進位和全加和。記錄全加器的實驗結果填入實驗報告。燈亮表示1(高電平)

11、,燈滅表示0(低電平)。實驗報告1列出半加器與全加器的真值表。如果實驗室條件允許,打印半加器和全加器仿真波形圖貼于實驗報告中。2用文字描述出怎樣實現層次化設計。31位全加器的實現方法很多,畫出其它方法的原理圖。思考題1多位全加器就是在一位的原理上擴展而成的,設計出原理圖輸入的8位全加器。2集成電路全加器芯片有7480、7483等,試述其內部結構是如何實現的?3參考全加器的設計思路設計出原理圖輸入的1位全減器。(提示:全加器的設計是根據真值表來建立最簡表達式,最簡表達式應該是一些基本門電路,同樣全減器的設計也是如此)。實驗三 基本組合邏輯電路的VHDL模型實驗目的1掌握簡單的VHDL程序設計。2

12、掌握用VHDL對基本組合邏輯電路的建模。實驗內容分別設計并實現緩沖器、選擇器、譯碼器、編碼器、移位器、全加器的VHDL模型。實驗儀器ZY11EDA13BE型實驗箱通用編程模塊,配置模塊,開關按鍵模塊,LED顯示模塊。實驗原理1三態(tài)緩沖器三態(tài)緩沖器(Tri-state Buffer)的作用是轉換數據、增強驅動能力以及把功能模塊與總線相連接。在使用總線互連方式時,與總線通信的器件通常要通過三態(tài)緩沖器與總線相連。如果緩沖器的使能端en為1,則緩沖器的輸入端in1的信號值被復制到輸出端;如果緩沖器的使能端en為其它數值,則緩沖器的輸出端為高阻態(tài)。三態(tài)緩沖器的輸出端可以用線與的方式和其他緩沖器的輸出端接

13、在一起。下例20-1-1給出了三態(tài)緩沖器的VHDL源代碼模型:在IEEE的1164標準程序包中,用Z表示高阻態(tài),現在的EDA綜合工具一般都能根據這種描述綜合得到三態(tài)器件。下圖20-1為本例中三態(tài)緩沖器的仿真波形圖:圖20-1 三態(tài)緩沖器的仿真圖形2數據選擇器(Multiplexer)在數字系統(tǒng)設計時,需要從多個數據源中選擇一個,這時就需要用到多路選擇器。下例20-2-1給出了四選一、被選擇數字寬度為3的選擇器VHDL源代碼模型: 在上面這個模型中,由于使用了條件賦值語句,所以寫得很簡短。上面的程序代碼還可以改寫為使用進程的等價方式。如下例20-2-2的VHDL源代碼所示: 由于模型中使用了st

14、d_Logic和std_Logic_vector數據類型,sel可能的數值不止四種,所以兩種模型中都有一個分支來處理其他的數值。在綜合的時候,EDA工具一般都忽略這一分支。除了處理三態(tài)器件中的高阻態(tài)Z外,綜合工具采用完全相同的方法來處理std_Logic和Bit數據類型。圖20-2為本例中多路選擇器的仿真波形圖:圖20-2 多路選擇器的仿真圖形3譯碼器(Decoder)譯碼器(Decoder)的輸入為N位二進制代碼,輸出為2N個表征代碼原意的狀態(tài)信號,即輸出信號的2N位中有且只有一位有效。常見的譯碼器用途是把二進制表示的地址轉換為單線選擇信號。下面例20-3-1為一個3-8譯碼器的VHDL源代

15、碼模型:下圖20-3為本例中3-8譯碼器的仿真波形圖:圖20-3 3-8譯碼器的仿真圖形4編碼器(Encoder)編碼器(Encoder)的行為是譯碼器行為的逆過程,它把2N個輸入轉化為N位編碼輸出。有的編碼器要求輸入信號的各位中最多只有一位有效,且規(guī)定如果所有輸入位全無效時,編碼器輸出指定某個狀態(tài)。編碼器的用途很廣,比如說鍵盤輸入編碼等。下面例20-4-1為一個8-3優(yōu)先編碼器的VHDL源代碼模型:下圖20-4為本例中8-3優(yōu)先編碼器的仿真波形圖:圖20-4 8-3優(yōu)先編碼器的仿真圖形5移位器(Shifter)數據的移位是很重要的操作,在一定的條件下,右移意味著被2除,左移意味著乘以2。下面

16、例20-5-1為一個移位器(Shifter)的VHDL源代碼模型:在這個模型中,如果sr1且sl0,移位器將輸入信號右移一位后賦給輸出信號;如果sr0且sl1,則移位器將輸入信號左移一位后賦給輸出信號。對于sr和sl的其他兩種輸入模式,將輸入信號直接賦給輸出信號。信號il和ir分別是左移操作和右移操作時在輸入數據右端(或左端)補上的數據。使用&進行移位操作是常用的處理方法,但在VHDL93版中增加了移位語句,可以直接實現移位操作。下圖20-5為本例中移位器的仿真波形圖:圖20-5 移位器的仿真圖形6全加器(Adder)加法器是最基本的運算單元。加法器中最小的單元是一位全加器,下面例20

17、-6-1為一位全加器(Adder)的VHDL源代碼模型:這個全加器中有兩個數據輸入端in1和in2,一個和輸出端sum以及一個進位輸出端carry_out。用這個全加器級聯是形成加法器最簡單的實現方式,這種電路每個單元的結構都相同、但是在操作數的字長較大時,由于進位要經過多次傳遞,限制了這種電路的速度,并且和的各位產生的時刻也不同。為了提高運算速度,可以采用行波進位加法器(RIPPLE-CARRY ADDER)。下圖20-6為本例中一位全加器的仿真波形圖:圖20-6 一位全加器的仿真圖形實驗步驟1在QuartusII 5.0軟件中新建文本文件,輸入自己設計的VHDL程序代碼,編譯,仿真,鎖定管

18、腳并下載到目標芯片。2用撥位開關作為輸入,LED作為輸出,分別驗證結果的正確性。實驗四 基本時序邏輯電路的VHDL模型實驗目的1掌握簡單的VHDL程序設計。2掌握VHDL對基本時序邏輯電路的建模。實驗內容分別設計并實現鎖存器、觸發(fā)器、寄存器、計數器的VHDL模型。實驗儀器ZY11EDA13BE型實驗箱通用編程模塊,配置模塊,時鐘源模塊,開關按鍵模塊,LED顯示模塊。 實驗原理1鎖存器(latch):顧名思義,鎖存器(latch)是用來鎖存數據的邏輯單元。鎖存器一般可以分成三種基本類型:電平鎖存器、同步鎖存器和異步鎖存器。下面我們將逐一介紹這三種鎖存器的VHDL模型的描述方式。(1)電平鎖存器:

19、電平鎖存器一般用在多時鐘電路,比如微處理器芯片中。電平鎖存器的特點是:常常有多路數據輸入。例21-1-1為單輸入電平鎖存器的VHDL模型:當復位信號reset有效(高電平)時,鎖存器latch1被復位,輸出信號q為低電平;當復位信號reset無效(低電平)時,如果s信號為高電平,輸出信號q輸出輸入端的值;當s信號為低電平時,latch1的輸出信號q保持原值,亦即數據鎖存。下圖21-1為單輸入電平鎖存器的仿真波形圖:圖21-1 單輸入電平鎖存器的仿真圖形例21-1-2為多輸入電平鎖存器的VHDL模型:當復位信號reset有效(高電平)時,鎖存器latch2被復位,輸出信號q為低電平;如果復位信號

20、reset無效(低電平)時,則根據選擇信號s0、s1和s2來決定輸出信號q是選擇輸入信號data0、data1還是data2;如果s0、s1和s2都無效(低電平),則鎖存器輸出信號q保持原值不變,亦即數據鎖存。下圖21-2為多輸入電平鎖存器的仿真波形圖:圖21-2 多輸入電平鎖存器的仿真圖形(2)同步鎖存器:同步鎖存器是指復位和加載功能全部與時鐘同步,復位端的優(yōu)先級較高。在數字系統(tǒng)設計時,采用完全同步的鎖存器,可以避免時序錯誤。例21-1-3為同步鎖存器的VHDL模型:每當時鐘信號clk跳變時激活進程,如果此時復位信號reset有效(高電平),鎖存器latch3被復位,輸出信號q為低電平;如果

21、此時復位信號reset無效(低電平),并且裝載信號load有效(高電平),鎖存器latch3輸出信號q為輸入信號data;否則,鎖存器輸出保持原值,亦即數據鎖存。下圖21-3為同步鎖存器的仿真波形圖:圖21-3 同步鎖存器的仿真圖形(3)異步鎖存器:異步鎖存器,是指復位與時鐘不同步的鎖存器。例21-1-4為異步鎖存器的VHDL模型:每當時鐘信號clk跳變或者復位信號reset激活進程時,如果此時復位信號reset有效(高電平),鎖存器latch4被復位,輸出信號q為低電平;如果此時復位信號reset無效(低電平),并且正好時鐘上升沿到達,而裝載信號load有效(高電平),則鎖存器latch4輸

22、出信號q為輸入信號data;否則,鎖存器輸出保持原值,亦即數據鎖存。下圖21-4為異步鎖存器的仿真波形圖:圖21-4 異步鎖存器的仿真圖形1觸發(fā)器(flip-flop)觸發(fā)器(flip-flop)是最基本的時序電路單元,指的是在時鐘沿的觸發(fā)下,引起輸出信號改變的一種時序邏輯單元。常見的觸發(fā)器有三種:D觸發(fā)器、T觸發(fā)器和JK觸發(fā)器。(1)D觸發(fā)器:D觸發(fā)器是最常用的觸發(fā)器。按照有無復位信號和置位信號,以及復位、置位信號與時鐘是否同步,可以分為多種常見的D觸發(fā)器模型,以下將逐一給出示例和簡單的說明。例21-2-1為簡單D觸發(fā)器的VHDL模型:D觸發(fā)器dff1是最簡單的D觸發(fā)器,沒有復位和置位信號,

23、在每個時鐘信號clk的上升沿,輸出信號q值為輸入信號d;否則,觸發(fā)器dff1的輸出信號q保持原值。圖21-5為簡單D觸發(fā)器的仿真波形圖:圖21-5 簡單D觸發(fā)器的仿真圖形例21-2-2為帶異步置位D觸發(fā)器的VHDL模型:dff2是一個帶異步置位的D觸發(fā)器,當時鐘信號clk或者置位信號prn有跳變時激活進程。如果此時置位信號prn有效(高電平),D觸發(fā)器dff2被置位,輸出信號q為高電平;如果置位信號prn無效(低電平),而且此時時鐘出現上跳沿,則D觸發(fā)器dff2的輸出信號q變?yōu)檩斎胄盘杁;否則,D觸發(fā)器dff2的輸出信號q保持原值。圖21-6為帶異步置位D觸發(fā)器的仿真波形圖:圖21-6 帶異步

24、置位D觸發(fā)器的仿真圖形例21-2-3為帶異步復位D觸發(fā)器的VHDL模型:dff3是一個帶異步復位的D觸發(fā)器,當時鐘信號clk或者復位信號clr有跳變時激活進程。如果此時復位信號clr有效(高電平),D觸發(fā)器dff3被復位,輸出信號q為低電平;如果復位信號clr無效(低電平),而且此時時鐘出現上跳沿,則D觸發(fā)器dff3的輸出信號q變?yōu)檩斎胄盘杁;否則,D觸發(fā)器dff3的輸出信號q保持原值。圖21-7為帶異步復位D觸發(fā)器的仿真波形圖:圖21-7 帶異步復位D觸發(fā)器的仿真圖形例21-2-4為帶異步復位和置位D觸發(fā)器的VHDL模型:dff4是一個帶異步復位和置位的D觸發(fā)器,當時鐘信號clk、復位信號c

25、lr或者置位信號prn有跳變時激活進程。如果此時復位信號clr有效(高電平),D觸發(fā)器dff4被復位,輸出信號q為低電平;如果復位信號clr無效(低電平),而置位信號有效(高電平),D觸發(fā)器dff4被置位,輸出信號q為高電平;如果復位信號clr和置位信號prn都無效(低電平),而且此時時鐘出現上跳沿,則D觸發(fā)器dff4的輸出信號q變?yōu)檩斎胄盘杁;否則,D觸發(fā)器dff4的輸出信號q保持原值。圖21-8為帶異步復位和置位D觸發(fā)器的仿真波形圖:圖21-8 帶異步復位和置位D觸發(fā)器的仿真圖形例21-2-5為帶同步置位D觸發(fā)器的VHDL模型。在該例中dff5是一個帶同步置位的D觸發(fā)器,當時鐘信號clk有

26、跳變時激活進程。如果此時置位信號prn有效(高電平),D觸發(fā)器dff5被置位,輸出信號q為高電平;如果置位信號prn無效(低電平),而且此時時鐘出現上跳沿,則D觸發(fā)器dff5的輸出信號q變?yōu)檩斎胄盘杁;否則,D觸發(fā)器dff5的輸出信號q保持原值。圖21-9為帶同步置位D觸發(fā)器的仿真波形圖:圖21-9 帶同步置位D觸發(fā)器的仿真圖形例21-2-6為帶同步復位D觸發(fā)器的VHDL模型:dff6是一個帶同步復位的D觸發(fā)器,當時鐘信號clk有跳變時激活進程。如果此時復位信號clr有效(高電平),D觸發(fā)器dff6被復位,輸出信號q為低電平;如果復位信號clr無效(低電平),而且此時時鐘出現上跳沿,則D觸發(fā)器

27、dff6的輸出信號q變?yōu)檩斎胄盘杁;否則,D觸發(fā)器dff6的輸出信號q保持原值。圖21-10為帶同步復位D觸發(fā)器仿真波形圖:圖21-10 帶同步復位D觸發(fā)器的仿真圖形例21-2-7為帶同步置位和復位D觸發(fā)器的VHDL模型:dff7是一個帶同步復位和置位的D觸發(fā)器,當時鐘信號clk有跳變時激活進程。如果此時復位信號clr有效(高電平),D觸發(fā)器dff7被復位,輸出信號q為低電平;如果復位信號clr無效(低電平),而置位信號有效(高電平),D觸發(fā)器dff7被置位,輸出信號q為高電平;如果復位信號clr和置位信號prn都無效(低電平),而且此時時鐘出現上跳沿,則D觸發(fā)器dff7的輸出信號q變?yōu)檩斎胄?/p>

28、號d;否則,D觸發(fā)器dff7的輸出信號q保持原值。圖21-11為帶同步置位和復位D觸發(fā)器的仿真波形圖:圖21-11 帶同步置位和復位D觸發(fā)器的仿真圖形(2)T觸發(fā)器T觸發(fā)器的特點是在時鐘沿處輸出信號發(fā)生翻轉。按照有無復位、置位信號以及使能信號等,T觸發(fā)器也有多種類型。例21-2-8為帶異步復位T觸發(fā)器的VHDL模型:tff1是一個帶有異步復位的T觸發(fā)器。每當時鐘信號clk或者復位信號clr有跳變時進程被激活。如果此時復位信號clr有效(高電平),T觸發(fā)器tff1被復位,輸出信號q為低電平;如果復位信號clr無效(低電平),而時鐘信號clk出現上跳沿,則T觸發(fā)器tff1的輸出信號q發(fā)生翻轉;否則

29、,輸出信號q保持不變。圖21-12為帶異步復位T觸發(fā)器的仿真波形圖:圖21-12 帶異步復位T觸發(fā)器的仿真圖形例21-2-9為帶異步置位T觸發(fā)器的VHDL模型:tff2是一個帶有異步置位的T觸發(fā)器。每當時鐘信號clk或者置位信號prn有跳變時進程被激活。如果此時置位信號prn有效(高電平),T觸發(fā)器tff2被置位,輸出信號q為高電平;如果置位信號prn無效(低電平),而時鐘信號clk出現上跳沿,則T觸發(fā)器tff2的輸出信號q發(fā)生翻轉;否則,輸出信號q保持不變。圖21-13為帶異步置位T觸發(fā)器的仿真波形圖:圖21-13 帶異步置位T觸發(fā)器的仿真圖形例21-2-10為帶使能(enable)端和異步

30、復位T觸發(fā)器的VHDL模型:tff3是一個帶有異步復位和使能的T觸發(fā)器。每當時鐘信號clk或者復位信號clr有跳變時進程被激活。如果此時復位信號clr有效(高電平),T觸發(fā)器tff3被復位,輸出信號q為低電平;如果復位信號clr無效(低電平),而時鐘信號clk出現上跳沿,并且觸發(fā)器翻轉使能信號en有效(高電平),則T觸發(fā)器tff3的輸出信號q發(fā)生翻轉;否則,輸出信號q保持不變。圖21-14為帶使能端和異步復位T觸發(fā)器的仿真波形圖:圖21-14 帶使能端和異步復位T觸發(fā)器的仿真圖形(3)JK觸發(fā)器JK觸發(fā)器中,J、K信號分別扮演置位、復位信號的角色。為了更清晰的表示出JK觸發(fā)器的工作過程,以下給

31、出JK觸發(fā)器的真值表(如表21-1所示)。JKCLKQn+100Qn10101011NOT QnXXQn表21-1 JK觸發(fā)器真值表按照有無復位(clr)、置位(prn)信號,常見的JK觸發(fā)器也有多種類型,例21-2-11為基本JK觸發(fā)器的VHDL模型:jkff1是一個基本的JK觸發(fā)器類型。在時鐘上升沿,根據j、k信號,輸出信號q作相應的變化。用case語句實現if條件語句,即簡化了語句,又增加了效率。圖21-15為基本JK觸發(fā)器的仿真波形圖:圖21-15 基本JK觸發(fā)器的仿真圖形例21-2-12為帶異步復位(clr)、置位(prn)的JK觸發(fā)器的VHDL模型:jkff2是一個帶有異步復位和置

32、位的JK觸發(fā)器模型。每當時鐘信號clk、置位信號prn或者復位信號clr有跳變時激活進程。如果此時復位信號clr有效(高電平),JK觸發(fā)器jkff2被復位,輸出信號q為低電平;如果復位信號clr無效(低電平),而置位信號prn有效(高電平),則JK觸發(fā)器jkff2被置位,輸出信號q為高電平;如果復位信號clr和置位信號prn都無效(低電平),在時鐘上升沿,根據j、k信號的變化,輸出信號q作相應的變化。圖21-16為帶異步復位、置位JK觸發(fā)器的仿真波形圖:圖21-16 帶異步復位、置位JK觸發(fā)器的仿真圖形1寄存器(Register):寄存器(register)也是一種重要的基本時序電路。顧名思義

33、,寄存器主要是用來寄存信號的值,包括標量和向量。在數字系統(tǒng)設計中,可將寄存器分成通用寄存器和移位寄存器。(1)通用寄存器:通用寄存器的功能是在時鐘的控制下將輸入數據寄存,在滿足輸出條件時輸出數據。例21-3-1為通用寄存器的VHDL模型:reg是一個通用寄存器,在時鐘信號clk的上升沿,如果輸出使能信號enable有效(高電平),則輸入信號d送到寄存器中,輸出信號q為輸入信號d的值,否則輸出信號q保持原值不變,亦即起到鎖存數據的作用。圖21-17為通用寄存器的仿真波形圖:圖21-17 通用寄存器的仿真圖形(2)移位寄存器:顧名思義,移位寄存器的功能是寄存輸入數據,并在控制信號的作用下將輸入數據

34、移位輸出。移位寄存器種類繁多,大致可以歸納為邏輯移位寄存器和算術移位寄存器兩大類。邏輯移位寄存器的特點是,高位和低位移入的數據都為零;算術移位寄存器的特點是,高位移入的數據為相應符號的擴展,低位移入的數據為零。例21-3-2為簡單移位寄存器的VHDL模型:在每個時鐘的上升沿,移位寄存器shift根據控制指令control將輸入數據d邏輯左移相應位后輸出。圖21-18為簡單移位寄存器的仿真波形圖:圖21-18 簡單移位寄存器的仿真圖形例21-3-3為循環(huán)移位寄存器(cycle shift register)的VHDL模型:在每個時鐘的上升沿,循環(huán)移位寄存器shift根據控制指令control將輸

35、入數據d循環(huán)左移相應位后輸出。圖21-19為循環(huán)移位寄存器的仿真波形圖:圖21-19 循環(huán)移位寄存器的仿真圖形1計數器(counter):計數器(counter)是數字系統(tǒng)中常用的時序電路,因為計數是數字系統(tǒng)的基本操作之一。計數器在控制信號下計數,可以帶復位和置位信號。因此,按照復位、置位與時鐘信號是否同步可以將計數器分為同步計數器和異步計數器兩種基本類型,每一種計數器又可以分為進行加計數和進行減計數兩種。在VHDL描述中,加減計數用“”和“”表示即可。(1)同步計數器:同步計數器與其它同步時序電路一樣,復位和置位信號都與時鐘信號同步,在時鐘沿跳變時進行復位和置位操作。例21-4-1為帶時鐘使

36、能的同步4位二進制減法計數器的VHDL模型:count是一個帶時鐘使能的同步4位二進制減法計數器,計數范圍F0。每當時鐘信號或者復位信號有跳變時激活進程。如果此時復位信號clr有效(高電平),計數器被復位,輸出計數結果為0;如果復位信號無效(低電平),而時鐘信號clk出現上升沿,并且計數器的計數使能控制信號en有效(高電平),則計數器count自動減1,實現減計數功能。圖21-20為帶時鐘使能的同步4位二進制減法計數器的仿真波形圖:圖21-20 帶時鐘使能的同步4位二進制減法計數器的仿真圖形(2)異步計數器同樣的道理,異步計數器是指計數器的復位、置位與時鐘不同步。例21-4-2為帶時鐘使能的異

37、步4位二進制加法計數器的VHDL模型:counta是一個帶時鐘使能的異步4位二進制加法計數器,計數范圍0F。每當時鐘信號或者復位信號有跳變時激活進程。如果此時復位信號clr有效(高電平),計數器被復位,輸出計數結果為0;如果復位信號無效(低電平),而時鐘信號clk出現上升沿,并且計數器的計數使能控制信號en有效(高電平),則計數器count自動加1,實現加計數功能。圖21-21為帶時鐘使能的異步4位二進制加法計數器的仿真波形圖:圖21-21 帶時鐘使能的異步4位二進制加法計數器的仿真圖形實驗步驟1在QuartusII 5.0軟件中新建文本文件,輸入自己設計的VHDL程序代碼,編譯,仿真,鎖定管

38、腳并下載到目標芯片。2將信號源模塊第一全局時鐘GCLK1跳線器接需要的時鐘頻率CLK,撥位開關作為數據輸入和控制信號輸入,LED作為鎖存器、觸發(fā)器、寄存器、計數器的輸出,觀察顯示結果,驗證程序的正確性。實驗五 Melay型有限狀態(tài)機的設計實驗目的掌握Mealy型有限狀態(tài)機的特點和其VHDL語言的描述方法。實驗內容1繪制本實驗中例23-1-1的狀態(tài)轉換圖。2上機編寫本實驗中例23-1-1的實驗程序,并進行實驗驗證程序的正確性。實驗儀器ZY11EDA13BE型實驗箱通用編程模塊,配置模塊,時鐘源模塊,開關按鍵模塊,LED顯示模塊。實驗原理與Moore型有限狀態(tài)機不同,Mealy型有限狀態(tài)機的輸出不

39、單與當前狀態(tài)有關,而且還與輸入信號的當前值有關。在圖23-1中描述了Mealy型有限狀態(tài)機的示意圖。圖23-1 Mealy型有限狀態(tài)機示意圖Mealy型有限狀態(tài)機的輸出直接受輸入信號的當前值影響,而輸入信號可能在一個時鐘周期內的任意時刻發(fā)生變化,這使得Mealy型有限狀態(tài)機對輸入的響應發(fā)生在當前的時鐘周期,比Moore型有限狀態(tài)機對輸入信號的響應要早一個周期。因此,輸入信號的噪聲可能影響正在輸出的信號。例23-1-1是一個兩進程Mealy型有限狀態(tài)機的例子。進程COMREG是時序與組合混合型進程,它將狀態(tài)機的主控時序電路和主控狀態(tài)譯碼電路同時用一個進程來表達。進程COM1負責根據當前輸入狀態(tài)和

40、輸入信號的變化給出不同的輸出數據。該例的VHDL語言如下所示:在例23-1-1中,由于輸出信號是由組合邏輯電路直接產生,所以可以從該狀態(tài)機的工作時序圖23-2上清楚的看到輸出信號有許多毛刺。為了解決這個問題,可以考慮將輸出信號Q值由時鐘信號鎖存后再輸出??梢栽诶?3-1-1的COM1進程中添加一個IF語句,由此產生一個鎖存器,將Q鎖存后再輸出。但是如果實際電路的時間延遲不同,或發(fā)生變化,就會影響鎖存的可靠性,即這類設計方式不能絕對保證不出現毛刺。比較保險的方式仍然是參照實驗二十二的例22-1-1中單進程的描述方法,這個工作將留給讀者自行完成,此處不再加以說明。圖23-2 例23-1-1多進程M

41、ealy型狀態(tài)機的工作時序實驗步驟1在QuartusII 5.0軟件中新建文本文件,輸入例22-1-1的VHDL程序代碼,編譯,仿真,鎖定管腳并下載到目標芯片。2將信號源模塊第一全局時鐘GCLK1跳線器接需要的時鐘頻率CLK,撥位開關作為數據輸入和控制信號輸入,LED作為狀態(tài)機輸出,觀察實驗結果。 綜合實驗二十二和實驗二十三的論述,Moore型有限狀態(tài)機和mealy型有限狀態(tài)機各有特點。通常情況下,對于一個具體的數字系統(tǒng),一個具體電路的性能指標規(guī)范,可能適合于用Moore型有限狀態(tài)機實現;而對于另外一個具體的數字系統(tǒng)和另外一個具體電路的性能指標規(guī)范,又適合于用Mealy型有限狀態(tài)機實現。硬件設

42、計者應該根據具體情況,結合Moore和Mealy型有限狀態(tài)機的特點進行選擇使用。實驗六 ROM設計實驗目的熟悉只讀存儲器ROM。 實驗內容設計一個16×8位的ROM。實驗儀器ZY11EDA13BE型實驗箱通用編程模塊,配置模塊,時鐘源模塊,開關按鍵模塊,數碼管顯示模塊。實驗原理ROM即只讀存儲器,主要用作存儲固定的數據。在設計ROM時,可采用數組或WHEN-ELSE語句。數組描述的ROM在面積上是最有效的。在用數組描述時,常把數組常量描述的ROM放在一個程序包中,這種方法可以提供ROM的重用,在程序包中用常量定義ROM的大小,在使用時修改參數大小即可改變ROM的大小。由于Quartu

43、sII 5.0軟件不支持數組描述的語句,本實驗采用比較直觀的WHEN-ELSE語句設計一個16×8的ROM,例31-1-1:用WHEN-ELSE語句設計的16×8的ROM下圖為上述VHDL代碼生成的ROM模型:例31-1-1是一個16×8位的只讀存儲器的VHDL模型。當片選信號CS有效,則可根據地址信號add30讀取單元地址,在輸出端DATA70輸出數據。當CS無效,輸出總為低電平 “00000000”。圖31-1為16×8位只讀存儲器的仿真波形圖:圖31-1 16×8位只讀存儲器的仿真波形實驗步驟1在QuartusII 5.0軟件中新建原理圖

44、文件,輸入自己設計的原理圖,編譯,仿真,鎖定管腳并下載到目標芯片。2將第一全局時鐘CLK1的跳線器接32768Hz。撥位開關KD1為清零控制(高電平有效),KD2為片選信號CS(高電平有效)。KD3-KD6作為數據地址輸入ADD30,數碼管SM2-SM1顯示該數據地址。數碼管SM4-SM3顯示讀出數據。其中輸入地址與輸出數據對應結果應如下:地址輸出地址輸出地址輸出地址輸出0016041208080C040115051109070D03021406100A060E02031307090B050F01觀察實驗結果。3總結ROM的設計方法。說明:存儲器實際上是一種時序邏輯電路,用VHDL描述存儲器時

45、,通常使用數組。而QuartusII 5.0軟件中不支持數組描述語句,所以在設計存儲器(ROM、RAM、FIFO)實驗時,未采用用數組的設計方法,有興趣的同學在有合適綜合工具的條件下,可參考相關資料數組設計方法設計存儲器。另外,在設計ROM、RAM、FIFO等存儲器時,須考慮目標器件的資源情況。在設計大量組合邏輯電路時采用CPLD芯片,設計復雜的時序電路時采用FPGA芯片,要求有存儲功能時采用內嵌EAB單元的芯片。本實驗系統(tǒng)的核心芯片EP1K30QC208完全支持存儲功能,所以除了用行為描述外,還可以調用Quartus II軟件中提供的宏功能元件庫(mega_lpm )存儲器元件進行設計。實驗

46、十六中設計的九九乘法表就是基于宏功能元件庫(mega_lpm )存儲器元件的應用,所有存儲器的調用方法與實驗十六中相同。實驗七 鍵盤控制電路設計實驗目的學習鍵盤掃描電路的工作原理。實驗內容設計一個4×4鍵盤接口控制電路。實驗儀器ZY11EDA13BE型實驗箱通用編程模塊,配置模塊,時鐘源模塊,開關按鍵模塊,4×4鍵盤模塊,LED顯示模塊,數碼管顯示模塊。實驗原理鍵盤是應用數字系統(tǒng)重要的人機接口,主要完成向處理器輸入數據、傳送命令等功能,是人工控制電子系統(tǒng)運行的重要手段。本實驗介紹簡單的鍵盤工作原理、鍵盤按鍵的識別過程以及與鍵盤與CPLD/FPGA的接口。鍵盤實質上是一個按鍵

47、開關的集合,如圖34-1所示。通常,按鍵所用的開關為機械彈性開關,利用了機械觸點的合、斷作用。一個電壓信號通過機械觸點的斷開、閉合過程的波形如圖34-2所示。由于機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩(wěn)定的接通,在斷開時也不會立即斷開,因而在閉合及斷開的瞬間均伴隨有一連串的抖動,抖動時間的長短由按鍵的機械特性決定,一般為510ms,這是一個很重要的時間參數,在很多場合都要用到。圖34-1 4×4鍵盤圖34-2 按鍵抖動信號波形按鍵閉合穩(wěn)定期的長短則是由操作人員的按鍵動作決定的,一般為十分之幾秒到幾秒的時間,這個時間參數可作為一般的參考。另外按鍵的閉合與否,反應在電壓上就是呈

48、現出高電平或低電平,如果低電平表示斷開的話,那么高電平表示閉合,所以通過電平的高低狀態(tài)的檢測,便可以確認按鍵按下與否。圖34-3為鍵盤控制電路的頂層原理圖:圖34-3 鍵盤控制電路的頂層原理圖在圖34-3中,COUNT模塊提供鍵盤的行掃描信號Q3.0。在沒有按鍵按下時,此時的使能信號EN為高電平,行掃描輸出信號Q3.0的變化順序為00010010010010000001依次周而復始(依次掃描4行按鍵)。當有按鍵按下時,此時的使能信號EN為低電平,行掃描輸出信號Q3.0停止掃描,并鎖存當前的行掃描值,例如按下第一行的按鍵,那么Q3.00001。KEYVALUE模塊的主要功能是確定輸入按鍵的鍵值,

49、對輸入按鍵的行信號Q3.0和列信號I43.0的當前組合值進行判斷來確定輸入按鍵的鍵值。例如,當Q3.00100,I43.0=1000時,則第三行、第四列輸入的按鍵有效,在KEYVALUE模塊中已定義了該鍵鍵值。CONTRL模塊的主要功能是實現按鍵的消抖。進行延時后,判斷是否有按鍵按下,要確保對按鍵鍵值的提取處于圖34-2所示的閉合穩(wěn)定時間范圍內。這就對本模塊的輸入時鐘信號有一定的要求,在本實驗中該模塊輸入的時鐘信號頻率為64Hz。Smdisplay模塊主要是完成數碼管動態(tài)掃描和7段譯碼顯示的功能。實驗步驟1在QuartusII 5.0軟件中新建原理圖文件,輸入自己設計的原理圖,編譯,仿真,鎖定

50、管腳并下載到目標芯片。2將第一全局時鐘CLK1的跳線器接64Hz,第二全局時鐘CLK2的跳線器接32768Hz。成功下載后,數碼管SM8-SM2均顯示0,SM1顯示9,LED1-LED4指示1001,LED16點亮。3將清零控制開關KD1置高電平時,數碼管全部清零。將KD1置低電平,此時處于等待按鍵輸入狀態(tài)。當按下4×4鍵盤的0F任意鍵時,數碼管SM1會顯示當前按下鍵的鍵值。當連續(xù)按下按鍵,數碼管SM8-SM1采用左移方式顯示依次按下的鍵,如依次按下5,F,3,0,7,2,A,數碼管SM8-SM1顯示05F3072A。LED1-LED4顯示SM1所示的按鍵值的二進制數值。每按一次按鍵,LED16閃爍一次指示按鍵操作。實驗八 交通燈實驗實驗目的組合時序邏輯電路綜合應用。實驗內容設計一個實用交通燈電路。實驗儀器1ZY11EDA13BE型實驗箱通用編程模塊,配置模塊,時鐘源模塊,數碼管顯示模塊。2ZY11EDA13BE型實驗箱點陣擴展板。實驗原理本實驗需要用到ZY11EDA13BE型實驗箱點陣擴展板。該擴展板上以根據地理實際設置了四箱紅黃綠交通燈,該模塊的介紹見前面的第一部分。如下圖所示為十字

溫馨提示

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

評論

0/150

提交評論