• 沒有找到結果。

利用Altera UP1實作#字遊戲

N/A
N/A
Protected

Academic year: 2021

Share "利用Altera UP1實作#字遊戲"

Copied!
42
0
0

加載中.... (立即查看全文)

全文

(1)

逢 甲 大 學

資 訊 工 程 學 系 專 題 報 告

利用Altera UP1實作井字遊戲

生: 洪 英 富 (四乙)

林 聖 源 (四乙)

授:陳 德 生 先生

中華民國九一年十二月

(2)

資 逢 訊 工 甲 程 大 學 系 學 專 題 報 告 利 實 用 作 A 井 L 字 T 遊 E 戲 R A U P 1

(3)

目 錄

Chapter 1 研究動機與目的...4 Chapter 2 軟體與硬體介紹...5 Ch2.1 Maxplus 介紹 ...5 Ch2.2 VHDL 介紹...10 Ch2.3 VHDL 的優點 ...12 Ch2.4 VHLD 的設計觀念 ...15 Ch2.5 UP1 之簡介...19 Chapter 3 程式原則說明...24 Ch3.1 遊戲內容...24 Ch3.2 電腦如何下棋...25 Ch3.3 主程式與 COMPONENT...26 Ch3.4 主要運作過程...29

(4)

Ch3.5 如何玩遊戲...30 Ch3.6 PIN 腳圖...31 Chapter 4 經歷困難...32 Chapter 5 實作程式操作結果...33 Chapter 6 未來發展...38 Chapter 7 心得...39 參考資料...40

(5)

圖 表 目 錄

(圖一)maxplus 的程式執行環境...7 (圖二)maxplus 的功能集(一)...8 (圖三)maxplus 的功能集(二) ...8 (圖四)maxplus 的功能集(三) ...9 (圖五)maxplus 的功能集(四) ...9 (圖六)慣性時間延遲模型的示意圖...14 (圖七)傳遞時間延遲模型的示意圖...14 (圖八)VHDL 程式的構成情形...18 (圖九)UP1 板與 PC 連接之情形...19 (圖十)UP1 板的外觀 ...20 (圖十一)UP1 pin 值設定表...21 (圖十二)GAME 的輸入輸出訊號...26 (圖十三)GETMOVE 的輸入輸出訊號線...27 (圖十四)KEYBOARD 輸入輸出訊號...28 (圖十五)VAG_SYNC 輸出輸入訊號圖...28

(6)

Chapter 1 研究動機與目的

從大一開始接觸資訊相關的學問,所學的東西分布各個層面,因

為學程的關係,從大二上學期開始所選修的課程大多屬硬體方面的課

程,漸漸對於硬體方面也多了一份興趣與喜好,加上導師的影響,故

(7)

Chapter 2 軟體與硬體介紹

Ch2.1 Maxplus 介紹

Maxplus 軟體是由可程式邏輯元件(Programmable Logic Device)提

供廠商 Altera Inc.所提供的設計、驗證與燒錄的軟體。 Maxplus 軟體所支援的功能選項,我們簡略的說明如下: 1.Hierarchy Display : 用來顯示一個大型電路設計的階層話結構。 (Hierarchy Structure) 2.Graphic Editor : 這是用來提供電路圖輸入的介面。使用者可 利用此圖型編輯器,利用繪製電路圖 (schematics)的方法,來作為電路功能的設計 輸入(design entry)。 3.Symbol Editor : 再利用電路圖的方法來當作電路的設計輸入 時,要用一些符號(symbols)來代表一些合成 一組的電路功能。Symbol editor 即是用來編 輯電路熟上的元件符號。 4.Text Editor : 為 maxplus 所內建的文字編輯器,其可用來

(8)

當作 VHDL 語言的輸入。 5.Waveform Editor : 用來編輯訊號的波形圖可分成兩種。一種是 用來模擬電路時序及驗證騎正確的波形模 擬,另一種視為用輸入訊號波形相對關係當 作電路功能的設計輸入。 6.Floorplan Editor : 用來直接在 FPGA 或 PLD 的佈局圖上編輯 cell 的功能連線關係。 7.Compiler : 此為電路功能的編輯器,用來將設計輸入, 經過編譯後,產生實際電路能燒錄程式檔。 8.Simulator : 此為訊號波形的模擬器,用來分析訊號時序 邏輯的正確性。 9.Timing Analyzer : 用來分析電路元件的輸出入接腳的時序延遲 的狀況。 10.Programmer : 此為 maxplus 所提供的邏輯元件燒錄氣,可

支援 Altera 提供的 Byte Blaster 漢 Bit Blaster

(9)

11.Message Processor : 此為程式的編輯過程或訊息波形的模擬過程 中所產生的一些訊息,如 errors、warning…等 的訊息的處理器,其可以將這些訊息所設計 的電路或訊號做一連結。 (圖一)maxplus 的程式執行環境

(10)

(圖二)maxplus 的功能集(一)

(11)

(圖四)maxplus 的功能集(三)

(12)

Ch2.2 VHDL 介紹

VHDL 電路設計語言,國際電機電子協會,將其納入 IEEE 的標

準之後,以廣為電子電路設計工程師所採用,目前歐體國家在電路描

述語言方面,以統一為 VHDL 電路設計語言,而在美國方面個大廠

商也用 VHDL 作為設計語言,可見其必為未來的趨勢。

VHDL(Very Speed Integrated Circuit Hardware Description)。VHDL

電路設計語言規範的目的,即是提供一個高階且快速的設計工具,它 涵蓋了電路的描述,電路之合成與電路之模擬等三大電路設計工作。 今天,VHDL 電路設計語言的市場,以每年 30%的比例在成長,而 VHDL 快速成長的,除了靠半導體的製程技術的快速進步外,VHDL 所能提供的高階電路描述語言方式,使得複雜的電路可以透過 VHDL 編譯器的電路合成方式,輕易且快速的達成設計的規格。 於 1970 年到 1980 年間﹐美國國防部為了電子電路的設計意涵﹐ 以文件方式將其儲存起來﹐以便其他人能輕易了解電路設計的意義﹐ 此為 VHDL 電路設計孕育的由來。 由於 VHDL 電路設計語言所能涵蓋的範圍相當廣﹐它能適應個種

(13)

不同階層的設計工程師需求﹐從 ASIC 的設計到 PCB 系統的設計﹐

VHDL 電路描述語言﹐均能派上用場。所以 VHDL 電路設計語言實

(14)

Ch2.3 VHDL 的優點

VHDL 電路設計語言﹐其高階的行為電路描述方式﹐使得以前需 要數個月才能完成的電路圖設計方式能在幾天之內完成﹐而且在今天 產品的更換速度的快速﹐VHDL 可以說是符合市場的需求﹐所以我們 對 VHDL 的優點來做個說明:

1. 功能強大:

它包含了電路描述﹐電路合成與電路模擬等功能﹐它 來自 ASIC 設計到電路板設計﹐甚或大型系統之設計 VHDL 電路設計語言均能派上用場。

2. 設計靈活:

它將電子電路的設計方式改變成以行為化描述的方 式來設計﹐因此具有設計快速、更改容易、犯錯機率 低和除錯容易等優點。

3. 個種不同的優點描述風格:

VHDL 提供許多不同的描述風格﹐來適應大小﹐複雜 性不同的電路設計。

(15)

4. 可流通性或可攜性:

因為 VHDL 是一種工業界標準的電路設計語言﹐它所

提供的可攜性能力﹐可以使你的設計利用不同編輯軟

體來編輯﹐可以利用不同模擬器來模擬以及適用於任

(16)

Ch2.3 語言中的電路時間延遲因素

在 VHDL 語言中用來描述元件時間延遲的模型﹐共可以分為二類﹐

一為慣性延遲(inertia delay) ﹐二為傳遞延遲(transport delay),

慣性時間延遲模型為 VHDL 語言中內定的時間延遲模型﹐因為大部分

的物理元件而言﹐慣性時間延遲模型叫能符合實際元件的操作情形。

(圖六)上圖為慣性時間延遲模型的示意圖

(17)

Ch2.4 VHLD 的設計觀念

VHDL 電路設計語言提供一個用來描述電路特性與行為的工業標 準語言,VHDL 語言提供了從摘要事的電路描述到具體細節的電路描 述風格,VHDL 語言的標準描述方式,以廣被各種電腦輔助的電子電 路設計工具所採用,包含電路模擬工具,電路合法工具,以及電路佈 局工具等,我們先對 VHDL 中的一些重要詞彙做一個具體的說明與 解釋。 • 單體(entity): 單體是一個設計中最基本的一部份,也是不可缺少的 一部份,在單體這一部份中,通常描述電路設計中的 輸出、輸入訊號的宣告。 • 架構(architecture): 架構是描述電路行為特性的主要部分,如以電路圖的 設計方法來說,架構的部分相當於電路圖設計的 schematics,用來描述個元件相互連結情形

(18)

• 套件(package): 在 VHDL 語言的設計中,我們可以將一些次程式、程 式及一些常用的的資料型態,放在一個 Package 中, 如此則此套件及形成了一個工具箱,如果再設計中有 應用到套件中的程式時,只要將此套件的名稱寫在程 式最開頭的部分,則在程式的每一個角落裡都可以用 到此套件中所定義的物件。 • 屬性(attribute): 在 VHDL 語言中,用來描述個種資料物件的特性,舊 稱為該資料物件的屬性。 • Generic: 照英文上來翻譯的話應該是遺傳學的意思,但在 VHDL 的語法上時,則用來傳遞一些特性參數給單體

電路來使用,例如我們可以將 NAND Gate 的 rise time

與 fall time 宣告為 NAND 電路單體的 Generic,如此

當我們在使用 NAND 這一個模組時,及可以隨時來

(19)

• 資料型態(Data Type): 在 VHDL 語言中所使用的任何的資料物件均要定義 其資料型態,才方可使用,各個資料物件的資料型別 也需要相容,如此才合乎 VHDL 的語法。 • 次程式(sub-program): 在 VHDL 中,共有兩種次程式來使主程式的結構更加 的簡潔清楚,它們是函式(function)與程式(procedure) 函式使用在其只有一個變數時,而程式則無此限制。 • 處理(process): process 為 VHDL 中用來描述形位化電路最基本的單 元,而在 process 內所寫的 VHDL 程式,是有先後次 序關係的,是 sequential statements。 • 構形(configuration): 可以容許一個單體電路內能有一個以上的架構,程式 設計者可以使用 configuration 指令來說明該單體的構 造情形。

(20)

以下我們用一個簡單的圖形表示法說明 VHDL 程式的構成。

(21)

Ch2.5 UP1 之簡介

Altera University Program 1(UP1) ,這塊板子包含 MAXEPM7128S

和 FLEXEPF10K20,兩者都可以被 JTAGByteBlaster 程式化,利用個人

電腦中的印表機 port 來連接,並在 UP1 可利用 jumpers 來選擇晶片。

(圖九)UP1 板與 PC 連接之情形

MAXEPM7128S 包含 2500gates,p-term 以 CPLD 為基礎,位在 UP1

的左方, FLEXEPF10K20 包含 2500gates,sram 以 CPLD 為基礎,位

(22)

(圖十)UP1 板的外觀

其可以接受的 DC 電流範圍是 7 至 DC,上面三個 LED(發光二極

體)中的其中一顆,在接妥電流後會自動亮起,可以用來判斷電源是

否有接上,另外 UP1 有內建的時脈 25.175MHK。

在寫完 VHDL code 後,利用 maxplus 編譯檢查無誤後,會多出一

個.sof 檔,它就是要燒入 UP1 的檔案,把 UP1 與電腦接好後,並設定

每一個 port number,可參考 UP1 所附的說明書,即可藉由螢幕看到所

(23)
(24)
(25)
(26)

Chapter 3 程式原則說明

Ch3.1 遊戲內容

再一個九乘九的方格內若同一顏色的連續三個方格呈直列,行列

或對角線排列則此種顏色的玩家勝利且遊戲結束。玩家分為挑戰者

(27)

Ch3.2 電腦如何下棋

(1) 電腦會先判斷自己是否已有贏的機會,也就是還差一個鍵就可 以連成一條線。 (2) 判斷對方(挑戰者)是否有贏的機會。 (3) 如果以上的條件都沒有成立則電腦會先從中間的鍵開始下再來 左上,右上,左下,右下,最上面中間,左邊中間,右邊中間, 最下面中間。

(28)

Ch3.3 主程式與 COMPONENT

GAME:為整各遊戲的主體,包括從鍵盤接收案鍵訊號,電腦下棋的

判斷以及秀在螢幕上面的圖形等。內部有三個

COMPONENT:GETMOVE ,keyboard ,vga_sync。

(圖十二)GAME 的輸入輸出訊號

GETMOVE:電腦要下哪一步棋,內部有兩個 COMPONENT

(29)

(圖十三)GETMOVE 的輸入輸出訊號線 I.COMPONENT “a”: 判斷是否有兩個顏色相同的棋子連續排列在一起。 II.COMPONENT “PICK”: 若 PICK 的 WINMV 有值進入代表電腦差一步棋就可以 連成一條線那麼電腦便會下那一步棋,若 BLKMV 有值 進入代表玩家差一步棋就可以連成一條線此時電腦便 會封阻玩家,若 WINMV BLKMV 都沒有值進入那麼電 腦便會從中間,左上,右上,左下,右下,左中,右中, 上中,下中依序下棋。

(30)

keyobard:從鍵盤擷取按鍵資料。

(圖十四)KEYBOARD 輸入輸出訊號

vag-sync: 計算目前螢幕掃到哪一個 pixel 並且發出水平與垂直的

同步訊號。

(31)

Ch3.4 主要運作過程

(1) move_X,move_X1:紀錄電腦所下過棋子的位置共九個

BIT。

(32)

Ch3.5 如何玩遊戲

(1) 鍵盤上右邊的數字件分別代表棋盤上的九個格子而鍵盤上第二 行的第二個鍵(數字鍵 1),UP1 板子上的指撥開關分別有 RESET,START。 (2) 遊戲一開始先選擇由哪一方先開始下棋,由數字鍵 1 判斷,若 此鍵按下則由玩家開始下,若要由電腦先下則可以不要按,當 選則完畢後按下 START 鍵開始遊戲,若有一方勝利螢幕上便會 秀出勝方棋子顏色的英文字 WIN,所以由 WIN 所顯示出的顏 色便可以知道那一方勝利。 (3) 當遊戲結束後若想再繼續玩可按 RESET 鍵並在選擇那一方先 下再按 START 鍵從新開始遊戲。

(33)

Ch3.6 PIN 腳圖

訊號名稱 型態 PIN 腳 keyboard_in IN 31 keyboard_clk IN 30 clock_25Mhz IN 91 red IN 35 blue IN 33 green IN 34 reset IN 36 start IN 38 horiz_sync_out OUT 240 vert_sync_out OUT 239 red_out OUT 236 blud_out OUT 238 green_out OUT 237

(34)

Chapter 4 經歷困難

整各程式的編寫上最常發生的錯誤是按鍵同時亮好幾個鍵要不 然就同時亮,最後發現問題是發生在訊號沒有同步,按鍵的訊號共有 八個 BIT,當訊號傳遞給主程式時八個訊號並不是同時被主程式給接 收因為會有電路延遲所以會造成資料的不正確性,所以當有一組多個 訊號在傳遞時要特別注意資料接收得正確性,此外當有訊號要改變時 必須確定此訊號已經是穩定的狀態,要不然也會得到錯誤的值。

(35)

Chapter 5 實作程式操作結果

(36)

電腦勝利之結果!

(37)
(38)
(39)

Draw 後的情形

PS: 因為此遊戲電腦人工智慧部分較為簡易,因為井字遊戲所遇到的

所有情形並不多,故於操作遊戲時,結果只有電腦 win 與 draw

(40)

Chapter 6 未來發展

此井字遊戲以解決輸入及輸出的問題,經由鍵盤作為輸入控制, 透過 UP1 板讓輸出顯示在螢幕上,並且有寫到了電腦判斷下棋的部分 能力,因此可藉此專題研究的結果作為基礎續而發展較複雜的五子棋 遊戲,特別要注意且必須克服的困難將是電腦下棋的能力以及最後判 斷玩家或電腦輸贏的條件。

(41)

Chapter 7 心 得

這次的專題研究使我們更認識 VHDL 語言,並且在硬體實作上更

有經驗,但是最難得的應該是在做專題的過程中,對於工作分工的重

要性以及團隊的精神,並且對於工作具有相當的責任感,使我們收穫

(42)

參考資料

James O.Hamblen & Michael D. Furman

參考文獻

相關文件

Windows/ Linux/ Mac 各種平台的開發套件,使我們能夠透過各種平台來開發 Android 軟體,所有的 Android 應用程式都是使用 Java

Hanning Window 可用來緩和輸入訊號兩端之振幅,以便使得訊號呈現 週期函數的形式。Hanning Window

為主要的積體電路單元元件,此元件同時利用電子與電洞兩種載子,來進行電流的傳

在軟體的使用方面,使用 Simulink 來進行。Simulink 是一種分析與模擬動態

我們分別以兩種不同作法來進行模擬,再將模擬結果分別以圖 3.11 與圖 3.12 來 表示,其中,圖 3.11 之模擬結果是按照 IEEE 802.11a 中正交分頻多工符碼(OFDM symbol)的安排,以

而在利用 Autocloning 的方法,製作成金字塔形狀的抗反射 結構方面。分成非次波長結構和次波長結構來加以討論。在非次波長 結構時,我們使用

圖 2-13 顯示本天線反射損耗 Return Loss 的實際測量與模擬圖,使用安捷倫公司 E5071B 網路分析儀來測量。因為模擬時並無加入 SMA

如圖 3.2-1 所示,左邊 port 為 Input 訊號,右邊六個 port 為 Output 訊號。若訊號 要由 Output1 當作輸出時,SW1、SW2、SW5 的 Switch 必頇讓路徑導通,而第三級