找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4641|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

FPGA可編程數(shù)字邏輯電路入門(mén)實(shí)驗(yàn)分享給大家

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:611768 發(fā)表于 2019-9-15 20:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

課程名稱(chēng):數(shù)字邏輯電路實(shí)驗(yàn)A

第二次試驗(yàn)

實(shí)驗(yàn)名稱(chēng):可編程數(shù)字邏輯設(shè)計(jì)基礎(chǔ)

院系:電子科學(xué)與工程學(xué)院

專(zhuān)業(yè):電子科學(xué)與技術(shù)(類(lèi))

  • 實(shí)驗(yàn)準(zhǔn)備:

目的和要求:

  •      了解可編程數(shù)字系統(tǒng)設(shè)計(jì)的流程
  •      掌握Quartus軟件的使用方法
  •      掌握競(jìng)爭(zhēng)和冒險(xiǎn)的基本概念和電路的時(shí)延分析方法
  • 實(shí)驗(yàn)原理及實(shí)現(xiàn)方案:

    實(shí)驗(yàn)原理:

  •      觀(guān)察并記錄實(shí)驗(yàn)箱上的FPGA型號(hào),新建一個(gè)Project,器件選用實(shí)驗(yàn)箱上的FPGA;

       由于硬木課堂上的FPGA型號(hào)為”Cyclone Ⅳ”,而實(shí)驗(yàn)所采用的版本Quartus9.1不支持此型號(hào),所以在新建project時(shí),在A(yíng)ssignment中選擇Device,選擇其中的Family下拉框,點(diǎn)擊“CycloneⅢ”,Available devices列表中選擇EP3C5E144C8,點(diǎn)擊“OK”即可。

  •      用“AND2”和“XOR”器件設(shè)計(jì)一個(gè)1位半加器,并用功能仿真進(jìn)行驗(yàn)證;

         設(shè)計(jì)方案:①AND2為一個(gè)二輸入與門(mén),XOR為二輸入異或門(mén),因?yàn)橐晃话爰悠鳠o(wú)進(jìn)位輸入量,所以設(shè)輸入變量為A與B,輸出變量為S和C,S為結(jié)果,C為進(jìn)位輸出量。

②根據(jù)一位半加器的要求列出真值表如下表所示:

輸入變量

輸出變量

A

B

S

C

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

③因?yàn)檩斎肓總(gè)數(shù)較少,直接根據(jù)真值表可得S=A’B+AB’,即為A與B的異或;

C=AB,所以據(jù)此得到此二輸出的邏輯函數(shù):S=A’B+AB’,C=AB;

④點(diǎn)擊File中的New項(xiàng),將出現(xiàn)新建文件對(duì)話(huà)框,選擇“Design File/Block Diagram/Schematic File”項(xiàng),點(diǎn)擊“OK”即可打開(kāi)”Block Editor”,雙擊原理圖空白部分,在name欄中分別搜索imput,output,XOR和AND2得到所需元件,然后利用左側(cè)繪圖工具建立原理圖,保存在Project的相同文件夾中。如下圖所示:

⑤功能驗(yàn)證:

首先點(diǎn)擊Project Navigator/files/Device Design Files,選中要編譯的“yiweibanjiaqi.bdf”文件,右鍵將其“Set as Top-level Entity”,先不分配管腳,下面建立輸入激勵(lì)波形文件,按照New/Verification/Debugging Files/Vector Waveform File建立文件后雙擊Name空白處,按照Insert Node or Bus/Node Finder/list/”>>”的順序,利用左圖的工具將激勵(lì)波形完成后將其“Save”到Project的文件夾中,注意在完善激勵(lì)波形的時(shí)候用Edit/End time.Grid size設(shè)置好截止時(shí)間以方便設(shè)置周期及后面的時(shí)延分析。然后按照“Processing/Simulator Tool/Functional”,然后在Simulator input中指定之前所保存的波形激勵(lì)文件,按照“Generate Functional Simulator Netlist”生成功能仿真網(wǎng)表文件,點(diǎn)擊“Start”進(jìn)行仿真計(jì)算,完成后點(diǎn)擊“Report”打開(kāi)仿真結(jié)果波形。仿真結(jié)果波形如下:

由上面的輸入輸出波形與真值表相比對(duì)輸出結(jié)果完全正確,功能驗(yàn)證完成。

  •      點(diǎn)擊“File”?“Create/Update”“Create Symbol File for Current File”菜單項(xiàng),將1位半加器封裝成元件。新建一個(gè)原理圖文件,調(diào)用2個(gè)半加器實(shí)現(xiàn)一個(gè)1位全加器,并用功能仿真進(jìn)行驗(yàn)證;

接著上面的功能仿真結(jié)束后,直接在當(dāng)前工程下按照“File/Create/Update/Create Symbol File for Current File”的順序?qū)⒁晃话爰悠鞣庋b成元件命名為“shiyan2yiweibanjiaqi”,封裝即完成.

設(shè)計(jì)方案:設(shè)計(jì)一個(gè)一位全加器需要三個(gè)輸入量,此處定義為A,B,C,其中A,B為加數(shù)與被加數(shù),C為輸入進(jìn)位量,輸出量為S與C0,S為和,C0為輸出進(jìn)位,先根據(jù)一位全加器的定義列出真值表如下表所示:

輸入量

輸出量

A

B

C

S

C0

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

根據(jù)以上真值表列出卡諾圖如下圖所示:

①對(duì)S:

BC

00

01

11

10

A

0

0

1

0

1

1

1

0

1

0


根據(jù)卡諾圖化簡(jiǎn)后所得的關(guān)于輸出量S的邏輯函數(shù)表達(dá)式為:S=A⊕B⊕C;

①對(duì)C0:

BC

00

01

11

10

A

0

0

0

1

0

1

0

1

1

1

根據(jù)卡諾圖化簡(jiǎn)后所得的關(guān)于輸出量C0的邏輯函數(shù)表達(dá)式為:C0=AB+AC;

由上面的邏輯函數(shù)表達(dá)式確定原理圖的繪制過(guò)程如下:然后按照之前建立原理圖的順序,即點(diǎn)擊File中的New項(xiàng),將出現(xiàn)新建文件對(duì)話(huà)框,選擇“Design File/Block Diagram/Schematic File”項(xiàng),點(diǎn)擊“OK”即可打開(kāi)”Block Editor”,雙擊原理圖空白部分,在name欄中搜索”yiweibanjiaqi”即可調(diào)出剛剛封裝的一位半加器元件,繼續(xù)搜索相應(yīng)的“output/input/7432(或門(mén))”,按照上述邏輯函數(shù)進(jìn)行原理圖的繪制,繪制后的原理圖如下所示:

首先點(diǎn)擊Project Navigator/files/Device Design Files,選中要編譯的“yiweibanjiaqi.bdf”文件,右鍵將其“Set as Top-level Entity”,先不分配管腳,下面建立輸入激勵(lì)波形文件,按照New/Verification/Debugging Files/Vector Waveform File建立文件后雙擊Name空白處,按照Insert Node or Bus/Node Finder/list/”>>”的順序,利用左圖的工具將激勵(lì)波形完成后將其“Save”到Project的文件夾中,注意在完善激勵(lì)波形的時(shí)候用Edit/End time.Grid size設(shè)置好截止時(shí)間以方便設(shè)置周期及后面的時(shí)延分析。然后按照“Processing/Simulator Tool/Functional”,然后在Simulator input中指定之前所保存的波形激勵(lì)文件,按照“Generate Functional Simulator Netlist”生成功能仿真網(wǎng)表文件,點(diǎn)擊“Start”進(jìn)行仿真計(jì)算,完成后點(diǎn)擊“Report”打開(kāi)仿真結(jié)果波形。仿真結(jié)果波形如下:

將仿真的結(jié)果波形與真值表相比較,結(jié)果一致,功能驗(yàn)證成功完成。

  •      將 1 位全加器封裝成元件,新建原理圖文件,調(diào)用 4 個(gè)全加器實(shí)現(xiàn)一個(gè) 4 位行波加法器,用功能仿真進(jìn) 行驗(yàn)證,用“Tools”“Netlist Viewers”“RTL Viewer”查看電路綜合結(jié)果;

接著上面的功能仿真結(jié)束后,直接在當(dāng)前工程下按照“File/Create/Update/Create Symbol File for Current File”的順序?qū)⒁晃蝗悠鞣庋b成元件命名為“yiweiquanjiaqi”,封裝即完成.

設(shè)計(jì)方案:設(shè)計(jì)一個(gè)四位行波加法器需要九個(gè)輸入量,用C-1,A3,A2,A1,A0,B3,B2,B1,B0來(lái)表示,其中C-1為低位位進(jìn)位,此處置零。設(shè)計(jì)行波加法器采用并行相加串行進(jìn)位的方式,低位全加器的進(jìn)位進(jìn)到高一位的加法器,由于四位行波加法器的情況較多,我們只從原理的角度進(jìn)行分析,此處不再列出真值表,根據(jù)四位行波加法器的工作原理可畫(huà)出下面的原理圖:

然后按照之前建立原理圖的順序,即點(diǎn)擊File中的New項(xiàng),將出現(xiàn)新建文件對(duì)話(huà)框,選擇“Design File/Block Diagram/Schematic File”項(xiàng),點(diǎn)擊“OK”即可打開(kāi)”Block Editor”,雙擊原理圖空白部分,在name欄中搜索”yiweiquanjiaqi”即可調(diào)出剛剛封裝的一位全加器元件,繼續(xù)搜索相應(yīng)的“output/input”,按照上述工作原理進(jìn)行原理圖的繪制,繪制后的原理圖如下所示:

建立保存原理圖之后,首先點(diǎn)擊Project Navigator/files/Device Design Files,選中要編譯的“yiweiquanjiaqi.bdf”文件,右鍵將其“Set as Top-level Entity”,先不分配管腳,下面建立輸入激勵(lì)波形文件,按照New/Verification/Debugging Files/Vector Waveform File建立文件后雙擊Name空白處,按照Insert Node or Bus/Node Finder/list/”>>”的順序,利用左圖的工具將激勵(lì)波形完成后將其“Save”到Project的文件夾中,注意在完善激勵(lì)波形的時(shí)候用Edit/End time.Grid size設(shè)置好截止時(shí)間以方便設(shè)置周期及后面的時(shí)延分析。然后按照“Processing/Simulator Tool/Functional”,然后在Simulator input中指定之前所保存的波形激勵(lì)文件,按照“Generate Functional Simulator Netlist”生成功能仿真網(wǎng)表文件,點(diǎn)擊“Start”進(jìn)行仿真計(jì)算,完成后點(diǎn)擊“Report”打開(kāi)仿真結(jié)果波形。仿真結(jié)果波形如下:

功能驗(yàn)證結(jié)果與邏輯值一致,功能驗(yàn)證完成。

接著按照題干要求提示查看電路綜合效果,結(jié)果如下:

  •      適配編譯,用“Tools”“Netlist Viewers”“Technology Map Viewer”查看電路 Map 結(jié)果;用 “Tools”?“Chip Planner”查看器件適配結(jié)果;

         按照題干查看電路Map結(jié)果,效果如下:

        按照題干查看器件適配結(jié)果,效果如下:

、

6.將 4 位全加器下載到實(shí)驗(yàn)箱,連接邏輯電平開(kāi)關(guān)進(jìn)行功能驗(yàn)證(課內(nèi)驗(yàn)收);

   硬木課堂上的FPGA為Cyclone Ⅳ,但是Quartus9.1版本的Device中最新版本FPGA只包含Cyclone Ⅲ,故將FPGA先與電腦連接然后打開(kāi)電腦設(shè)備管理器選擇“通用串行總線(xiàn)控制器”,選擇其中的“Altera USB-Blaster”,右鍵選擇“更新驅(qū)動(dòng)程序”,根據(jù)向?qū)c(diǎn)擊“瀏覽我的計(jì)算機(jī)以查找驅(qū)動(dòng)程序軟件”,找到Quartus安裝包中的”drivers”,勾選“包括子文件夾”進(jìn)行驅(qū)動(dòng)設(shè)備的更新即可。

新建project時(shí),在A(yíng)ssignment中選擇Device,選擇其中的Family下拉框,點(diǎn)擊“Cyclone Ⅳ E”,Available devices列表中選擇EP4CE6F17C7,點(diǎn)擊“OK”即可。按照FPGA上面的管腳參數(shù)給四位行波加法器分配引腳,將C-1引腳分配至KEY0處,其余用邏輯電平SW0~SW7控制輸入量,輸出利用LED0~LED4的亮與不亮來(lái)顯示輸出量,管腳分配完成后,點(diǎn)擊“Programmer”,添加硬件為USB-Blaster,點(diǎn)擊start,開(kāi)始邏輯電平的功能驗(yàn)證,已通過(guò)課內(nèi)驗(yàn)收。

  • 對(duì) 1 位半加器,進(jìn)行時(shí)序仿真,并做時(shí)延分析,可參考預(yù)備知識(shí)相關(guān)內(nèi)容;

     首先點(diǎn)擊Project Navigator/files/Device Design Files,選中要編譯的“yiweibanjiaqi.bdf”文件,右鍵將其“Set as Top-level Entity”,然后按照“Processing/Simulator Tool”進(jìn)入仿真頁(yè)面,Simulator mode下拉框中選擇“Timing”,激勵(lì)波形文件選擇之前建立的“shiyan2yiweibanjiaqi.vmf”文件,start之后選擇Report可以查看仿真結(jié)果波形。

在查看仿真結(jié)果波形之前,我們先查看電路的時(shí)延信息,時(shí)延信息如下表所示:

其中RR,RF,FR,FF分別表示輸入信息變化與輸出做出反應(yīng)之間的時(shí)間差,即時(shí)延,下面我們查看仿真結(jié)果波形,如下圖所示:

然后通過(guò)兩個(gè)TimeBar來(lái)確定時(shí)延信息,如圖中所示:當(dāng)B從0變成1時(shí),C也從0變成1,此時(shí)時(shí)間差為4.766ns,即為B對(duì)C的RR,與上表中比較誤差為4.766-4.759=0.007ns,誤差較小。同理可知,B對(duì)S的RF為4.67ns,與表中時(shí)延數(shù)據(jù)相差為0.014ns,誤差較小,B對(duì)S的RR=4.746ns,與表格中基本一致,說(shuō)明時(shí)間延遲與表中數(shù)據(jù)基本一致?芍苯影凑毡碇袝r(shí)延數(shù)據(jù)進(jìn)行電路的分析。

  • 對(duì) 1 位全加器,進(jìn)行時(shí)序仿真,并做時(shí)延分析,要求:a) 測(cè)量A第1~4個(gè)上升沿到對(duì)應(yīng)的的S輸出之間的延遲時(shí)間;b) 對(duì)輸出S的毛刺進(jìn)行測(cè)量和分析;c) 對(duì)輸出C的毛刺進(jìn)行測(cè)量和分析;d) 對(duì)測(cè)得的時(shí)延結(jié)果進(jìn)行分析。

時(shí)延信息如下表所示:

a

第一個(gè):時(shí)延9.569ns;

第二個(gè):時(shí)延9.57ns;

第三個(gè):時(shí)延9.569ns;

第四個(gè):時(shí)延 9.57ns;

b                                                                                                  

此處的輸出毛刺為1.531ns,此處ABC對(duì)應(yīng)的電平為110,S對(duì)應(yīng)的輸出應(yīng)當(dāng)為零,但是出現(xiàn)了短暫的毛刺,說(shuō)明此處存在由于電路延時(shí)而出現(xiàn)的競(jìng)爭(zhēng)冒險(xiǎn)情況。

  •   

  C0的輸出如圖所示,并未出現(xiàn)明顯的毛刺現(xiàn)象。

  •     電路中由于輸入與輸出之間的延時(shí)會(huì)導(dǎo)致電路出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn)情況,即在同一時(shí)刻,輸入與輸出的情況不對(duì)應(yīng),就會(huì)導(dǎo)致所設(shè)計(jì)的產(chǎn)品出現(xiàn)工作不穩(wěn)定的情況,可以通過(guò)邏輯函數(shù)的化簡(jiǎn)來(lái)消除競(jìng)爭(zhēng)冒險(xiǎn)情況。
  • 對(duì) 4 位全加器,進(jìn)行時(shí)序仿真,并做時(shí)延分析,要求: a) 測(cè)量 Cin=“0”,B=“0111”,A 從“0000”?“0001” 所對(duì)應(yīng)輸出 S3的時(shí)延; b) 測(cè)量 Cin=“0”,B=“0110”,A 從“0000”?“0010” 所對(duì)應(yīng)輸出 S3的時(shí)延; c) 測(cè)量 Cin=“0”,B=“0100”,A 從“0000”?“0100” 所對(duì)應(yīng)輸出 S3的時(shí)延; d) 測(cè)量 Cin=“0”,B=“0000”,A 從“0000”?“1000” 所對(duì)應(yīng)輸出 S3的時(shí)延; e) 測(cè)量 Cin=“1”,B=“0000”,A 從“0000”?“0111” 所對(duì)應(yīng)輸出 S3的時(shí)延; f) 測(cè)量 Cin=“0”,B=“1111”,A 從“0000”?“0001” 所對(duì)應(yīng)輸出 Cout的時(shí)延; g) 測(cè)量 Cin=“0”,B=“1110”,A 從“0000”?“0010” 所對(duì)應(yīng)輸出 Cout的時(shí)延; h) 測(cè)量 Cin=“0”,B=“1100”,A 從“0000”?“0100” 所對(duì)應(yīng)輸出 Cout的時(shí)延; i) 測(cè)量 Cin=“0”,B=“1000”,A 從“0000”?“1000” 所對(duì)應(yīng)輸出 Cout的時(shí)延; j) 測(cè)量 Cin=“1”,B=“1000”,A 從“0000”?“0111” 所對(duì)應(yīng)輸出 Cout的時(shí)延; k) 對(duì)測(cè)得的時(shí)延結(jié)果進(jìn)行分析
  •      

時(shí)延為10.785ns;

  •      

時(shí)延為10.354ns;

  •      

時(shí)延為9.491ns;

  •      

時(shí)延為8.8ns;

  •       

時(shí)延為10.526ns;

  •       

時(shí)延為10.526ns;

  •      

時(shí)延為10.008ns;

  •      

時(shí)延為9.146ns;

  •       

時(shí)延為8.628ns;

  •       

時(shí)延為10.354ns;


完整的Word格式文檔51黑下載地址:

大學(xué)時(shí)期的數(shù)電入門(mén)實(shí)驗(yàn).docx (365.78 KB, 下載次數(shù): 29)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:631994 發(fā)表于 2019-10-29 13:21 | 只看該作者
好東西,正好需要
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表