新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > CPLD初學者入門知識

CPLD初學者入門知識

作者: 時間:2011-12-01 來源:網(wǎng)絡(luò) 收藏

按英語說是復(fù)雜可編程邏輯器件,對于一個硬件工程師來說,能應(yīng)用cpld技術(shù)是一個十分強大的能力。它的應(yīng)用可在根本上解決許多數(shù)字電路設(shè)計的問題,能大幅度改變設(shè)計思想,大幅度提高工作效率,甚至可以把以前的數(shù)十顆普通分立芯片的功能用一個芯片實現(xiàn)。它還有一個十分優(yōu)秀的優(yōu)點,在硬件原理設(shè)計和布線的時候,不用考慮引腳的順序,可從布線方便的角度安排需要的信號位置,使得布線難度大幅度降低。由于布線難度下降,直接帶來布線優(yōu)化的好處。本文就cpld面對的問題做一個簡單描述。希望對有志于學習cpld的硬件工程師有所啟發(fā)。

本文引用地址:http://butianyuan.cn/article/190951.htm

1:首先進行的準備是有針對性的學習cpld物理構(gòu)造和資源

先不要著急去買開發(fā)板,不要著急寫邏輯。了解硬件本身更加重要。Cpld是一個很大的范疇,會淹沒在眾多廠家、眾多資料的海洋中。針對這個問題,筆者建議大家有所針對的進行知識獲取,推薦大家以altera的max ii系列cpld為突破口,首當其沖的就是emp240這顆芯片。把它吃透,則max ii系列的其它都很好理解了,構(gòu)造都一樣,只是資源增加而已。其它廠家的也好用了,因為它們都是大同小異的。之所以選擇emp240是因為它應(yīng)用已經(jīng)很廣泛,市場上容易買到,而且價格便宜,批量買只有8元/片左右。

Emp240顧名思義具有240個宏單元。簡單理解就是有240個觸發(fā)器,或者理解成240個bit的存儲單元。這樣都好理解,以后對工程應(yīng)用就容易估算容量了。對于工程來說,一般這么做,首先依據(jù)需求設(shè)計引腳的數(shù)量,然后再在開發(fā)環(huán)境中進行邏輯編寫、軟仿真,這樣,在硬件完全沒有開始之前,就能把邏輯部分全部設(shè)計完,只差物理驗證一步了。仿真分2布,寫邏輯時用quartus自帶的仿真即可。邏輯寫完之后,最好用model sim。Model sim是專門的仿真軟件,功能十分強大,但對來說,最好先不要介入這個領(lǐng)域。先把cpld用上是最主要的。

好了,這樣就把目標縮小到一個點上了。需要花功夫把240的相關(guān)資料吃透,把quartus用熟。到這里,一分錢都不用花。時間用在3個點上:1、240的構(gòu)造和資源,2、quartus軟件使用,3、verilog hdl語言學習。

設(shè)計中,如果你的邏輯需要100個單元,編譯后會發(fā)現(xiàn)用掉120個單元,這是cpld內(nèi)部布線需要。作為實際應(yīng)用,必須要留20%以上的富余量,比如編譯結(jié)果指示用220個單元,這時就不要用240了,應(yīng)該使用570,因為240的富余量不夠。

一個小技巧,針對EPM240和570來說,常用的封裝是T100的,就是TQFP100,這2個芯片的封裝是向下兼容的,因此,設(shè)計時,即便決定使用240,也要按570去畫板子。焊接是兼容的,同時萬一240不夠了,可以改焊570。

2:向應(yīng)用cpld走近一步,用開發(fā)板練習

有了上面的基礎(chǔ),可以投資買開發(fā)板了,一般賣板子的都配套好軟件和編程器了。針對240的開發(fā)板可能很少,可能570的好買。注意買cpld的開發(fā)板,不要急于用fpga的,學會cpld之后,再用fpga就容易多了。要一步一步來。570的開發(fā)板,帶仿真器,帶軟件,帶練習光盤,一整套下來估計200-300元人民幣。這個資金對你要學會的技術(shù)來說,微不足道。

開發(fā)板光盤有許多例子程序,可以先跑跑看,很容易就上手了。對于初學者來說,cpld技術(shù)是一個很大的領(lǐng)域,切記不要急于求成,上來就弄個fpga去加載視頻編解碼算法,那會十分困難。建議先從最簡單的開始,用240替代設(shè)計中使用的一些74芯片、完成部分軟件功能等,熟能生巧。這個技術(shù)絕不是短時間就能達到多高水平的,必須有積累過程。一開始就啃難度高的,會對信心造成打擊,長時間沒有進展,是讓一個硬件工程師最為抓狂的事。

對于前期學習準備比較充足的工程師來說,完全可以不買開發(fā)板,直接在工程中應(yīng)用?,F(xiàn)在的互聯(lián)網(wǎng)太方便了,只要你的cpld外圍沒有接錯,由于引腳分布是可編程的,pcb板導致不能用的可能性就大大降低了,鼓勵直接自己畫pcb去應(yīng)用。這樣掌握得更快。

3:cpld與cpu的接口

這個問題十分重要,因為cpld大部分扮演的是cpu的擴展,替cpu完成外部引腳資源擴展、輸入輸出時序管理、部分軟件功能實現(xiàn)。很少有讓一個cpld單獨工作的。

Cpld與cpu的接口就十分突出,對于要學cpld的工程師來說,用的cpu可能僅限于51單片機或者arm7系單片機。這種接口算是比較簡單了,還是應(yīng)該循序漸進,從簡單的入手,比如用單片機3個io去cpld,由cpld完成74hc138功能,這就是一個簡單接口。再進一步,用cpu的p0口和一個io腳接到cpld,用cpld完成373、244、273等功能,這就進了一步,有時序的概念了。最后,用cpu的數(shù)據(jù)口、晶振、wr、rd、ale等信號接入cpld,把cpld做成幾個字節(jié)的ram,讀寫實驗。這一關(guān)過去之后,cpld與單片機的接口就再無秘密可言了。

與51單片機的接口注意必須深刻理解cpu的工作時序,地址與數(shù)據(jù)口如何復(fù)用,ale信號如何鎖存地址等。與arm7的接口相對簡單,因arm7比較靈活,對外部接口的管理功能強。

初學者使用cpld的時候,建議在所有io腳的連線中都串聯(lián)一個51歐電阻,這樣會方便測量,更重要的是能保護cpld的io口,更深入的說,能改善高速信號的振鈴、信號反射,提高信號完整性。

4:cpld與fpga的簡單介紹

Cpld比較簡單,fpga更加復(fù)雜,在cpld基礎(chǔ)上,增加了PLL、硬件乘法器、ram塊等硬件資源。更有的fpga直接集成了dsp的硬核。Altera的max ii系列cpld,其內(nèi)部應(yīng)用了走線池,因此嚴格地說它已經(jīng)屬于fpga了。

目前主要的cpld和fpga廠家是altera和xilinx,還有actel等規(guī)模稍小。Altera主要面對商用和工業(yè)用,其產(chǎn)品性價比稍好,市場應(yīng)用最為廣泛。Xilinx初期定位在宇航級產(chǎn)品,因此,它的芯片具有更好的性能。后來xilinx也面對商業(yè)用戶了,因此形成了與altera分庭鼎立的情況,兩個這么大的廠家,芯片的系列十分類似。建議初學者使用altera的。當然,使用xilinx也無所謂。

Altera的開發(fā)環(huán)境是quartus,筆者使用的是8.1版,已經(jīng)老了,但是夠用,且不出問題,姑且使用。Xilinx的開發(fā)環(huán)境是ISE。這些環(huán)境本身已經(jīng)提供了比較完整的仿真功能。但有一個功能更加強大、更加獨立的仿真環(huán)境是model sim,它分前仿真和后仿真,由于altera和xilinx的主導作用,因此model sim提供了這兩家的芯片的完整支持。‘前仿真’屬于邏輯仿真,所有瞬態(tài)時序同步發(fā)生,用于初期測試邏輯功能是否正確。‘后仿真’則帶有延遲特性,這與芯片內(nèi)部構(gòu)造和編譯后的內(nèi)部走線密切相關(guān)。這個后仿真,一般情況下就等同于在實際板子上跑的結(jié)果。如果在pcb上跑出現(xiàn)問題,則此問題就比較難解決。

軟件分兩種規(guī)范,一個是verilog hdl,一個叫vhdl。前者基本就是c語言的底子,因此對于工程師來說,很容易上手,所以用verilog的人非常多。Vhdl則更加嚴謹,其語言規(guī)范需要一段時間熟悉。如果要長期以hdl語言為伍,則推薦學習vhdl,它的結(jié)構(gòu)更加嚴謹,能避免比較復(fù)雜的問題的發(fā)生。聽一個在華為的硬件工程師說,華為要求必須熟練一個語言的同時要能看懂另一個語言。



關(guān)鍵詞: CPLD 初學者 入門知識

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉