CPLD通用寫入器設(shè)計與開發(fā)
摘要:可編程邏輯器件(Programmable Logic Device,簡稱PLD)是20世紀(jì)70年代發(fā)展起來的一種新型邏輯器件,它是現(xiàn)代數(shù)字電子系統(tǒng)向超高集成度、超低功耗、超小型封裝和專用化方向發(fā)展的重要基礎(chǔ)。它的應(yīng)用和發(fā)展不僅簡化了電路設(shè)計,降低了成本,提高了系統(tǒng)的可靠性和保密性,而且給數(shù)字系統(tǒng)的設(shè)計方法帶來了革命性的變化。CPLD(Complex Programmable Logic Device),即復(fù)雜可編程邏輯器件,它是20世紀(jì)90年代初期出現(xiàn)的EPLD改進(jìn)器件。同EPLD相比,CPLD增加了內(nèi)部連線,對邏輯宏單元和I/O單元也有重大的改進(jìn)。Xilinx是世界上最大的可編程邏輯器件供應(yīng)商之一,F(xiàn)PGA的發(fā)明者。產(chǎn)品種類較全,主要有:XC9500/4000,Coolrunner(XPLA3),Spartan,Vertex。在本文中,我們將通過對CPLD的發(fā)展、結(jié)構(gòu)、應(yīng)用和設(shè)計等方面的認(rèn)知,了解CPLD的基本原理,并設(shè)計出CPLD脫機(jī)編程寫入器的電路圖。
關(guān)鍵詞:復(fù)雜可編程邏輯器件CPLD (Complex Programmable Logic Device),現(xiàn)場可編程邏輯陣列器件FPGA(Field Programmable Logic Array),電子設(shè)計自動化EDA(Electronic Design Automation),硬件描述語言HDL(Hardware Description Language)。
一. CPLD及其功能
可編程邏輯器件包括現(xiàn)場可編程門陣列FPGA(Filed Programmable Gate Array)和復(fù)雜可編程邏輯器件CPLD(Complex Programmable Logic Devic)這兩種類型。
具有固定數(shù)目輸入和輸出的任何組合邏輯函數(shù)可以在可編程只讀存儲器PROM中以輸出為輸入的查找表方式來實現(xiàn),許多實現(xiàn)組合邏輯的結(jié)構(gòu)變型已從這一簡單的概念引申出來,而利用VLSI的密度產(chǎn)生更通用的能實現(xiàn)PCB板上幾個簡單PAL互連功能的器件是PAL/PROM這類范例的擴(kuò)展,稱為PAL構(gòu)造的PLD,即復(fù)雜可編程邏輯器件——CPLD。
CPLD所提供的邏輯資源比較少,最高約一萬門。但是,CPLD提供了以下特殊功能:
1. CPLD在設(shè)計過程中為客戶提供了更大的靈活性,因為對于CPLD來說,設(shè)計反復(fù)只需要改變編程文件就可以了,而且設(shè)計改變的結(jié)果可立即在工作器件中看到。CPLD不需要漫長的前置時間來制造原型或正式產(chǎn)品,CPLD器件已經(jīng)放在分銷商的貨架上并可隨時付運(yùn);
2. CPLD不需要客戶支付高昂的NRE成本和購買昂貴的掩膜組,因為CPLD供應(yīng)商在設(shè)計其可編程器件時已經(jīng)支付了這些成本,并且可通過PLD產(chǎn)品線延續(xù)多年的生命期來分?jǐn)傔@些成本;
3. CPLD允許客戶在需要時訂購所需要的數(shù)量,從而使客戶可控制庫存。采用固定邏輯器件的客戶經(jīng)常會面臨需要廢棄的過量庫存,而當(dāng)對其產(chǎn)品的需求高漲時,他們有可能為器件供貨不足所苦,并且不得不面對生產(chǎn)延遲的現(xiàn)實;
4. CPLD甚至在設(shè)備付運(yùn)到客戶那兒以后還可以重新編程。正是由于有了可編程邏輯器件,一些設(shè)備制造商現(xiàn)在正在嘗試為已經(jīng)安裝在現(xiàn)場的產(chǎn)品增加新功能或者進(jìn)行升級。
二. Xilinx公司的XC9500系列可編程邏輯器件
近年來,可編程邏輯器件在高密度、高速度、低功耗等方面發(fā)展很快。在CPLD方面,Xilinx公司推出了高性能、低成本的XC9500[tm]系列,以及在單個器件內(nèi)結(jié)合了極低功耗和高速度、高密度和多I/O引腳特點的CoolRunner[tm]系列。此系列CPLD器件需要的功耗極低,并且價格低廉,從而使其對于成本敏感的、電池供電的便攜式設(shè)備(如移動電話和數(shù)字手持助理)非常理想。
XC9500系列CPLD器件是Xilinx公司具有代表性的產(chǎn)品,圖1為XC9500系列芯片的外觀圖:
圖1 XC9500系列芯片的外觀圖
三. CPLD的設(shè)計與開發(fā)
XC9500系列可編程邏輯器件的內(nèi)部結(jié)構(gòu)以及時序問題就不一一介紹了,我們下面所關(guān)心的是CPLD的設(shè)計與開發(fā)。
CPLD器件的設(shè)計一般可以分為設(shè)計輸入、設(shè)計實現(xiàn)、設(shè)計仿真和下載編程4個步驟:
1. 設(shè)計輸入
設(shè)計輸入就是將設(shè)計者所設(shè)計的電路以開發(fā)軟件要求的某種形式表達(dá)出來,并輸入到相應(yīng)的軟件中。
2. 設(shè)計實現(xiàn)
在設(shè)計輸入之后,實現(xiàn)工具把邏輯映射到目標(biāo)器件結(jié)構(gòu)的資源中,決定邏輯的最佳布局,選擇邏輯與I/O功能塊連接的布線通道。Xilinx設(shè)計實現(xiàn)工具以極高自動化程度完成這些任務(wù),設(shè)計編譯實用程序自動地恢復(fù)所有的輸入文件,執(zhí)行所有必要的步驟來產(chǎn)生CPLD的配置程序。
3. 設(shè)計仿真
這一部分的最大功能是便于用戶查看自己的設(shè)計思想是否得到實現(xiàn)。我們可以在設(shè)計的過程中對整個系統(tǒng)乃至各個模塊進(jìn)行仿真,如果有問題,可以很方便地修改錯誤,而不必在硬件上動手腳。仿真不消耗資源,不浪費(fèi)時間,實乃可編程邏輯器件設(shè)計與開發(fā)精髓之所在。
4. 下載編程
下載編程一塊是將設(shè)計階段生成的JEDEC文件裝入到可編程器件中,是本文的重點。器件編程需要滿足一定的條件,如編程電壓、編程時序和編程算法等。普通的CPLD器件需要一種編程專用設(shè)備(編程器)完成器件編程。
Xilinx商提供基于IEEE1149.1,JTAG協(xié)議(JTAG Boundary Scan)的CPLD編程寫入器。它由DSUB
—25接口和下載電纜組成,被開發(fā)的CPLD必須在開發(fā)基板上進(jìn)行編程,板上就必須留有JTAG使用的接口(TMS,TCK,TDI和TDO信號線等)。這樣的好處是我們能夠?qū)崣C(jī)調(diào)試。
除Xilinx的實機(jī)編程器外,還可設(shè)計脫機(jī)CPLD編程寫入器(電路如圖2),它能對CPLD進(jìn)行編程寫入,而不需要開發(fā)實物基板,實物基板設(shè)計時就不需要留有JTAG接口。這樣能節(jié)約基板,減少產(chǎn)品體積。圖2的設(shè)計電路有以下幾個主要的部件:
1. 并行接口
在圖2中,我們可以看到一個Parallel并行接口,用它經(jīng)過數(shù)據(jù)線和計算機(jī)連接。其實在這里,我們
圖2 CPLD編程寫入器總電原理圖
圖3 Parallel并行接口圖
也可以使用其它接口,例如Multilinx/Serial串行接口,以及Multilinx/USB接口等。這里使用的端口也是我們經(jīng)常用于連接本地打印機(jī)的接口。該接口是具有25Pin的接口,它的各Pin端口的信號如圖3所示。
2. Bus/Buffer電路
JTAG的信號,如TMS,TCK,TDI和TDO均需要設(shè)置Bus/Buffer電路。該Buffer電路采用了三態(tài)電路,這樣的設(shè)計使得CPLD寫入器對計算機(jī)的并行接口無不良影響,僅在需要對CPLD寫入器進(jìn)行數(shù)據(jù)輸入輸出時才動作。在不輸入輸出信號數(shù)據(jù)時它處于高阻狀態(tài),在需輸入輸出數(shù)據(jù)時才處于低阻狀態(tài),保
證對CPLD寫入,讀出所需電流。Bus/Buffer電路如圖4所示:
圖4 Bus/Buffer電路
圖5 LED表示電路
3. LED表示電路
在CPLD編程寫入器電路設(shè)計中還設(shè)計有各種LED表示電路。如設(shè)置有綠色LED來表示電源輸出情況,紅色LED在TDI信號為L低電平時點燈。在紅色LED點滅時表示傳送數(shù)據(jù)中,此時不能關(guān)機(jī)或拔連接電纜。LED表示電路如圖5所示。
4. Device切換電路
對不同的CPLD芯片(如PC84,PC44等)進(jìn)行編程寫入,它的選擇由旋轉(zhuǎn)切換開關(guān)來完成,由于篇幅的關(guān)系就不給出了。
基金資助:本文由江蘇省高校自然科學(xué)研究指導(dǎo)性計劃項目資助,編號:05KJD510122
本文作者創(chuàng)新點及其經(jīng)濟(jì)效益:設(shè)計出CPLD脫機(jī)編程寫入器,對CPLD進(jìn)行編程寫入,而不需要開發(fā)實物基板,實物基板設(shè)計時就不需要留有JTAG接口。這樣能節(jié)約基板,減少產(chǎn)品體積。
周杰導(dǎo)師評論:該同學(xué)在書寫這篇文章的過程中,閱讀大量有關(guān)書籍,通過對CPLD的發(fā)展、結(jié)構(gòu)、應(yīng)用和設(shè)計等方面的認(rèn)知,了解CPLD的基本原理,并設(shè)計出了CPLD脫機(jī)編程寫入器的電路圖,有一定的創(chuàng)新思想和經(jīng)濟(jì)價值。
參考文獻(xiàn):
[1] 付慧生.《復(fù)雜可編程邏輯器件與應(yīng)用設(shè)計》.中國礦業(yè)大學(xué)出版社,2003.8. TP332.1
[2] 王道憲.《CPLD/FPGA可編程邏輯器件應(yīng)用與開發(fā)》.國防工業(yè)出版社,2004.1. TP332.1
[3] 孫 航.《Xilinx可編程邏輯器件的高級應(yīng)用與設(shè)計技巧》.電子工業(yè)出版社,2004.8. TP332.1
[4] 趙 妍 肖冬榮.《幾種網(wǎng)絡(luò)控制系統(tǒng)的比較及典型應(yīng)用》.微計算機(jī)信息.2006.(4-1): P40-42.