課程名稱:數(shù)字邏輯電路實驗A 第二次試驗 實驗名稱:可編程數(shù)字邏輯設(shè)計基礎(chǔ) 院系:電子科學(xué)與工程學(xué)院 專業(yè):電子科學(xué)與技術(shù)(類) 目的和要求: - 了解可編程數(shù)字系統(tǒng)設(shè)計的流程
- 掌握Quartus軟件的使用方法
- 掌握競爭和冒險的基本概念和電路的時延分析方法
實驗原理: - 觀察并記錄實驗箱上的FPGA型號,新建一個Project,器件選用實驗箱上的FPGA;
由于硬木課堂上的FPGA型號為”Cyclone Ⅳ”,而實驗所采用的版本Quartus9.1不支持此型號,所以在新建project時,在Assignment中選擇Device,選擇其中的Family下拉框,點擊“CycloneⅢ”,Available devices列表中選擇EP3C5E144C8,點擊“OK”即可。 - 用“AND2”和“XOR”器件設(shè)計一個1位半加器,并用功能仿真進行驗證;
設(shè)計方案:①AND2為一個二輸入與門,XOR為二輸入異或門,因為一位半加器無進位輸入量,所以設(shè)輸入變量為A與B,輸出變量為S和C,S為結(jié)果,C為進位輸出量。 ②根據(jù)一位半加器的要求列出真值表如下表所示: ③因為輸入量個數(shù)較少,直接根據(jù)真值表可得S=A’B+AB’,即為A與B的異或; C=AB,所以據(jù)此得到此二輸出的邏輯函數(shù):S=A’B+AB’,C=AB; ④點擊File中的New項,將出現(xiàn)新建文件對話框,選擇“Design File/Block Diagram/Schematic File”項,點擊“OK”即可打開”Block Editor”,雙擊原理圖空白部分,在name欄中分別搜索imput,output,XOR和AND2得到所需元件,然后利用左側(cè)繪圖工具建立原理圖,保存在Project的相同文件夾中。如下圖所示: 
⑤功能驗證: 首先點擊Project Navigator/files/Device Design Files,選中要編譯的“yiweibanjiaqi.bdf”文件,右鍵將其“Set as Top-level Entity”,先不分配管腳,下面建立輸入激勵波形文件,按照New/Verification/Debugging Files/Vector Waveform File建立文件后雙擊Name空白處,按照Insert Node or Bus/Node Finder/list/”>>”的順序,利用左圖的工具將激勵波形完成后將其“Save”到Project的文件夾中,注意在完善激勵波形的時候用Edit/End time.Grid size設(shè)置好截止時間以方便設(shè)置周期及后面的時延分析。然后按照“Processing/Simulator Tool/Functional”,然后在Simulator input中指定之前所保存的波形激勵文件,按照“Generate Functional Simulator Netlist”生成功能仿真網(wǎng)表文件,點擊“Start”進行仿真計算,完成后點擊“Report”打開仿真結(jié)果波形。仿真結(jié)果波形如下: 
由上面的輸入輸出波形與真值表相比對輸出結(jié)果完全正確,功能驗證完成。 - 點擊“File”?“Create/Update”“Create Symbol File for Current File”菜單項,將1位半加器封裝成元件。新建一個原理圖文件,調(diào)用2個半加器實現(xiàn)一個1位全加器,并用功能仿真進行驗證;
接著上面的功能仿真結(jié)束后,直接在當(dāng)前工程下按照“File/Create/Update/Create Symbol File for Current File”的順序?qū)⒁晃话爰悠鞣庋b成元件命名為“shiyan2yiweibanjiaqi”,封裝即完成. 設(shè)計方案:設(shè)計一個一位全加器需要三個輸入量,此處定義為A,B,C,其中A,B為加數(shù)與被加數(shù),C為輸入進位量,輸出量為S與C0,S為和,C0為輸出進位,先根據(jù)一位全加器的定義列出真值表如下表所示: 根據(jù)以上真值表列出卡諾圖如下圖所示: ①對S:
根據(jù)卡諾圖化簡后所得的關(guān)于輸出量S的邏輯函數(shù)表達式為:S=A⊕B⊕C; ①對C0: 根據(jù)卡諾圖化簡后所得的關(guān)于輸出量C0的邏輯函數(shù)表達式為:C0=AB+AC; 由上面的邏輯函數(shù)表達式確定原理圖的繪制過程如下:然后按照之前建立原理圖的順序,即點擊File中的New項,將出現(xiàn)新建文件對話框,選擇“Design File/Block Diagram/Schematic File”項,點擊“OK”即可打開”Block Editor”,雙擊原理圖空白部分,在name欄中搜索”yiweibanjiaqi”即可調(diào)出剛剛封裝的一位半加器元件,繼續(xù)搜索相應(yīng)的“output/input/7432(或門)”,按照上述邏輯函數(shù)進行原理圖的繪制,繪制后的原理圖如下所示: 
首先點擊Project Navigator/files/Device Design Files,選中要編譯的“yiweibanjiaqi.bdf”文件,右鍵將其“Set as Top-level Entity”,先不分配管腳,下面建立輸入激勵波形文件,按照New/Verification/Debugging Files/Vector Waveform File建立文件后雙擊Name空白處,按照Insert Node or Bus/Node Finder/list/”>>”的順序,利用左圖的工具將激勵波形完成后將其“Save”到Project的文件夾中,注意在完善激勵波形的時候用Edit/End time.Grid size設(shè)置好截止時間以方便設(shè)置周期及后面的時延分析。然后按照“Processing/Simulator Tool/Functional”,然后在Simulator input中指定之前所保存的波形激勵文件,按照“Generate Functional Simulator Netlist”生成功能仿真網(wǎng)表文件,點擊“Start”進行仿真計算,完成后點擊“Report”打開仿真結(jié)果波形。仿真結(jié)果波形如下: 
將仿真的結(jié)果波形與真值表相比較,結(jié)果一致,功能驗證成功完成。 - 將 1 位全加器封裝成元件,新建原理圖文件,調(diào)用 4 個全加器實現(xiàn)一個 4 位行波加法器,用功能仿真進 行驗證,用“Tools”“Netlist Viewers”“RTL Viewer”查看電路綜合結(jié)果;
接著上面的功能仿真結(jié)束后,直接在當(dāng)前工程下按照“File/Create/Update/Create Symbol File for Current File”的順序?qū)⒁晃蝗悠鞣庋b成元件命名為“yiweiquanjiaqi”,封裝即完成. 設(shè)計方案:設(shè)計一個四位行波加法器需要九個輸入量,用C-1,A3,A2,A1,A0,B3,B2,B1,B0來表示,其中C-1為低位位進位,此處置零。設(shè)計行波加法器采用并行相加串行進位的方式,低位全加器的進位進到高一位的加法器,由于四位行波加法器的情況較多,我們只從原理的角度進行分析,此處不再列出真值表,根據(jù)四位行波加法器的工作原理可畫出下面的原理圖: 然后按照之前建立原理圖的順序,即點擊File中的New項,將出現(xiàn)新建文件對話框,選擇“Design File/Block Diagram/Schematic File”項,點擊“OK”即可打開”Block Editor”,雙擊原理圖空白部分,在name欄中搜索”yiweiquanjiaqi”即可調(diào)出剛剛封裝的一位全加器元件,繼續(xù)搜索相應(yīng)的“output/input”,按照上述工作原理進行原理圖的繪制,繪制后的原理圖如下所示: 
建立保存原理圖之后,首先點擊Project Navigator/files/Device Design Files,選中要編譯的“yiweiquanjiaqi.bdf”文件,右鍵將其“Set as Top-level Entity”,先不分配管腳,下面建立輸入激勵波形文件,按照New/Verification/Debugging Files/Vector Waveform File建立文件后雙擊Name空白處,按照Insert Node or Bus/Node Finder/list/”>>”的順序,利用左圖的工具將激勵波形完成后將其“Save”到Project的文件夾中,注意在完善激勵波形的時候用Edit/End time.Grid size設(shè)置好截止時間以方便設(shè)置周期及后面的時延分析。然后按照“Processing/Simulator Tool/Functional”,然后在Simulator input中指定之前所保存的波形激勵文件,按照“Generate Functional Simulator Netlist”生成功能仿真網(wǎng)表文件,點擊“Start”進行仿真計算,完成后點擊“Report”打開仿真結(jié)果波形。仿真結(jié)果波形如下: 
功能驗證結(jié)果與邏輯值一致,功能驗證完成。 接著按照題干要求提示查看電路綜合效果,結(jié)果如下: 
- 適配編譯,用“Tools”“Netlist Viewers”“Technology Map Viewer”查看電路 Map 結(jié)果;用 “Tools”?“Chip Planner”查看器件適配結(jié)果;
按照題干查看電路Map結(jié)果,效果如下: 
按照題干查看器件適配結(jié)果,效果如下: 、 6.將 4 位全加器下載到實驗箱,連接邏輯電平開關(guān)進行功能驗證(課內(nèi)驗收); 硬木課堂上的FPGA為Cyclone Ⅳ,但是Quartus9.1版本的Device中最新版本FPGA只包含Cyclone Ⅲ,故將FPGA先與電腦連接然后打開電腦設(shè)備管理器選擇“通用串行總線控制器”,選擇其中的“Altera USB-Blaster”,右鍵選擇“更新驅(qū)動程序”,根據(jù)向?qū)c擊“瀏覽我的計算機以查找驅(qū)動程序軟件”,找到Quartus安裝包中的”drivers”,勾選“包括子文件夾”進行驅(qū)動設(shè)備的更新即可。 新建project時,在Assignment中選擇Device,選擇其中的Family下拉框,點擊“Cyclone Ⅳ E”,Available devices列表中選擇EP4CE6F17C7,點擊“OK”即可。按照FPGA上面的管腳參數(shù)給四位行波加法器分配引腳,將C-1引腳分配至KEY0處,其余用邏輯電平SW0~SW7控制輸入量,輸出利用LED0~LED4的亮與不亮來顯示輸出量,管腳分配完成后,點擊“Programmer”,添加硬件為USB-Blaster,點擊start,開始邏輯電平的功能驗證,已通過課內(nèi)驗收。 - 對 1 位半加器,進行時序仿真,并做時延分析,可參考預(yù)備知識相關(guān)內(nèi)容;
首先點擊Project Navigator/files/Device Design Files,選中要編譯的“yiweibanjiaqi.bdf”文件,右鍵將其“Set as Top-level Entity”,然后按照“Processing/Simulator Tool”進入仿真頁面,Simulator mode下拉框中選擇“Timing”,激勵波形文件選擇之前建立的“shiyan2yiweibanjiaqi.vmf”文件,start之后選擇Report可以查看仿真結(jié)果波形。 在查看仿真結(jié)果波形之前,我們先查看電路的時延信息,時延信息如下表所示: 
其中RR,RF,FR,FF分別表示輸入信息變化與輸出做出反應(yīng)之間的時間差,即時延,下面我們查看仿真結(jié)果波形,如下圖所示: 


然后通過兩個TimeBar來確定時延信息,如圖中所示:當(dāng)B從0變成1時,C也從0變成1,此時時間差為4.766ns,即為B對C的RR,與上表中比較誤差為4.766-4.759=0.007ns,誤差較小。同理可知,B對S的RF為4.67ns,與表中時延數(shù)據(jù)相差為0.014ns,誤差較小,B對S的RR=4.746ns,與表格中基本一致,說明時間延遲與表中數(shù)據(jù)基本一致。可直接按照表中時延數(shù)據(jù)進行電路的分析。 - 對 1 位全加器,進行時序仿真,并做時延分析,要求:a) 測量A第1~4個上升沿到對應(yīng)的的S輸出之間的延遲時間;b) 對輸出S的毛刺進行測量和分析;c) 對輸出C的毛刺進行測量和分析;d) 對測得的時延結(jié)果進行分析。
時延信息如下表所示: a 第一個:時延9.569ns; 
第二個:時延9.57ns; 
第三個:時延9.569ns; 第四個:時延 9.57ns;

b 
此處的輸出毛刺為1.531ns,此處ABC對應(yīng)的電平為110,S對應(yīng)的輸出應(yīng)當(dāng)為零,但是出現(xiàn)了短暫的毛刺,說明此處存在由于電路延時而出現(xiàn)的競爭冒險情況。 C0的輸出如圖所示,并未出現(xiàn)明顯的毛刺現(xiàn)象。 - 電路中由于輸入與輸出之間的延時會導(dǎo)致電路出現(xiàn)競爭冒險情況,即在同一時刻,輸入與輸出的情況不對應(yīng),就會導(dǎo)致所設(shè)計的產(chǎn)品出現(xiàn)工作不穩(wěn)定的情況,可以通過邏輯函數(shù)的化簡來消除競爭冒險情況。
- 對 4 位全加器,進行時序仿真,并做時延分析,要求: a) 測量 Cin=“0”,B=“0111”,A 從“0000”?“0001” 所對應(yīng)輸出 S3的時延; b) 測量 Cin=“0”,B=“0110”,A 從“0000”?“0010” 所對應(yīng)輸出 S3的時延; c) 測量 Cin=“0”,B=“0100”,A 從“0000”?“0100” 所對應(yīng)輸出 S3的時延; d) 測量 Cin=“0”,B=“0000”,A 從“0000”?“1000” 所對應(yīng)輸出 S3的時延; e) 測量 Cin=“1”,B=“0000”,A 從“0000”?“0111” 所對應(yīng)輸出 S3的時延; f) 測量 Cin=“0”,B=“1111”,A 從“0000”?“0001” 所對應(yīng)輸出 Cout的時延; g) 測量 Cin=“0”,B=“1110”,A 從“0000”?“0010” 所對應(yīng)輸出 Cout的時延; h) 測量 Cin=“0”,B=“1100”,A 從“0000”?“0100” 所對應(yīng)輸出 Cout的時延; i) 測量 Cin=“0”,B=“1000”,A 從“0000”?“1000” 所對應(yīng)輸出 Cout的時延; j) 測量 Cin=“1”,B=“1000”,A 從“0000”?“0111” 所對應(yīng)輸出 Cout的時延; k) 對測得的時延結(jié)果進行分析
時延為10.785ns; 時延為10.354ns; 時延為9.491ns; 時延為8.8ns; 時延為10.526ns; 時延為10.526ns; 時延為10.008ns; 時延為9.146ns; 時延為8.628ns; 時延為10.354ns;
完整的Word格式文檔51黑下載地址:
大學(xué)時期的數(shù)電入門實驗.docx
(365.78 KB, 下載次數(shù): 29)
2019-9-15 20:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|