可編程邏輯器件設(shè)計及應(yīng)用試驗報告_第1頁
可編程邏輯器件設(shè)計及應(yīng)用試驗報告_第2頁
可編程邏輯器件設(shè)計及應(yīng)用試驗報告_第3頁
可編程邏輯器件設(shè)計及應(yīng)用試驗報告_第4頁
可編程邏輯器件設(shè)計及應(yīng)用試驗報告_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上Harbin Institute of Technology可編程邏輯器件設(shè)計及應(yīng)用實驗報告專心-專注-專業(yè) 實驗一:電路圖方法設(shè)計:異步16分頻 一、 實驗內(nèi)容1、 熟悉ISE M的安裝及使用2、 熟悉電路圖方式的輸入方法;3、 熟悉ISE環(huán)境下的波形仿真4、 學(xué)習(xí)SIE安裝過程5、 建立一個新的工程(cpld 9500系列)6、 輸入電路圖異步16分頻,如圖1-1所示:圖1-1二 實驗結(jié)果1、異步16分頻電路圖如圖1-2所示:圖1-22、 建立測試波形方法仿真激勵圖形,如圖1-3所示:圖1-33、 引腳約束條件如下:NET "CLK" LOC

2、= "P6"NET "CLR" LOC = "P7"NET "O1" LOC = "P42"NET "O2" LOC = "P37"NET "O3" LOC = "P40"NET "O4" LOC = "P39"4、 最終仿真結(jié)果如圖1-4,1-5所示:圖1-4圖1-5三 實驗結(jié)果討論分析通過本次試驗,初步掌握了ISE的使用方法,通過ISE自帶庫文件完成電路的搭建,實現(xiàn)了對輸入

3、時鐘的2分頻,4分頻,8分頻和16分頻,通過最終的試驗驗證得到了正確的試驗結(jié)果。指導(dǎo)教師簽字:實驗二 電路圖方法分層設(shè)計:全加器 一、實驗內(nèi)容1、 建立一個新的工程(cpld 9500系列)2、 建立一個獨立的電路圖(All_ADD)3、 輸入電路圖: 一位全加器圖2-1一位全加器4、 建立測試波形方法仿真激勵圖形圖2-2波形仿真激勵5、 功能仿真記錄結(jié)果,分析正確性。6、 生成電路模塊 圖2-3模塊建立7、 利用電路模塊設(shè)計8位全加器,(新電路圖或者頂層電路圖)圖2-4 8位全加器(頂層電路圖)8、 建立測試波形方法仿真激勵圖形圖2-5 8位全加器波形仿真激勵9、 學(xué)習(xí)總線數(shù)據(jù)預(yù)置方式:通過

4、使用相同名字來對總線進(jìn)行連接設(shè)置,和總線數(shù)據(jù)格式。二 實驗結(jié)果一位全加器功能仿真結(jié)果:圖2-6 功能仿真結(jié)果8位全加器功能仿真結(jié)果一(無進(jìn)位):圖2-7 功能仿真結(jié)果8位全加器功能仿真結(jié)果二(有進(jìn)位):圖2-8 功能仿真結(jié)果三 實驗結(jié)果討論分析本次試驗充分體現(xiàn)了模塊化設(shè)計思想,首先我們運用庫文件實現(xiàn)了一位全加器,也即實驗中的ALL_ADD模塊,在實現(xiàn)此模塊后進(jìn)行仿真分析,確定無誤后,運用8個一位全加器實現(xiàn)實現(xiàn)8位全加器,考慮進(jìn)位。在實驗中進(jìn)一步熟悉了軟件的使用流程和具體的實際操作如操作總線結(jié)構(gòu)等基本操作,可謂知行合一。指導(dǎo)教師簽字:實驗三 Verilog語言方法設(shè)計:8位全加器 一、實驗內(nèi)容1

5、、 建立一個新的工程(cpld 9500系列)2、 建立一個Verilog模塊(All_ADD8)圖3-1 建立一個新的verilog模塊3、 輸入全加器圖3-2 輸入全加器4、 建立測試波形方法仿真激勵圖形測試波形一:圖3-3 測試波形測試波形二:圖3-4 測試波形5、 功能仿真記錄結(jié)果,分析正確性。6、 建立Verilog測試模塊源代碼如下:7、 功能仿真記錄結(jié)果,分析正確性。進(jìn)位結(jié)果。理解掌握語言描述。8、 8位可預(yù)置計數(shù)器(試驗擴(kuò)展)9、 建立一個Verilog模塊(Counter8)源代碼如下:timescale 1ns / 1psmodule extentest_v;reg 7:0

6、 D;reg CLK;reg CLR;reg PR;wire 7:0 Q;extendex uut (.D(D), .CLK(CLK), .CLR(CLR), .PR(PR), .Q(Q); parameter PERIOD = 200; always begin CLK = 1'b0; #(PERIOD/2) CLK = 1'b1; #(PERIOD/2); end initial beginD = 0;CLR = 0;PR = 0;#100;每隔100ns變換一次輸入數(shù)據(jù)PR = 1; D = 17; CLR = 0;#100;PR = 0;#100;end endmodu

7、le10、 學(xué)習(xí)總線數(shù)據(jù)預(yù)置方式11、 自己建立仿真過程(波形+Verilog測試)二 實驗結(jié)果測試波形一結(jié)果:圖3-5 仿真測試結(jié)果測試波形二結(jié)果:圖3-6 仿真測試結(jié)果文件測試結(jié)果:圖3-7 仿真測試結(jié)果更改數(shù)據(jù)測試結(jié)果:圖3-8 仿真測試結(jié)果三 實驗結(jié)果討論分析本次試驗與上次試驗的不同之處在于:上次試驗是通過庫文件鏈接電路圖先實現(xiàn)1位全加器,在此基礎(chǔ)上運用8個1位全加器按照邏輯鏈接在一起實現(xiàn)8位全加器,而在本次試驗中,我們運用的是Verilog語言實現(xiàn),個人感覺這種更加簡單清楚,首先是這種方法省去了電路鏈接的麻煩,其次是它的實現(xiàn)過程中只需要編程實現(xiàn)模塊即可,不用先生成1位全加器,然后再去

8、實現(xiàn)8位全加器,編程仿真實現(xiàn)想要的結(jié)果后可以直接生成8位全加器模塊,操作極為簡單。指導(dǎo)教師簽字:實驗四 LED顯示模塊設(shè)計 一、實驗內(nèi)容1、 在上一工程基礎(chǔ)上繼續(xù)做a、 工程名稱:MyProject1b、 選擇器件:Spartan3E2、 建立LED顯示模塊(verilog)圖4-1 LED顯示模塊l 功能說明:a、 數(shù)據(jù)輸入:4bits; b、 數(shù)據(jù)輸出;8bits;c、 功能:翻譯16進(jìn)制到7段LED顯示(參照顯示16進(jìn)制數(shù)對照表)l 過程說明:a、 建立Verilog模塊;b、 建立Verilog仿真;c、 驗證模塊正確性;3、 建立顯示數(shù)據(jù)鎖存分配模塊(verilog)圖4-2 數(shù)據(jù)鎖

9、存模塊l 功能說明:a、 數(shù)據(jù)輸入:8bits。b、 CK:鎖存信號,上升沿鎖存輸入數(shù)據(jù)c、 數(shù)據(jù)輸出:鎖存輸出最后輸入的兩字節(jié)數(shù)據(jù),分別對應(yīng)4位輸出l 過程說明:a、 建立Verilog模塊;b、 建立Verilog仿真;c、 驗證模塊正確性;4、 建立電路圖方式頂層模塊顯示模塊圖4-3 頂層5、 聯(lián)合驗證;二 實驗結(jié)果輸入波形一:圖4-4 測試波形得到的相應(yīng)仿真結(jié)果圖一:圖4-5 仿真結(jié)果輸入波形二:圖4-6 測試波形得到的相應(yīng)仿真波形結(jié)果圖二:圖4-7 仿真結(jié)果三 實驗結(jié)果討論分析本次試驗依然使用的是Verilog語言,個人覺得實現(xiàn)的關(guān)鍵之處在于輸入輸出的對應(yīng),我們對照共陰極發(fā)光二極管的

10、顯示模式,為每一個輸入通過編程實現(xiàn)其對應(yīng)的輸出即可。本次試驗更深入了解的Verilog編程語言,以及電路設(shè)計的模塊化實現(xiàn),在本次試驗中引入了時鐘,對時鐘的生成與操作有了初步的了解為下一次試驗打下了基礎(chǔ),與此同時,我還學(xué)習(xí)到了Verilog語言一些特有的編程規(guī)則。指導(dǎo)教師簽字:實驗五 串行口設(shè)計一、 實驗內(nèi)容預(yù)備知識:串行通信:數(shù)據(jù)一位一位次序發(fā)送或接收。異步通信:它用一個起始位表示字符的開始,用停止位表示字符的結(jié)束。其每幀的格式如下: 在一幀格式中,先是一個起始位0,然后是8個數(shù)據(jù)位,規(guī)定低位在前,高位在后,接下來是奇偶校驗位(能省略),最后是停止位1。用這種格式表示字符,則字符能一個接一個地

11、傳送。無奇、偶校驗的工作模式(10位):有奇、偶校驗的工作模式(11位):(1) 率:在串行通信中,用波特率來描述數(shù)據(jù)的傳輸速度,所謂波特率,即每秒鐘傳送的二進(jìn)制位數(shù),其單位是bps(bits per second).它是衡量串行數(shù)據(jù)速度快慢的重要指標(biāo).國際上規(guī)定的一個標(biāo)準(zhǔn)波特率系列: 110,300,600,1200,1800,2400,4800,9600,14.4K,19.2K,28.8K,33.6K,56Kbps(2) 奇偶校驗:對傳送數(shù)據(jù)中1的個數(shù)進(jìn)行校驗,若二者不一致,則說明數(shù)據(jù)傳送過程中出現(xiàn)了差錯.奇偶校驗的特點是按字符校驗,數(shù)據(jù)傳輸速度將受到影響,一般只用于異步串行通信中。實驗過

12、程:1、 建立一個新的工程 a、 工程名稱:MyProject1b、 選擇器件:Spartan3E2、 建立模式控制模塊(verilog)圖5-1 模式控制模塊l 功能說明:a、 DataIn:控制數(shù)據(jù)輸入、8bits;低4位用于選擇波特率模式,最高位用于選擇奇、偶校驗是否有效;b、 WR:控制數(shù)據(jù)寫入,1bit;上升沿鎖存輸入數(shù)據(jù);c、 FreOut:波特率模式選擇輸出,DataIn低4位,由WR上升沿鎖存保持;09變化;大于9不變化。d、 ModOut:奇、偶校驗?zāi)J竭x擇;DataIn最高位,由WR上升沿鎖存保持;e、 默認(rèn)值:FreOut =6;ModOu=1;l 過程說明:a、 建立V

13、erilog模塊;b、 建立Verilog仿真;c、 驗證模塊正確性;源代碼如下:module ModeCon(DataIn, WR, FreOut, ModOut); input 7:0 DataIn; input WR; output 3:0 FreOut; output ModOut; reg ModOut=1;/ModOut初始值為1 reg 3:0 FreOut=6;/FreOut初始值為6 always (posedge WR) beginModOut<=DataIn7;if(DataIn3:0<9)FreOut<=DataIn3:0; endendmodule測

14、試代碼如下:module ModeConTest_v; reg 7:0 DataIn;reg WR;wire 3:0 FreOut;wire ModOut; parameter PERIOD = 100; /value=時鐘周期(單位ns) always begin WR = 1'b0; #(PERIOD/2) WR = 1'b1; #(PERIOD/2); end / Instantiate the Unit Under Test (UUT)ModeControl uut (.DataIn(DataIn), .WR(WR), .FreOut(FreOut), .ModOut(

15、ModOut);initial beginDataIn = 0;WR = 0;/ Wait 100 ns for global reset to finish#100; DataIn=16'h12; #100; DataIn=16'h23; #100; DataIn=16'h44; #100; DataIn=16'h96; / Add stimulus hereend endmodule3、 建立波特率發(fā)生器模塊(verilog)圖5-2 波特率發(fā)生模塊l 功能說明:a、 FreSel:波特率控制數(shù)據(jù)輸入、4bits;09變化,對應(yīng)選擇波特率300、600、12

16、00、1800、2400、4800、9600、14.4K、19.2K、28.8Kbps共10種變化。b、 CLK:時鐘射入,頻率為22.1184MHz;c、 CLK_S:對應(yīng)波特率分頻輸出,根據(jù)FreSel輸入控制數(shù)據(jù)進(jìn)行對應(yīng)分頻,對應(yīng)模式有300、600、1200、1800、2400、4800、9600、14.4K、19.2K、28.8Kbpsd、 CLK_S16:對應(yīng)波特率16倍分頻輸出;l 過程說明:a、 建立Verilog模塊;b、 建立Verilog仿真;c、 驗證模塊正確性;d、 建立電路圖方式頂層模塊Seriale、 連接波特率發(fā)生器模塊和模式控制模塊進(jìn)行聯(lián)合驗證;源代碼如下:m

17、odule FreqMod(FreSel, CLK, CLK_S16, CLK_S); input 3:0 FreSel; input CLK; output CLK_S16; output CLK_S; reg CLK_S=0; reg CLK_S16=0; reg 16:0count=0; reg 16:0count_16=0; reg 16:0num=0; reg 16:0num16=0; always (posedge CLK) beginif(FreSel=0)num<=36864;/300 else if(FreSel=1)num<=18432;/600else if(

18、FreSel=2)num<=9216;/1200else if(FreSel=3)num<=6144;/1800else if(FreSel=4)num<=4608;/2400else if(FreSel=5)num<=2304;/4800else if(FreSel=6)num<=1152;/9600else if(FreSel=7)num<=768;/14.4kelse if(FreSel=8)num<=576;/19.2kelse if(FreSel=9)num<=384;/28.8k end always (posedge CLK) be

19、gin count<=count+1; num16<=num/(16); count_16=count_16+1; if(count>=num) beginCLK_S<=CLK_S;count<=0;endif(count_16>=num16)beginCLK_S16<=CLK_S16;count_16<=0;endendendmodule測試代碼如下:module FreqModTest_v;/ Inputsreg 3:0 FreSel;reg CLK;/ Outputswire CLK_S16;wire CLK_S; parameter PE

20、RIOD = 100; /value=時鐘周期(單位ns) always begin CLK= 1'b0; #(PERIOD/2) CLK = 1'b1; #(PERIOD/2); end / Instantiate the Unit Under Test (UUT)BitProducer uut (.FreSel(FreSel), .CLK(CLK), .CLK_S16(CLK_S16), .CLK_S(CLK_S);initial begin/ Initialize Inputs/ Wait 100 ns for global reset to finish #100; F

21、reSel=1001;/ Add stimulus hereend endmodule4、 建立發(fā)送數(shù)據(jù)模塊(verilog)圖5-3 發(fā)送數(shù)據(jù)模塊l 功能說明:a、 DataIn:發(fā)送數(shù)據(jù)輸入、8bits;b、 WR:控制數(shù)據(jù)寫入,1bit;上升沿鎖存輸入數(shù)據(jù);寫入后下一個CLK上升沿開始立即發(fā)送數(shù)據(jù)c、 CLK:時鐘射入,對應(yīng)波特率時鐘;d、 Mod:模式輸入,0對應(yīng)無奇偶校驗;1對應(yīng)有奇偶校驗;e、 TX:串行數(shù)據(jù)輸出,平時高電平,當(dāng)有數(shù)據(jù)輸入后,下一個CLK上升沿開始立即發(fā)送數(shù)據(jù);f、 BUSY:空閑指示,當(dāng)TX輸出時為高,其它時間為低;l 過程說明:a、 建立Verilog模塊;b、

22、 建立Verilog仿真;c、 驗證模塊正確性;d、 加入頂層模塊Seriale、 進(jìn)行聯(lián)合驗證;源代碼如下:module TxMod(DataIn, WR, CLK, Mod, TX, BUSY); input 7:0 DataIn; input WR; input CLK; input Mod; output TX; output BUSY; reg Tx=1; reg Busy=0; reg 7:0data=0; reg flag=0; reg 3:0count=1; reg num=0; always (posedge WR) begin data<=DataIn; num<

23、;=data0+data1+data2+data3+data4+data5+data6+data7; flag<=1; end always (posedge CLK) begin if(flag=1) begin Busy<=1; if(count=1) Tx<=0; else if(count=2) Tx<=data0; else if(count=3) Tx<=data1; else if(count=4) Tx<=data2; else if(count=5) Tx<=data3; else if(count=6) Tx<=data4;

24、else if(count=7) Tx<=data5; else if(count=8) Tx<=data6; else if(count=9) Tx<=data7; else if(count=10) begin if(Mod=0) Tx<=1;else if(Mod=1) Tx<=num;count<=0;flag<=0; end count<=count+1; end else Tx=1; Busy=0; endendmodule5、 建立發(fā)送數(shù)據(jù)模塊(verilog)圖5-4 發(fā)送數(shù)據(jù)模塊l 功能說明:a、 RX:串行數(shù)據(jù)輸入、1bits;b、 CLK:時鐘輸入,對應(yīng)16倍波特率時鐘。目的:提高采樣率,在第一時刻發(fā)現(xiàn)起始脈沖;同時對每一位進(jìn)行3次采樣(時間平均),已剔出干擾;c、 Mod:模式輸入,0對應(yīng)無奇偶校驗;1對應(yīng)有奇偶校驗;d、 TX:串行數(shù)據(jù)輸出,平時高電平,當(dāng)有數(shù)據(jù)輸入后,下一個CL

溫馨提示

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

最新文檔

評論

0/150

提交評論