fpga和單片機(jī)的區(qū)別
fpga工作原理
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括 可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。
fpga特點(diǎn)
1) 采用FPGA設(shè)計(jì)ASIC電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。
2) FPGA可做其它全定制或半定制ASIC電路的中試樣片。
3) FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。
4) FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。
5) FPGA采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。
單片機(jī)簡(jiǎn)介
單片機(jī),全稱為單片微型計(jì)算機(jī)(Single-Chip Microcomputer),又稱微控制器(Microcontroller),是把中央處理器、存儲(chǔ)器、定時(shí)/計(jì)數(shù)器(Timer/Counter)、各種輸入輸出接口等都集成在一塊集成電路芯片上的微型計(jì)算機(jī)。它的最大優(yōu)點(diǎn)是體積小,可放在儀表內(nèi)部,但存儲(chǔ)量小,輸入輸出接口簡(jiǎn)單,功能較低。由于其發(fā)展非常迅速,舊的單片機(jī)的定義已不能滿足,所以在很多應(yīng)用場(chǎng)合被稱為范圍更廣的微控制器。
單片機(jī)工作原理
單片機(jī)自動(dòng)完成賦予它的任務(wù)的過(guò)程,也就是單片機(jī)執(zhí)行程序的過(guò)程,即一條條執(zhí)行的指令的過(guò)程,所謂指令就是把要求單片機(jī)執(zhí)行的各種操作用的命令的形式寫下來(lái),這是在設(shè)計(jì)人員賦予它的指令系統(tǒng)所決定的,一條指令對(duì)應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系統(tǒng),不同種類的單片機(jī),其指令系統(tǒng)亦不同。
為使單片機(jī)能自動(dòng)完成某一特定任務(wù),必須把要解決的問(wèn)題編成一系列指令(這些指令必須是選定單片機(jī)能識(shí)別和執(zhí)行的指令),這一系列指令的集合就成為程序,程序需要預(yù)先存放在具有存儲(chǔ)功能的部件——存儲(chǔ)器中。存儲(chǔ)器由許多存儲(chǔ)單元(最小的存儲(chǔ)單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出并執(zhí)行就像大樓房的每個(gè)房間的被分配到了唯一一個(gè)房間號(hào)一樣,每一個(gè)存儲(chǔ)單元也必須被分配到唯一的地址號(hào),該地址號(hào)稱為存儲(chǔ)單元的地址,這樣只要知道了存儲(chǔ)單元的地址,就可以找到這個(gè)存儲(chǔ)單元,其中存儲(chǔ)的指令就可以被取出,然后再被執(zhí)行。
程序通常是順序執(zhí)行的,所以程序中的指令也是一條條順序存放的,單片機(jī)在執(zhí)行程序時(shí)要能把這些指令一條條取出并加以執(zhí)行,必須有一個(gè)部件能追蹤指令所在的地址,這一部件就是程序計(jì)數(shù)器PC(包含在CPU中),在開(kāi)始執(zhí)行程序時(shí),給PC賦以程序中第一條指令所在的地址,然后取得每一條要執(zhí)行的命令,PC在中的內(nèi)容就會(huì)自動(dòng)增加,增加量由本條指令長(zhǎng)度決定,可能是1、2或3,以指向下一條指令的起始地址,保證指令順序執(zhí)行。
單片機(jī)特點(diǎn)
(1)體積小、結(jié)構(gòu)簡(jiǎn)單、可靠性高
(2)控制能力強(qiáng)
(3)低電壓、低功耗
(4)優(yōu)異的性能/價(jià)格比
fpga和單片機(jī)的區(qū)別
1、結(jié)構(gòu)上的區(qū)別
單片機(jī)是一種微處理器,類似于電腦CPU的,它一般采用的是哈佛總線結(jié)構(gòu),或者馮諾依曼結(jié)構(gòu),對(duì)單片機(jī)的編程很大程度上要考慮到它的結(jié)構(gòu)和各個(gè)寄存器的作用,單片機(jī)用途比較廣,一般用在控制流水線上,還有日 常你看得到的東西上!
FPGA 它的結(jié)構(gòu)是查找表結(jié)構(gòu),其程序不用去太考慮芯片的結(jié)構(gòu),要注意的是時(shí)序上問(wèn)題,它的結(jié)構(gòu)比較復(fù)雜,功能也很強(qiáng)大,一般應(yīng)用在通信領(lǐng)域等比較高端的場(chǎng)合,目前在國(guó)內(nèi)FPGA還算是一個(gè)新興的行業(yè),當(dāng)然它的價(jià)格也要比單片機(jī)貴得多!
單片機(jī)是一個(gè)微控制器,通過(guò)加載模塊軟件來(lái)實(shí)現(xiàn)某種功能,單片機(jī)是成型的芯片;FPGA是用來(lái)設(shè)計(jì)芯片的芯片。
2、速度上的區(qū)別
FPGA由于是硬件電路,運(yùn)行速度直接取決于晶振速度,系統(tǒng)穩(wěn)定,特別適合高速接口電路。單片機(jī)由于是單線程,哪怕是常用的M3系列流水線也是單線程執(zhí)行,程序語(yǔ)句需要等待單片機(jī)周期才能執(zhí)行。
3、本質(zhì)區(qū)別
FPGA和單片機(jī)的區(qū)別,本質(zhì)上是軟件和硬件的區(qū)別,F(xiàn)PGA更偏向于硬件電路,而單片機(jī)更偏于軟件。
單片機(jī)設(shè)計(jì)屬軟件范疇;它的硬件(單片機(jī)芯片)是固定的,通過(guò)軟件編程語(yǔ)言描述軟件指令在硬件芯片上的執(zhí)行;
FPGA設(shè)計(jì)屬硬件范疇,它的硬件(FPGA)是可編程的,是一個(gè)通過(guò)硬件描述語(yǔ)言在FPGA芯片上自定義集成電路的過(guò)程;
4、應(yīng)用上的區(qū)別
應(yīng)用上,差別更大。MCU最終所有的指令在一個(gè)MCU中都是順序執(zhí)行的,而FPGA由于是邏輯單元,很容易做到并行執(zhí)行。
5、入門難易程度
單片機(jī)比FPGA簡(jiǎn)單些,價(jià)格也低一些。要做PID算法控制的用單片機(jī)可以,STM32F4系列已經(jīng)到300M+跑PID完全足夠,如果是跑嵌入式的話可以上ARM芯片。涉及通信、圖像等高速部分可以采用單FPGA模塊。