回覆列表
-
1 # 使用者981187254678
-
2 # 弌94922977
先說FPGA和CPLD,先從名字上理解,FPGA:現場可程式設計門陣列,CPLD:複雜可程式設計邏輯器件,他們都是可程式設計器件,但是CPLD的程式是固化在內部flash的,掉電之後重新上電程式依然在。而FPGA內部並沒有flash,掉電之後程式會消失,當然可以外部掛一個flash儲存程式,每次掉電重啟都從flash載入。從規模上講,FPGA的的容量(邏輯單元)一般要比CPLD大的多,功能更強,成本更高,功耗也更大,可程式設計性也更加靈活,所以兩者有不同的市場定位,FPGA主要用於晶片功能驗證(高度複雜)、影象處理(大資料)和通訊(高速率)領域,CPLD可用於訊號發生等小規模工控市場。PLD是一個廣泛的概念,FPGA和CPLD都屬於PLD,程式設計是硬體可程式設計,邏輯設計!PLC是可程式設計控制器,常見的51微控制器就是屬於PLC了,是ASIC!也就是硬體是做死的,內部的電路是固化的,可以看作是一種定製的晶片,程式設計是軟體程式設計!DSP有很強的運算能力,有更多的乘法器加法器等,嚴格來說DSP是一種軟核,再增加外圍的儲存、時鐘等才封裝成晶片,在影象處理、數學運算上有較大優勢。
1、FPGA(Field-Programmable Gate Array),即現場可程式設計門陣列,它是在PAL、GAL、CPLD等可程式設計器件的基礎上進一步發展的產物。它是作為專用積體電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可程式設計器件閘電路數有限的缺點。 2、CPLD(Complex Programmable Logic Device)複雜可程式設計邏輯器件,是從PAL和GAL器件發展出來的器件,相對而言規模大,結構複雜,屬於大規模積體電路範圍。是一種使用者根據各自需要而自行構造邏輯功能的數字積體電路。其基本設計方法是藉助整合開發軟體平臺,用原理圖、硬體描述語言等方法,生成相應的目標檔案,透過下載電纜(“在系統”程式設計)將程式碼傳送到目標晶片中,實現設計的數字系統。 3、FPGA和CPLD的區別: ①CPLD更適合完成各種演算法和組合邏輯,FPGA更適合於完成時序邏輯。換句話說,FPGA更適合於觸發器豐富的結構,而CPLD更適合於觸發器有限而乘積項豐富的結構。 ②CPLD的連續式佈線結構決定了它的時序延遲是均勻的和可預測的,而FPGA的分段式佈線結構決定了其延遲的不可預測性。 ③在程式設計上FPGA比CPLD具有更大的靈活性。CPLD透過修改具有固定內連電路的邏輯功能來程式設計,FPGA主要透過改變內部連線的佈線來程式設計;FPGA可在邏輯閘下程式設計,而CPLD是在邏輯塊下程式設計。 ④FPGA的整合度比CPLD高,具有更復雜的佈線結構和邏輯實現。 ⑤CPLD比FPGA使用起來更方便。CPLD的程式設計採用E2PROM或FASTFLASH技術,無需外部儲存器晶片,使用簡單。而FPGA的程式設計資訊需存放在外部儲存器上,使用方法複雜。 ⑥CPLD的速度比FPGA快,並且具有較大的時間可預測性。這是由於FPGA是門級程式設計,並且CLB之間採用分散式互聯,而CPLD是邏輯塊級程式設計,並且其邏輯塊之間的互聯是集總式的。 ⑦在程式設計方式上,CPLD主要是基於E2PROM或FLASH儲存器程式設計,程式設計次數可達1萬次,優點是系統斷電時程式設計資訊也不丟失。CPLD又可分為在編 程器上程式設計和在系統程式設計兩類。FPGA大部分是基於SRAM程式設計,程式設計資訊在系統斷電時丟失,每次上電時,需從器件外部將程式設計資料重新寫入SRAM中。其 優點是可以程式設計任意次,可在工作中快速程式設計,從而實現板級和系統級的動態配置。 ⑧CPLD保密性好,FPGA保密性差。 ⑨一般情況下,CPLD的功耗要比FPGA大,且整合度越高越明顯。 隨著複雜可程式設計邏輯器件(CPLD)密度的提高,數字器件設計人員在進行大型設計時,既靈活又容易,而且產品可以很快進入市常許多設計人員已經感受到 CPLD容易使用。時序可預測和速度高等優點,然而,在過去由於受到CPLD密度的限制,他們只好轉向FPGA和ASIC。現在,設計人員可以體會到密度 高達數十萬門的CPLD所帶來的好處。