CPLD初學(xué)者入門(mén)知識(shí)
CPLD按英語(yǔ)說(shuō)是復(fù)雜可編程邏輯器件,對(duì)于一個(gè)硬件工程師來(lái)說(shuō),能應(yīng)用cpld技術(shù)是一個(gè)十分強(qiáng)大的能力。它的應(yīng)用可在根本上解決許多數(shù)字電路設(shè)計(jì)的問(wèn)題,能大幅度改變?cè)O(shè)計(jì)思想,大幅度提高工作效率,甚至可以把以前的數(shù)十顆普通分立芯片的功能用一個(gè)芯片實(shí)現(xiàn)。它還有一個(gè)十分優(yōu)秀的優(yōu)點(diǎn),在硬件原理設(shè)計(jì)和布線的時(shí)候,不用考慮引腳的順序,可從布線方便的角度安排需要的信號(hào)位置,使得布線難度大幅度降低。由于布線難度下降,直接帶來(lái)布線優(yōu)化的好處。本文就cpld初學(xué)者面對(duì)的問(wèn)題做一個(gè)簡(jiǎn)單描述。希望對(duì)有志于學(xué)習(xí)cpld的硬件工程師有所啟發(fā)。
本文引用地址:http://2s4d.com/article/190951.htm1:首先進(jìn)行的準(zhǔn)備是有針對(duì)性的學(xué)習(xí)cpld物理構(gòu)造和資源
先不要著急去買開(kāi)發(fā)板,不要著急寫(xiě)邏輯。了解硬件本身更加重要。Cpld是一個(gè)很大的范疇,初學(xué)者會(huì)淹沒(méi)在眾多廠家、眾多資料的海洋中。針對(duì)這個(gè)問(wèn)題,筆者建議大家有所針對(duì)的進(jìn)行知識(shí)獲取,推薦大家以altera的max ii系列cpld為突破口,首當(dāng)其沖的就是emp240這顆芯片。把它吃透,則max ii系列的其它都很好理解了,構(gòu)造都一樣,只是資源增加而已。其它廠家的也好用了,因?yàn)樗鼈兌际谴笸‘惖摹V赃x擇emp240是因?yàn)樗鼞?yīng)用已經(jīng)很廣泛,市場(chǎng)上容易買到,而且價(jià)格便宜,批量買只有8元/片左右。
Emp240顧名思義具有240個(gè)宏單元。簡(jiǎn)單理解就是有240個(gè)觸發(fā)器,或者理解成240個(gè)bit的存儲(chǔ)單元。這樣都好理解,以后對(duì)工程應(yīng)用就容易估算容量了。對(duì)于工程來(lái)說(shuō),一般這么做,首先依據(jù)需求設(shè)計(jì)引腳的數(shù)量,然后再在開(kāi)發(fā)環(huán)境中進(jìn)行邏輯編寫(xiě)、軟仿真,這樣,在硬件完全沒(méi)有開(kāi)始之前,就能把邏輯部分全部設(shè)計(jì)完,只差物理驗(yàn)證一步了。仿真分2布,寫(xiě)邏輯時(shí)用quartus自帶的仿真即可。邏輯寫(xiě)完之后,最好用model sim。Model sim是專門(mén)的仿真軟件,功能十分強(qiáng)大,但對(duì)初學(xué)者來(lái)說(shuō),最好先不要介入這個(gè)領(lǐng)域。先把cpld用上是最主要的。
好了,這樣就把目標(biāo)縮小到一個(gè)點(diǎn)上了。需要花功夫把240的相關(guān)資料吃透,把quartus用熟。到這里,一分錢(qián)都不用花。時(shí)間用在3個(gè)點(diǎn)上:1、240的構(gòu)造和資源,2、quartus軟件使用,3、verilog hdl語(yǔ)言學(xué)習(xí)。
設(shè)計(jì)中,如果你的邏輯需要100個(gè)單元,編譯后會(huì)發(fā)現(xiàn)用掉120個(gè)單元,這是cpld內(nèi)部布線需要。作為實(shí)際應(yīng)用,必須要留20%以上的富余量,比如編譯結(jié)果指示用220個(gè)單元,這時(shí)就不要用240了,應(yīng)該使用570,因?yàn)?40的富余量不夠。
一個(gè)小技巧,針對(duì)EPM240和570來(lái)說(shuō),常用的封裝是T100的,就是TQFP100,這2個(gè)芯片的封裝是向下兼容的,因此,設(shè)計(jì)時(shí),即便決定使用240,也要按570去畫(huà)板子。焊接是兼容的,同時(shí)萬(wàn)一240不夠了,可以改焊570。
2:向應(yīng)用cpld走近一步,用開(kāi)發(fā)板練習(xí)
有了上面的基礎(chǔ),可以投資買開(kāi)發(fā)板了,一般賣板子的都配套好軟件和編程器了。針對(duì)240的開(kāi)發(fā)板可能很少,可能570的好買。注意買cpld的開(kāi)發(fā)板,不要急于用fpga的,學(xué)會(huì)cpld之后,再用fpga就容易多了。要一步一步來(lái)。570的開(kāi)發(fā)板,帶仿真器,帶軟件,帶練習(xí)光盤(pán),一整套下來(lái)估計(jì)200-300元人民幣。這個(gè)資金對(duì)你要學(xué)會(huì)的技術(shù)來(lái)說(shuō),微不足道。
開(kāi)發(fā)板光盤(pán)有許多例子程序,可以先跑跑看,很容易就上手了。對(duì)于初學(xué)者來(lái)說(shuō),cpld技術(shù)是一個(gè)很大的領(lǐng)域,切記不要急于求成,上來(lái)就弄個(gè)fpga去加載視頻編解碼算法,那會(huì)十分困難。建議先從最簡(jiǎn)單的開(kāi)始,用240替代設(shè)計(jì)中使用的一些74芯片、完成部分軟件功能等,熟能生巧。這個(gè)技術(shù)絕不是短時(shí)間就能達(dá)到多高水平的,必須有積累過(guò)程。一開(kāi)始就啃難度高的,會(huì)對(duì)信心造成打擊,長(zhǎng)時(shí)間沒(méi)有進(jìn)展,是讓一個(gè)硬件工程師最為抓狂的事。
對(duì)于前期學(xué)習(xí)準(zhǔn)備比較充足的工程師來(lái)說(shuō),完全可以不買開(kāi)發(fā)板,直接在工程中應(yīng)用。現(xiàn)在的互聯(lián)網(wǎng)太方便了,只要你的cpld外圍沒(méi)有接錯(cuò),由于引腳分布是可編程的,pcb板導(dǎo)致不能用的可能性就大大降低了,鼓勵(lì)直接自己畫(huà)pcb去應(yīng)用。這樣掌握得更快。
3:cpld與cpu的接口
這個(gè)問(wèn)題十分重要,因?yàn)閏pld大部分扮演的是cpu的擴(kuò)展,替cpu完成外部引腳資源擴(kuò)展、輸入輸出時(shí)序管理、部分軟件功能實(shí)現(xiàn)。很少有讓一個(gè)cpld單獨(dú)工作的。
Cpld與cpu的接口就十分突出,對(duì)于要學(xué)cpld的工程師來(lái)說(shuō),用的cpu可能僅限于51單片機(jī)或者arm7系單片機(jī)。這種接口算是比較簡(jiǎn)單了,還是應(yīng)該循序漸進(jìn),從簡(jiǎn)單的入手,比如用單片機(jī)3個(gè)io去cpld,由cpld完成74hc138功能,這就是一個(gè)簡(jiǎn)單接口。再進(jìn)一步,用cpu的p0口和一個(gè)io腳接到cpld,用cpld完成373、244、273等功能,這就進(jìn)了一步,有時(shí)序的概念了。最后,用cpu的數(shù)據(jù)口、晶振、wr、rd、ale等信號(hào)接入cpld,把cpld做成幾個(gè)字節(jié)的ram,讀寫(xiě)實(shí)驗(yàn)。這一關(guān)過(guò)去之后,cpld與單片機(jī)的接口就再無(wú)秘密可言了。
與51單片機(jī)的接口注意必須深刻理解cpu的工作時(shí)序,地址與數(shù)據(jù)口如何復(fù)用,ale信號(hào)如何鎖存地址等。與arm7的接口相對(duì)簡(jiǎn)單,因arm7比較靈活,對(duì)外部接口的管理功能強(qiáng)。
初學(xué)者使用cpld的時(shí)候,建議在所有io腳的連線中都串聯(lián)一個(gè)51歐電阻,這樣會(huì)方便測(cè)量,更重要的是能保護(hù)cpld的io口,更深入的說(shuō),能改善高速信號(hào)的振鈴、信號(hào)反射,提高信號(hào)完整性。
4:cpld與fpga的簡(jiǎn)單介紹
Cpld比較簡(jiǎn)單,fpga更加復(fù)雜,在cpld基礎(chǔ)上,增加了PLL、硬件乘法器、ram塊等硬件資源。更有的fpga直接集成了dsp的硬核。Altera的max ii系列cpld,其內(nèi)部應(yīng)用了走線池,因此嚴(yán)格地說(shuō)它已經(jīng)屬于fpga了。
目前主要的cpld和fpga廠家是altera和xilinx,還有actel等規(guī)模稍小。Altera主要面對(duì)商用和工業(yè)用,其產(chǎn)品性價(jià)比稍好,市場(chǎng)應(yīng)用最為廣泛。Xilinx初期定位在宇航級(jí)產(chǎn)品,因此,它的芯片具有更好的性能。后來(lái)xilinx也面對(duì)商業(yè)用戶了,因此形成了與altera分庭鼎立的情況,兩個(gè)這么大的廠家,芯片的系列十分類似。建議初學(xué)者使用altera的。當(dāng)然,使用xilinx也無(wú)所謂。
Altera的開(kāi)發(fā)環(huán)境是quartus,筆者使用的是8.1版,已經(jīng)老了,但是夠用,且不出問(wèn)題,姑且使用。Xilinx的開(kāi)發(fā)環(huán)境是ISE。這些環(huán)境本身已經(jīng)提供了比較完整的仿真功能。但有一個(gè)功能更加強(qiáng)大、更加獨(dú)立的仿真環(huán)境是model sim,它分前仿真和后仿真,由于altera和xilinx的主導(dǎo)作用,因此model sim提供了這兩家的芯片的完整支持。‘前仿真’屬于邏輯仿真,所有瞬態(tài)時(shí)序同步發(fā)生,用于初期測(cè)試邏輯功能是否正確。‘后仿真’則帶有延遲特性,這與芯片內(nèi)部構(gòu)造和編譯后的內(nèi)部走線密切相關(guān)。這個(gè)后仿真,一般情況下就等同于在實(shí)際板子上跑的結(jié)果。如果在pcb上跑出現(xiàn)問(wèn)題,則此問(wèn)題就比較難解決。
軟件分兩種規(guī)范,一個(gè)是verilog hdl,一個(gè)叫vhdl。前者基本就是c語(yǔ)言的底子,因此對(duì)于工程師來(lái)說(shuō),很容易上手,所以用verilog的人非常多。Vhdl則更加嚴(yán)謹(jǐn),其語(yǔ)言規(guī)范需要一段時(shí)間熟悉。如果要長(zhǎng)期以hdl語(yǔ)言為伍,則推薦學(xué)習(xí)vhdl,它的結(jié)構(gòu)更加嚴(yán)謹(jǐn),能避免比較復(fù)雜的問(wèn)題的發(fā)生。聽(tīng)一個(gè)在華為的硬件工程師說(shuō),華為要求必須熟練一個(gè)語(yǔ)言的同時(shí)要能看懂另一個(gè)語(yǔ)言。
評(píng)論