FPGA是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它的出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。單片機是把中央處理器、存儲器、定時/計數器(Timer/Counter)、各種輸入輸出接口等都集成在一塊集成電路芯片上的微型計算機。既然都同屬編程類的電子元件,那么這兩者有什么區別呢?下面一起來看看吧:
1.結構區別
單片機是一種微處理器,類似于電腦CPU的,它一般采用的是哈佛總線結構,或者馮諾依曼結構,對單片機的編程很大程度上要考慮到它的結構和各個寄存器的作用,單片機用途比較廣,一般用在控制流水線上。
哈佛總線結構
FPGA它的結構是查找表結構,其程序不用去太考慮芯片的結構,要注意的是時序上問題,它的結構比較復雜,功能也很強大,一般應用在通信領域等比較高端的場合,目前在FPGA還算是一個新興的行業。
FPGA結構
簡單來說,單片機是一個微控制器,通過加載模塊軟件來實現某種功能,是成型的芯片;而FPGA是用來設計芯片的芯片。
2.本質區別
FPGA和單片機的區別,本質上是軟件和硬件的區別,FPGA更偏向于硬件電路,而單片機更偏于軟件。
單片機設計屬軟件范疇;它的硬件(單片機芯片)是固定的,通過軟件編程語言描述軟件指令在硬件芯片上的執行;
FPGA設計屬硬件范疇,它的硬件(FPGA)是可編程的,是一個通過硬件描述語言在FPGA芯片上自定義集成電路的過程;
3.速度區別
FPGA由于是硬件電路,內部是并行的,所有的電路邏輯都是在同一個時鐘觸發下工作的,運行速度直接取決于晶振速度,系統穩定。
FPGA內部并行圖
單片機屬于單線程,內部屬于順序執行,一個執行完了再執行下一個,哪怕是常用的M3系列流水線也是單線程執行,程序語句也需要等待單片機周期才能執行,所以速度比較慢。
單片機單線程圖
4.應用區別
FPGA主要是用于VLSI(超大規模集成電路)設計的,主要是數字系統,是一些邏輯電路的模塊,通過可編程的布線網絡來連接這些邏輯模塊(可對硬件進行排列組合),從而實現不同的邏輯功能。
單片機是一個微型的計算機,它的硬件電路是不能動的,主要是通過軟件來描述指令在硬件電路上的執行步驟,從而實現功能。主要應用在處理事件上,比如外部有個中斷信號,MCU檢測到后,軟件就指揮硬件進行某種處理。
5.入門難易程度
單片機比FPGA簡單些,價格也低一些。要做PID算法控制的用單片機可以,STM32F4系列已經到300M+跑PID完全足夠,如果是跑嵌入式的話可以上ARM芯片。涉及通信、圖像等高速部分可以采用單FPGA模塊。
以上就是FPGA與單片機的區別介紹了。FPGA和單片機開發都是屬于數字電路設計設計的范疇,其中的編程也差不多,雖然兩者有并行執行和穿行執行的區別,但是兩個器件執行的功能都是屬于邏輯功能一類。相對來說FPGA設計要復雜一些,對于底層硬件知識的掌握要求也要高一些。
電話:18923864027(同微信)
QQ:709211280
〈烜芯微/XXW〉專業制造二極管,三極管,MOS管,橋堆等,20年,工廠直銷省20%,上萬家電路電器生產企業選用,專業的工程師幫您穩定好每一批產品,如果您有遇到什么需要幫助解決的,可以直接聯系下方的聯系號碼或加QQ/微信,由我們的銷售經理給您精準的報價以及產品介紹