可編程邏輯器件CPLD_第1頁
可編程邏輯器件CPLD_第2頁
可編程邏輯器件CPLD_第3頁
可編程邏輯器件CPLD_第4頁
可編程邏輯器件CPLD_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第27章可編程邏輯器件CPLD可編程邏輯器件是單片機之外另一種常用的邏輯控制單元。它是一種半定制專用集成電路(ASIC),其功能可由設計者根據自己的需要來加以定義。目前普遍使用的有CPLD和FPGA兩種,其以工作速度快、集成度高、功耗低、適應性強等優(yōu)點,受到廣大電子設計人員的普遍歡迎。CPLD/FPGA和單片機一樣,都是可重復擦寫的器件,不過這兩者是按照不同的原理而設計的。其性能各有優(yōu)劣,有些功能兩者都可以實現,但有些功能用單片機或CPLD/FPGA實現比較方便。因此,對于復雜的系統(tǒng),很多時候需要兩者配合使用,發(fā)揮各自的優(yōu)勢。本章主要以廣泛使用的Altera的EPM7128SLC84-15芯片為例進行介紹,包括程序下載以及如何實現使用CPLD來擴展單片機I/O接口。27.1可編程邏輯器件概述可編程邏輯器件(ProgrammableLogicDevice)簡稱PLD,是一種用戶可配置的邏輯器件。其以成本低、使用靈活,設計周期短和可靠性高等優(yōu)點,近年來得到快速的發(fā)展,目前成為專用集成電路(ASIC—ApplicationSpecificIntegratedCircuit)的一個重要分支。27.1.1可編程邏輯器件的發(fā)展可編程邏輯器件從產生到現在經歷了不到40年的發(fā)展,其結構、工藝、集成度、速度和性能等都得到不斷改進和提高,現在已經形成很豐富完善的產品體系。20世紀70年代,出現了最早的可編程邏輯器件PROM,以及可編程邏輯陣列(ProgrammableLogicArray,簡稱為PLA)和可編程陣列邏輯(ProgrammableArrayLogic,簡稱為PAL)。20世紀80年代,進入實質性的發(fā)展階段。Altera推出了新型的可編程邏輯器件(ErasableProgrammableLogicDevice,簡稱為EPLD)。同時,Xilinx推出了現場可編程邏輯器件(FieldProgrammableGateArray,簡稱為FPGA)。緊接著,Lattice又推出了復雜可編程邏輯器件(ComplexPLD,簡稱為CPLD)。20世紀90年代以后,隨著集成電路制造工藝的發(fā)展,CPLD和FPGA的集成度越來越高,規(guī)模越來越大,設計方式越來越靈活,設計軟件也逐步完善。27.1.2CPLD的結構及其邏輯實現可編程邏輯器件PLD結構上是由與陣列和或陣列構成,原理是基于所有的邏輯電路都可以用“積之和”的布爾方程來表示。其中,兩級邏輯陣列的一個陣列或全部陣列可以通過編程來實現不同的組合,從而達到要求的邏輯功能。目前應用最為廣泛的是CPLD和FPGA,這兩者在結構上是完全不同的。這里首先介紹CPLD的結構及其邏輯實現。1.CPLD的內部結構2.CPLD的邏輯實現27.1.3FPGA的結構及其邏輯實現FPGA具有與CPLD完全不同的內部結構,其內部是類似于門陣列的結構,可編程的邏輯單元位于芯片的中央,并排成陣列,四周采用可編程的I/O焊盤連接。邏輯單元之間使用可編程的互連資源,用來實現邏輯單元以及I/O引腳之間的聯通,從而實現復雜的邏輯功能。FPGA一般都含有成千上萬的邏輯門單元,還有許多觸發(fā)器。FPGA的邏輯單元可以分為兩種:粗粒結構和細粒結構。粗粒結構的FPGA,其邏輯單元較大,一般含有兩個以上的查詢表和觸發(fā)器,比較適合高性能方面的應用。細粒結構的則邏輯單元相對較小,功能邏輯模塊和觸發(fā)器都相對較少。與CPLD相比,FPGA的容量通常大于CPLD,而且FPGA的邏輯單元扇入小,觸發(fā)器數量比CPLD要多,布局和布線的延時是不確定的,但一般是可知的。27.2硬件描述語言簡述硬件描述語言(HardwareDescriptionLanguage)簡稱為HDL,是一種能夠以形式化方式描述電子系統(tǒng)的硬件行為、結構和數據流的語言。硬件描述語言借鑒了其它高級語言的功能特性,對數字電路的結構和行為進行了高度抽象化、規(guī)范化的形式描述,并對設計進行不同層次的仿真和優(yōu)化。硬件描述語言是伴隨著大規(guī)模集成電路的發(fā)展而形成的,至今已有40多年的歷史,主要用來解決大規(guī)模復雜集成電路的設計問題。特別是CPLD和FPGA廣泛普及后,硬件描述語言在廣大電子工程師中得到廣泛應用。很多EDA廠商和科研機構都開發(fā)了自己的電路硬件描述語言,比較有名的有Altera公司的AHDL語言,DataI/O公司的ABEL-HDL語言,Xilinx公司的VerilogHDL語言。由于這些硬件描述語言之間不能通用,限制了CPLD和FPGA的廣泛使用。此時迫切需要建立一個統(tǒng)一的標準。27.2.1硬件描述語言VHDL概述VHDL(VHSICHardwareDescriptionLanguage)語言是一種硬件描述語言,20世紀80年代初,由美國國防部在其超高速集成電路計劃(VHSIC)中提出。后來,該語言逐步得到推廣,應用越來越廣泛。1987年12月,電氣和電子工程師協(xié)會IEEE正式將VHDL語言作為國際標準,編號為IEEEStdl076-1987,即VHDL’87。1993年,又對該版本進行的進一步的修改,新的版本號為IEEEStdl076-1993,即VHDL’93。1995年,VerilogHDL語言也被正式定為國際標準,編號為VerilogHDL1364-1995。這里主要介紹VHDL語言。27.2.2VHDL程序結構一個完整的VHDL程序通常包括實體(Entity)、構造體(Architecture)、配置(Configuration)、包集合(Package)和庫(Library)5個部分。其中實體和構造體是必須的,其它幾個是可選項。VHDL語言程序的基本結構,如圖所示。27.3Altera常用CPLD芯片介紹Altera公司的MAX7000系列是使用比較廣泛的CPLD,這里介紹其中的芯片EPM7128SLC84-15,這是基于乘積項結構的可編程邏輯器件,其中有128個宏單元,8個邏輯陣列塊。該芯片有64個引腳可以用作通用輸入輸出引腳,對外擴展能力強大。引腳到引腳之間的延時快達5ns,計數器頻率高達175.4MHz。1.引腳分配2.VHDL程序下載27.4使用CPLD擴展51單片機I/O接口可編程邏輯器件CPLD/FPGA的主要優(yōu)點是內部邏輯資源豐富,輸入輸出接口多,非常適合于邏輯電路以及有一定時序要求的電路。這里以上面介紹的Altera公司的CPLD芯片EPM7128SLC84-15為例,講解CPLD的程序設計,以及如何擴展單片機的接口。27.4.1CPLD擴展單片機I/O接口原理8051系列單片機的I/O端口比較少,當系統(tǒng)外擴存儲器,或者使用串口及外部中斷資源后,剩余可用的I/O端口便更少了。為此,經常需要進行單片機I/O接口的擴展。前面介紹過,可以使用外部RAM地址空間以及串口的模式0來實現擴展的I/O端口。這里介紹使用可編程邏輯器件CPLD豐富的I/O引腳資源,來擴展單片機I/O接口。使用CPLD擴展單片機I/O接口的示意圖,如圖所示,其中擴展了4個輸出接口。也可以采用同樣的方法擴展輸入接口。整個系統(tǒng)涉及到單片機的程序設計、CPLD的程序設計等,下面分別進行介紹。27.4.2電路圖這里采用層次式電路設計,層次式電路的母圖,如圖所示。在母原理圖中,定義了兩部分的接口,單片機和CPLD之間的接口通過P1端口和P3.0、P3.1引腳連接,P1端口輸出并行數據,P3.0和P3.1用于選擇輸出的擴展并行口。27.5單片機程序設計這里采用Atmel公司的AT89S52單片機,使用KeilC51語言編寫單片機程序。27.5.1項目建立整個操作在KeilμVison3編譯環(huán)境中進行,具體操作步驟如下:27.5.2主程序AT89S52主程序的流程圖,如圖所示。程序代碼示例如下:27.6VHDL程序設計Altera提供了優(yōu)秀的CPLD和FPGA編譯仿真軟件,如MAX+PLUSII和QuartusII,可以仿真和編譯ALtera公司的所有產品。這里采用Altera公司最新的QuartusII軟件進行VHDL程序設計。27.6.1項目建立首先,在QuartusII軟件中建立VHDL設計項目,操作步驟如下:27.6.2程序設計前面在QuartusII軟件中完成了整個工程項目的建立,這里添加設計源文件并采用VHDL語言進行程序設計。操作步驟如下:27.7程序仿真Altera公司最新的QuartusII軟件提供了良好的編譯仿真操作。在進行仿真之前需要首先分配CPLD引腳,并確保VHDL程序編譯成功。27.7.1設計CPLD引腳VHDL程序是獨立于器件的,其只描述了各個輸入輸出端口以及內部的邏輯關系。VHDL程序的運行,還需要將每個輸入輸出端口映射到芯片的具體引腳。Altera公司的QuartusII軟件提供了簡單方便的芯片引腳配置功能,支持Altera公司的所有CPLD和FPGA芯片。這里參照前面的電路圖,對本設計中的EPM7128SLC84-15進行引腳分配,具體操作步驟如下:27.7.2仿真操作Altera公司的QuartusII軟件能夠對VHDL程序以及芯片進行精確的仿真,包括信號的延時、時序等。當完成引腳分配以及程序編譯后,便可以開始程序的仿真,下面具體介紹操作步驟。27.8程序下載在QuartusII軟件中,可以利用前面介紹的下載電路,來將程序下載到CPLD芯片中執(zhí)行。程序下載的過程如下。27.9小結本章首先介紹了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論