電子工程網
標題: FGGA [打印本頁]
作者: FWW7 時間: 2017-4-7 14:46
標題: FGGA
FPGA是以硬件描述語言(
Verilog或
VHDL)所完成的
電路設計,可以經過簡單的綜合與布局,快速的
電路(比如AND、OR、XOR、NOT)或者更復雜一些的組合功能比如解碼器或數學方程式。在大多數的FPGA里面,這些可編輯的元件里也包含記憶元件例如
電路試驗板被放在了一個
芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者而改變,所以FPGA可以完成所需要的邏輯功能。
FPGA一般來說比ASIC(專用集成電路)的速度要慢,實現同樣的功能比ASIC電路面積要大。但是他們也有很多的優點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因為這些
芯片有比較差的可編輯能力,所以這些設計的開發是在普通的FPGA上完成的,然后將設計轉移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(Complex Programmable Logic Device,復雜可編程邏輯器件)。
寫完程序綜合后,芯片內部相當于生成這樣一個電路

file:///C:\Users\xm-1\AppData\Local\Temp\ksohtml\wps820E.tmp.png
通常意義下,FPGA不是計算機,不是計算機,不是計算機,所以不要和單片機這種計算機放在一起比較,FPGA是沒有CPU的,但是有人為加強FPGA的性(逼)能(格),可以給FPGA嵌入一個CPU。。。。
所以,沒有CPU的FPGA采用數字電路模式的編程方式,因為程序沒法像有CPU的單片微型計算機那樣一條條執行機器碼。。。
而嵌有CPU的FPGA,其CPU上就可以用通常的匯編,C等真正計算機語言編程,,而沒有CPU的邏輯塊,還是用數字電路的方法。。。
可能大家通常意義上的編程都是用計算機編程,肯定是有CPU的,所以沒法理解沒有CPU是什么概念,因為FPGA根本還不算一個計算機,但是它是可以編程設計的,所以你沒法完全用計算機編程語言去編程理解
FPGA主要用于通信、圖像處理和芯片驗證領域,兩者的芯片結構有很大不同,FPGA更偏向于硬件電路,而單片機更偏于軟件,無論是從成本上還是做控制肯定是單片機要好,兩者的應用領域和擅長點大有不同。
第一,FPGA是純硬件,所寫的‘程序’也就不能稱之為程序,如果非要給它起一個名字,我感覺‘代碼’也許是比較恰當的;其次,單片機和FPGA實現信息處理發出控制信號的方式不同,單片機和嵌入式是通過主函數或者操作系統實現任務調度的途徑來響應各種外部條件觸發,并通過‘軟件’輸出相應的狀態來實現電子系統的正常工作,然而FPGA是通過純硬件來實現各種激勵的相應的,與單片機實現控制的根本方法不同。最后,單片機和嵌入式的軟件設計會有盲點,再快的軟件相應在現實應用中也會有出現盲點的時候,簡單的說就是系統不能及時響應或者漏掉某些激勵的現象,然而硬件不會,它以強大的并行方式來響應所有的信號激勵,但硬件也不是萬能的,FPGA這類的純硬件最大的克星就是亞穩態以及競爭冒險等等,通俗的講就是輸出及其短暫的不穩定現象,雖然不穩定狀態出現的時間及其短,甚至到了皮秒級別(1秒等于10的十二次方皮秒)但也就是這么短暫的不穩定也可能會給設計帶來致命的危險。這是有硬件的特性決定的,是在設計中永遠無法避免的,對于冒險和亞穩態,我們只能想盡一切辦法去解決他們。一個信號處理邏輯機制優劣將決定一個項目的好壞。
并行和串行的區別,并行可以看做鐘表齒輪,最小的齒輪是時鐘,其他的齒輪都是在小齒輪帶動下運轉,串行可以看成流水線,做完一件事后做下一件
你要說不同,1:架構上面,FPGA一般由DCM、IOB、CLB等組成,現在的FPGA還包含各種IPCORE。MCU要么是馮諾伊曼結構要么是哈佛結構,從結構上來說差異巨大。
2. 應用上,差別更大。MCU最終所有的指令在一個MCU中都是順序執行的,而FPGA由于是邏輯單元,很容易做到并行執行。
做控制還是用單片機好,FPGA是做適合做大規模并行計算的,如果完全用硬件來做控制的話,邏輯太復雜了
單片機多用來小規模的控制系統,高級單片機其實就是arm,FPGA是編程化的硬件,可以通過編寫硬件描述語言vhdl或verilog等靈活實現各種功能電路
其實我的理解是單片機是一幅畫好的話,要裝飾的時候自己裁剪,而FPGA是一張白紙需要什么自己畫
不要把單片機跟FPGA分得這么遠。
單片機里面的數字電路模塊,基本上(或很多)也是用FPGA開發、驗證好,然后做成IC芯片的。
FPGA嵌入CPU內核,再加上一些數字電路模塊功能,也能完成MCU的數字電路功能,再把設計文件交給工廠,出來就是MCU芯片。
| 歡迎光臨 電子工程網 (http://m.4huy16.com/) |
Powered by Discuz! X3.4 |