You are on page 1of 8

電路學實驗報告

Hardware Description Language – Verilog

學號&姓名:
B12901032 廖育陞
B12901043 楊承燁
B12901142 吳秉宸
B12901183 冀廷威

一、 實驗結果
本次實驗使用之 FPGA 開發板為基於 Xilinx Artix-7 系列的 EGO1。

詳細的操作於課堂提供之簡報有說明,就不在此贅述。
Lab 2:Introduction to Verilog/Testbench
P1. Boolean expression of FA
cout :a∗b+ a∗cin+b∗cin
ab 00 01 11 10
cin
0 0 0 1 0
1 0 1 1 1
∑ : a ⊕ b ⊕ cin
ab 00 01 11 10
cin
0 0 1 0 1
1 1 0 1 0

P2. Circuit diagram of FA

P3. Implement a one-bit FA


原理:透過宣告 Input / Output 腳位和
各邏輯閘之間的 Wire,再透過上方的
KMAP 化簡 1bit FA 的邏輯閘後進行連
接以完成此模組之設計。

P4. Plot waveform of your design

a: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1

(a 的部分只截圖到底部的部分,故用白字註記在上方)
P5. Implement a 4-bit ripple carry adder
原理:透過導入上述模組並宣告 Input / Output 腳位陣列和各 1bit-FA 模組
之間的 Wire,以達成 4-bit FA 的設計。
結果:透過開關 FPGA 版上的下排開關,模擬各輸入針腳的電位高低,FA
加總後的結果會透過中間的顯示器以 16 進制的數字顯示出來。

Lab 3:Timer
原理:透過設計一個 25-bit DFF 儲存經過的時鐘週期(25MHz clk 信號),若
週期未滿時增加 25-bit DFF 之數值,反之等到經過完整一秒的週期後,將 25-bit
DFF 清空,並對 4-bit DFF 內儲存之秒數進行操作,將原先儲存之秒數減 1。 最
後結果透過顯示器顯示出來目前剩餘秒數。
結果:透過 FPGA 版上之 button 設定(set)與清空(rst)倒數計時前之設定秒數,
並透過按鈕觸發開始計時(開始計算 clock cycle),並將 FPGA 板計算之當前秒數
回傳至顯示器,完成計時器之功能。

二、 實驗心得
本次實驗使用 Verilog 程式語言做出 1-bit 和 4-bit Full Adder,以及一個計時
器 Timer,將上學期在交換電路課程中所學,和程式與 FPGA 開發板結合,並將
結果顯示在 FPGA 上。在實驗過程中感到新鮮的是,相較於之前使用的 Quartus
Lab 是透過拖移 gate 和線路來完成電路設計,Verilog 需要先宣告每個 gate 和線
路並加以配對連接,和以前圖像化的設計方式差異甚大;實驗中加上了 FPGA
的連接,讓我們除了能用 waveform 來驗證程式正確與否外,也能親手用 FPGA
上的按鈕和開關來測試程式。雖然過程中有遇到程式無法執行的小插曲(換另一
台電腦操作之後就沒問題了),但能有明確的操作說明來帶著我們了解 Verilog,
並促使我們將上學期所學的交換電路學以致用,我們一致認為這次實驗實屬難
得,且收穫滿滿。

You might also like