CPLD个人学习笔记
cpld定義
CPLD是在PLD器件基礎(chǔ)上發(fā)展起來的數(shù)字邏輯器件,PLD是指Programmable logic device,即可編程邏輯器件,CPLD是complex programmable logic device,即復雜可編程邏輯器件。用戶可以把編譯好的CPLD程序通過專用的CPLD程序燒寫器燒寫到CPLD芯片中,從而實現(xiàn)程序設(shè)計的數(shù)字邏輯功能。所以CPLD可以通過編寫特定邏輯的硬件程序,代替分立的數(shù)字邏輯芯片實現(xiàn)各種數(shù)字邏輯的功能。
CPLD即復雜可編程邏輯器件,是從PAL和GAL器件發(fā)展出來的器件,相對而言規(guī)模大,結(jié)構(gòu)復雜,屬于大規(guī)模集成電路范圍。是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng)。
CPLD采用CMOS EPROM、EEPROM、快閃存儲器和SRAM等編程技術(shù),從而構(gòu)成了高密度、高速度和低功耗的可編程邏輯器件。
目前市場上主要的CPLD生產(chǎn)廠家有Altera、Lattice、Xilinx。
cpld構(gòu)成
CPLD主要是由可編程邏輯宏單元(MC,Macro Cell)圍繞中心的可編程互連矩陣單元組成。其中MC結(jié)構(gòu)較復雜,并具有復雜的I/O單元互連結(jié)構(gòu),可由用戶根據(jù)需要生成特定的電路結(jié)構(gòu),完成一定的功能。由于CPLD內(nèi)部采用固定長度的金屬線進行各邏輯塊的互連,所以設(shè)計的邏輯電路具有時間可預測性,避免了分段式互連結(jié)構(gòu)時序不完全預測的缺點。
cpld的用途
1、PLD能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用FPGA/CPLD來實現(xiàn)。
2、LD如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,或是硬件描述語言自由的設(shè)計一個數(shù)字系統(tǒng)。通過軟件仿真,我們可以事先驗證設(shè)計的正確性。在PCB完成以后,還可以利用CPLD的在線修改能力,隨時修改設(shè)計而不必改動硬件電路。
3、用CPLD來開發(fā)數(shù)字電路,可以大大縮短設(shè)計時間,減少PCB面積,提高系統(tǒng)的可靠性。
4、CPLD還可以做數(shù)字IC設(shè)計的前端驗證,用這種方式可以很大程度上降低IC設(shè)計的成本。
cpld使用方法
CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng)。
這里以搶答器為例講一下它的設(shè)計(裝修)過程,即芯片的設(shè)計流程。CPLD的工作大部分是在電腦上完成的。打開集成開發(fā)軟件(Altera公司 Max+pluxII)→畫原理圖、寫硬件描述語言(VHDL,Verilog)→編譯→給出邏輯電路的輸入激勵信號,進行仿真,查看邏輯輸出結(jié)果是否正確→進行管腳輸入、輸出鎖定(7128的64個輸入、輸出管腳可根據(jù)需要設(shè)定)→生成代碼→通過下載電纜將代碼傳送并存儲在CPLD芯片中。7128這塊芯片各管腳已引出,將數(shù)碼管、搶答開關(guān)、指示燈、蜂鳴器通過導線分別接到芯片板上,通電測試,當搶答開關(guān)按下,對應(yīng)位的指示燈應(yīng)當亮,答對以后,裁判給加分后,看此時數(shù)碼顯示加分結(jié)果是否正確,如發(fā)現(xiàn)有問題,可重新修改原理圖或硬件描述語言,完善設(shè)計。
設(shè)計好后,如批量生產(chǎn),可直接復制其他CPLD芯片,即寫入代碼即可。如果要對芯片進行其它設(shè)計,比如進行交通燈設(shè)計,要重新畫原理圖、或?qū)懹布枋稣Z言,重復以上工作過程,完成設(shè)計。這種修改設(shè)計相當于將房屋進行了重新裝修,這種裝修對CPLD來說可進行上萬次。
CPLD和FPGA對比
由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點:
1)、CPLD更適合完成各種算法和組合邏輯,FPGA更適合于完成時序邏輯。換句話說,FPGA更適合于觸發(fā)器豐富的結(jié)構(gòu),而CPLD更適合于觸發(fā)器有限而乘積項豐富的結(jié)構(gòu)。
2)、CPLD的連續(xù)式布線結(jié)構(gòu)決定了它的時序延遲是均勻的和可預測的,而FPGA的分段式布線結(jié)構(gòu)決定了其延遲的不可預測性。
3)、在編程上FPGA比CPLD具有更大的靈活性。CPLD通過修改具有固定內(nèi)連電路的邏輯功能來編程,FPGA主要通過改變內(nèi)部連線的布線來編程;FPGA可在邏輯門下編程,而CPLD是在邏輯塊下編程。
4)、FPGA的集成度比CPLD高,具有更復雜的布線結(jié)構(gòu)和邏輯實現(xiàn)。
5)、CPLD比FPGA使用起來更方便。CPLD的編程采用E2PROM或FASTFLASH技術(shù),無需外部存儲器芯片,使用簡單。而FPGA的編程信息需存放在外部存儲器上,使用方法復雜。
6)、CPLD的速度比FPGA快,并且具有較大的時間可預測性。這是由于FPGA是門級編程,并且CLB之間采用分布式互聯(lián),而CPLD是邏輯塊級編程,并且其邏輯塊之間的互聯(lián)是集中式的。
7)、在編程方式上,CPLD主要是基于E2PROM或FLASH存儲器編程,編程次數(shù)可達1萬次,優(yōu)點是系統(tǒng)斷電時編程信息也不丟失。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時丟失,每次上電時,需從器件外部將編程數(shù)據(jù)重新寫入SRAM中。其優(yōu)點是可以編程任意次,可在工作中快速編程,從而實現(xiàn)板級和系統(tǒng)級的動態(tài)配置。
8)、CPLD保密性好,FPGA保密性差。
9)、一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。
總結(jié)
以上是生活随笔為你收集整理的CPLD个人学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FPGA的学习:状态机的实现(三)
- 下一篇: 《自然语言处理实战入门》第三章 :中文分