專題初稿605.doc



Similar documents
6-1-1極限的概念

Microsoft Word doc

Microsoft Word - 第四章.doc

所 3 學 分 課 程, 及 兩 門 跨 領 域 課 程 共 6 學 分 以 上 課 程 學 生 在 修 課 前, 必 須 填 寫 課 程 修 課 認 定 表, 經 班 主 任 或 指 導 教 授 簽 名 後 始 認 定 此 課 程 學 分 ) 10. 本 規 章 未 盡 事 宜, 悉 依 學 位

證 券 簡 易 下 單 :2121 證 券 簡 易 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 點 擊 主 選 單 證 券 專 區 下 單 特 殊 下 單 2121 證 券 簡 易 下 單 畫 面 說 明 1. 下 單 區 2. 個 股 行 情 資 訊 與

第 6. 節 不 定 積 分 的 基 本 公 式 我 們 可 以 把 已 經 知 道 反 導 函 數 之 所 有 函 數 都 視 為 不 定 積 分 的 基 本 公 式 基 本 公 式 涵 蓋 的 範 圍 愈 大, 我 們 求 解 積 分 就 愈 容 易, 但 有 記 憶 不 易 的 情 事 研 讀

Microsoft Word - ch07

章節

目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 查 詢 股

授 課 老 師 章 節 第 一 章 教 學 教 具 間 3 分 鐘 粉 筆 CNC 銑 床 教 學 內 容 CNC 銑 床 之 基 本 操 作 教 材 來 源 數 值 控 制 機 械 實 習 Ⅰ 1. 了 解 CNC 銑 床 的 發 展 2. 了 解 CNC 銑 床 刀 具 的 選 用 3. 了 解

實德證券網上交易系統示範

目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮 盒 )... 5 參 題 目 3: 新 增 商 品 ( 商 品 名 稱 為 晶 鑽 XO 醬 禮 盒 ).

簽 呈

xls

前 項 第 三 款 所 定 有 機 農 產 品 及 有 機 農 產 加 工 品 驗 證 基 準, 如 附 件 一 第 七 條 驗 證 機 構 受 理 有 機 農 產 品 及 有 機 農 產 加 工 品 之 驗 證, 應 辦 理 書 面 審 查 實 地 查 驗 產 品 檢 驗 及 驗 證 決 定 之

寫 作 背 景 導 讀 [98] L Lyman Frank Baum

<30332EAAFEA5F3A440A142A447A142A454A142A57CA147BEC7A5CDB14DB77EC3D2B7D3BEC7B2DFA661B9CF2E786C73>

內 政 統 計 通 報

BSP 烤箱 - 封面-2

骨 折 別 日 數 表 1. 鼻 骨 眶 骨 ( 含 顴 骨 ) 14 天 11. 骨 盤 ( 包 括 腸 骨 恥 骨 坐 骨 薦 骨 ) 40 天 2. 掌 骨 指 骨 14 天 12. 臂 骨 40 天 3. 蹠 骨 趾 骨 14 天 13. 橈 骨 與 尺 骨 40 天 4. 下 顎 ( 齒

<4D F736F F D20B3E6A4B830312D2D2DBCC6BD75BB50BEE3BCC6AABAA55BB4EEB942BAE22E646F6378>

四 修 正 幼 兒 園 師 資 類 科 應 修 學 分 數 為 四 十 八 學 分, 並 明 定 學 分 數 抵 免 之 相 關 規 定 及 規 範 修 習 幼 兒 園 教 育 專 業 課 程 之 最 低 年 限 ( 修 正 條 文 第 五 條 ) 五 發 給 修 畢 師 資 職 前 教 育 證 明

e-Submission System Quick Reference Guide for Publication Related Matters (Chinese version)

關 於 教 育 部 學 習 拍 立 得 教 育 部 於 (103) 年 度 整 合 各 縣 市 政 府 部 屬 機 構 大 學 及 民 間 的 數 位 資 源 與 服 務, 依 不 同 類 型, 分 別 匯 集 於 教 育 大 市 集 教 育 百 科 教 育 媒 體 影 音 教 育 部 學 習 拍


PROSPECT EXPLORATION 壹 前 言 第 9 卷 第 2 期 中 華 民 國 100 年 2 月

???T????????

二 兒 歌 選 用 情 形 ( ) 2 ( ) ( )

2 2.1 A H ir@abchina.com 2

(Microsoft Word - MOODLE990201\266i\266\245\244\342\245U )

修 課 特 殊 規 定 : 一 法 律 系 學 生 最 低 畢 業 學 分 128;101 學 年 度 修 讀 法 律 系 雙 主 修 學 生 應 修 畢 法 律 專 業 目 64 學 分 ( 限 修 習 本 校 法 律 系 開 設 課 程, 不 得 以 原 學 系 或 外 校 課 程 抵 免 -

第一章 緒論

PowerPoint 簡報

五 四 五 說 ( 代 序 ) 李 澤 厚 劉 再 復 I I II IV V VII 第 一 篇 五 四 新 文 化 運 動 批 評 提 綱 附 論 一 中 國 貴 族 精 神 的 命 運 ( 提 綱 )

101年度社會福利方案 網路線上操作手冊

長跨距暨挑高建築特殊結構系統之調查分析

Microsoft Word - Draft circular on Sub Leg Apr (chi)_Traditional

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt


第二組掃描器規範書

校 長 遴 選 者 就 相 關 遴 選 事 項, 有 程 序 外 之 接 觸 遴 選 會 委 員 在 任 期 間 因 故 無 法 執 行 任 務 或 有 不 適 當 之 行 為 者, 由 各 該 主 管 機 關 解 聘 之 ; 其 缺 額, 依 第 一 項 至 第 五 項 規 定 聘 ( 派 ) 委



ART_RAE16_ticket_cn_p.1

CONTENTS 訓 練 內 容 設 計 法 056 淡 季 期 的 訓 練 058 旺 季 期 的 訓 練 060 針 對 爬 坡 賽 的 訓 練 內 容 062 賽 後 的 資 料 分 析 PART4/ 鏑 木 毅 先 生 的 建 言 活 用 於 越 野 路 跑 的 心 跳 訓

桃園市104年國民中學新進教師甄選各校複試方式及需求表

包 裝 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品 營 養 標 示 應 遵 行 事 項 一 本 規 定 依 食 品 安 全 衛 生 管 理 法 第 二 十 二 條 第 三 項 規 定 訂 定 之 二 本 規 定 所 稱 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品, 指

NCKU elearning Manual

瑞興銀行

Microsoft Word - 立法會十四題附件.doc

目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼 ( 五 ) 健 保 卡 更 換 ( 六 ) 重 寄 確 認 信.

連江縣政府所屬學校兼任代課及代理教師聘任實施要點(草案)

BOT_BS_audited_96

(DP_MFP_Training

業 是 國 家 的 根 本, 隨 著 科 技 的 進 步 與 社 會 的 富 裕, 增 加 肥 料 的 施 用 量 與 農 病 蟲 害 防 治 方 法 的 提 升, 使 得 糧 食 產 量 有 大 幅 的 增 長, 但 不 當 的 農 業 操 作, 如 過 量 的 肥 料 農 藥 施 用 等, 對

16

研究一:n人以『剪刀、石頭、布』猜拳法猜拳一次,決定一人勝

基 金 配 息 資 訊 聯 博 境 外 基 金 2016 AA/AD/AT/BA/BD/BT 月 份 除 息 日 2016 年 01 月 01 月 28 日 01 月 29 日 2016 年 02 月 02 月 26 日 02 月 29 日 2016 年 03 月 03 月 30 日 03 月 31

期交所規則、規例及程序

課 程 簡 介 第 一 章 基 本 電 路 理 論 第 二 章 半 導 體 物 理 與 pn 接 面 二 極 體 元 件 分 析 第 三 章 二 極 體 電 路 分 析

二零零六至零七年施政報告

投影片 1

HSBC Holdings plc Interim Report Chinese

格 成 績 證 明 第 六 條 第 七 條 本 系 大 四 課 程 中 規 劃 日 本 韓 國 越 南 專 題 研 究, 學 生 需 於 大 四 時 修 習 該 課 程, 並 於 規 定 期 間 內 提 出 專 題 報 告, 取 得 合 格 成 績 證 明 本 系 規 定 學 生 畢 業 時 需 取

教 師 相 關 ( 升 等, 依 業 務 需 002 交 通 管 科 評 鑑, 評 量, 徵,C031, 聘, 各 項 考 試 委 C051,C054, 員, 通 訊 錄 等 ),C057, C058,C063 各 項 會 議 紀 錄 依 業 務 需 C001,, 002,130 交 通 管 科 (

C CH4.tpf

128 提 示 樞 紐 分 析 表 的 用 途 樞 紐 分 析 表 是 指 可 以 用 來 快 速 合 併 和 比 較 大 量 資 料 的 互 動 式 表 格, 透 過 它 可 以 詳 細 分 析 數 值 資 料, 特 別 適 用 於 下 列 情 況 : 需 要 從 含 有 大 量 資 料 的 清

行政院金融監督管理委員會全球資訊網-行政院金融監督管理委員會

會 員 專 區 使 用 手 冊 目 錄 一 基 本 介 紹 會 員 專 區 登 入 位 置 主 畫 面 與 網 站 架 構 : 功 能 導 覽 列 說 明 :... 3 二 DOI 查 詢 與 維 護... 4 三 DOI 註 冊 期 刊 類 型...

2016年中國語文科試卷三聆聽及綜合能力考核樣本試卷示例及說明

Layout 1

Microsoft Word - 全華Ch2-05.doc

Microsoft Word - 雲林區_免試平台_國中模擬選填_操作手冊.doc

肆 研 究 方 法 進 行 本 研 究 前, 我 們 首 先 對 研 究 中 所 用 到 名 詞 作 定 義 定 義 : 牌 數 : 玩 牌 時 所 使 用 到 撲 克 牌 數 次 數 : 進 行 猜 心 術 遊 戲 時, 重 複 分 牌 次 數 數 : 進 行 猜 心 術 遊 戲 時, 每 次 分

8,530 1,056 52% % % % % 1 30,000 25,000 20,000 15,000 10,000 5, ,072 24,043 21,950 24,684 17,

CP70D0026D61ETW0R01-01-印刷

行政院金融監督管理委員會全球資訊網-行政院金融監督管理委員會

untitled

一、 資格條件:

壹、組織編制 代碼:C0101意見反映

<4D F736F F D20B0EAA5C1A470BEC7BB50B0EAA5C1A4A4BEC7AF5AAFC5BD73A8EEA4CEB1D0C2BEADFBADFBC342BD73A8EEB1F8A4E5B9EFB7D3AAED A14B>

斷, 讓 每 個 孩 子 在 學 習 過 程 是 跟 自 己 比 較 跟 自 己 競 爭, 以 提 升 個 人 學 習 的 意 願, 讓 學 生 明 確 知 道 自 己 的 學 習 成 果, 而 非 僅 得 知 測 驗 分 數 若 能 完 善 運 用 如 此 有 效 的 資 訊, 相 信 在 十 二

iPhone版操作手冊990421

LP 電腦週邊設備用品_第一組印表機規範書

教育實習問與答:

文 ( 一 ) 閱 讀 理 解 英 語 數 學 社 會 自 然 及 國 文 ( 二 ) 語 文 表 達 等 各 科 此 外 嘉 義 區 則 另 外 單 獨 辦 理 測 驗 五 專 亦 有 辦 理 特 色 招 生 考 試 分 發 入 學, 與 高 中 高 職 分 開 辦 理, 但 成 績 同 樣 採

(Microsoft Word - \246\250\301Z\272\336\262z.doc)

背書保證作業程序

業 是 國 家 的 根 本, 隨 著 科 技 的 進 步 與 社 會 的 富 裕, 增 加 肥 料 的 施 用 量 與 農 病 蟲 害 防 治 方 法 的 提 升, 使 得 糧 食 產 量 有 大 幅 的 增 長, 但 不 當 的 農 業 操 作, 如 過 量 的 肥 料 農 藥 施 用 等, 對

目 錄

55202-er-ch03.doc

一 業 務 內 容 本 公 司 依 郵 政 法 第 5 條 得 經 營 下 列 業 務 : 單 位 : 新 臺 幣 千 元,% ,486,746, ,318,734, ,039,301,167

Microsoft Word - _3_???????-Ch _???

<4D F736F F D D313032A7DEC075BAC2BC66B56EB04FB44EC5AAA7D3C440A7C7A874B2CEBEDEA740A4E2A5552E646F63>

支 持 機 構 : 社 會 文 化 司 主 辦 機 構 : 澳 門 學 聯 澳 門 青 年 研 究 協 會 電 話 : 傳 真 : 網 址 : 報 告 主 筆 : 李 略 博 士 數 據 錄

駛 學 校 順 成 駕 駛 學 校 新 中 華 駕 駛 學 校 新 社 亮 汽 車 電 單 車 教 授 駕 駛 學 校 有 限 公 司 新 順 成 汽 車 駕 駛 學 校 及 新 福 利 駕 駛 學 校 有 限 公 司 其 中 除 新 福 利 只 提 供 輕 型 汽 車 ( 自 動 ) 教 學 課


iPhone版操作手冊

2 工 礦 衛 生 技 師 證 明 文 件 者 火 災 學 消 防 法 規 警 報 系 統 消 防 安 全 設 備 專 技 人 員 專 門 職 業 及 技 術 人 員 高 等 考 試 技 師 考 試 高 考 ( 專 技 ) 專 科 三 高 等 檢 定 相 當 類 科 及 格 者 四 消 防 設 備

CHRISTIAN ALLIANCE CHENG WING GEE COLLEGE

Transcription:

逢 甲 大 學 自 動 控 制 工 程 學 系 專 題 製 作 專 題 論 文 CPLD/FPGA 介 紹 與 VHDL 之 使 用 INRODUTCTION OF CPLD/FPGA AND USED BY VHDL 指 導 教 授 : 黃 建 立 老 師 學 生 : 吳 仲 偉 吳 允 華 郭 達 利 郭 昱 廷 中 華 民 國 九 十 五 年 元 月

i

感 謝 這 次 的 專 題, 首 先 必 須 要 感 的 就 是 謝 黃 建 立 老 師, 是 他 提 供 了 這 個 機 會 設 備, 讓 我 們 可 以 接 觸 並 且 摸 索 學 習 這 個 全 新 的 領 域 在 專 題 進 行 的 過 程 之 中, 由 於 每 個 組 員 犧 牲 自 己 的 空 閒 時 間, 共 同 解 決 問 題, 尋 求 問 題 的 解 答, 以 及 做 實 驗 時 造 成 的 摩 擦 與 包 容, 才 能 使 得 專 題 順 利 進 行 最 重 要 的 是 要 感 謝 黃 老 師 在 我 們 遇 到 瓶 頸 的 時 候 會 給 予 適 時 的 協 助, 指 引 我 們 正 確 的 研 究 方 向, 所 以 才 能 有 今 天 的 結 果 在 技 術 方 面 要 感 謝 學 長 的 基 礎 指 導, 讓 我 們 對 於 硬 體 以 及 軟 體 有 初 步 的 瞭 解, 在 硬 體 方 面, 橋 高 技 術 部 門 的 工 程 師, 在 百 忙 之 中, 可 以 細 心 的 回 答 我 們 的 疑 問, 在 此 衷 心 感 謝 i

摘 要 電 子 產 品 日 益 進 步, 過 去 常 使 用 的 控 制 電 路 因 體 積 價 格 等 等 因 素 正 逐 漸 不 符 合 需 求,FPGA/CPLD 便 是 為 追 求 簡 化 電 路 而 問 世 之 產 品, 又 因 廣 受 好 評 使 得 廠 商 大 量 生 產 與 開 發 更 新 功 能 更 強 的 產 品, 因 此 在 價 格 上 並 無 太 大 負 擔 使 用 VHDL 可 輕 易 的 減 輕 與 簡 化 系 統 模 型 到 硬 體 結 構 的 轉 譯 負 擔, 以 元 件 式 技 術 為 依 據, 再 以 元 件 之 封 裝 性 再 用 性 及 擴 展 性 來 提 高 轉 譯 效 率 FPGA/CPLD 生 產 廠 商 也 免 費 提 供 操 作 簡 單 的 程 式 編 譯 軟 體, 為 另 一 優 點 此 次 專 題 研 究, 除 了 解 FPGA/CPLD 內 部 構 造 外, 並 學 習 如 何 使 用 其 軟 體 操 作 與 程 式 撰 寫 將 所 需 求 之 控 制 電 路 以 VHDL 做 規 劃, 在 廠 商 提 供 的 學 習 模 組 練 習 下, 發 展 出 不 同 的 硬 體 控 制 電 路 ii

Abstract The electronic products are progressed day by day, the control circuit that used to be used is not conforming to the demand gradually because of the factors, such as size, price,etc.. FPGA/CPLD is the product that coming out to pursue these circuits simplified, and it is produced in a large amount and developed and upgraded the products with better function by the favorable comment. So it wouldn t have too many problem in price. VHDL can mitigate and simplify the translation of the system module to the hardware structure easily. And using the component-based technique, by the characters of encapsulation, reuse, and expansion, the efficiency of the translation would be enhanced. The manufactory of FPGA/CPLD provide the compiling software for free is the other advantage. Unless understand the structure of FPGA/CPLD, learning how to use these software and language, to program the control circuits we need, and develop different hardware control circuits under the practice of studying modal in this project. iii

目 錄 感 謝...i 摘 要...ii Abstract... iii 目 錄...iv 圖 目 錄...v 表 目 錄...vi 第 一 章 緒 論...1 1.1 研 究 背 景...1 1.2 研 究 動 機 及 方 法...1 第 二 章 探 討 CPLD/FPGA...3 2.1 何 謂 CPLD/FPGA...3 2.2 CPLD FPGA 之 區 別...3 2.3 CPLD/FPGA 之 特 性...4 2.4 CPLD/FPGA 之 發 展 沿 革...6 2.5 CPLD/FPGA 製 造 廠 商...8 2.6 CPLD/FPGA 開 發 介 面...11 2.7 CPLD/FPGA 未 來 趨 勢...12 第 三 章 開 發 環 境...13 3.1 開 發 軟 體...13 3.2 MAX+plus II 與 Quartus II...13 3.3 程 式 編 輯 與 軟 體 使 用 方 法...17 3.4 VHDL 概 要...19 3.5 VHDL 程 式 架 構...21 第 四 章 馬 達 與 LCM 模 組 應 用...24 4.1 專 題 硬 體 概 述...24 4.2 文 字 型 LCD...24 4.3 馬 達 簡 介...35 4.4 實 作 簡 介...39 第 五 章 數 位 / 類 比 轉 換 器...49 5.1 專 題 硬 體 概 述...49 5.3 實 作 簡 介...54 參 考 文 獻...60 附 錄...61 iv

圖 目 錄 圖 2.1 FPGA 的 內 部 基 本 架 構...5 圖 2.2 型 的 PLD 部 分 結 構...7 圖 2.3 邏 輯 電 路 的 架 構...8 圖 2.4 FPGA 硬 體 流 程...12 圖 3.1 MAX+PLUS II 之 編 輯 頁 面...15 圖 3.2 Max+Plus II 的 運 作 流 程 圖...15 圖 3.3 Quartus TM II 的 編 輯 頁 面...16 圖 3.4 Quartus TM II 的 操 作 流 程 圖...17 圖 3.5 程 式 設 計 流 程 圖...18 圖 3.6 FPGA 程 式 的 編 寫 及 規 劃, 到 與 硬 體 的 配 合 和 實 現...19 圖 4.1 LCD 控 制 方 塊 圖...25 圖 4.2 (A) 讀 取 時 序 規 格...26 圖 4.2 (B) 讀 取 時 序 圖...26 圖 4.3 (A) 寫 入 時 序 規 格...27 圖 4.3 (B) 寫 入 時 序 圖...27 圖 4.4 LCD 控 制 流 程 圖...34 圖 4.5 LCD 腳 位 電 路 圖...35 圖 4.6 直 流 馬 達 基 本 構 造 圖...36 圖 4.8 步 進 馬 達 種 類...37 圖 4.9 步 進 馬 達 輸 入 訊 號...38 圖 4.10 步 進 馬 達 控 制 方 塊 圖...39 圖 4.11 步 進 馬 達 實 作 成 品...40 圖 5.1 轉 換 器 電 路 圖...50 圖 5.2 連 續 近 似 法 ADC 電 路 圖...51 圖 5.3 理 想 類 比 對 數 位 轉 換 圖...52 圖 5.4 ADC0809 類 比 對 數 位 轉 換 器 接 腳 圖...53 圖 5.5 溫 度 顯 示 實 作 成 品...54 圖 附 -1 A/D 電 路 圖...61 圖 附 -2 步 進 馬 達 電 路 圖 鍵 盤 電 路 圖...62 v

表 目 錄 表 2.1 FPGA 公 司 銷 售 額...9 表 2.2 CPLD 及 FPGA 元 件 特 性...10 表 4.1 LCD 接 腳 功 能 說 明...25 表 4.2 LCD 控 制 指 令...29 表 4.3 LCD 輸 入 模 式 控 制 指 令...30 表 4.4 LCD 游 標 控 制 指 令...31 表 4.5 LCD 字 型 設 定 指 令...31 表 4.6 控 制 指 令 表...33 vi

第 一 章 緒 論 1.1 研 究 背 景 有 鑑 於 單 晶 片 在 市 場 被 廣 泛 的 使 用, 但 是 在 設 計 的 流 程 上 往 往 需 要 配 合 著 豐 富 的 電 子 電 路 經 驗 以 及 具 備 相 當 實 力 的 程 式 語 言 撰 寫 能 力 才 能 達 到 設 計 上 的 需 求 由 於 可 程 式 邏 輯 (Programmable Logic Devices) 的 快 速 發 展, 而 使 得 有 FPGA /CPLD 這 類 型 的 產 品 問 世 這 種 可 程 式 邏 輯 的 主 要 特 色 是 可 以 大 幅 縮 短 電 路 的 複 雜 性, 也 因 為 複 雜 性 的 減 少, 而 使 得 工 作 的 效 率 以 及 流 程 時 間 可 以 較 為 縮 短, 又 因 為 具 有 可 重 複 抹 除 的 特 性, 所 以 造 成 了 兩 面 的 優 缺 點, 優 點 為 因 為 使 用 內 部 的 RAM 作 為 儲 存 單 位, 所 以 可 以 無 限 次 重 複 抹 寫, 不 會 有 以 往 單 晶 片 有 壽 命 限 制 的 問 題, 以 及 不 需 要 昂 貴 的 燒 錄 設 備, 只 需 要 一 條 下 載 線 便 可 輕 易 的 達 成 ; 也 因 為 這 種 特 性, 而 使 得 這 種 晶 片 成 本 提 高, 在 一 般 的 市 場 能 見 度 降 低, 但 是 這 並 不 會 降 低 這 種 晶 片 未 來 的 發 展 性, 許 多 製 作 晶 片 的 廠 商 已 經 朝 向 廉 價 以 及 高 規 格 的 方 向 發 展 我 們 這 次 所 使 用 的 晶 片 即 為 Altera 公 司 所 推 出 的 低 價 晶 片 ACEX 系 列, 屬 於 FPGA 的 一 種 因 為 是 實 驗 器 材, 因 此 在 ACEX 裡 面 屬 高 級 規 格, 最 普 通 的 一 顆 約 新 台 幣 350 圓 整, 若 採 用 CPLD 系 列 晶 片, 最 低 的 單 價 為 新 台 幣 50 圓 整, 雖 然 這 種 價 格 目 前 還 不 具 競 爭 力, 但 是 如 果 在 大 量 的 採 購 以 及 晶 片 研 發 公 司 的 努 力 下, 未 來 的 願 景 不 可 小 覷 1.2 研 究 動 機 及 方 法 此 次 專 題 的 出 發 點 為 對 於 FPGA 這 類 從 未 接 觸 過 之 單 晶 片 元 件, 欲 予 以 進 一 步 的 了 解, FPGA 可 接 受 多 種 不 同 的 程 式 輸 入 方 法, 我 們 是 利 用 VHDL(Very High Speed Integrated Circuit Hardware Description Language) 超 高 速 硬 體 電 路 描 述 語 言 來 作 為 撰 寫 編 輯 FPGA 的 描 述 方 法 因 此 研 究 範 圍 包 含 了 FPGA 之 發 展 沿 革 工 作 原 理 開 發 介 面 操 作 流 程 以 及 將 其 應 用 在 一 些 簡 單 的 例 子 上 面, 並 對 於 所 使 用 之 開 發 環 境 及 語 言 VHDL 作 介 紹 除 了 對 於 FPGA 及 VHDL 做 了 詳 1

細 的 研 究 及 介 紹 外, 在 實 作 方 面, 我 們 對 於 A/D 溫 度 感 測 直 流 馬 達 與 步 進 馬 達 做 了 基 本 的 功 能 設 計, 都 是 以 VHDL 編 譯 並 以 FPGA 下 去 實 現 的 對 象 2

第 二 章 探 討 CPLD/FPGA 2.1 何 謂 CPLD/FPGA FPGA 是 英 文 Field Programmable Gate Array 的 縮 寫, 即 現 場 可 程 式 邏 輯 陣 列, 它 是 在 PAL GAL EPLD 等 可 程 式 元 件 的 基 礎 上 進 一 步 發 展 的 產 物 它 是 作 為 專 用 積 體 電 路 ASIC(Application Specific IC) 領 域 中 的 一 種 半 定 製 電 路 而 出 現 的, 既 解 決 了 定 製 電 路 的 不 足, 又 克 服 了 原 有 可 程 式 元 件 邏 輯 電 路 數 有 限 的 缺 點 FPGA 是 在 一 顆 超 大 型 積 體 電 路, 其 採 用 了 邏 輯 單 元 陣 列 LCA(Logic Cell Array) 這 樣 一 個 新 概 念, 內 部 包 括 可 程 式 邏 輯 模 塊 CLB(Configurable Logic Block) 輸 出 輸 入 阜 IOB(Input Output Block) 和 內 部 連 線 (Interconnect) 三 個 部 分, 均 勻 地 配 置 了 一 大 堆 的 CLB 而 每 個 CLB 都 擁 有 基 本 的 組 合 邏 輯 和 順 序 邏 輯, 在 CLB 和 CLB 之 間 也 均 勻 配 置 了 一 大 串 的 可 程 式 配 線 (Routing), 只 要 控 制 這 些 配 線 就 可 將 一 個 個 單 獨 的 CLB 整 合 成 完 整 而 複 雜 的 大 型 電 路 ; 最 後 再 利 用 分 布 於 外 圍 的 IOB, 提 供 FPGA 和 外 部 電 路 的 介 面 關 係 FPGA 元 件 中 的 邏 輯 單 元 (CLB) 輸 入 輸 出 阜 (IOB) 和 配 線 (Routing) 不 但 皆 為 可 程 式 化, 還 是 RAM 形 式 的 可 程 式 結 構, 可 重 複 抹 寫 達 數 萬 次, 也 不 須 從 電 路 板 中 拆 下 燒 錄 CPLD 為 Complex Programmable Logic Devices 的 縮 寫, 即 複 雜 型 可 規 劃 邏 輯 元 件, 與 FPGA 相 同 是 由 PAL GAL 等 邏 輯 器 件 基 礎 上 所 發 展 而 來 其 晶 片 特 性 大 致 與 FPGA 相 同, 唯 記 憶 體 採 用 EEPROM 架 構, 晶 片 密 度 較 FPGA 小 由 於 使 用 上 及 特 性 上 並 無 太 大 不 同, 故 現 今 CPLD 常 與 FPGA 共 稱, 並 無 刻 意 區 分 2.2 CPLD FPGA 之 區 別 CPLD 其 內 部 的 連 接 匯 流 排 都 市 採 用 多 重 金 屬 線 連 接 方 式, 且 每 兩 點 間 都 有 預 置 的 金 屬 線 連 接 這 種 連 接 方 式 稱 之 為 連 續 性 內 部 連 接 (Continuous 3

Interconnect), 這 與 FPGA 之 片 段 性 連 接 方 式 (Segmented Interconnect) 不 同 連 續 性 內 部 的 連 接 方 式 可 依 LOGIC CELL 的 放 置 位 置 預 測 出 繞 線 的 延 遲 時 間, 因 此 可 精 準 得 模 擬 出 電 路 的 時 序 特 性, 使 工 程 師 在 元 件 燒 錄 前 便 可 由 模 擬 的 環 境 來 準 確 觀 測 電 路 之 時 序 特 性 CPLD 的 形 式 內 部 架 構 為 EEPROM, 將 電 路 燒 路 於 其 中 後, 若 將 電 源 切 斷, CPLD 仍 會 保 留 原 有 的 電 路, 不 必 重 新 載 入, 使 用 上 較 為 方 便 但 CPLD 的 閘 數 較 少, 密 度 較 低, 不 適 合 作 為 記 憶 電 路 的 設 計, 而 適 合 規 劃 為 數 位 系 統 的 控 制 電 路 FPGA 元 件 內 部 為 SRAM 架 構, 晶 片 之 密 度 較 高, 且 含 有 獨 立 記 憶 元 件, 故 可 規 劃 成 含 有 記 憶 體 的 大 型 電 路 2.3 CPLD/FPGA 之 特 性 利 用 計 算 機 輔 助 設 計, 以 電 路 原 理 圖 VHDL 布 林 運 算 真 值 表 或 狀 態 機 等 格 式, 輸 入 設 計 邏 輯, 然 後 經 一 系 列 變 換, 將 輸 入 的 邏 輯 轉 換 成 適 合 於 FPGA 器 件 架 構 的 圖 形 文 件 或 文 本 形 式 此 時 不 僅 可 以 觀 察 整 個 設 計 在 器 件 中 實 際 布 線 的 結 果, 了 解 各 網 路 的 延 時 特 性, 進 行 人 工 修 改 或 編 輯 ; 從 而 可 利 用 類 比 手 段, 對 設 計 的 輸 入 輸 出 及 任 意 點 信 號 進 行 類 比 仿 真, 包 括 驗 証 設 計 功 能 是 否 正 確 的 功 能 類 比, 以 及 確 定 最 終 設 計 是 否 滿 足 相 位 和 延 時 要 求 的 定 時 類 比 具 有 體 系 架 構 和 邏 輯 單 元 靈 活 集 成 度 高 以 及 適 用 範 圍 寬 等 特 點 FPGA 的 基 本 特 點 主 要 有.. 採 用 FPGA 設 計 ASIC 電 路, 使 用 者 不 需 要 請 廠 商 生 產, 便 能 得 到 符 合 需 求 的 晶 片 可 做 為 其 它 全 定 製 或 半 定 製 ASIC 電 路 的 中 測 試 晶 片 內 部 有 豐 富 的 正 反 器 和 I/O 接 腳 是 ASIC 電 路 中 之 設 計 週 期 最 短 開 發 費 用 最 低 風 險 最 小 的 產 品 採 用 高 速 CHMOS, 功 耗 低, 可 以 與 CMOS TTL 相 容 4

因 此 可 以 說,FPGA 晶 片 是 小 批 量 系 統 提 升 系 統 集 成 度 可 靠 性 的 最 佳 選 擇 之 一 FPGA 的 內 部 基 本 架 構 如 圖 2.1 所 示 : 圖 2.1 FPGA 的 內 部 基 本 架 構 可 規 劃 邏 輯 元 件 的 內 部 有 許 多 邏 輯 合 成 單 元 (Logic cell), 每 個 合 成 單 元 間 有 可 供 規 劃 的 水 平 及 垂 直 之 繞 線 通 道, 使 logic cell 可 以 彼 此 互 相 連 接 因 為 內 部 邏 輯 合 成 單 元 的 布 局 及 繞 線 資 料 量 是 一 般 個 人 電 腦 即 可 以 掌 握 的, 再 加 上 CPLD/FPGA 之 製 造 商 所 提 供 之 邏 輯 合 成 及 晶 片 燒 錄 工 具, 直 接 以 FPGA 及 CPLD 來 完 成 專 案 晶 片 的 設 計 已 成 為 另 一 個 熱 門 的 產 業, 即 使 是 小 型 個 人 工 作 室 也 可 跨 足 IC 設 計 的 領 域 雖 然 ASIC 合 成 後 的 電 路 特 性 (Electrical Characteristic) 及 集 積 度 (Integration) 一 般 來 說 較 佳, 但 因 FPGA/CPLD 內 部 的 硬 體 資 源 具 有 反 覆 清 除 及 重 新 規 劃 的 功 能, 從 修 正 電 路 原 始 硬 體 描 述 碼 至 實 體 驗 證 的 時 間 往 往 只 需 要 數 分 鐘 的 時 間, 且 在 個 人 電 腦 上 就 可 以 升 任 然 而 最 近 的 研 究 中 發 現,SRAM 技 術 經 中 子 轟 擊 測 試, 易 於 遭 受 軟 錯 誤 攻 擊 不 僅 在 高 空 環 境 中 易 於 發 生 中 子 導 致 的 配 置 損 耗, 而 且 在 地 面 級 應 用 中 也 會 發 生 當 高 能 量 中 子 侵 入 儲 存 單 元, 如 以 SRAM 為 基 礎 可 編 程 元 件 所 用 的 那 些, 元 件 極 有 可 能 出 現 功 能 故 障, 並 且 以 無 法 預 知 的 狀 態 運 作, 這 對 於 我 們 常 用 的 系 統 非 常 不 利, 包 括 電 話 網 路 汽 車 安 全 氣 袋 醫 療 器 材, 甚 至 軍 事 和 太 空 設 備 等 5

2.4 CPLD/FPGA 之 發 展 沿 革 早 期 的 可 程 式 邏 輯 元 件 只 有 可 程 式 唯 讀 記 憶 體 (PROM) 紫 外 線 可 抹 除 程 式 化 唯 讀 記 憶 體 (EPROM) 和 電 性 可 擦 拭 唯 讀 記 憶 體 (EEPROM) 三 種 由 於 架 構 的 限 制, 它 們 僅 能 完 成 簡 單 的 數 字 邏 輯 功 能 之 後, 出 現 了 一 架 構 上 稍 微 複 雜 的 可 程 式 晶 片, 即 可 程 式 邏 輯 器 件 (PLD), 它 能 夠 完 成 各 種 數 字 之 邏 輯 功 能 典 型 的 PLD 由 一 個 AND 和 一 個 OR 陣 列 組 成, 而 任 意 一 個 組 合 邏 輯 都 可 以 用 AND-OR 表 達 式 來 描 述, 所 以, PLD 能 以 乘 積 和 的 形 式 完 成 大 量 的 組 合 邏 輯 功 能 這 一 階 段 的 產 品 主 要 有 PAL( 可 程 式 陣 列 邏 輯 ) 和 GAL( 通 用 陣 列 邏 輯 ) PAL 由 一 個 可 程 式 的 AND 平 面 和 一 個 固 定 的 OR 平 面 所 構 成,OR 的 輸 出 可 以 透 過 正 反 器 有 選 擇 地 被 置 為 暫 存 狀 態 PAL 元 件 是 現 場 可 程 式 的, 它 有 反 熔 絲 技 術 EPROM 技 術 和 EEPROM 技 術 還 有 一 類 架 構 更 為 靈 活 的 邏 輯 元 件 是 可 程 式 邏 輯 陣 列 (PLA), 它 也 由 一 個 AND 平 面 和 一 個 OR 平 面 構 成, 但 是 這 兩 個 平 面 的 連 接 關 係 是 可 程 式 的 在 PAL 的 基 礎 上, 又 發 展 了 一 種 通 用 陣 列 邏 輯 GAL(Generic Array Logic), 如 GAL16V8, GAL22V10 等 它 採 用 了 EEPROM, 實 現 了 電 性 可 抹 除 電 性 可 改 寫, 其 輸 出 架 構 是 可 程 式 的 邏 輯 單 元, 它 的 設 計 具 有 很 強 的 靈 活 性, 至 今 仍 有 許 多 人 使 用 這 些 早 期 的 PLD 器 件 的 一 個 共 同 特 點 是 可 以 實 現 速 度 特 性 較 好 的 邏 輯 功 能, 但 其 過 於 簡 單 的 架 構 也 使 它 們 只 能 實 現 規 模 較 小 的 電 路 圖 2.2 為 典 型 的 PLD 部 分 結 構 ( 實 現 組 合 邏 輯 部 分 ) 6

圖 2.2 型 的 PLD 部 分 結 構 隨 著 微 電 子 技 術 的 發 展, 現 已 進 入 數 位 積 體 電 路 應 用 的 社 會 數 位 積 體 電 路 本 身 在 不 斷 地 進 行 更 新 換 代 由 早 期 的 電 子 管 晶 體 管 小 中 規 模 積 體 電 路, 迅 速 發 展 到 超 大 型 積 體 電 路 (VLSIC) 以 及 許 多 具 有 特 定 功 能 的 專 用 積 體 電 路 現 代 電 子 產 品 的 複 雜 度 日 益 加 深, 一 個 電 子 系 統 可 能 由 數 萬 個 中 小 規 模 積 體 電 路 構 成, 這 就 帶 來 了 體 積 大 功 耗 大 可 靠 性 差 的 問 題, 解 決 這 一 問 題 的 有 效 方 法 就 是 採 用 ASIC 晶 片 進 行 設 計 ASIC 按 照 設 計 方 法 的 不 同 可 分 為.. 全 定 製 ASIC, 半 定 製 ASIC, 可 程 式 ASIC 設 計 全 定 製 ASIC 晶 片 時, 設 計 師 要 定 義 晶 片 上 所 有 晶 體 管 的 幾 何 圖 形 和 規 則, 最 後 將 設 計 結 果 交 由 IC 廠 商 製 造 完 成 而 快 速 進 步 的 數 位 時 代, 設 計 與 製 造 積 體 電 路 的 任 務 已 不 完 全 由 半 導 體 廠 商 來 獨 立 承 擔 設 計 工 程 師 們 更 願 意 自 己 設 計 專 用 積 體 電 路 (ASIC) 晶 片, 而 且 希 望 ASIC 的 設 計 週 期 儘 可 能 短, 最 好 是 在 實 驗 室 裡 就 能 設 計 出 合 適 的 ASIC 晶 片, 並 且 立 即 投 入 實 際 應 用 之 中 為 了 彌 補 此 一 缺 陷,20 世 紀 80 年 代 中 期,Altera 和 Xilinx 分 別 推 出 了 類 似 於 PAL 架 構 的 擴 展 型 CPLD 和 與 標 準 邏 輯 陣 列 類 似 的 FPGA, 這 兩 種 器 件 兼 具 了 PLD 和 GAL 的 優 點, 可 實 現 較 大 規 模 的 電 路, 程 式 編 輯 也 很 靈 活 極 閘 陣 列 等 其 它 ASIC 相 比, 它 們 又 具 有 設 計 開 發 週 期 短 設 計 製 造 成 本 低 開 發 工 具 先 進 標 準 產 品 無 需 測 試 質 量 穩 定 等 優 點, 因 此 被 廣 泛 應 用 於 產 品 的 原 型 設 計 和 產 品 生 產 ( 一 般 在 10,000 件 以 下 ) 之 中 幾 乎 所 有 應 用 邏 輯 陣 列 PLD 和 中 小 規 模 通 用 數 位 積 體 電 路 的 場 合 均 可 應 用 FPGA 和 CPLD 元 件 下 圖 2.3 便 清 楚 的 顯 示 邏 輯 電 路 的 架 構 區 分 : 7

圖 2.3 邏 輯 電 路 的 架 構 2.5 CPLD/FPGA 製 造 廠 商 經 過 了 十 幾 年 的 發 展, 許 多 公 司 都 開 發 出 了 多 種 可 程 式 邏 輯 元 件 提 供 設 計 的 主 要 有 Actel Altera 以 及 Xilinx 三 家 公 司, 它 們 開 發 較 早, 佔 用 了 較 大 的 PLD 市 場 通 常 來 說, 在 歐 洲 用 Xilinx 的 人 多, 在 日 本 和 亞 太 地 區 用 ALTERA 的 人 多, 在 美 國 則 是 平 分 秋 色 全 球 PLD/FPGA 產 品 60% 以 上 是 由 Altera 和 Xilinx 所 提 供 可 以 說 Altera 和 Xilinx 共 同 決 定 了 PLD 技 術 的 發 展 方 向 當 然 還 有 許 多 其 它 類 型 元 件, 如..Lattice,Vantis,Quicklogic,Lucent 等 1999 年 Lattice 收 購 了 Vantis, 成 為 第 三 大 PLD 供 應 商 ; 同 年 Xilinx 收 購 了 Philips 的 PLD 部 門 下 表 2.1 為 2004 年 世 界 五 大 PLD 公 司 之 營 運 概 況 ( 資 料 來 源 : 日 經 BP 社 ): 8

表 2.1 FPGA 公 司 銷 售 額 公 司 名 稱 銷 售 額 ( 美 元 ) 美 商 Xilinx 美 商 Altera 美 商 Lattice 美 商 Actel 美 商 QuickLogic 3 億 5540 萬 2 億 2990 萬 4850 萬 4030 萬 1110 萬 本 專 題 採 用 的 發 展 系 統 為 ALTERA 公 司 所 生 產 之 ACEX1K 系 列 產 品, 晶 片 代 碼 EPF1K100Q-C208-3, 故 針 對 ALTERA 公 司 所 生 產 之 系 列 作 簡 要 介 紹, 下 表 2.2 即 為 該 公 司 所 提 供 之 一 些 具 有 代 表 性 的 CPLD 及 FPGA 元 件 特 性 : 9

表 2.2 CPLD 及 FPGA 元 件 特 性 1 系 列 名 稱 MAX3000 MAX7000 FLEX 10K ACEX 1K APEX 20K A 元 件 類 別 CPLD CPLD FPGA FPGA FPGA 代 表 晶 片 EPM3032A EPM7032B EPF10K10 EP1K10 EP20K200C EPM3064A EPM7064B EPF10K20 EP1K30 EP20K400C EPM3128A EPM7128B EPF10K30 EP1K50 EP20K600C EPM3256A EPM7256B EPF10K40 EP1K100 EP20K1000C EPM3512A EPM7512B EPF10K50 EP20K30E EPF10K70 EP20K60E EP20K100E EP20K200E EP20K1500E 內 部 架 構 EEPROM EEPROM SRAM SRAM SRAM 內 部 容 量 閘 數 : 閘 數 : 閘 數 : 閘 數 : 閘 數 : 600~10000 600~10000 10000~25000 56000~250000 200000~1500000 暫 存 器 數 : 暫 存 器 數 : 0 可 規 劃 RAM 可 規 劃 RAM 的 32~512 32~512 可 規 劃 RAM 的 容 量 : 容 量 : 的 容 量 : 6K~48Kbits 104K~432Kbits 6K~64Kbits 最 高 操 116.3~227.3 163.9~303.0 204 93~285 840 作 頻 率 MHZ MHZ MHZ MHZ MHZ 電 源 規 格 3.3 V 5 V 3.3 V 或 5 V 2.5 V 1.8 V 或 2.5 V 其 中 MAX 系 列 近 來 更 已 發 展 出 功 能 更 強 之 MAX II 系 列 晶 片, 為 CPLD 開 發 史 上 成 本 最 低 之 產 品, 提 供 所 有 CPLD 系 列 中 單 個 I/O 管 腳 最 低 成 本 及 最 小 功 10

耗 並 通 過 採 用 低 功 耗 處 理 技 術,MAX II 和 前 一 代 MAX 相 比, 成 本 減 半, 功 耗 卻 只 有 十 分 之 一, 與 MAX 3000 系 列 相 比, 具 四 倍 的 速 度 和 兩 倍 的 性 能 而 內 部 採 用 FLASH 暫 存 器, 可 避 免 上 述 所 提 之 中 子 導 致 的 配 置 損 耗 2.6 CPLD/FPGA 開 發 介 面 CPLD/FPGA 的 另 一 項 特 色 就 是 多 元 的 開 發 介 面, 不 同 的 軟 體 不 同 的 語 言 不 同 的 描 述 方 式, 皆 可 以 不 須 經 過 更 改 直 接 套 用 至 不 同 的 廠 牌 不 同 的 型 號 之 晶 片 當 中 互 通 性 與 完 整 的 模 組 性 大 幅 降 低 研 究 成 本, 以 及 加 速 了 硬 體 的 開 發 速 度, 因 此 也 是 迅 速 成 為 數 位 邏 輯 設 計 的 產 業 主 流 原 因 之 一 又 因 FPGA 製 造 廠 商 為 加 速 打 入 市 場, 許 多 都 提 供 了 免 費 的 開 發 軟 體, 如 ALTERA 所 提 供 之 MAX+plus II 以 及 Quartus II, 或 者 Xilinx 公 司 所 提 供 之 Foundation, 皆 可 於 該 公 司 之 網 站 免 費 下 載 使 用 這 些 軟 體 整 合 了 硬 體 描 述 語 言 編 輯 邏 輯 合 成 電 路 功 能 及 時 序 模 擬 及 晶 片 燒 錄 的 功 能, 只 要 具 備 符 合 軟 體 所 需 求 之 個 人 電 腦 及 可 使 用, 進 行 晶 片 電 路 系 統 的 設 計 及 驗 證 工 作 這 些 軟 體 所 支 援 的 開 發 方 式 包 括 程 式 語 言 (Text Editor) 圖 形 編 輯 器 (Graphic Editor) 波 形 編 輯 器 (Waveform Editor), 或 者 邏 輯 閘 編 輯 器 (Symbol Editor) 程 式 語 言 的 開 發 上 較 常 用 者 為 VHDL, 之 後 會 有 針 對 我 們 所 使 用 之 軟 體 及 語 言 做 詳 細 的 介 紹 硬 體 方 面 則 僅 需 一 台 個 人 電 腦 及 可 供 燒 錄 的 發 展 系 統 搭 配 模 組 即 可 使 用, 將 設 計 好 之 程 式 設 定 好 腳 位 後, 便 可 透 過 發 展 系 統 將 所 撰 寫 的 程 式 反 映 到 模 組 上, 不 僅 快 速 且 便 利, 短 時 間 內 就 知 道 程 式 的 架 構 應 用 在 硬 體 上 是 否 有 瑕 疵, 下 圖 2.4 為 硬 體 之 流 程 概 況 : 11

圖 2.4 FPGA 硬 體 流 程 2.7 CPLD/FPGA 未 來 趨 勢 在 晶 片 產 量 日 漸 增 大 以 及 對 於 電 路 特 性 有 越 趨 嚴 格 要 求 的 設 計 條 件 下, ASIC 比 CPLD/FPGA 更 能 容 易 滿 足 規 格 要 求, 因 此 許 多 廠 商 致 力 將 一 些 複 雜 的 系 統 整 合 至 一 個 ASIC 晶 片 中, 這 種 做 法 稱 為 SYSTEM ON CHIP, 簡 稱 S.O.C, 但 在 CPLD/FPGA 的 密 度 及 特 性 逐 漸 提 升 且 價 錢 一 再 降 低 的 影 響 下, 未 來 的 趨 勢 不 僅 僅 是 S.O.C, 而 勢 必 走 向 SYSTEM ON A PROGRAMMABLE CHIP, 簡 稱 S.O.P.C 即 將 複 雜 的 系 統 實 現 在 一 顆 可 供 任 意 規 劃 之 FPGA 或 CPLD 晶 片 中, 以 達 到 立 即 商 品 化 之 目 的, 再 加 上 上 述 所 提 及 之 各 種 優 點, 因 此 CPLD/FPGA 之 應 用, 無 疑 的 將 在 ASIC 的 市 場 上 享 有 一 定 的 地 位 12

第 三 章 開 發 環 境 3.1 開 發 軟 體 此 次 專 題 採 用 了 兩 套 ALTERA 公 司 所 提 供 之 FPGA 開 發 軟 體,MAX+plus II 以 及 Quartus II, 故 針 對 這 兩 套 軟 體 之 特 性 作 基 本 介 紹 MAX+plus II 開 發 較 早, 屬 於 早 期 的 電 路 合 成 器, 因 此 在 程 式 撰 寫 的 限 制 及 晶 片 支 援 較 少, 現 今 已 開 發 至 10.23 版 相 對 於 MAX+plus II,Quartus II 則 有 更 完 善 的 功 能, 支 援 的 語 法 及 晶 片 種 類 都 更 為 完 善, 現 今 最 新 版 本 為 5.1 這 兩 套 軟 體 皆 可 在 網 路 上 免 費 下 載 使 用, 只 要 下 載 後 並 在 網 站 上 申 請 認 證 檔, 填 入 資 料 後 該 公 司 會 以 電 子 郵 件 方 式 寄 認 證 檔 LICENSE. DAT, 完 成 認 證 後 即 可 擁 有 該 設 計 環 境 3.2 MAX+plus II 與 Quartus II Max+Plus II 可 支 援 設 計 者 從 設 計 圖 硬 體 描 述 語 言 的 輸 入, 一 直 到 規 劃 連 接 的 燒 錄 檔 燒 錄 以 及 模 擬 作 業 換 句 話 說 設 計 者 的 所 有 動 作 都 可 以 在 同 一 個 軟 體 上 完 成, 無 須 再 借 助 其 他 軟 體 (Third Party) 當 然 亦 可 彈 性 的 搭 配 輔 助 合 成 軟 體 另 外 透 過 Max+Plus II 的 韌 體 元 件 庫, 可 輔 助 設 計 師 在 面 對 相 同 功 能 的 邏 輯 方 塊 時 電 路 不 必 重 複 設 計 其 產 品 特 色 如 下 : 1. 支 援 WINDOWS 95/98/ME/2000/XP 之 作 業 系 統 2. 可 接 受 四 種 設 計 方 式 ( 繪 圖 編 輯 模 式 符 號 編 輯 模 式 文 字 編 輯 模 式 波 形 編 輯 模 式 ) 3. 文 字 編 輯 模 式 可 容 許 三 種 語 言 輸 入 (AHDL VHDL Verilog HDL) 4. 提 供 時 間 分 析 輸 入 輸 出 模 擬 功 能 5. 提 供 ISP 在 系 統 燒 錄 功 能 6. 內 建 數 位 IC 資 料 庫, 可 於 繪 圖 編 輯 模 式 下 使 用 7. Compiler 程 式 提 供 偵 錯 及 警 告 功 能 13

8. 新 增 ACEX EP1K 系 列 之 晶 片 組, 最 大 可 支 援 ACEX EP1K100 共 100,000 個 的 Gate Count Max+PlusⅡ 的 編 輯 環 境 又 有 以 下 五 項 優 點 : 1. 整 合 性 高 : 在 Max+PlusⅡ 的 環 境 整 合 內, 從 呼 叫 輸 入 設 計 程 式 在 視 窗 環 境 下 完 成 電 路 圖 的 製 作 或 是 編 輯 VHDL 檔 案, 到 呼 叫 編 譯 模 擬 平 面 規 劃 程 式, 一 直 到 進 行 燒 錄 下 載 程 式, 使 用 者 不 需 切 換 工 作 環 境, 可 省 去 不 少 麻 煩 2. 完 整 的 模 擬 觀 測 功 能 : 在 進 行 觀 測 CPLD 模 擬 方 面,Max+PlusⅡ 提 供 了 一 個 Simulator 和 Waveform Editor 程 式 來 協 助 使 用 者 快 速 而 精 準 的 設 定 與 觀 察 數 位 邏 輯 電 路 的 特 性 另 外 也 提 供 了 軟 體 量 測 的 功 能, 可 以 量 測 出 各 數 位 信 號 轉 態 的 發 生 時 間 與 發 生 的 相 對 時 間 等 等 數 據, 讓 使 用 者 能 夠 輕 易 且 快 速 的 判 斷 出 電 路 是 否 符 合 要 求 3. 模 組 化 和 階 層 化 設 計 : 隨 著 電 路 日 益 複 雜, 電 路 的 設 計 也 趨 向 於 模 組 化 和 階 層 化 ; 亦 即 將 電 路 的 特 性 及 需 使 用 的 元 件 切 割 成 子 電 路 也 就 是 說, 分 別 設 計 與 模 擬 每 一 個 子 電 路 後, 待 相 關 的 子 電 路 完 成 後, 再 將 他 們 組 合 起 來 完 成 整 體 電 路 設 計 4. 元 件 庫 擴 充 功 能 : Max+PlusⅡ 已 經 內 建 很 多 常 見 的 電 子 元 件 符 號 及 其 對 應 模 組, 也 針 對 CPLD 的 應 用 提 供 了 許 多 有 用 的 元 件 符 號 但 是 隨 著 製 程 技 術 的 進 步 和 新 的 電 子 元 件 不 斷 問 世, 這 時 我 們 可 以 利 用 符 號 編 輯 程 式 新 建 或 修 改 現 有 元 件 的 特 性 以 作 出 合 於 我 們 要 求 的 新 元 件 5. 支 援 CPLD/FPGA 作 為 描 述 電 路 硬 體 架 構 的 語 言 : 由 於 VHDL 已 成 為 IEEE 的 標 準, 以 及 FPGA 系 統 在 業 界 越 趨 流 行 的 情 況 下, 學 習 VHDL 成 為 硬 體 工 程 師 所 必 須 具 備 的 技 能 之 一 圖 3.1 為 MAX+PLUS II 之 編 輯 頁 面 : 14

圖 3.1 MAX+PLUS II 之 編 輯 頁 面 Max+Plus II 的 運 作 流 程 如 圖 3.2 所 示 : 圖 Max+Plus II 的 運 作 流 程 圖 15

Quartus TM II 第 五 代 開 發 工 具 軟 體, 在 設 計 上 是 針 對 數 百 萬 閘 PLD 內 的 系 統 級 整 合, 不 僅 保 留 Altera 之 Max+Plus II 的 特 色, 更 整 合 了 NativeLink Synopsys Viewlogic 及 Cadence nstep 編 譯, 以 縮 短 設 計 編 譯 時 間 編 譯 增 強 技 術 使 得 設 計 人 員 在 合 成 和 佈 局 佈 線 時, 能 夠 將 設 計 分 成 實 體 和 邏 輯 部 份 ; 其 特 性 支 援 以 模 組 為 主 的 設 計, 設 計 人 員 能 夠 保 持 專 用 模 組 性 能 不 變, 而 只 對 其 它 模 組 進 行 最 佳 化 在 設 計 出 現 更 動 時, 只 需 要 對 更 改 部 份 進 行 編 譯, 而 無 需 像 過 去 一 樣 全 部 進 行 重 新 編 譯, 顯 著 提 高 了 時 序 逼 近 效 率 這 也 使 得 FPGA 設 計 越 來 越 接 近 ASIC 的 設 計 方 法 除 了 編 譯 增 強 功 能, 新 的 I/O 接 腳 規 劃 器 簡 化 了 高 密 度 和 大 接 腳 數 量 設 計 接 腳 分 配 和 確 認 過 程 SoPC builder 軟 體 可 以 自 動 完 成 嵌 入 式 系 統 建 構 和 合 成 處 理, 為 採 用 PCI 外 部 記 憶 體 介 面 (EMIF) 和 定 製 處 理 器 介 面 的 外 部 處 理 器 提 供 簡 便 介 面, 支 援 多 處 理 器 系 統 內 的 處 理 器 間 通 訊 和 資 源 安 全 共 享 圖 3.3 為 Quartus TM II 的 編 輯 頁 面 : 圖 3.3 Quartus TM II 的 編 輯 頁 面 16

而 現 今 多 以 Quartus TM II 作 為 設 計 主 流, 更 開 發 不 少 將 Max+Plus II 轉 移 至 Quartus II 的 技 術, 在 使 用 方 法 上 與 Max+Plus II 大 同 小 異 Quartus TM II 的 操 作 流 程 如 下 圖 3.4: 圖 3.4 Quartus TM II 的 操 作 流 程 圖 這 兩 套 軟 體 皆 是 以 專 案 (Project) 來 作 為 系 統 單 位 即 每 個 專 案 底 下 可 有 多 個 不 同 的 程 式 檔, 透 過 程 式 的 編 輯 將 其 合 併, 避 免 單 個 程 式 過 於 龐 大 以 及 降 低 錯 誤 的 發 生 3.3 程 式 編 輯 與 軟 體 使 用 方 法 以 MAX+plus II 或 是 Quartus II 為 主 軸 的 程 式 設 計 流 程 如 下 圖 3.5 所 示 : 17

圖 3.5 程 式 設 計 流 程 圖 首 先 構 想 系 統 的 主 體 架 構, 包 括 了 欲 設 計 的 項 目 為 何 設 計 的 可 行 性 相 關 的 硬 體 元 件 以 及 成 本 問 題 接 著 細 部 思 考, 系 統 所 使 用 的 各 個 元 件 的 特 性 為 何, 所 需 要 求 的 時 脈 延 遲 電 路 以 及 如 何 作 動 等 的 資 料 蒐 集, 程 式 中 所 設 計 的 電 路 規 劃 此 時 架 構 算 是 建 立 完 成, 可 經 由 編 譯 器 (COMPILER) 來 確 認 是 否 無 誤, 由 於 軟 體 皆 有 錯 誤 警 告 訊 息, 而 且 清 楚 的 顯 示 出 錯 誤 的 位 置 以 及 錯 誤 的 原 因, 因 此 可 以 相 當 快 速 的 除 錯 時 序 的 驗 證 及 模 擬 (TIMING SIMULATION) 延 遲 程 式 的 確 認 (DELAY MATRIX), 是 接 下 來 的 步 驟 因 為 各 個 元 件 需 求 的 工 作 頻 率 不 同, 須 由 除 頻 電 路 來 獲 得 需 要 的 頻 率, 或 是 順 序 控 制 上 的 需 要 而 設 置 的 延 遲 電 路, 可 利 用 這 兩 個 功 能 來 做 確 認 設 定 硬 體 的 輸 出 輸 入 腳 位 (PIN ASSIGN), 使 模 組 與 FPGA 相 連 結, 腳 位 並 無 特 別 限 制, 可 由 使 用 者 任 意 編 排, 須 注 意 的 是 軟 體 必 須 與 硬 體 所 選 用 的 腳 位 一 致 再 次 COMPILE, 此 時 已 有 軟 體 及 硬 體 的 電 路 規 劃, 已 屬 於 一 個 完 整 的 系 統, 即 可 將 程 式 碼 燒 錄 或 下 載 至 FPGA 晶 片 上 (DEVICE PROGRAMMING) 經 由 發 展 系 統 則 快 速 的 輸 出 到 各 模 組 中, 例 如 七 節 顯 示 器 LCM 或 是 馬 達 等 等 下 圖 3.3-2 即 清 楚 的 顯 示 出 從 程 式 的 編 寫 及 規 劃, 到 與 硬 體 的 配 合 和 實 現 18

圖 3.6 FPGA 程 式 的 編 寫 及 規 劃, 到 與 硬 體 的 配 合 和 實 現 3.4 VHDL 概 要 VHDL 為 Very High Speed Integrated Circuit Hardware Description Language 之 縮 寫 其 發 展 原 由 為 1980 年 代 美 國 國 防 部 為 開 發 高 速 戰 機 中 的 積 體 電 路, 委 託 19

IBM Texas Instrument Intermetrics 負 責 發 展 此 一 計 畫, 因 而 制 定 的 硬 體 描 述 語 言 期 間 的 計 畫 稱 為 Very High Speed Integrated Circuit Program, 簡 稱 VHSIC, 而 所 開 發 出 來 的 硬 體 描 述 語 言 便 叫 做 VHSIC Hardware Description Language, 故 此 種 語 言 便 被 簡 稱 為 VHDL 一 般 而 言, 軍 用 規 格 皆 較 嚴 格 於 商 用 及 工 業 用 規 格, 因 此 VHDL 毫 無 疑 問 的 適 用 於 商 業 使 用, 也 因 此 VHDL 逐 漸 被 廣 泛 的 使 用 在 一 般 用 途 的 積 體 電 路 設 計 上 的 標 準 語 言 之 一 於 1987 年 由 電 機 電 子 工 程 學 會 (Institute of Electrical and Electronics Engineering;IEEE) 國 際 組 織 正 式 制 定 為 IEEE 1076 標 準, 並 於 1993 年 由 IEEE 組 織 再 度 修 正 為 IEEE 1164 標 準, 習 慣 上 則 以 VHDL 87 以 及 VHDL 93 來 區 分 兩 者 的 差 別 1996 年,IEEE 將 電 路 合 成 的 程 式 標 準 與 規 格, 加 入 到 VHDL 電 路 設 計 語 言 之 中, 因 此 在 歐 洲 已 成 為 電 子 電 路 設 計 的 統 一 語 言, 在 美 國 及 其 他 地 區 則 在 快 速 的 發 展 之 中 VHDL 既 為 硬 體 描 述 語 言, 即 是 針 對 硬 體 需 求 為 主 體 的 程 式 語 言 因 此 編 寫 程 式 前 必 須 先 了 解 硬 體 規 格, 包 括 外 部 介 面 訊 號 定 義 還 有 內 部 特 性 外 部 介 面 及 訊 號 定 義 與 電 路 描 述 有 關, 內 部 特 性 則 與 制 定 工 作 環 境 有 關, 例 如 工 作 頻 率 等 等 因 此 種 語 言 包 含 了 電 路 之 描 述 電 路 之 合 成 與 模 擬 等 三 大 電 路 設 計 工 作, 所 以 學 習 VHDL 前 必 須 先 對 硬 體 實 驗 有 相 當 的 了 解, 再 對 系 統 模 擬 有 所 概 念 方 能 順 利 進 行 以 下 根 據 VHDL 的 優 點 做 幾 項 敘 述 : 1. 涵 蓋 範 圍 廣 就 垂 直 系 統 而 言, 從 基 礎 的 FPGA 到 ASIC, 甚 至 是 大 型 的 系 統 設 計 皆 在 適 用 範 圍 內 2. 設 計 靈 活 VHDL 將 電 子 電 路 設 計 的 方 式, 改 變 成 以 行 為 化 描 述 的 方 式 來 設 計, 因 此 設 計 快 速 更 改 及 維 護 容 易 犯 錯 機 率 降 低 以 及 除 錯 方 便 為 其 主 要 優 點 更 可 以 透 過 不 同 的 編 輯 器 或 合 成 器 加 以 合 成, 然 而 得 到 的 Netlist 檔 20

案 可 以 依 不 同 的 邏 輯 元 件 及 製 程 技 術, 將 所 設 計 的 電 路 實 現 出 來 3. 多 種 描 述 方 式 VHDL 有 四 種 不 同 的 電 路 描 述, 分 別 為 連 線 關 係 順 序 性 敘 述 共 時 序 敘 述 和 布 林 方 程 式 等, 用 以 因 應 各 種 不 同 大 小 複 雜 性 不 同 之 電 路 設 計 4. 共 通 性 強 不 同 的 開 發 軟 體 皆 可 進 行 編 輯 VHDL, 也 可 以 利 用 不 同 的 模 擬 器 來 進 行 模 擬, 更 可 以 適 用 於 各 種 不 同 種 類 的 邏 輯 元 件 又 因 所 有 元 件 皆 可 自 行 設 計 應 用, 就 更 無 支 援 性 的 問 題 了 3.5 VHDL 程 式 架 構 VHDL 主 體 分 為 兩 個 基 本 架 構, 分 別 為 Entity 單 體 宣 告 區 以 及 Architecture 架 構 宣 告 區 單 體 是 一 個 設 計 中 最 基 本 的 一 部 分, 主 要 用 來 宣 告 電 路 外 部 包 裝, 通 常 為 描 述 電 路 設 計 中 輸 入 輸 出 訊 號 的 宣 告 而 其 型 式 有 許 多 種, 一 般 常 用 者 為 STD_LOGIC, 標 準 邏 輯 型 式 架 構 是 描 述 電 路 特 性 的 最 主 要 部 分, 架 構 的 部 分 用 來 描 述 各 個 元 件 間 相 互 連 結 的 情 形 依 其 設 計 方 法 可 分 為 以 下 三 種 : 結 構 性 描 述 (Structure Description): 主 要 透 過 元 件 的 宣 告 與 元 件 的 叫 用 等 方 式, 構 成 電 路 中 各 元 件 的 連 結 關 係 資 料 流 型 式 (Data Flow): 主 要 是 使 用 VHDL 語 言 中 所 內 建 的 標 準 布 林 函 式 為 主 軸, 將 各 訊 號 間 的 布 林 代 數 關 係, 以 布 林 方 程 式 來 表 示 行 為 性 描 述 (Behavior Description): 屬 於 高 階 描 述 方 式 主 要 使 用 電 路 週 性 的 行 為 性 描 述 來 設 計, 如 此 透 過 電 腦 的 合 成 與 最 佳 化, 可 以 加 快 產 品 的 設 計 週 期, 並 使 設 計 之 電 路, 非 常 易 於 維 護 在 VHDL 語 言 中 的 行 為 性 描 述 電 路 設 計, 通 常 是 使 用 Process 的 方 式 達 成 21

資 料 物 件 (OBJECT) 有 常 數 (Constants) 訊 號 (Signals) 變 數 (Variables) 別 名 (Aliases) 埠 (Port) 循 環 參 數 (Loop Varisble) 以 及 通 體 會 (Generics) 常 數 即 為 固 定 值, 在 指 定 訊 號 為 某 一 特 定 數 值 時 使 用 訊 號 用 來 宣 告 所 有 元 件 內 部 的 信 號 線 或 內 接 腳 位, 並 具 有 暫 存 器 的 效 果 變 數 用 來 之 處 理 及 設 定 一 定 要 發 生 在 行 為 描 述 程 式 內, 而 不 可 在 行 為 描 述 程 式 外, 因 此 僅 能 代 表 線 路 中 的 線 的 物 理 意 義, 其 合 成 出 來 的 電 路, 不 具 暫 存 器 的 效 果 在 電 路 中, 若 有 一 條 匯 流 排 需 要 區 分 成 數 束 不 同 的 子 線 連 接 到 各 個 地 方 去 時, 我 們 便 可 將 原 來 的 母 線 分 開 來 各 自 命 名, 宣 告 每 一 束 子 線 並 各 給 其 一 個 別 名 (Aliases) 埠 (PORT) 是 單 體 的 介 面 中 端 物 件, 只 有 型 態 及 信 號 特 性, 也 可 以 設 定 初 值,PORT 的 宣 告 只 能 在 單 體 (ENTITY) 中 使 用 其 輸 出 輸 入 部 分 又 分 為 以 下 四 種 : In: 表 示 該 腳 位 要 從 外 界 接 收 信 號 送 至 硬 體, 如 石 英 震 盪 器 Out: 表 示 該 腳 位 將 傳 送 信 號 至 硬 體, 如 LCM Inout: 可 收 送 雙 向 模 式 的 信 號 Buffer: 表 示 緩 衝 模 式 的 訊 號 通 體 定 義 單 體 的 特 性, 例 如 定 義 單 體 介 面 埠 的 大 小 循 環 參 數 (Loop Variable) 的 物 件 不 需 要 宣 告, 在 LOOP 陳 述 中 指 定 即 可 而 資 料 型 式 的 分 類 又 可 分 為 邏 輯 訊 號 以 及 數 值 訊 號, 在 程 式 語 言 中 以 TYPE 作 為 指 令 邏 輯 訊 號 是 以 布 林 代 數 (Boolean) 位 元 (Bit) 標 準 邏 輯 (Std_Logic) 基 本 邏 輯 序 列 (Bit_Vector) 與 標 準 邏 輯 序 列 (Std_Logic_Vector) 來 構 成, 較 常 用 者 為 標 準 邏 輯 與 標 準 邏 輯 序 列 標 準 邏 輯 表 現 的 型 態 就 是 實 際 數 位 電 路 在 輸 入 或 輸 出 位 準 所 呈 現 的 邏 輯 特 性, 所 能 描 述 的 邏 輯 特 性 真 實 而 且 完 整 而 標 準 邏 輯 序 列 則 是 電 路 中 含 多 個 訊 號 的 情 況 下, 以 序 列 的 方 式 作 為 表 達, 也 可 以 說 就 是 多 個 標 準 邏 輯 的 集 合 這 些 邏 輯 訊 號 的 宣 告 方 式 為 內 部 訊 號 宣 告 (Signal), 或 內 部 變 數 訊 號 宣 告 (Variable) 數 值 訊 號 則 是 以 整 數 (Integer) 無 號 整 數 ( UNSIGNED) 序 列 實 數 (Real) 列 舉 式 (Enumeration) 資 料 型 別 陣 列 (Array) 資 料 型 別 以 及 記 錄 (Record) 22

資 料 型 別 來 構 成 其 中 無 號 整 數 同 時 具 有 邏 輯 和 數 值 的 特 性, 因 此 既 可 作 邏 輯 處 理 又 可 作 數 值 運 算 而 實 數 的 範 圍 在 -1.0E38 to 1.0E38 之 間, 須 注 意 必 須 表 示 成 小 數 型 式 列 舉 式 資 料 型 別 是 一 種 集 合 種 類 的 宣 告, 使 用 者 可 以 自 行 設 定 名 稱, 並 將 其 定 義 成 集 合 體 的 元 素 陣 列 資 料 型 別 則 是 由 同 一 種 資 料 型 別 所 組 成 的 資 料 型 別 記 錄 資 料 型 別 是 由 兩 種 或 兩 種 以 上 資 料 型 別 所 構 成, 它 可 視 為 族 群 元 素 集 合 體 的 宣 告 在 VHDL 中, 可 以 運 算 子 的 描 述 方 式 來 簡 化 程 式 的 撰 寫 分 類 為 設 定 運 算 子 邏 輯 運 算 子 關 係 運 算 子 算 術 運 算 子 位 元 運 算 子 設 定 運 算 子 分 為 兩 種, 訊 號 的 設 定 運 算 子 及 變 數 的 設 定 運 算 子, 表 示 法 分 別 為 "<= 及 ":= 邏 輯 運 算 子 則 用 來 表 示 BIT BOOLEAN 及 STD_LOGIC 的 訊 號 關 係 邏 輯 運 算, 表 示 法 則 與 布 林 運 算 相 同, 分 別 為 "NOT" "AND" "OR" "NOR " "NAND" "XOR" "XNOR" 而 "XOR" 及 "XNOR" 為 VHDL 後 才 新 增 之 運 算 方 式 關 係 運 算 子 為 一 個 布 林 型 態 的 方 式, 意 即 只 有 TRUE 及 FALSE 兩 種 狀 態, 通 常 運 用 在 語 言 中 的 條 件 式 上 其 符 號 為 :"=" ">" "<" "/=", 分 別 表 示 為 " 等 於 " " 大 於 " " 小 於 " " 不 等 於 " 算 術 運 算 子 用 來 表 示 各 資 料 型 別 間 的 相 互 算 術 運 算, 符 號 及 其 意 義 分 別 為 : + ( 加 ) - ( 減 ) * ( 乘 ) / ( 除 ) **( 次 方 ) REM( 求 餘 數 )MOD ( 求 模 數 ) ABS( 絕 對 值 ), 除 了 基 本 的 加 減 乘 除 運 算 外, 其 餘 皆 只 在 編 譯 時 設 定 數 值 運 算 時 使 用 而 大 部 分 的 VHDL 合 成 器 只 支 援 "+" 及 "-" 兩 種 算 術 運 算 子 位 元 運 算 子 又 稱 位 移 運 算 子 或 數 值 運 算 子, 用 來 執 行 資 料 的 數 值 運 算, 例 如 向 右 移 位 (Shift Right) 向 左 旋 轉 (Rotate Left) 等 等 符 號 如 下 :SLA SRA SLL SRL ROL ROR 23

第 四 章 馬 達 與 LCM 模 組 應 用 4.1 專 題 硬 體 概 述 我 們 此 次 的 專 題 第 一 部 分, 即 研 究 直 流 馬 達 而 其 中, 我 們 所 控 制 的 馬 達 是 : 步 進 馬 達 (Stepping Motor), 另 外 尚 有 LCM 的 使 用 除 馬 達 與 LCM 個 別 學 習 之 外, 更 將 兩 者 搭 配 使 用, 形 成 一 步 進 馬 達 速 度 控 制 器, 將 目 前 之 速 度 級 別 顯 示 於 LCM 上 本 次 專 題 實 驗 的 馬 達 控 制 器 皆 以 VHDL 編 譯 於 FPGA 晶 片 實 現 我 們 有 研 究 利 用 VHDL 之 程 式 敘 述 來 達 成 控 制 馬 達 以 及 LCM 的 目 的 在 這 個 部 份, 簡 單 的 對 於 馬 達 及 LCM 的 基 本 分 類 及 性 質 還 有 其 驅 動 方 式 先 作 基 本 的 了 解, 這 樣 在 設 計 VHDL 控 制 程 式 時, 才 不 會 有 錯 誤 產 生 4.2 文 字 型 LCD 4.2.1 文 字 型 LCD 簡 介 LCD(Liquid Crystal Display) 液 晶 顯 示 器, 其 顯 示 的 方 式 可 分 為 : 文 字 型 LCD 與 繪 圖 型 LCD 兩 種 一 般 文 字 型 LCD 常 見 的 有 16 字 X2 列 20 字 X2 列 與 40 字 X2 列 幾 種, 而 其 介 面 以 16 支 信 號 接 腳 最 為 常 見, 但 是 通 常 只 使 用 前 14 之 接 腳,LCD 模 組 的 結 構 如 圖 4.1 所 示, 由 LCD 控 制 器,LCD 驅 動 器 及 LCD 顯 示 器 所 組 成 目 前 市 售 LCD 模 組 所 採 用 的 LCD 控 制 器 都 相 容, 使 用 方 法 也 相 同, 因 此 機 乎 所 有 的 LCD 模 組 都 具 有 相 同 的 控 制 方 法 24

圖 4.1 LCD 控 制 方 塊 圖 其 各 接 腳 功 能 說 明 如 表 4.1 所 示 表 4.1 LCD 接 腳 功 能 說 明 25

4.2 時 序 圖 讀 取 時 序 圖, 如 圖 4.2: 圖 4.2 (A) 讀 取 時 序 規 格 圖 4.2 (B) 讀 取 時 序 圖 26

寫 入 時 序 圖, 如 圖 4.3: 圖 4.3 (A) 寫 入 時 序 規 格 圖 4.3 (B) 寫 入 時 序 圖 我 們 由 圖 4.2 及 圖 4.3 的 LCD 讀 寫 時 序 週 期 得 知, 其 時 序 先 送 位 址 (RS) 及 讀 寫 (R/W) 信 號, 然 後 再 送 出 致 能 信 號 (E), 如 此 時 序 方 能 匹 配 4.2.3 LCD 內 部 旗 標 與 暫 存 器 1. 忙 碌 旗 號 (Busy Flag 簡 稱 BF) BF 旗 號 是 LCD 用 來 告 訴 CPU 它 內 部 是 否 忙 碌 的 一 個 旗 號, 若 BF=1 表 示 LCD 27

正 在 處 理 內 部 工 作, 因 此 這 時 候 不 可 以 寫 入 資 料 給 LCD 當 BF=0 時, 表 示 CPU 可 以 寫 資 料 給 LCD 當 接 腳 RS=0 且 R/W =1 時, 忙 碌 旗 標 的 內 容 會 由 接 腳 DB7 輸 出 2. 暫 存 器 LCD 模 組 內 部 只 有 兩 個 8 位 元 暫 存 器, 稱 為 指 令 暫 存 器 (Instruction Register, IR) 和 資 料 暫 存 器 (Data Register,DR) 它 們 都 是 8 位 元 暫 存 器, 並 且 由 RS 腳 來 選 用 3. 位 址 計 數 器 AC(Address Counter) 位 址 計 數 器 用 來 指 示 欲 存 取 資 料 的 DD RAM 或 CG RAM 的 位 址 位 址 設 定 指 令 將 為 址 寫 入 IR 暫 存 器 後, LCD 內 部 控 制 會 將 IR 暫 存 器 中 的 位 址 傳 送 到 AC 當 資 料 寫 入 或 讀 出 後,AC 的 內 容 會 自 動 加 1(I/D=1) 或 減 (I/D=0) 4. 字 型 產 生 器 CG RAM (Character Generate RAM) LCD 模 組 內 除 了 提 供 標 準 的 字 型 (CG ROM) 供 使 用 外, 另 外 還 提 供 64 位 元 組 的 CG RAM 空 間 供 使 用 者 存 放 自 己 所 設 計 的 造 型, 一 個 字 的 造 型 (5 7 點 ) 共 使 用 8 個 位 元 組, 因 此 使 用 者 最 多 可 以 存 放 8 個 自 己 的 造 型 28

表 4.2 LCD 控 制 指 令 接 腳 功 能 RS R/W 0 0 把 指 令 碼 或 位 址 寫 入 指 令 暫 存 器 IR, 並 執 行 指 令 或 設 定 一 個 要 存 入 或 取 出 資 料 的 位 址 0 1 讀 取 忙 碌 旗 標 BF 或 位 址 計 數 器 AC 的 內 容 DB7= 忙 碌 旗 標 BF 的 內 容 DB6~DB0= 位 址 計 數 器 AC 的 內 容 1 0 讀 取 忙 碌 旗 標 BF 或 位 址 計 數 器 AC 的 內 容 DB7= 忙 碌 旗 標 BF 的 內 容 DB6~DB0= 位 址 計 數 器 AC 的 內 容 1 1 讀 取 忙 碌 旗 標 BF 或 位 址 計 數 器 AC 的 內 容 DB7= 忙 碌 旗 標 BF 的 內 容 DB6~DB0= 位 址 計 數 器 AC 的 內 容 4.2.4 LCD 模 組 控 制 指 令 LCD 顯 示 器 可 接 受 由 CPU 送 過 來 的 指 令, 並 且 加 以 執 行 LCD 執 行 這 些 指 令 需 花 40µs~1.64ms 的 時 間, 這 些 控 制 指 令 應 寫 到 LCD 的 IR 暫 存 器 1. 清 除 顯 示 Clear Display 動 作 : 將 DDR 資 料 全 部 填 入 空 白 碼 20H, 並 將 游 標 移 到 左 上 角 原 點 位 置, 清 除 DD RAM 的 位 址 計 數 器 AC 為 00H,I/D 設 為 1 2. 游 標 歸 位 Curse Home 29

動 作 : DD RAM 的 資 料 保 持 不 變, 僅 將 游 標 移 至 左 上 角 原 點 處, 及 第 一 行 的 第 一 個 字,DD RAM 的 位 址 計 數 器 設 為 00H 3. 輸 入 模 式 設 定 Entry Mode 動 作 : 這 個 指 令 設 定 游 標 的 移 動 方 向, 和 顯 示 器 是 否 要 閃 爍 表 4.3 LCD 輸 入 模 式 控 制 指 令 S I/D 動 作 說 明 0 0 顯 示 字 元 數 不 動, 游 標 左 移, 位 置 計 數 器 AC 減 一 0 1 顯 示 字 元 數 不 動, 游 標 右 移, 位 置 計 數 器 AC 加 一 1 0 顯 示 字 元 數 右 移, 游 標 不 變, 位 置 計 數 器 AC 不 變 1 1 顯 示 字 元 數 左 移, 游 標 不 變, 位 置 計 數 器 AC 不 變 4. 顯 示 ON/OFF 控 制 (Display ON/OFF) 動 作 : D: 顯 示 器 控 制 位 元,D=0 關 D=1, 開 C: 游 標 顯 示 控 制 位 元, C=0 不 顯 示 C=1 顯 示 B: 游 標 閃 爍 Blink 控 制 位 元,B=0 不 閃 爍,B=1 閃 爍 5. 游 標 移 位 控 制 動 作 : 這 個 指 令 可 以 在 不 做 任 何 讀 寫 資 料 的 情 況 下, 移 動 游 標 或 整 個 顯 示 幕 向 右 或 向 左 移 30

表 4.4 LCD 游 標 控 制 指 令 S/C R/L 動 作 說 明 0 0 游 標 左 移,AC 值 減 0 1 游 標 右 移,AC 值 加 1 0 整 個 顯 示 螢 幕 向 左 移 ( 所 有 資 料 和 游 標 ) 1 1 整 個 顯 示 螢 幕 向 右 移 ( 所 有 資 料 和 游 標 ) 6. 功 能 設 定 Function Set 動 作 : DL: 設 定 介 面 的 位 元 寬 度,DL=1 時 為 8 位 元, 若 DL=0 時 為 4 位 元 N: 設 定 顯 示 器 的 行 數,N=0 時,1 行 顯 示 N=1 時,2 行 顯 示 F: 字 型 Font 設 定 表 4.5 LCD 字 型 設 定 指 令 N F 行 數 字 型 附 註 0 0 1 5x7 點 0 1 1 5x10 點 1 * 1 5x7 點 用 5x10 點 時, 不 能 顯 示 第 二 行 7. CG RAM 位 址 設 定 動 作 : 設 定 CG RAM 的 位 址, 由 A5~A0 之 六 個 位 元 位 址 00H~3FH 位 址 共 64 個 位 元 組, 當 寫 入 本 命 令 之 後, 接 個 輸 入 的 資 料 將 寫 到 CGRAM 中 8. DD RAM 位 址 設 定 31

動 作 : 設 定 DD RAM 的 位 址, 由 A6~A0 之 七 個 位 元 定 址, 接 著 寫 入 的 資 料 將 寫 入 DD RAM 中 9. 讀 取 忙 碌 旗 標 BF 及 位 址 計 數 器 AC 的 內 容 動 作 : 若 讀 出 的 BF=1, 表 示 LCD 模 組 正 忙 著 內 部 的 工 作, 因 此, 無 法 接 受 CPU 的 命 令, 直 到 BF=0 才 可 以 在 讀 BF 的 同 時, 也 會 讀 到 位 址 計 數 器 的 值 (DB0~DB6), 這 個 讀 出 的 位 址, 可 能 是 CG RAM 的 位 址 或 是 DD RAM 的 位 址, 端 看 前 面 設 定 10. 寫 資 料 到 CG RAM 或 DD RAM 中 動 作 : 寫 入 8 位 元 的 資 料 (D0~D7) 到 DD RAM 或 CG RAM, 至 於 是 寫 到 那 一 個, 則 是 看 前 一 次 式 設 定 DD RAM 或 是 CG RAM 的 位 址 11. 自 CG RAM 或 DD RAM 中 讀 取 資 料 動 作 : 寫 入 8 位 元 的 資 料 (D0~D7) 到 DD RAM 或 CG RAM, 至 於 是 寫 到 那 一 個, 則 是 看 前 一 次 式 設 定 DD RAM 或 是 CG RAM 的 位 址 LCD 控 制 指 令 表 4.4: 32

表 4.6 控 制 指 令 表 33

LCD 顯 示 字 形 基 本 流 程 圖 4.4: 電 源 ON LCD 初 始 化 是 否 忙 碌 是 否 寫 入 指 令 設 定 DD RAM 位 址 是 否 忙 碌 是 否 寫 入 要 顯 示 字 型 的 ASCII 碼 字 形 顯 示 於 LCD 上 圖 4.4 LCD 控 制 流 程 圖 34

電 路 圖 4.5: 圖 4.5 LCD 腳 位 電 路 圖 4.3 馬 達 簡 介 電 動 機 即 為 工 業 界 俗 稱 的 馬 達, 馬 達 在 工 廠 自 動 化 中 扮 演 著 十 分 重 要 的 角 色 種 類 依 照 使 用 電 源 可 分 成 直 流 馬 達 (DC Motor) 與 交 流 馬 達 (AC Motor) 兩 大 類, 若 再 以 控 制 方 式 啟 動 方 式 與 繞 組 方 式 分 類 則 可 分 成 步 進 馬 達 (Stepping Motor) 伺 服 馬 達 (Servo Motor) 無 刷 馬 達 ( 霍 爾 馬 達 ) 單 相 交 流 馬 達 三 相 感 應 馬 達 串 激 式 直 流 馬 達 分 激 式 直 流 馬 達 與 複 激 式 直 流 馬 達 等 其 中 若 以 動 力 輸 出 的 觀 點 而 言, 直 流 馬 達 交 流 馬 達 有 較 佳 的 動 力 輸 出 ; 但 若 以 控 制 精 度 的 方 向 來 看, 則 伺 服 馬 達 及 步 進 馬 達 應 該 是 較 佳 的 選 擇 4.3.1 直 流 馬 達 圖 4.6 為 馬 達 之 基 本 構 造 示 意 圖, 一 般 的 電 動 機 在 構 造 上 可 以 分 成 五 個 部 份 : 35

圖 4.6 直 流 馬 達 基 本 構 造 圖 1. 電 樞 (Armature) 或 轉 子 (Rotor) 為 馬 達 旋 轉 的 部 份, 材 質 為 永 久 磁 鐵 線 圈 ( 外 接 電 源 ) 導 線 ( 無 外 接 電 源 ) 或 特 殊 形 狀 之 導 磁 材 料 2. 場 繞 組 (Field) 或 定 子 (Stator) 材 質 為 永 久 磁 鐵 或 是 線 圈 ( 外 接 電 源 ) 3. 滑 環 (Slip Ring) 或 換 向 器 (Commutator, 如 直 流 馬 達 之 碳 刷 ) 連 接 轉 子 繞 線 至 外 部 換 向 器 用 於 改 變 電 樞 繞 線 之 電 流 方 向, 使 用 永 久 磁 鐵 為 轉 子 材 質 的 馬 達 則 無 需 滑 環 或 換 向 器 4. 軸 承 (Bearing) 可 使 用 滾 珠 滾 針 滾 柱 含 油 自 潤 軸 承, 主 要 提 供 轉 子 穩 固 的 支 撐 5. 馬 達 控 制 器 (Motor Controller) 雖 然 電 動 機 的 種 類 相 當 多, 不 過 各 種 電 動 機 的 基 本 操 作 原 理 都 相 同, 都 是 利 用 電 流 流 過 定 子 產 生 磁 場, 當 轉 子 也 通 上 電 流 時 由 於 切 割 定 子 所 產 生 的 磁 力 線 而 生 成 旋 轉 扭 矩 造 成 電 動 機 轉 子 的 轉 動 如 圖 所 示, 假 設 轉 子 之 繞 組 只 有 一 組 線 圈 時, 當 轉 子 線 圈 通 上 電 流 時 由 於 切 割 定 子 所 產 生 的 磁 力 線 而 生 成 旋 轉 扭 矩, 致 使 轉 子 轉 動, 以 下 圖 4.7 而 言, 定 子 的 磁 力 線 由 左 至 右, 而 轉 子 的 電 流 方 向 為 由 右 方 流 入 左 方 流 出, 因 此 生 成 的 旋 轉 扭 矩 使 得 轉 子 順 時 針 旋 轉 36

圖 4.7 電 動 機 原 理 4.3.2 步 進 馬 達 步 進 馬 達 的 種 類 與 原 理 : 步 進 馬 達 的 種 類 依 照 結 構 來 分 可 以 分 成 三 種 : 永 久 磁 鐵 PM 式 (Permanent Magnet Type) 可 變 磁 阻 VR 式 (Variable Reluctance Type) 以 及 複 合 式 (Hybrid Type) PM 式 步 進 馬 達 之 結 構 如 圖 4.8(a) 所 示,PM 式 步 進 馬 達 的 轉 子 是 以 永 久 磁 鐵 製 成, 其 特 性 為 線 圈 無 激 磁 時, 由 於 轉 子 本 身 具 磁 性 故 仍 能 產 生 保 持 轉 矩 PM 式 步 進 馬 達 的 步 進 角 依 照 轉 子 材 質 不 同 而 有 所 改 變, 例 如 鋁 鎳 鈷 系 (Alnico) 磁 鐵 轉 子 之 步 進 角 較 大, 為 45 或 90, 而 陶 鐵 系 (Ferrite) 磁 鐵 因 可 多 極 磁 化 故 步 進 角 較 小, 為 7.5 及 15 圖 4.8 步 進 馬 達 種 類 37

4.8(b) 為 VR 式 步 進 馬 達 之 結 構,VR 式 步 進 馬 達 的 轉 子 是 以 高 導 磁 材 料 加 工 製 成, 由 於 是 利 用 定 子 線 圈 產 生 吸 引 力 使 轉 子 轉 動, 因 此 當 線 圈 未 激 磁 時 無 法 保 持 轉 矩, 此 外, 由 於 轉 子 可 以 經 由 設 計 提 高 效 率, 故 VR 式 步 進 馬 達 可 以 提 供 較 大 之 轉 矩, 通 常 運 用 於 需 要 較 大 轉 矩 與 精 確 定 位 之 工 具 機 上,VR 式 的 步 進 角 一 般 均 為 15 複 合 式 步 進 馬 達 在 結 構 上, 是 在 轉 子 外 圍 設 置 許 多 齒 輪 狀 之 突 出 電 極, 同 時 在 其 軸 向 亦 裝 置 永 久 磁 鐵, 可 視 為 PM 式 與 VR 式 之 合 體, 故 稱 之 為 複 合 式 步 進 馬 達, 複 合 式 步 進 馬 達 具 備 了 PM 式 與 VR 式 兩 者 的 優 點, 因 此 具 備 高 精 確 度 與 高 轉 矩 的 特 性, 複 合 式 步 進 馬 達 的 步 進 角 較 小, 一 般 介 於 1.8 ~3.6 之 間, 最 常 運 用 於 OA 器 材 如 影 印 機 印 表 機 或 攝 影 器 材 上 電 動 機 動 作 原 理 是 當 轉 子 通 上 電 流 時 由 於 切 割 定 子 所 產 生 的 磁 力 線 而 生 成 旋 轉 扭 矩 造 成 電 動 機 轉 子 的 轉 動 ; 步 進 馬 達 的 驅 動 原 理 也 是 如 此, 不 過 若 以 驅 動 訊 號 的 觀 點 來 看, 一 般 直 流 馬 達 與 交 流 馬 達 所 使 用 的 驅 動 電 壓 訊 號 為 連 續 的 直 流 訊 號 與 交 流 訊 號, 而 步 進 馬 達 則 是 使 用 不 連 續 的 脈 波 訊 號, 三 種 電 壓 訊 號 的 電 壓 時 間 圖 如 圖 4.9 所 示 圖 4.9 步 進 馬 達 輸 入 訊 號 38

步 進 馬 達 之 運 轉 特 性 : 圖 4.10 步 進 馬 達 控 制 方 塊 圖 上 圖 4.10 為 步 進 馬 達 控 制 流 程 圖, 步 進 馬 達 係 由 微 電 腦 控 制 器 所 控 制, 當 控 制 訊 號 自 微 電 腦 輸 出 後, 隨 即 藉 由 驅 動 器 將 訊 號 放 大, 達 到 控 制 馬 達 運 轉 的 目 的, 整 個 控 制 流 程 中 並 無 利 用 到 任 何 回 饋 訊 號, 因 此 步 進 馬 達 的 控 制 模 式 為 典 型 的 閉 迴 路 控 制 (Close Loop Control) 閉 迴 路 控 制 的 優 點 為 控 制 系 統 簡 潔, 無 回 饋 訊 號 因 此 不 需 感 測 器 成 本 較 低, 不 過 正 由 於 步 進 馬 達 的 控 制 為 開 路 控 制, 因 此 若 馬 達 發 生 失 步 或 失 速 的 情 況 時, 無 法 立 即 利 用 感 測 器 將 位 置 誤 差 傳 回 做 修 正 補 償, 要 解 決 類 似 的 問 題 只 能 從 了 解 步 進 馬 達 運 轉 特 性 著 手 註 : 流 程 圖 中, 脈 波 產 生 器 及 微 電 腦 控 制 器 由 FPGA 取 代 步 進 馬 達 之 應 用 : 由 於 步 進 馬 達 所 使 用 的 驅 動 訊 號 為 脈 波 訊 號, 因 此 以 普 通 直 流 電 源 加 在 馬 達 繞 組 時, 馬 達 是 不 會 連 續 轉 動 的 此 外, 步 進 馬 達 的 電 源 線 最 少 有 五 條, 其 中 一 條 為 共 接 點, 其 餘 四 條 分 別 為 A 相 A+ 相 B 相 B+ 四 相 的 輸 入 點, 有 些 步 進 馬 達 的 電 源 線 共 有 六 條, 其 中 兩 條 為 共 接 點, 將 A 相 A+ 相, 與 B 相 B+ 四 相 的 輸 入 點 分 成 兩 組 要 分 辨 何 者 為 共 接 點, 何 者 為 輸 入 點 以 及 正 反 轉 的 激 磁 順 序, 可 以 先 用 三 用 電 表 之 歐 姆 檔 量 測 線 圈 之 電 阻 值, 理 論 上 各 相 的 電 阻 值 應 相 等, 找 出 共 接 點 後 再 以 低 於 額 定 電 壓 電 流 之 直 流 電 源 一 一 測 試, 便 可 找 出 步 進 馬 達 正 反 轉 的 激 磁 順 序 4.4 實 作 簡 介 利 用 FPGA 當 作 控 制 器, 主 要 用 途 為 鍵 盤 掃 描 消 除 彈 跳 以 及 處 理 步 進 39

馬 達 九 段 變 速 所 需 要 的 頻 率 然 後 將 目 前 步 進 馬 達 工 作 的 級 數, 顯 示 在 LCD 螢 幕 上, 未 來 希 望 可 以 寫 出 讓 步 進 馬 達 可 以 由 使 用 者 選 擇 正 轉 或 是 反 轉, 並 且 一 樣 有 九 段 不 同 的 速 度 可 供 選 擇, 以 及 讓 角 速 度 顯 示 在 LCD 螢 幕 上 圖 4.11 步 進 馬 達 實 作 成 品 以 下 為 控 制 9 段 步 進 馬 達 之 VHDL 程 式 碼 : library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use work.step_motor_setable_speed_0_9_lcd_pack.all; entity STEP_MOTOR_SETABLE_SPEED_0_9_LCD is Port ( CLK RESET : in std_logic; : in std_logic; 40

ROW : in std_logic_vector(3 downto 0); COLUMN : out std_logic_vector(3 downto 0); TRIGGER : out std_logic_vector(3 downto 0); LCM_DATA : out std_logic_vector(7 downto 0); LCM_RW LCM_EN LCM_RS : out std_logic; : out std_logic; : out std_logic); end STEP_MOTOR_SETABLE_SPEED_0_9_LCD; architecture Behavioral of STEP_MOTOR_SETABLE_SPEED_0_9_LCD is signal PRESS : std_logic; signal PRESS_VALID : std_logic; signal SPEED : std_logic; signal DEBOUNCE_CLK : std_logic; signal LCM_COUNT : std_logic_vector(5 downto 0); signal SCAN_CODE : std_logic_vector(3 downto 0); signal REG_CODE : std_logic_vector(3 downto 0); signal PATTERN : std_logic_vector(3 downto 0); signal DIVIDER : std_logic_vector(24 downto 0); signal SPEED_CLK : std_logic_vector(9 downto 0); begin process (CLK,RESET) begin 41

if RESET = '0' then DIVIDER <= "0000000000000000000000000"; elsif CLK'event and CLK = '1' then DIVIDER <= DIVIDER + 1; end if; end process; SPEED_CLK(9) <= DIVIDER(15); SPEED_CLK(8) <= DIVIDER(16); SPEED_CLK(7) <= DIVIDER(17); SPEED_CLK(6) <= DIVIDER(18); SPEED_CLK(5) <= DIVIDER(19); SPEED_CLK(4) <= DIVIDER(20); SPEED_CLK(3) <= DIVIDER(21); SPEED_CLK(2) <= DIVIDER(22); SPEED_CLK(1) <= DIVIDER(23); SPEED_CLK(0) <= DIVIDER(24); DEBOUNCE_CLK <= DIVIDER(13); process (DEBOUNCE_CLK,RESET) begin if RESET = '0' then REG_CODE <= "0000"; elsif DEBOUNCE_CLK'event and DEBOUNCE_CLK = '1' then if PRESS_VALID = '1' and SCAN_CODE <"1010" then 42

REG_CODE <= SCAN_CODE; end if; case REG_CODE is when "0000" => SPEED <= SPEED_CLK(0); when "0001" => SPEED <= SPEED_CLK(1); when "0010" => SPEED <= SPEED_CLK(2); when "0011" => SPEED <= SPEED_CLK(3); when "0100" => SPEED <= SPEED_CLK(4); when "0101" => SPEED <= SPEED_CLK(5); when "0110" => SPEED <= SPEED_CLK(6); when "0111" => SPEED <= SPEED_CLK(7); when "1000" => SPEED <= SPEED_CLK(8); when others => SPEED <= SPEED_CLK(9); end case; end if; end process; process (RESET,SPEED_CLK(7)) begin if RESET = '0' then LCM_COUNT <= "000000"; LCM_RS LCM_RW <= '0'; <= '0'; LCM_DATA <= "00000001"; elsif SPEED_CLK(7)'event and SPEED_CLK(7) = '1' then 43

if LCM_COUNT < "100110" then LCM_COUNT <= LCM_COUNT + 1; else LCM_COUNT <= "000101"; end if; case LCM_COUNT is when "000000" => LCM_RS <= '0'; LCM_RW <= '0'; LCM_DATA <= "00111100"; -- 8 BIT, 2 Lines, 5 * 7 Dot when "000001" => LCM_DATA <= "00111100"; -- 8 BIT, 2 Lines, 5 * 7 Dot when "000010" => LCM_DATA <= "00000001"; -- Clear LCD Display when "000011" => LCM_DATA <= "00000110"; -- Cursor Shift Right, AC + 1 when "000100" => LCM_DATA <= "00001100"; -- Display on, Cursor off when "000101" => LCM_RS <= '0'; LCM_DATA <= "10000000"; -- Set Cursor when "000110" => LCM_RS <= '1'; LCM_DATA <= "01010011"; -- S when "000111" => LCM_DATA <= "01110000"; -- p 44

when "001000" => LCM_DATA <= "01100101"; -- e when "001001" => LCM_DATA <= "01100101"; -- e when "001010" => LCM_DATA <= "01100100"; -- d when "001011" => LCM_DATA <= "00100000"; -- when "001100" => LCM_DATA <= "01000011"; -- C when "001101" => LCM_DATA <= "01101111"; -- o when "001110" => LCM_DATA <= "01101110"; -- n when "001111" => LCM_DATA <= "01110100"; -- t when "010000" => LCM_DATA <= "01110010"; -- r when "010001" => LCM_DATA <= "01101111"; -- o when "010010" => LCM_DATA <= "01101100"; -- l when "010011" => LCM_DATA <= "00100000"; -- when "010100" => LCM_DATA <= "00111010"; -- : 45

when "010101" => LCM_DATA <= "00100000"; -- when "010110" => LCM_RS <= '0'; LCM_DATA <= "11000000"; -- Set Cursor when "010111" => LCM_RS <= '1'; LCM_DATA <= "01010011"; -- S when "011000" => LCM_DATA <= "01110000"; -- p when "011001" => LCM_DATA <= "01100101"; -- e when "011010" => LCM_DATA <= "01100101"; -- e when "011011" => LCM_DATA <= "01100100"; -- d when "011100" => LCM_DATA <= "00100000"; -- when "011101" => LCM_DATA <= "01001100"; -- L when "011110" => LCM_DATA <= "01100101"; -- e when "011111" => LCM_DATA <= "01110110"; -- v when "100000" => LCM_DATA <= "01100101"; -- e 46

when "100001" => LCM_DATA <= "01101100"; -- l when "100010" => LCM_DATA <= "00100000"; -- when "100011" => LCM_DATA <= "00111010"; -- : when "100100" => LCM_DATA <= "00100000"; -- when "100101" => LCM_DATA <= "0011" & REG_CODE; when others => LCM_DATA <= "00100000"; -- end case; end if; end process; LCM_EN <= SPEED_CLK(7); Process (SPEED,RESET) begin if RESET = '0' then PATTERN <= "1000"; elsif SPEED'event and SPEED = '1' then case PATTERN is when "1000" => PATTERN <= "0100"; when "0100" => PATTERN <= "0010"; when "0010" => PATTERN <= "0001"; 47

when "0001" => PATTERN <= "1000"; when others => PATTERN <= "1000"; end case; end if; end process; TRIGGER <= PATTERN; SCANNING_CODE : CODE port map (CLK,RESET,PRESS,SCAN_CODE); DETECTOR : KEYPRESS_DETECTOR port map (SCAN_CODE,ROW,COLUMN,PRESS); BOUNCER : DEBOUNCER port map (DEBOUNCE_CLK,RESET,PRESS,PRESS_VALID); end Behavioral; 48

第 五 章 數 位 / 類 比 轉 換 器 5.1 專 題 硬 體 概 述 此 次 的 專 題 第 二 部 分, 即 研 究 數 位 類 比 轉 換 器 (AD Converter) 欲 利 用 ADC0809 將 類 比 訊 號 轉 換 為 數 位 訊 號, 並 與 熱 敏 電 阻 搭 配 而 成 一 個 數 位 溫 度 計, 以 VHDL 程 式 語 言 來 將 轉 換 後 溫 度 顯 示 於 七 節 顯 示 器 上, 未 來 希 望 再 設 計 開 關 控 制 器, 當 溫 度 到 達 設 定 值 時, 則 馬 達 啟 動 唯 此 部 分 再 這 次 專 題 無 法 達 成, 所 以 以 下 僅 做 AD Converter 之 介 紹 與 成 果 5.2 數 位 類 比 轉 換 器 5.2.1 ADC 簡 介 一 般 所 量 測 之 電 壓 或 電 流 等 連 續 訊 號, 可 稱 之 為 類 比 訊 號 把 類 比 訊 號 轉 換 成 數 位 訊 號 之 裝 置 則 稱 為 類 比 對 數 位 轉 換 器 (Analog To Digital Converter, ADC) 數 位 訊 號 在 傳 送 中 即 使 有 雜 訊 干 擾, 它 仍 然 可 以 把 雜 訊 所 造 成 之 干 擾 降 至 最 低, 且 可 利 用 編 碼 技 術 使 其 具 有 除 錯 之 功 能 ; 除 此 之 外, 數 位 訊 號 尚 有 容 易 儲 存 之 優 點 以 下 將 說 明 類 比 對 數 位 轉 換 器 的 基 本 原 理 及 之 工 作 原 理 和 特 性 5.2.2 ADC 類 型 : 一 個 ADC 可 將 類 比 電 壓 轉 換 為 數 位 式 數 字, 此 數 字 表 示 在 有 限 的 解 析 階 數 之 下 所 代 表 的 輸 入 電 壓 ADC 解 析 度 由 位 元 數 (bit) 來 決 定, 一 個 n-bit 的 ADC 有 2n 分 之 1 的 解 析 度 例 如 : 一 個 12 bit ADC 解 析 度 為 4096 分 之 一 (2^ 12 =4096), 換 算 為 量 測 10Volt 範 圍 時 解 析 度 為 2.44mV 同 樣 的,16 bit 的 ADC 的 解 析 度 為 65536 分 之 一 (2^16 =65536),10Volt 電 壓 範 圍 可 解 析 至 0.153mV 例 如 本 次 專 題 所 使 用 的 A/D 轉 換 晶 片 ADC0809 的 解 析 度 為 8 位 元 類 比 轉 數 位 轉 換 器 有 幾 種 方 式, 不 同 的 ADC 類 型 分 別 有 不 同 的 解 析 度, 精 確 度 及 轉 換 速 率 等 規 格 一 般 常 見 之 ADC 為 平 行 式 (Flash) 轉 換 連 續 近 似 型 ADC 電 壓 轉 頻 率 式 ADC 及 積 分 型 ADC, 下 面 提 供 平 行 式 轉 換 以 及 連 續 近 似 型 的 原 理 : 49

平 行 式 (Flash) 轉 換 器 : 平 行 式 轉 換 器 為 最 簡 單 的, 它 利 用 一 個 與 量 測 範 圍 同 大 小 的 參 考 電 壓, 並 串 接 一 系 列 的 2n +1 個 電 阻,n 即 為 代 表 ADC 轉 換 解 析 度 之 位 元 數, 而 待 測 的 輸 入 電 壓 值 即 由 比 較 器 與 分 壓 電 阻 所 產 生 之 2n 個 分 壓 相 比 得 知 如 圖 5.1 所 示 為 2 位 元 平 行 式 轉 換 器 圖 5.1 轉 換 器 電 路 圖 快 閃 式 (Flash) 轉 換 器 速 度 非 常 快 ( 達 到 每 秒 500 百 萬 次 取 樣 ), 因 為 每 個 位 元 值 為 平 行 處 理 這 種 平 行 模 式 方 法 需 大 量 的 比 較 器, 因 此, 大 部 份 平 行 式 轉 換 器 限 制 在 8 位 元 解 析 度 ( 共 256 個 比 較 器 ), 快 閃 式 轉 換 器, 一 般 常 見 於 暫 態 數 位 儀 及 數 位 式 示 波 器 連 續 近 似 ADC: 連 續 近 似 ADC 使 用 一 個 數 位 轉 類 比 轉 換 器 (DAC) 及 一 個 比 較 器, 它 利 用 二 分 法 或 二 項 式 搜 尋 法 從 輸 出 為 0 開 始 比 對, 從 高 位 元 起 設 定 DAC 的 每 一 個 位 元, 再 將 DAC 的 輸 出 與 待 測 電 壓 比 對, 當 有 位 元 相 比 對 為 1 時, 使 得 DAC 的 輸 出 大 於 待 測 電 壓, 此 位 元 即 設 為 0 連 續 近 似 法 的 ADC 圖 示 於 5.2 圖 50

圖 5.2 連 續 近 似 法 ADC 電 路 圖 連 續 近 似 法 較 快 閃 式 為 慢, 是 由 於 比 較 器 需 要 作 一 連 串 的 比 對 動 作 及 每 一 次 設 定 DAC 之 後 待 其 穩 定 之 前 需 暫 停 作 ADC 一 般 轉 換 速 率 為 200kHz 以 上, 連 續 近 似 法 以 12 或 16 位 元 解 析 來 說 費 用 相 當 低 廉 一 般 最 常 見 ADC 的 即 為 此 類 型 5.2.3 類 比 對 數 位 轉 換 器 之 基 本 原 理 : 圖 5.3 為 一 理 想 3 位 元 (bit) 類 比 對 數 位 轉 換 器 之 特 性 曲 線, 其 類 比 訊 號 之 輸 入 範 圍 為 0 伏 特 至 1 伏 特 在 此 圖 中, 將 輸 入 訊 號 分 成 8 個 範 圍, 且 每 一 個 範 圍 內 所 有 類 比 值 都 以 同 一 個 數 位 碼 來 表 示, 且 此 數 位 碼 通 常 與 該 範 圍 之 中 間 值 對 應, 以 上 即 是 類 比 對 數 位 轉 換 的 基 本 概 念 因 此 在 類 比 對 數 位 轉 換 過 程 會 存 在 最 低 有 效 位 元 (Least Significant Bit, LSB) 的 量 化 誤 差 (Quantization Error), 此 誤 差 再 加 上 轉 換 器 本 身 所 存 在 的 類 比 誤 差, 便 形 成 類 比 對 數 位 轉 換 器 的 誤 差 值 減 少 量 化 誤 差 ( 溢 位 或 四 捨 五 入 所 產 生 的 誤 差 ) 的 方 法 可 增 加 轉 換 器 的 位 元 數 量 化 值 (Quantization Value)Q 是 指 當 數 位 輸 出 改 變 1 LSB 時, 所 需 的 輸 入 電 壓 變 化 值, 其 數 學 表 示 式 如 下 : 其 中 n 為 ADC 數 位 輸 出 的 位 元 數,FS 為 滿 刻 度 (Full Scale) 值 當 數 位 輸 出 的 位 元 數 n 越 大 時, 解 析 度 越 高, 則 量 化 值 Q 也 越 小, 故 所 造 成 之 量 化 誤 差 也 51

越 小 下 圖 5.3 為 理 想 類 比 對 數 位 轉 換 關 係 圖 : 圖 5.3 理 想 類 比 對 數 位 轉 換 圖 ADC0809 為 連 續 漸 進 式 類 比 對 數 位 轉 換 器, 以 下 為 轉 換 器 的 工 作 原 理 : 上 圖 為 連 續 漸 進 式 類 比 對 數 位 轉 換 器 方 塊 圖, 其 具 有 8 位 元 解 析 度 當 類 比 訊 號 輸 入 時, 取 樣 保 持 (Sample-And-Hold) 電 路 先 把 輸 入 訊 號 in V 保 留 住, 以 避 免 其 在 轉 換 過 程 中 訊 號 異 動, 此 時 控 制 邏 輯 (Control Logic) 電 路 將 暫 存 器 (Register) 的 所 有 輸 出 位 元 均 重 置 (Reset) 為 "0", 接 著 最 高 有 效 位 元 (Most Significant Bit, MSB))7 D 被 置 於 "1" 此 時 數 位 類 比 轉 換 器 (Digital To Analog Converter, DAC) 所 輸 出 的 電 壓 (D)V 為 : 此 輸 出 電 壓 為 參 考 電 壓 Vref 半 如 果 輸 入 電 壓 Vin 比 (D)V 高, 則 D7 維 持 在 1, 否 則 將 其 變 為 "0" 接 著 令 次 一 位 元 D6 為 "1", 經 過 DAC 轉 換 後 可 獲 得 輸 出 電 壓 (D)V, 此 時 再 將 新 的 (D)V 與 Vin 比 較, 若 Vin 比 (D)V 高, 則 D6 維 持 在 "1", 否 則 將 其 變 為 "0" 依 此 類 推, 一 直 到 最 低 有 效 位 元 D0 均 比 較 完 成, 此 時 便 可 得 到 完 整 D7 到 D0 位 輸 出 5.2.4 ADC0809 之 特 色 ADC0809 為 一 具 有 8 位 元 解 析 度 及 8 通 道 多 工 器 (Mutliplexer) 的 28 隻 接 腳 IC, 其 使 用 5V 單 電 源 供 應 工 作 類 比 輸 入 電 壓 範 圍 為 0V 至 5V, 消 耗 功 率 52

為 15 mw 由 於 具 有 8 位 元 解 析 度, 故 有 256 階 的 量 化, 若 參 考 電 壓 為 5V, 則 每 一 步 階 為 01953. 0 256 5 = V 00000000(00H) 表 示 0.00V,11111111(FFH) 表 4.9805V ADC0809 的 不 可 調 誤 差 (Unadjusted Error) 為 ±1 LSB, 即 01953. 0 V, 其 中 包 含 滿 刻 度 誤 差 補 償 (Offset) 誤 差 非 線 性 誤 差 及 多 工 器 誤 差 此 外, 因 其 具 有 8 個 通 道, 所 以 有 8 個 類 比 輸 入 埠, 且 ADC0809 需 要 一 組 時 序 訊 號 輸 入 方 可 工 作, 此 時 序 訊 號 的 頻 率 範 圍 為 10KHz 至 1280KHz; 在 640KHz 的 時 序 頻 率 下, 典 型 的 轉 換 時 間 為 100 ms IN0~IN7 支 援 八 個 通 道 輸 入 VR CLK OE EOC ALE START D0~D7 參 考 電 源 時 脈 輸 入 輸 出 致 能 轉 換 結 束 訊 號 位 置 閂 鎖 啟 動 轉 換 數 位 輸 出 圖 5.4 ADC0809 類 比 對 數 位 轉 換 器 接 腳 圖 上 圖 5.4 為 ADC0809 類 比 對 數 位 轉 換 器 接 腳 圖, 其 中 以 EOC 的 輸 出 訊 號 作 為 START 的 輸 入 訊 號, 並 以 時 序 作 為 ALE 及 CLK 之 輸 入 訊 號 在 本 次 專 題 中, 只 用 到 一 個 輸 入 訊 號, 由 於 為 實 驗 套 件 組 合, 所 以 使 用 的 晶 片 為 難 度 較 高 的 ADC0809 已 達 到 較 好 的 教 學 效 果, 其 中 IN0 為 熱 敏 電 阻 經 過 LM324 放 大 後, 所 蒐 集 到 的 資 訊, 而 A~C ALE START OE 為 VHDL 程 式 碼 所 控 制, 其 中 OE 也 是 回 授 給 予 FPGA 的 晶 片 經 過 程 式 判 斷 53

5.3 實 作 簡 介 針 對 ADC0809 之 晶 片 特 性 及 工 作 要 求 設 計 出 程 式, 並 將 輸 出 至 馬 達 的 訊 號 先 以 LED 作 為 替 代, 即 若 溫 度 達 到 程 式 要 求 之 設 定 值, 則 LED 燈 亮 而 正 在 進 行 的 是 對 於 晶 片 的 硬 體 測 試, 如 輸 入 輸 出 的 訊 號 量 測, 輸 出 至 七 節 燈 管 隻 編 碼 是 否 正 確 等 等 待 日 後 完 成 時, 在 將 LED 的 訊 號 改 成 輸 出 至 馬 達 的 訊 號, 即 可 有 一 個 簡 單 的 溫 度 監 測 系 統 程 式 架 構 使 用 了 單 擊 電 路 來 產 生 我 們 需 要 的 控 制 訊 號, 先 針 對 ADC0809 之 控 制 訊 號 設 計 出 電 路, 並 在 設 計 一 個 二 進 位 轉 十 進 位 之 電 路, 將 數 位 訊 號 正 確 的 顯 示 在 七 節 顯 示 器 上 圖 5.5 溫 度 顯 示 實 作 成 品 其 程 式 碼 如 下 : library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; 54

entity adc is port( f_25m:in STD_LOGIC; ALE:buffer STD_LOGIC; ADDR:out STD_LOGIC_VECTOR(2 DOWNTO 0); adstart:buffer STD_LOGIC; f_1m:buffer STD_LOGIC; AI:in STD_LOGIC_VECTOR(7 DOWNTO 0); OE:out STD_LOGIC; to_seg:out STD_LOGIC_VECTOR(7 DOWNTO 0); LED1:out STD_LOGIC; LED2:out STD_LOGIC; seg_sel:out STD_LOGIC_VECTOR(5 DOWNTO 0) ); end adc_temp; ARCHITECTURE beh OF adc_temp IS component adc_timing is port( renew_ck:in STD_LOGIC; f_25m,f_1m:in STD_LOGIC; ALE:buffer STD_LOGIC; adstart:buffer STD_LOGIC; bcdstart:buffer STD_LOGIC; ADDR:out STD_LOGIC_VECTOR(2 downto 0); OE:out STD_LOGIC ); 55

end component; component bin_to_bcd port( clk:in std_logic; start:in std_logic; bin_in:in std_logic_vector(7 downto 0); bcd_out:buffer std_logic_vector(11 downto 0); busy:buffer std_logic ); end component; signal f_5m:std_logic; signal renew_ck,bcdstart,busy:std_logic; signal bcd_out:std_logic_vector(11 downto 0); type state is (s0,s1,s2,s3,s4); begin mdu5_1:process(f_25m) variable cnt_state:state; begin if f_25m='0' and f_25m'event then case cnt_state is when s0=>cnt_state:=s1;f_5m<='0'; when s1=>cnt_state:=s2; when s2=>cnt_state:=s3; when s3=>cnt_state:=s4; when s4=>cnt_state:=s0;f_5m<='1'; end case; 56

end if; end process mdu5_1; mdu5_2:process(f_5m) variable cnt_state:state; begin if f_5m='0' and f_5m'event then case cnt_state is when s0=>cnt_state:=s1;f_1m<='0'; when s1=>cnt_state:=s2; when s2=>cnt_state:=s3; when s3=>cnt_state:=s4; when s4=>cnt_state:=s0;f_1m<='1'; end case; end if; end process mdu5_2; f_renew:process(f_1m) variable cnt:std_logic_vector(18 downto 0); begin if f_1m='0' and f_1m'event then cnt:=cnt+1; end if; renew_ck<=cnt(18); end process f_renew; AD_timing:adc_timing port map(renew_ck,f_25m,f_1m,ale,adstart,bcdstart,addr,oe); bcd_bin:bin_to_bcd 57

port map(f_1m,bcdstart,ai,bcd_out,busy); 7seg_scan:block signal chout:std_logic_vector(3 downto 0); begin scann:process variable scan:std_logic_vector(2 downto 0); variable a:std_logic_vector(23 downto 0); VARIABLE LIMIT:std_logic_vector(11 downto 0); begin wait until f_1m='1'; a(19 downto 8):=bcd_out(11 downto 0); a(7 downto 0):="10101011"; LIMIT(11 DOWNTO 0):="000000100000"; if scan>=5 then scan:="000"; else scan:=scan+1; end if; if a(19 downto 8)<=LIMIT(11 DOWNTO 0) then LED1<=scan(0); else LED1<='0' ; if a(19 downto 8)>LIMIT(11 DOWNTO 0)then LED2<=scan(0); else LED2<='0'; END IF; end if; 58

case scan is when "000" =>seg_sel<="101111";7seg t<=a(19 downto 16); when "001" =>seg_sel<="110111";7seg <=A(15 downto 12); when "010" =>seg_sel<="111011";7seg t<=a(11 downto 8); when "011" =>seg_sel<="111101";7seg <=A(7 downto 4); when "100" =>seg_sel<="111110";7seg <=A(3 downto 0); when others =>null; end case; end process scann; WITH 7SEG SELECT to_seg <="00111111" when "0000", "00000110" when "0001", "01011011" when "0010", "01001111" when "0011", "01100110" when "0100", "01101101" when "0101", "01111101" when "0110", "00000111" when "0111", "01111111" when "1000", "01101111" when "1001", "01100011" when "1010", "00111001" when "1011", "00000000" when others; end block 7seg_scan; end BEH; 59

參 考 文 獻 [1] 陳 慶 逸,VHDL 數 位 電 路 設 實 務 教 本, 儒 林 圖 書 公 司,2002 [2] 卷 佳 壽 美,VHDL 入 門, 全 華 科 技 圖 書,2003 [3] 林 國 良,VHDL 硬 體 電 路 設 計 語 言, 全 華 科 技 圖 書,1996 [4] 林 益 鴻 莊 朝 麟,VHDL 設 計 與 應 用, 專 題 論 文, 逢 甲 大 學 自 動 控 制 工 程 學 系, 台 中,2002 [5] 王 仁 華 洪 啟 能,VHDL 實 務 應 用 與 設 計, 專 題 論 文, 逢 甲 大 學 自 動 控 制 工 程 學 系, 台 中,2003 [6] 黃 國 正 李 文 棋 林 子 敬 陳 俊 旭, 單 晶 片 控 制 步 進 馬 達 之 運 作, 專 題 論 文, 逢 甲 大 學 自 動 控 制 工 程 學 系, 台 中,2001 [7] 王 詠 傑, 馬 達 與 人 機 介 面, 專 題 論 文, 逢 甲 大 學 自 動 控 制 工 程 學 系, 台 中, 2004 [8] 吳 東 樺 蔡 岳 展 黃 中 雋 林 家 聖,FPGA 外 接 馬 達 控 制 模 組, 專 題 論 文, 逢 甲 大 學 自 動 控 制 工 程 學 系, 台 中,2005 [9] 陳 文 耀, 電 動 機 控 制 工 程, 復 文 書 局,1995 [10] 陳 慶 逸 林 柏 辰,VHDL 數 位 電 路 實 習 與 專 題 設 計, 文 魁 資 訊, 2003 [11] 王 瑞 祿,FPGA 發 展 系 統 使 用 手 冊, 橋 高 企 業 有 限 公 司 [12] 唐 佩 忠,VHDL 與 數 位 邏 輯 設 計, 高 立 圖 書,1999 [13] 林 灶 生 劉 紹 漢,FPGA 晶 片 設 計 與 專 題 製 作, 全 華 圖 書,1995 [13] http://www.cic.org.tw/cic_v13/main.jsp 國 家 晶 片 設 計 中 心 60

附 錄 A/D 電 路 圖 P? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Header 20X2 VCC 16 12 21 20 19 18 8 15 14 17 9 7 11 VREF- VREF+ D7 D6 D5 D4 D3 D2 D1 D0 OE EOC VCC GND ALE ADD C ADD B ADD A IN7 IN6 IN5 IN4 IN3 IN2 IN1 IN0 START CLK 13 22 23 24 25 28 27 26 6 5 4 3 2 1 10 ADC0809CCN =Value =Value 13 12 4 D LM324AD 14 1 11 4 6 5 2 B LM324AD 7 2 3 1 A LM324AD 4 11 4 9 10 3 C LM324AD 8 11 11 4 =Value =Value =Value =Value =Value =Value 2 1 1 2 3 4 5 6 7 8 9 10MHz 1 2 MHDR1X2 MHDR1X9 VDD VDD t W? Jumper Jumper VCC Res Thermal VSS VDD =Value VCC VSS VSS Vout 圖 附 -1 A/D 電 路 圖 61

步 進 馬 達 電 路 圖 : 圖 附 -2 步 進 馬 達 電 路 圖 鍵 盤 電 路 圖 62