《數(shù)字電路》擴(kuò)展CPLD實(shí)驗(yàn)_實(shí)驗(yàn)指導(dǎo)書_第1頁
《數(shù)字電路》擴(kuò)展CPLD實(shí)驗(yàn)_實(shí)驗(yàn)指導(dǎo)書_第2頁
《數(shù)字電路》擴(kuò)展CPLD實(shí)驗(yàn)_實(shí)驗(yàn)指導(dǎo)書_第3頁
《數(shù)字電路》擴(kuò)展CPLD實(shí)驗(yàn)_實(shí)驗(yàn)指導(dǎo)書_第4頁
《數(shù)字電路》擴(kuò)展CPLD實(shí)驗(yàn)_實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 數(shù)字電路 實(shí) 驗(yàn) 指 導(dǎo) 書林文忠、羅海波 編 寫適用專業(yè):_通信工程_ 閩江學(xué)院_計(jì)算機(jī)科學(xué) 系2010年9月前 言 數(shù)字電路主要包括邏輯代數(shù)的基本理論、組合邏輯電路、時(shí)序邏輯電路及其可編程邏輯器件和存儲(chǔ)器原理等內(nèi)容。通過本課程的學(xué)習(xí),要求學(xué)生建立基本的邏輯代數(shù)的思維方法,掌握常用的組合/時(shí)序邏輯電路msi器件及其分析和設(shè)計(jì),掌握可編程邏輯器件的概念和設(shè)計(jì)方法,了解存儲(chǔ)器的結(jié)構(gòu)和原理。 為了使學(xué)生更好地理解和深刻地把握這些知識(shí),增強(qiáng)學(xué)生的實(shí)踐動(dòng)手能力,本實(shí)驗(yàn)部分主要培養(yǎng)學(xué)生的邏輯代數(shù)思維以及電路的設(shè)計(jì)和設(shè)計(jì)能力,鍛煉學(xué)生的verilog hdl的應(yīng)用編程開發(fā)能力,讓學(xué)生對cpld的開發(fā)過程

2、、開發(fā)步驟有一個(gè)詳盡的理解,也讓學(xué)生理解cpld編程與數(shù)字電路之間的關(guān)系。 本指導(dǎo)書為數(shù)字電路理論課程配套實(shí)驗(yàn)的一部分,即擴(kuò)展的cpld編程實(shí)驗(yàn)部分,另外的基礎(chǔ)部分不包括在此指導(dǎo)書之內(nèi)。 本實(shí)驗(yàn)指導(dǎo)書針對通信工程專業(yè)而編寫,由于課時(shí)及難度要求的不一致,計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的數(shù)字電路與邏輯設(shè)計(jì)課程的實(shí)驗(yàn)部分也可參考此指導(dǎo)書,選擇或者綜合一部分項(xiàng)目進(jìn)行。目 錄1、實(shí)驗(yàn)一:quartus ii的安裝及實(shí)驗(yàn)平臺(tái)的熟悉12、實(shí)驗(yàn)二:verilog hdl語言的熟悉73、實(shí)驗(yàn)三:4位累加器的的開發(fā)214、實(shí)驗(yàn)四:快速進(jìn)位功能的8位累加器的開發(fā)245、實(shí)驗(yàn)報(bào)告基本內(nèi)容要求2830實(shí)驗(yàn)一:quartus ii

3、的安裝及實(shí)驗(yàn)平臺(tái)、開發(fā)語言的熟悉實(shí)驗(yàn)學(xué)時(shí):2實(shí)驗(yàn)類型:驗(yàn)證實(shí)驗(yàn)要求:必修一、實(shí)驗(yàn)?zāi)康?1) 學(xué)會(huì)安裝quartus ii 7.2開發(fā)軟件。(2) 熟悉mju_cs/altera實(shí)驗(yàn)儀。(3) 熟悉基本的verilog hdl語法及編程。(需提前預(yù)習(xí))。(4) 熟悉開發(fā)平臺(tái)編譯、仿真、下載,到調(diào)試的整個(gè)開發(fā)過程。二、實(shí)驗(yàn)內(nèi)容(1) 熟悉mju-cs/altera實(shí)驗(yàn)儀,熟悉開發(fā)板的硬件環(huán)境。(2) 安裝quartus ii 7.2開發(fā)軟件,熟悉verilog hdl語言的開發(fā)軟件環(huán)境。(3) 通過基本的輸入輸出輸出實(shí)驗(yàn)(點(diǎn)亮發(fā)光二極管等)熟悉實(shí)驗(yàn)平臺(tái)開發(fā)流程。(4) 熟悉verilog hdl語

4、言的基本語法和使用。(預(yù)習(xí)完成實(shí)驗(yàn)二)三、實(shí)驗(yàn)原理、方法和手段教師演示,學(xué)生自主驗(yàn)證操作。四、實(shí)驗(yàn)組織運(yùn)行要求采用集中授課形式。五、實(shí)驗(yàn)條件(1)每2位同學(xué)為1組,每組一臺(tái)pc機(jī)、一臺(tái)mju-cs/altera實(shí)驗(yàn)儀。(2)配套的軟硬件設(shè)備:并口jtag下載線、quartus ii 7.2安裝程序等。六、實(shí)驗(yàn)步驟(一)熟悉mju-cs/altera實(shí)驗(yàn)儀在老師的指導(dǎo)下,參考數(shù)字電路cpld綜合實(shí)驗(yàn)開發(fā)板使用說明書第1節(jié)內(nèi)容,對mju-cs/altera實(shí)驗(yàn)儀的硬件資源、結(jié)構(gòu)、布局進(jìn)行熟悉。(1)電路布局(2)主要器件:cpld芯片epm240t100c5n、+3.3v電源供應(yīng)芯片ams1117

5、-3.3、2個(gè)4合1的8段共陽極數(shù)碼管、rs-232接口器件max232cse、模數(shù)芯片adc0804、數(shù)模芯片dac0832、無源蜂鳴器buzzer、4個(gè)獨(dú)立按鍵、4*4矩陣鍵盤、復(fù)位按鈕、12個(gè)led(紅、黃、綠各4個(gè))、led指示燈、晶振。(3)應(yīng)用接口:詳見數(shù)字電路cpld綜合實(shí)驗(yàn)開發(fā)板使用說明書表1.1。(4)跳線接口:詳見數(shù)字電路cpld綜合實(shí)驗(yàn)開發(fā)板使用說明書表1.2。(4)硬件原理分析詳見數(shù)字電路cpld綜合實(shí)驗(yàn)開發(fā)板使用說明書第二部分內(nèi)容。(二)安裝quartus ii 7.2開發(fā)軟件在老師的指導(dǎo)下,安裝quartus ii 7.2軟件,并進(jìn)行運(yùn)行,熟悉軟件的界面以及相關(guān)的工

6、具和功能等。詳細(xì)步驟及界面介紹略。三、實(shí)驗(yàn)平臺(tái)開發(fā)流程的熟悉 1. 基本輸出實(shí)驗(yàn) 點(diǎn)亮發(fā)光二極管要求:點(diǎn)亮mju-cs/altera實(shí)驗(yàn)儀上的4個(gè)紅色發(fā)光二極管。通過此實(shí)驗(yàn)掌握cpld的基本開發(fā)流程,軟硬件設(shè)計(jì)步驟。分析:在mju-cs/altera實(shí)驗(yàn)儀上已經(jīng)為用戶準(zhǔn)備了12個(gè)發(fā)光二極管,其中紅、黃、綠三色各4個(gè),其硬件原理圖如下圖1所示,在mju-cs/altera實(shí)驗(yàn)儀中,短接j10,則所有的led正極接通3.3v電源,只要正確分配并鎖定引腳后,在相應(yīng)的引腳上輸出低電平“0”,就可以實(shí)現(xiàn)點(diǎn)亮該發(fā)光二極管的功能。圖1 發(fā)光二極管原理圖其中,各io接口所連接led的顏色及在實(shí)驗(yàn)板上的位置如下

7、圖所示:圖2 led燈io接口連接示意圖程序設(shè)計(jì):由于要求是點(diǎn)亮4個(gè)紅色發(fā)光二極管,因此只須在相應(yīng)的引腳輸出低電平“0”即可,完整的verilog hdl源程序如下:實(shí)驗(yàn)方法:1)建立項(xiàng)目工程led,并在此工程項(xiàng)目下新建verilog hdl源程序文件led.v,輸入上面的程序代碼并保存。2)為該工程項(xiàng)目選擇一個(gè)目標(biāo)器件并對相應(yīng)的引腳進(jìn)行鎖定,在此所選擇的器件應(yīng)該是altera公司的epm240t100c5n芯片,引腳鎖定方法如下表1所示。表1 led實(shí)驗(yàn)引腳鎖定方法3)對該工程文件進(jìn)行編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直到編譯成功為止。4)拿出跳線短接帽短接j10。拿出jt

8、ag下載電纜,并將此電纜的兩端分別接到pc機(jī)和mju-cs/altera實(shí)驗(yàn)儀的jtag下載接口上,打開工作電源,執(zhí)行下載命令,把程序下載到mju-cs/altera實(shí)驗(yàn)儀的epm240t100c5n芯片中,此時(shí),mju-cs/altera實(shí)驗(yàn)儀的4個(gè)紅色led燈將被點(diǎn)亮。2. 基本輸入/ 輸出實(shí)驗(yàn) 基本邏輯門實(shí)驗(yàn) 要求:在mju-cs/altera實(shí)驗(yàn)儀上完成f=ab的邏輯功能。 分析:在mju-cs/altera實(shí)驗(yàn)儀上為用戶準(zhǔn)備了5個(gè)輸入獨(dú)立按鍵k1k4,reset,其硬件原理圖如圖2所示。這樣用戶可以把健k1、k2當(dāng)做輸入a、b,而f可以用led發(fā)光二極管來表示。當(dāng)有按鍵按下時(shí),io引

9、腳將由高電平切換到低電平,從而也將改變led的狀態(tài)。圖2 獨(dú)立按鍵原理圖 程序設(shè)計(jì): verilog hdl源程序如下: 實(shí)驗(yàn)方法: 1)建立項(xiàng)目工程fab_and,并在此工程項(xiàng)目下新建verilog hdl源程序文件fab.v,輸入上面的程序代碼并保存。 2)為該工程項(xiàng)目選擇一個(gè)目標(biāo)器件并對相應(yīng)的引腳進(jìn)行鎖定,在此所選擇的器件應(yīng)該是altera公司的epm240t100c5n芯片,引腳鎖定方法如下表2所示。表2 基本邏輯門實(shí)驗(yàn)引腳鎖定方法3)對該工程文件進(jìn)行編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直到編譯成功為止。4)k1為a信號,k2為b信號,f為led輸出信號。拿出jtag下

10、載電纜,并將此電纜的兩端分別接到pc機(jī)和mju-cs/altera實(shí)驗(yàn)儀的jtag下載接口上,打開工作電源,執(zhí)行下載命令,把程序下載到mju-cs/altera實(shí)驗(yàn)儀的epm240t100c5n芯片中。5)觀察led發(fā)光管的亮滅狀態(tài),按下k1按鍵,再次觀察發(fā)光管的狀態(tài),此時(shí)為什么發(fā)光管亮了呢?七、思考題1)為什么將epm240t100c5n的引腳設(shè)置為“0”,對應(yīng)連接的led將被點(diǎn)亮?修改程序或配置,點(diǎn)亮mju-cs/altera實(shí)驗(yàn)儀的4個(gè)黃色led燈。 2)實(shí)現(xiàn)f = a +b的邏輯功能,并使用k1、k2和led輸入控制和輸出顯示體現(xiàn)邏輯或的功能。3)請課前課后學(xué)習(xí)verilog hdl語

11、言。見附錄一:verilog hdl語言的基本知識(shí)八、實(shí)驗(yàn)報(bào)告要求及格式見本手冊末尾說明。九、其它說明在進(jìn)行實(shí)驗(yàn)時(shí),請握持實(shí)驗(yàn)板的邊緣,不要隨意用手指觸碰板子上的電路部分,以免靜電對實(shí)驗(yàn)板的損害。實(shí)驗(yàn)二:verilog hdl語言的熟悉實(shí)驗(yàn)學(xué)時(shí):2實(shí)驗(yàn)類型:驗(yàn)證實(shí)驗(yàn)要求:選修一、實(shí)驗(yàn)?zāi)康?1) 熟悉使用quartus ii 7.2開發(fā)環(huán)境。(2) 熟悉基本的verilog hdl語法及編程。二、實(shí)驗(yàn)內(nèi)容(1) 熟悉使用quartus ii 7.2開發(fā)環(huán)境。(2) 通過例程熟悉基本的verilog hdl語法及編程。三、實(shí)驗(yàn)原理、方法和手段教師演示,學(xué)生自主驗(yàn)證操作。四、實(shí)驗(yàn)組織運(yùn)行要求采用集中

12、授課形式。五、實(shí)驗(yàn)條件(1)每2位同學(xué)為1組,每組一臺(tái)pc機(jī)、一臺(tái)mju-cs/altera實(shí)驗(yàn)儀。(2)配套的軟硬件設(shè)備:并口jtag下載線、quartus ii 7.2安裝程序等。六、實(shí)驗(yàn)步驟(一)學(xué)習(xí)以下例程:module muxtwo(out, a, b, s1);input a, b, s1; output out; reg out; always (s1 or a or b)if( !s1 ) out = a; else out = b;endmodule以上程序段完成了二選一數(shù)據(jù)選擇器,從以上例程擴(kuò)展學(xué)習(xí)verilog hdl語言的基本語法。(二)verilog hdl語言基本語

13、法的學(xué)習(xí):(1)數(shù)據(jù)常量 - verilog hdl中共有19種數(shù)據(jù)類型。1 數(shù)字整數(shù) 二進(jìn)制數(shù)(b或b) 十進(jìn)制數(shù)(d或d) 十六進(jìn)制數(shù)(h或h) 八進(jìn)制數(shù)(o或o)數(shù)字的三種表達(dá)方式: - 全面的描述方式 - 默認(rèn)位寬,至少32位- 默認(rèn)位寬與進(jìn)制(十進(jìn)制)examples:8b101011008ha2x 與 z - x代表不定值;z(?)代表高阻值examples:4b10x04b101z12dz12d?8h4x負(fù)數(shù) - 在位寬表達(dá)式前加一個(gè)減號(-),減號必須放在數(shù)字定義表達(dá)式的最前面。 examples:-8d5 /ok8d-5 /not ok!下劃線 - 用來分割數(shù)字的表達(dá),提高程

14、序的可讀性,只能用在具體的數(shù)字之間。examples:16b1010_1111_1001_0001 /ok8b_1001_1111 / not ok!note:常量不說明位數(shù)的時(shí)候,默認(rèn)為32位,每個(gè)字母用8位的ascii碼值表示,如“ab”=16b010000001_010000010,2 參數(shù)型(parameter) - 用parameter來定義常量,稱為符號常量,可提高程序的可讀性與可維護(hù)性。格式:parameter 參數(shù)名1 = 表達(dá)式,參數(shù)名2 = 表達(dá)式,. ,參數(shù)名n = 表達(dá)式; note:表達(dá)式必須是常數(shù)表達(dá)式!舉例:parameter msb = 7;parameter

15、byte_size=8,byte_msb=byte_size-1;note:parameter所定義的常量必須是值可以確定的。(2)變量類型1. wire型- 常用來表示用于以assign關(guān)鍵字指定的組合邏輯信號- 默認(rèn)的類型wire a; / 1個(gè)1位wire7:0 b; /1個(gè)8位wire4:1 c,d; /2個(gè)4位2. reg型- 存儲(chǔ)數(shù)據(jù)單元的抽象- always塊內(nèi)被賦值的每一個(gè)信號都必須為reg型(reg只表示被定義的信號將用在alway塊內(nèi))- 默認(rèn)初始值為不定值:x reg rega;reg3:0 regb;reg4:1 regc,regd;3. memory型- 通過對reg

16、型變量建立數(shù)組,用于對存儲(chǔ)器建模reg7:0 mega255:0; - mega存儲(chǔ)器,有256個(gè)8bit單元,地址范圍為0255思考:regn-1:0 rega; 與 reg megan-1:0的區(qū)別?(3)結(jié)構(gòu)說明語句verilog hdl語言中的任何過程模塊都從屬于以下4種結(jié)構(gòu)的說明語句:- initial /開始時(shí)立即執(zhí)行,且只執(zhí)行一次- always /開始時(shí)立即執(zhí)行,直到仿真結(jié)束- task- function /task和function語句可以在程序模塊中的一處或多處調(diào)用(3.1)always語句- 仿真過程中不斷活躍著- 其后的過程快是否執(zhí)行取決于它的觸發(fā)條件是否滿足聲明格式

17、always note: always語句需要時(shí)序控制配合,否則會(huì)出現(xiàn)仿真死鎖。例1always areg = areg; /零延遲的無限循環(huán)跳變例2always #10 areg = areg; /周期為20的無限延續(xù)信號例3reg7:0 counter;reg tick; always (posedge areg) /上升沿激勵(lì) begin tick = tick; counter = counter + 1; end例4 always (posedge clock or posegde reset) /上升沿 clock or reset激勵(lì) begin . end例5 always (

18、a or b or c) /多個(gè)電平激勵(lì) begin . end- 沿觸發(fā)的always塊常常描述時(shí)序行為- 電平觸發(fā)的always塊常常描述組合邏輯行為又一個(gè)verilog hdl實(shí)例:module muxtwo(out, a, b, s1);input a, b, s1;output out; not u1(ns1, s1); and #1u2(sela, a, ns1); and #1u3(selb, b, s1); or #2 u4(out, sela, selb);endmodule模塊中的邏輯功能可以通過以下3種方法實(shí)現(xiàn):1. assign聲明語句 assign a = b & c

19、;2. 用實(shí)例元件 and #2 u1(q, a, b); /要求元件名唯一3. 用always塊note:assign是描述組合邏輯的常用方法,always塊可用于組合邏輯和時(shí)序邏輯。(4)等式運(yùn)算符= = 、 = = = /等于!=、 != = /不等于 examples:if(a = 1bx) $display(aisx);/當(dāng)a為x時(shí),這個(gè)語句也不執(zhí)行!if(a = 1bx) $display(aisx);/當(dāng)a為x時(shí),這個(gè)語句執(zhí)行?。?)移位運(yùn)算符 - 用0填補(bǔ)由于移位造成的空位examples:4b10011 = ? 4b10011 = ? 4b10014 = ?16 = ?(6)

20、位拼接運(yùn)算符 可以把2個(gè)或多個(gè)信號的某些位拼接起來進(jìn)行運(yùn)算格式:信號1的某幾位, 信號2的某幾位, ., 信號n的某幾位note:不允許存在沒有指明位數(shù)的信號,位寬必須明確examples:a,b3:0,w,3b101a,b2,b1,b0,w,1b1,1b0,1b14w = w,w,w,w /重復(fù)縮寫形式b,3a,b = b,a,b,a,b,a,b /嵌套形式(7)縮減運(yùn)算符- 單目運(yùn)算符- 最后的運(yùn)算結(jié)果是1位- 先第一位與第二位與或,接著第二位與第三位。reg3:0 b;reg c;c = &b;c = (b0 & b1) & b2) & b3;(8)賦值語句與塊語句(8.1)信號的兩種不

21、同的賦值方式:1. 非阻塞賦值方式(b = a) - 塊結(jié)束后才完成賦值操作 - b的值不是立即改變的 - 比較常用的賦值方法note:注意與比較運(yùn)算符=區(qū)別開來2. 阻塞賦值方式(b = a) - 先賦值,塊才結(jié)束 - b的值是立即改變的 - 可能會(huì)產(chǎn)生意想不到的結(jié)果note:在always塊內(nèi)給reg信號賦值時(shí),采用哪種方式尤其要注意舉例說明以上區(qū)別如下:always (posedge clk) begin b = a; c end_wave; /觸發(fā)事件end_waveend并行塊 - 塊內(nèi)語句是同時(shí)執(zhí)行的 - 所有語句的基準(zhǔn)時(shí)間是進(jìn)入塊語句的時(shí)間點(diǎn) - 延遲時(shí)間可對賦值語句進(jìn)行時(shí)序控制

22、 - 當(dāng)時(shí)序最后的一條語句執(zhí)行完,或者調(diào)用disable語句時(shí),程序流跳出塊舉例如下:fork#50 r = h35;#100 r = he2;#150 r = h00;#200 r = hf7;#250 -end_wave; /觸發(fā)事件end_wavejoinnote:順序塊和并行塊的起始時(shí)間和結(jié)束時(shí)間;并行塊中語句的順序可隨意。(9) 條件語句(if-else、case)case 格式:1. case(表達(dá)式) endcase2. casez(表達(dá)式) endcase2. casex(表達(dá)式) endcasecase分支項(xiàng)的一般格式: 分支項(xiàng)表達(dá)式: 語句; default: 語句 /可有

23、可無reg15:0 rega;reg9:0 result;case(rega) 16d0: result = 10b0111_1111; 16d1: result = 10b1011_1111; 16d2: result = 10b1101_1111; default: result = 10bx;endcesenote:1. case項(xiàng)分支表達(dá)式必須不同2. 執(zhí)行完某個(gè)case分支,即跳出case語句結(jié)構(gòu)3. 分支表達(dá)式的值要明確相等才會(huì)執(zhí)行4. 位寬必須相等表1 case、casez和casex的真值表(10)循環(huán)語句forever:連續(xù)的執(zhí)行語句repeat:執(zhí)行n次while:條件滿足

24、則執(zhí)行for:分3步走note:for語句的變量增加不能用“+”(10.1)forever:連續(xù)的執(zhí)行語句格式: forever 語句;note:常用于產(chǎn)生周期性的波形,作為仿真測試信號,與always的不同之處在于:不能獨(dú)立寫在程序中,而必須寫在initial塊中。(10.2)repeat:執(zhí)行n次格式: repeat(執(zhí)行次數(shù)) 語句;note:常用于產(chǎn)生周期性的波形,作為仿真測試信號,與always的不同之處在于:不能獨(dú)立寫在程序中,而必須寫在initial塊中。(11)initial說明語句格式:initial begin 語句s; end1. 只執(zhí)行一次。2. 常用于仿真信號的產(chǎn)生等

25、。(12)task和function說明語句-都用于定義程序模塊區(qū)別是:1. 函數(shù)只能跟主模塊共用一個(gè)仿真時(shí)間,任務(wù)則沒有此限制。2. 函數(shù)不能啟動(dòng)任務(wù),任務(wù)可以啟動(dòng)任務(wù)和函數(shù)3. 函數(shù)至少需要一個(gè)輸入變量,任務(wù)可以沒有或多個(gè)任何類型的變量4. 函數(shù)返回一個(gè)值,任務(wù)沒有返回值examples:switch_bytes(old_word, new_word); new_word = switch_bytes(old_word);哪個(gè)是函數(shù)方式?哪個(gè)是任務(wù)方式?(三)結(jié)合以上的verilog hdl語言的學(xué)習(xí),學(xué)習(xí)并跟著編寫一下例程。(1)4位全加器module adder4(cout,sum,i

26、na,inb,cin); output3:0 sum; output cout; input3:0 ina,inb; input cin; assign cout,sum=ina+inb+cin; endmodule(2)4位計(jì)數(shù)器module count4(out,reset,clk); output3:0 out; input reset,clk; reg3:0 out;always (posedge clk) begin if (reset) out=0; /同步復(fù)位 else out=out+1; /計(jì)數(shù) end endmodule(3)用case語句描述的 4 選 1 數(shù)據(jù)選擇器mo

27、dule mux4_1(out,in0,in1,in2,in3,sel); output out; input in0,in1,in2,in3; input1:0 sel; reg out; always (in0 or in1 or in2 or in3 or sel) /敏感信號列表 case(sel) 2b00: out=in0; 2b01: out=in1; 2b10: out=in2; 2b11: out=in3; default: out=2bx; endcase endmodule七、思考題(1)在4位計(jì)數(shù)器的基礎(chǔ)上,實(shí)現(xiàn)帶同步清0,同步置1的4位加法計(jì)數(shù)器。(2)在以上4選1數(shù)

28、據(jù)選擇器的基礎(chǔ)上,實(shí)現(xiàn)帶1個(gè)使能端(低電平有效)的8選1數(shù)據(jù)選擇器。八、實(shí)驗(yàn)報(bào)告要求及格式見本手冊末尾說明。九、其它說明學(xué)生在做本實(shí)驗(yàn)前,應(yīng)該充分進(jìn)行預(yù)習(xí),熟悉verilog hdl語言,此外,應(yīng)從其他渠道學(xué)習(xí)和鞏固verilog hdl語言的編程,如網(wǎng)絡(luò)、其他書籍等。實(shí)驗(yàn)三:4位累加器的開發(fā)實(shí)驗(yàn)學(xué)時(shí):2實(shí)驗(yàn)類型:驗(yàn)證實(shí)驗(yàn)要求:必修一、實(shí)驗(yàn)?zāi)康?1) 理解累加器的原理。(2) 熟悉累加器的verilog hdl編程、仿真和調(diào)試。二、實(shí)驗(yàn)內(nèi)容(1) 4位累加器的開發(fā)及仿真。(2) 3位累加器的開發(fā)及下載運(yùn)行。三、實(shí)驗(yàn)原理、方法和手段教師演示,學(xué)生自主驗(yàn)證操作。四、實(shí)驗(yàn)組織運(yùn)行要求采用集中授課形式

29、。五、實(shí)驗(yàn)條件(1)每2位同學(xué)為1組,每組一臺(tái)pc機(jī)、一臺(tái)mju-cs/altera實(shí)驗(yàn)儀。(2)配套的軟硬件設(shè)備:并口jtag下載線、quartus ii 7.2安裝程序等。六、實(shí)驗(yàn)步驟(一)4位累加器的開發(fā)及仿真要求:實(shí)現(xiàn)帶低位進(jìn)位、向高位進(jìn)位功能的4位累加器并進(jìn)行仿真。分析:4位累加器是一種組合邏輯電路,verilog hdl語言實(shí)現(xiàn)方法較多,其中一種較為簡單的實(shí)現(xiàn)源代碼如下:請自行分析源代碼。實(shí)驗(yàn)方法:1)建立項(xiàng)目工程add4,并在此工程項(xiàng)目下新建verilog hdl源程序文件add4.v,輸入上面的程序代碼并保存。2)對該工程文件進(jìn)行編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)

30、誤,直到編譯成功為止。3)創(chuàng)建仿真波形文件,對4位累加器的邏輯功能進(jìn)行仿真。4)根據(jù)仿真波形文件,分析4位累加器的邏輯功能是否符合預(yù)期。(二)3位累加器的開發(fā)及下載運(yùn)行要求:實(shí)現(xiàn)帶低位進(jìn)位、向高位進(jìn)位功能的3位累加器并進(jìn)行下載運(yùn)行,加法的加數(shù)、被加數(shù)、低位進(jìn)位由撥碼開關(guān)實(shí)現(xiàn)。在實(shí)驗(yàn)開發(fā)板上,當(dāng)撥碼開關(guān)撥動(dòng)到上方時(shí),相應(yīng)的io腳狀態(tài)為“0”,反之,當(dāng)撥動(dòng)到下方時(shí),相應(yīng)的io腳狀態(tài)為“1”。撥碼開關(guān)的標(biāo)號與io腳的對應(yīng)關(guān)系如下表所示:表2.1 撥碼開關(guān)位置編號與io引腳的對應(yīng)關(guān)系撥碼開關(guān)標(biāo)號io引腳175271374470569673772868分析:3位累加器是一種組合邏輯電路,verilog

31、hdl語言實(shí)現(xiàn)方法較多,其中一種較為簡單的實(shí)現(xiàn)源代碼如下:請自行分析源代碼。實(shí)驗(yàn)方法:1)建立項(xiàng)目工程add,并在此工程項(xiàng)目下新建verilog hdl源程序文件add.v,輸入上面的程序代碼并保存。2)為該工程項(xiàng)目選擇一個(gè)目標(biāo)器件并對相應(yīng)的引腳進(jìn)行鎖定,在此所選擇的器件應(yīng)該是altera公司的epm240t100c5n芯片,引腳鎖定方法如下表1所示。表1 led實(shí)驗(yàn)引腳鎖定方法3)對該工程文件進(jìn)行編譯處理,若在編譯過程中發(fā)現(xiàn)錯(cuò)誤,則找出并更正錯(cuò)誤,直到編譯成功為止。4)拿出jtag下載電纜,并將此電纜的兩端分別接到pc機(jī)和mju-cs/altera實(shí)驗(yàn)儀的jtag下載接口上,打開工作電源,執(zhí)

32、行下載命令,把程序下載到mju-cs/altera實(shí)驗(yàn)儀的epm240t100c5n芯片中。5)觀察最右邊數(shù)碼管的顯示,分析原因,隨機(jī)撥動(dòng)撥碼開關(guān)的17,觀察最右邊數(shù)碼管的顯示,分析原因。6)根據(jù)5),總結(jié)心得體會(huì)。七、思考題無八、實(shí)驗(yàn)報(bào)告要求及格式見本手冊末尾說明。九、其它說明開發(fā)板上的+5v電源接口不能使用短路冒與地(gnd)進(jìn)行短接,否則將燒壞電源和開發(fā)板。實(shí)驗(yàn)四:快速進(jìn)位功能的8位累加器的開發(fā)實(shí)驗(yàn)學(xué)時(shí):2實(shí)驗(yàn)類型:驗(yàn)證實(shí)驗(yàn)要求:選修一、實(shí)驗(yàn)?zāi)康?1) 理解累加器的快速進(jìn)位的原理。(2) 熟悉累加器的verilog hdl編程、仿真和調(diào)試。二、實(shí)驗(yàn)內(nèi)容(1) 學(xué)習(xí)累加器的快速進(jìn)位原理。(

33、2) 8位快速進(jìn)位累加器的開發(fā)及仿真。三、實(shí)驗(yàn)原理、方法和手段教師演示,學(xué)生自主驗(yàn)證操作。四、實(shí)驗(yàn)組織運(yùn)行要求采用集中授課形式。五、實(shí)驗(yàn)條件(1)每2位同學(xué)為1組,每組一臺(tái)pc機(jī)、一臺(tái)mju-cs/altera實(shí)驗(yàn)儀。(2)配套的軟硬件設(shè)備:并口jtag下載線、quartus ii 7.2安裝程序等。六、實(shí)驗(yàn)步驟(一)累加器的快速進(jìn)位原理累加器的快速進(jìn)位也稱為超前進(jìn)位,具有快速進(jìn)位的累加器稱為超前進(jìn)位加法器。超前進(jìn)位加法器就是使各位的進(jìn)位直接由加數(shù)和被加數(shù)來決定,而不需要依賴和等待低位進(jìn)位。對于每一位給高位的進(jìn)位,有如下邏輯表達(dá)式: (式1、第i位進(jìn)位給i+1位的進(jìn)位)從上式可知,當(dāng)?shù)趇位被加

34、數(shù)和加數(shù)均為1時(shí),有,此時(shí),不論低位運(yùn)算結(jié)果如何本位必然有進(jìn)位輸出(),所以定義為進(jìn)位產(chǎn)生函數(shù)。當(dāng)和中只有一個(gè)為1時(shí),有,使得,所以定義為進(jìn)位傳遞函數(shù)。此時(shí),第i位給i+1位的進(jìn)位,與相等,相當(dāng)于直接通過傳遞函數(shù)傳遞繼承過來,而不需要等待低位的運(yùn)算。如此,可以實(shí)現(xiàn)每一位的快速進(jìn)位值及最終的進(jìn)位值。將和代入全加器的“和”及“進(jìn)位”表達(dá)式有: (式2、第i位的本位) (式3、第i位進(jìn)位給i+1位的進(jìn)位)從而構(gòu)成超前進(jìn)位加法器。(二)8位快速進(jìn)位累加器的開發(fā)及仿真要求:實(shí)現(xiàn)帶低位進(jìn)位、向高位進(jìn)位功能8位具有快速進(jìn)位的累加器并進(jìn)行仿真。分析:按照式2、式3,可寫出源代碼如下所示:module add_

35、ahead(sum,cout,a,b,cin);output7:0 sum; output cout; input7:0 a,b; input cin; wire7:0 g,p; wire7:0 c,sum;assign g0=a0&b0; /產(chǎn)生第0 位本位值和進(jìn)位值assign p0=a0|b0;assign c0=cin; /第0位得到的進(jìn)位assign sum0=a0b0c0;assign g1=a1&b1; /產(chǎn)生第1 位本位值和進(jìn)位值assign p1=a1|b1;assign c1=g0|(p0&cin); /第0位給第1位的進(jìn)位assign sum1=a1b1c1;assign g2=a2&b2; /產(chǎn)生第2 位本位值和進(jìn)位值assign p2=a2|b2;assign c2=g1|(p1&c1); /第1位給第2位的進(jìn)位assign sum2=a2b2c2;assign g3=a3&b3; /產(chǎn)生第3 位本位值和進(jìn)位值assign p3=a3|b3;assign c3=g

溫馨提示

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

評論

0/150

提交評論