篇名 利用 PLD 實現 3 對 8 解碼器 作者 : 蔡家翔 國立澎湖海事職校 資訊科三年甲班黃智軒 國立澎湖海事職校 資訊科三年甲班楊芊慧 國立澎湖海事職校 資訊科三年甲班
壹 前言 : 先前數位邏輯系統的設計法是依照所需的規格定義出輸入輸出 列出真值表 推導布林等式, 使用 K-map 或邏輯代數公式求出簡化後的邏輯方程式, 之後選用標準邏輯功能 IC(TTL CMOS 等 ) 印刷電路板 (PCB) 上建構電路缺點有 : 使用的 IC 元件多, 設計的整合性很低, 無法得到 Reliable Design PCB 面積大, 系統電路的成本高 局部設計改變時,PCB 板設計 re-design 的空間很小 為了克服上述缺點,PLD(Programmable Logic Device) 應運而生, 它解決了大規模 IC 不能實現在大範圍與高頻使用的缺點 近年來, 隨著科技的進步, 研發 IC 的領域不斷地發展, 技術也日益成熟, 同時並廣泛的運用在資訊科技的領域上, 由於種類的多樣化, 也使得使用者在使用 IC 上可以有更多的選擇 隨著課程進入到二年級下學期, 我們漸漸接觸到許多 IC, 是我們從來沒見過的, 而其中一項, 就是 PLD( 可程式邏輯設計 ), 深深引起我的興趣, 讓我想要更了解這個因應社會狀況而產生的 IC, 在一次機緣下, 我們參加了小論文研習, 在我們指導老師的推薦下, 就順勢報名參加, 也藉由這次機會, 讓我們能夠好好深入研究這顆深深引起我們興趣的 PLD 1
貳 正文 : 一 PLD 演進過程 : 1. 全訂製程 IC(Full Custom ICs) 從設計到製造的過程, 全依客戶所委託設計的 IC, 得到一個最佳電路整合, 在價格和性能上追求最佳的 solution, 但研發時間及人力花費很高 2. 晶胞元 IC(Cell Base ICs) 將邏輯電路中的模組以 Cell 方式建立, 於是我們可以將設計完成之 Cell 儲存成 Cell Library, 往後有需要此模組時可套用此應用 3. 閘陣列 (Gate Array) 由 CMOS 邏輯閘組成邏輯電路, 在內部使用 PMOS 及 NMOS 電晶體組成基本電路, 以陣列配置, 再依配線成為特定用 IC 積體電路廠商提供部分完成之電晶體佈局, 使用者構成之間的連線關係二 PLD 簡介 : 廣義的定義包含 PROM PLA PAL FPGA 狹義的定義只包括 PAL 和 PLA 圖一 PLD 的種類 2
1. SPLD(Simple PLD) 包括 PROM PAL PLA 這些元件是屬於雙層邏輯, 包含 AND 陣列及 OR 陣列, 任何函數都可表示成積項之和 (Sum Of Product) 三種 SPLD 之分類, 主要基於其 AND 陣列或 OR 陣列是否可規劃 A. SPLD PROM AND 陣列不可規劃,OR 陣列可規劃 圖二 PROM B. SPLD PLA 由一串的 AND 閘 OR 閘 反相器透過可程式開關陣列所連接起來的 圖三 PLA 3
C. SPLD PAL 可程式的 OR 陣列被一組從 AND 閘到 OR 閘的固定接線所取代, 只能程式化欲 組成的積項 圖四 PAL D. SPLD PLA 和 PAL 若沒有加上外部的正反器, 就無法用於循序邏輯電路 所以正反器 會被加到 PAL 的架構中, 這種電路就稱為簡易可程式邏輯裝置 SPLD(Simple PLD) 多工器 (multiplexer) 會加到每個輸出, 用以選擇是正反器輸出或是組合電路的輸 出 ; 這些 AND 閘 OR 閘 正反器和多工器都是用來共同驅動每個輸出, 這就 是巨集格 macrocell PAL + Filp Flops + Multiplexers = SPLD E. SPLD cont. 4
圖五 SPLD cont. 2. CPLD Complex PLD 整合更多 SPLD Logic Blocks 及相互關係連線架構 (Switch matrix), 具有高整合性 的特點, 故能提升性能 可靠度 降低成本 時間與 PCB 面積等優點 圖六 Complex PLD 5
A. CPLD cont. CPLD 是由多個 SPLD 組裝進單一的 IC 裡 Xilinx XC9500 的 CPLD-XC95108 包含了六個可組態化功能區塊 (CLB), 每個 CLB 相當於一個有 18 個巨集格 36 個輸入 18 個輸出的 SPLD 利用每個可 組態化功能區塊裡的巨集格和經由開關矩陣去連接它們, 非常複雜的多層邏輯函數就可以簡單的被建構 圖七 CPLD cont. 3. FPGA ( Field Programmable Gate Array) 應用在設計使用者的原型機 (Prototype) 或少量生產之產品 FPGA 內部 Logic Block 連接需依 Switch Matrix 來構成使用者的系統, 處理速度比 VLSI 慢 各家的 FPGA 構造有相當大的差異, 可分為三大類 : A. 查表型 (LUT:Look Up Tables)-Xilinx,Altera,AT&T B. 多工器型 (MPX:Multiplexer type)-actel,quick Logic C. 電晶體陣列型 -Cross Point 6
以規構架構可分為 : D. SRAM-Xilinx,Altera,AT&T,Atmel E. Anti-fuse-Actel,Cypress,Quicklogic A. FPGA cont. 1. SRAM 類型的 FPGA 具有重複程式化的優點, 適合用來實作邏輯設計 與功能性驗證 Anti-fuse 其邏輯閘數可用性較高, 應用電路較為簡單, 單 價也較便宜, 小量產品的需求較適宜 2. FPGA 產品主要用途包含 I/O 介面控制 資料路徑傳輸 暫存器介面控 制 PCI 介面等 3. 由 LUT(Lookup Table) 所組成的 一般的 LUT 只有 4 個輸入和一個 16 位元的記憶體 輸入訊號到電路後, 會對應到一個特定的記憶體位址, 接著輸出此位址的內容 任何 4 位元輸入的邏輯函數都能被可程式邏輯的 LUT 元所建立 舉例 : 一個 4 位元輸入 AND 閘的建構方式法 - 先將所有的位元載入記憶體內, 如果所有的位元皆為 1, 則輸出為 1, 而其他的情況輸出為 0 4. 在 FPGA 中, 如 XILINX XC4000 系列, 一個可組態邏輯區塊 CLB(Configurable Logic Block) 是由 3 個 LUT 2 個正反器和一些控制電路所組成的 B. FPGA XC4000 XC4000 系列結構 : 由許多個 Configurable Logic Cell 配線通道及開關矩陣(Switch Matrix) 及 I/O Block 組成 7
圖八 XC4000 系列結構 圖九 XC4000 系列結構電路轉換 8
除錯數位電路模擬閘層級設構數位電路立閘層級設計得規格出布林等利用 PLD 實現 3 對 8 解碼器 4. CAD & PLD 對於一般電路, 可以使用電腦模擬程式, 來檢查邏輯電路的運作情況 在正確的模擬下, 用放置與繞線 (place & route) 或是裝配 (fitter) 程式, 將電路上的邏輯閘和接線映射到 FPGA 或是 CPLD IC 中 使用這類的軟體, 決定裝置內的邏輯閘如何連接, 進而建構出邏輯電路 程式的輸出是個位元串組態檔 (bit-stream configuration file), 能夠下載到指定的 FPLD(Field Programmable Logic Device ) 上, 之後便可以執行所設計的功能 5. 數位設計程序的自動化取定義立輸真出值輸入建表導式建計建可自動化 圖十數位設計程序的自動化 三 利用 PLD 實現電路 : 1. 材料表 名稱規格數量備註 發光二極體 3 mmψ, 紅色 8 免銲萬用電路板 任何廠牌均可 1 PVC 單心線 0.6 mmψ, 鍍錫 若干 電阻 330Ω*7 1 通用型陣列邏輯 GAL 16V8 1 9
2. 3 對 8 解碼器介紹 圖十一解碼器 如圖十一所示, 輸入編碼的線數有 3 條, 輸出線有 8 條 (2 3 =8), 此解碼器稱為 3 線至 8 線解碼器或 3 對 8 線解碼器 (3 to 8 Decoder), 但有的資料手冊是以輸出數量命名, 故又稱為 8 之 1 解碼器 (1-of-8 Decoder) 在圖 7.2-1 中, 當 D2D1D0=000 時 ; Y0 動作, 當 D2D1D0=001 時 ;Y1 動作, 同理, 當 D2D1D0=111 時 ;Y7 動作 由於 n 線至 2 n 線解碼器的解碼輸出有唯一性, 因此電路設計上就變得相當單純化, 以圖十一而言 : Y0 (D0 D1 D2)=Σ(0)= D2' D1' D0' Y1 (D0 D1 D2)=Σ(1)= D2' D1' D0 如此類推至 Y7 (D0 D1 D2)=Σ(7)= D2 D1 D0 3. 實驗過程 : A. 電路圖 10
B. 真值表輸入致能選擇 輸 出 G1 G2A G2B C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 註 : 1: 高態,0: 低態, : 隨意 11
C. 程式架構 : CHIP GATE PAL16V8 ; 宣告段之元件名稱欄, 其中 GATE 係自定, 一般表示電路名稱 ;[ 以下為宣告段之腳位定義欄 ] PIN 2 A ; 第 2 腳為輸入腳, 名稱為 A PIN 3 B ; 第 3 腳為輸入腳, 名稱為 B PIN 4 C ; 第 3 腳為輸入腳, 名稱為 C PIN 7 G1 ; 第 4 腳為輸入腳, 名稱為 G1 PIN 8 G2A ; 第 5 腳為輸入腳, 名稱為 G2A PIN 9 G2B ; 第 6 腳為輸入腳, 名稱為 G2B PIN 12 Y0 COMB ; 第 12 腳為輸出腳, 名稱為 Y0 PIN 13 Y1 COMB ; 第 13 腳為輸出腳, 名稱為 Y1 PIN 14 Y2 COMB ; 第 14 腳為輸出腳, 名稱為 Y2 PIN 15 Y3 COMB ; 第 15 腳為輸出腳, 名稱為 Y3 PIN 16 Y4 COMB ; 第 16 腳為輸出腳, 名稱為 Y4 PIN 17 Y5 COMB ; 第 17 腳為輸出腳, 名稱為 Y5 PIN 18 Y6 COMB ; 第 18 腳為輸出腳, 名稱為 Y6 PIN 19 Y7 COMB ; 第 19 腳為輸出腳, 名稱為 Y7 ;[ 以下為布林方程式段 ] EQUATIONS /Y0=G1*/G2A*/G2B*/C*/B*/A ; 若輸出腳名稱前無 / 則成為高態輸出 /Y1=G1*/G2A*/G2B*/C*/B*A ; 若輸出腳名稱前加 / 則成為低態輸出 /Y2=G1*/G2A*/G2B*/C*B*/A ; / 代表 NOT /Y3=G1*/G2A*/G2B*/C*B*A /Y4=G1*/G2A*/G2B*C*/B*/A /Y5=G1*/G2A*/G2B*C*/B*A /Y6=G1*/G2A*/G2B*C*B*/A /Y7=G1*/G2A*/G2B*C*B*A D. 流程圖 : 12
將編輯好的程式 放入程式 Palasm 進行轉檔 開啟程式 LP-10 接上電源, 進行測試 將完成的 IC 插入麵包板 並將程式燒入 IC 設定完成後 將 IC 放入硬體 LP-10 燒錄器中 四 執行結果驗證 : 當 Y0=0 時, 輸入狀態為 :G1=1,G2A=0, G2B=0,C=0,B=0,A=0 13
當 Y1=0 時, 輸入狀態為 :G1=1,G2A=0, G2B=0,C=0,B=0,A=1 當 Y2=0 時, 輸入狀態為 :G1=1,G2A=0, G2B=0,C=0,B=1,A=0 14
當 Y3=0 時, 輸入狀態為 :G1=1,G2A=0,G2B=0,C=0,B=1,A=1 當 Y4=0 時, 輸入狀態為 :G1=1,G2A=0,G2B=0,C=1,B=0,A=0 當 Y5=0 時, 輸入狀態為 :G1=1,G2A=0,G2B=0,C=1,B=0,A=1 15
當 Y6=0 時, 輸入狀態為 :G1=1,G2A=0, G2B=0,C=1,B=1,A=0 當 Y7=0 時, 輸入狀態為 :G1=1,G2A=0, G2B=0,C=1,B=1,A=1 16
參 結論 : 很高興能參加這次高中職小論文比賽, 藉由這次專題, 使我們在 IC 辨認與應用的能力上有了很大的提升, 從最初我們製作一個電路可能需要用上非常多顆的 IC 與 GATE, 到現在製作一個相同的電路可能只需要用到一顆 PLD 與單心線, 使得我們深深佩服那些將以前的智慧吸收而再創新的科學家 並且也因為這次專題的關係, 讓我們參閱了許多書籍 ( 註三 )( 註四 ) 與閱讀了許多資料( 註一 ) ( 註二 ), 有些資料都是以前很少去接觸的 也有些資料是根本沒去看過的, 在完成這次專題後, 讓我們受益良多 而在另一方面, 讓我們在英文能力上也有不少的收穫, 因為其中有著許多是參雜著英文的專有名詞 並且我們認為這次比賽是在體驗研究過程的樂趣, 而不是在意有沒有得獎, 所以我們只是淺談 PLD 沒去深入的進行研究, 但是我們相信在 IC 的領域中是非常廣大的, 同樣的也很多人從事這方面的研究與開發, 也希望以後還能夠有機會在從事這方面的研究與設計 肆 引註資料 : 註一 網路擷取 http://www.ltivs.ilc.edu.tw/kocp/mpu/pld/pld_1.htm ( 檢索日期 :2008/05/15) 註二 PLD 說明 :http:// www.cis.nctu.edu.tw/~hem/digilab/file/04pld.ppt 註三 數位邏輯學 http://www.nihs.tp.edu.tw/~nihsw9/logic-1-joe/logic/index.htm ( 檢索日期 : 2008/05/15) 註四 數位邏輯 陳以熙 黃慶璋 ( 台北縣 : 全華, 民 97) 頁 162-163 註五 解碼器說明 :http://www.ltivs.ilc.edu.tw/kocp/logic/ch7/7-2.htm ( 檢索日期 :2008/05/23) 17