亚洲熟妇av一区二区三区,久久久久久精品观看sss,免费观看四虎精品国产永久,国产成人精品一区二三区熟女,天堂网在线最新版www资源网

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

概述

首先,“嵌入式”這是個概念,準確的定義沒有,各個書上都有各自的定義。但是主要思想是一樣的,就是相比較PC機這種通用系統(tǒng)來說,嵌入式系統(tǒng)是個專用系統(tǒng),結(jié)構(gòu)精簡,在硬件和軟件上都只保留需要的部分,而將不需要的部分裁去。所以嵌入式系統(tǒng)一般都具有便攜、低功耗、性能單一等特性。

然后,mcu、DSP、FPGA這些都屬于嵌入式系統(tǒng)的范疇,是為了實現(xiàn)某一目的而使用的工具。

MCU俗稱”單片機“經(jīng)過這么多年的發(fā)展,早已不單單只有普林斯頓結(jié)構(gòu)的51了,性能也已得到了很大的提升。因為MCU必須順序執(zhí)行程序,所以適于做控制,較多地應(yīng)用于工業(yè)。而ARM本是一家專門設(shè)計MCU的公司,由于技術(shù)先進加上策略得當,這兩年單片機市場份額占有率巨大。

ARM的單片機有很多種類,從低端M0(小家電)到高端A8、A9(手機、平板電腦)都很吃香,所以也不是ARM的單片機一定要上系統(tǒng),關(guān)鍵看應(yīng)用場合。

DSP叫做數(shù)字信號處理器,它的結(jié)構(gòu)與MCU不同,加快了運算速度,突出了運算能力??梢园阉闯梢粋€超級快的MCU。低端的DSP,如C2000系列,主要是用在電機控制上,不過TI公司好像稱其為DSC(數(shù)字信號控制器)一個介于MCU和DSP之間的東西。高端的DSP,如C5000/C6000系列,一般都是做視頻圖像處理和通信設(shè)備這些需要大量運算的地方。

FPGA叫做現(xiàn)場可編程邏輯陣列,本身沒有什么功能,就像一張白紙,想要它有什么功能完全靠編程人員設(shè)計(它的所有過程都是硬件,包括VHDL和Verilog HDL程序設(shè)計也是硬件范疇,一般稱之為編寫“邏輯”。)。

如果你夠NB,你可以把它變成MCU,也可以變成DSP。由于MCU和DSP的內(nèi)部結(jié)構(gòu)都是設(shè)計好的,所以只能通過軟件編程來進行順序處理,而FPGA則可以并行處理和順序處理,所以比較而言速度最快。

**那么為什么MCU、DSP和FPGA會同時存在呢?**那是因為MCU、DSP的內(nèi)部結(jié)構(gòu)都是由IC設(shè)計人員精心設(shè)計的,在完成相同功能時功耗和價錢都比FPGA要低的多。而且FPGA的開發(fā)本身就比較復(fù)雜,完成相同功能耗費的人力財力也要多。

**所以三者之間各有各的長處,各有各的用武之地。**但是目前三者之間已經(jīng)有融合的態(tài)勢,ARM的M4系列里多加了一個精簡的DSP核,TI的達芬奇系列本身就是ARM DSP結(jié)構(gòu),ALTERA和XINLIX新推出的FPGA都包含了ARM的核在里面。所以三者之間的關(guān)系是越來越像三基色的三個圓了。

一言以蔽之“你中有我,我中有你”。

硬件工程師學(xué)習(xí)從何開始?

  • 單片機:通常無操作系統(tǒng),用于簡單的控制,如電梯,空調(diào)等。
  • dsp:用于復(fù)雜的計算,像離散余弦變換、快速傅里葉變換,常用于圖像處理,在數(shù)碼相機等設(shè)備中使用。
  • arm:一個英國的芯片設(shè)計公司,但是不生產(chǎn)芯片。只賣知識產(chǎn)權(quán)。
  • fpga:現(xiàn)場可編程門陣列,以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現(xiàn)代 IC 設(shè)計驗證的技術(shù)主流。
  • 嵌入式 是相對于臺式電腦而言,系統(tǒng)可裁剪,形態(tài)各異,可能體積、功耗、成本受限、實時性要求高,如示波器,手機,平板電腦,全自動洗衣機,路由器、數(shù)碼相機,這些設(shè)備中,雖然看不到臺式機的存在,但是都有一個或多個嵌入式系統(tǒng)在工作。

根據(jù)對象體系的功能復(fù)雜性和計算處理復(fù)雜性,提供的不同選擇。對于簡單的家電控制嵌入式系統(tǒng),采用簡單的8位單片機就足夠了,價廉物美,對于手機和游戲機等,就必須采用32位的ARM和DSP等芯片了。FPGA是一種更偏向硬件的實現(xiàn)方式。

所以要通過學(xué)習(xí)成為硬件工程師,要從單片機開始,然后學(xué)習(xí)ARM和DSP之類。

市面上七大主流單片機的詳細介紹

單片機現(xiàn)在可謂是鋪天蓋地,種類繁多,讓開發(fā)者們應(yīng)接不暇,發(fā)展也是相當?shù)难杆?,從上世紀80年代,由當時的4位8位發(fā)展到現(xiàn)在的各種高速單片機。

各個廠商們也在速度、內(nèi)存、功能上此起彼伏,參差不齊~~同時涌現(xiàn)出一大批擁有代表性單片機的廠商:Atmel、TI、ST、MicroChip、ARM…國內(nèi)的宏晶STC單片機也是可圈可點…

下面為大家?guī)?1、MSP430、TMS、STM32、PIC、AVR、STC單片機之間的優(yōu)缺點比較及功能體現(xiàn)……

51單片機

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

應(yīng)用最廣泛的8位單片機當然也是初學(xué)者們最容易上手學(xué)習(xí)的單片機,最早由Intel推出,由于其典型的結(jié)構(gòu)和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富的指令系統(tǒng),堪稱為一代“經(jīng)典”,為以后的其它單片機的發(fā)展奠定了基礎(chǔ)。

51單片機之所以成為經(jīng)典,成為易上手的單片機主要有以下特點:

特性:

  • 從內(nèi)部的硬件到軟件有一套完整的按位操作系統(tǒng),稱作位處理器,處理對象不是字或字節(jié)而是位。不但能對片內(nèi)某些特殊功能寄存器的某位進行處理,如傳送、置位、清零、測試等,還能進行位的邏輯運算,其功能十分完備,使用起來得心應(yīng)手。
  • 同時在片內(nèi)RAM區(qū)間還特別開辟了一個雙重功能的地址區(qū)間,使用極為靈活,這一功能無疑給使用者提供了極大的方便,
  • 乘法和除法指令,這給編程也帶來了便利。很多的八位單片機都不具備乘法功能,作乘法時還得編上一段子程序調(diào)用,十分不便。

缺點:(雖然是經(jīng)典但是缺點還是很明顯的)

  • AD、EEPROM等功能需要靠擴展,增加了硬件和軟件負擔
  • 雖然I/O腳使用簡單,但高電平時無輸出能力,這也是51系列單片機的最大軟肋
  • 運行速度過慢,特別是雙數(shù)據(jù)指針,如能改進能給編程帶來很大的便利
  • 51保護能力很差,很容易燒壞芯片

應(yīng)用范圍:

  • 目前在教學(xué)場合和對性能要求不高的場合大量被采用
  • 使用最多的器件:8051、80C51

MSP430單片機

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

MSP430系列單片機是德州儀器1996年開始推向市場的一種16位超低功耗的混合信號處理器,給人們留下的最大的亮點是低功耗而且速度快,匯編語言用起來很靈活,尋址方式很多,指令很少,容易上手。

主要是由于其針對實際應(yīng)用需求,把許多模擬電路、數(shù)字電路和微處理器集成在一個芯片上,以提供“單片”解決方案。其迅速發(fā)展和應(yīng)用范圍的不斷擴大,主要取決于以下的特點…

特性:

  • **強大的處理能力,**采用了精簡指令集(RISC)結(jié)構(gòu),具有豐富的尋址方式( 7 種源操作數(shù)尋址、 4 種目的操作數(shù)尋址)、簡潔的 27 條內(nèi)核指令以及大量的模擬指令;大量的寄存器以及片內(nèi)數(shù)據(jù)存儲器都可參加多種運算;還有高效的查表處理指令;有較高的處理速度,在 8MHz 晶體驅(qū)動下指令周期為 125 ns 。這些特點保證了可編制出高效率的源程序
  • 運算速度方面,能在 8MHz 晶體的驅(qū)動下,實現(xiàn) 125ns 的指令周期。16 位的數(shù)據(jù)寬度、 125ns 的指令周期以及多功能的硬件乘法器(能實現(xiàn)乘加)相配合,能實現(xiàn)數(shù)字信號處理的某些算法(如 FFT 等)。
  • 超低功耗方面,MSP430 單片機之所以有超低的功耗,是因為其在降低芯片的電源電壓及靈活而可控的運行時鐘方面都有其獨到之處。電源電壓采用的是 1.8~3.6V 電壓。因而可使其在 1MHz 的時鐘條件下運行時, 芯片的電流會在 200~400uA 左右,時鐘關(guān)斷模式的最低功耗只有 0.1uA

缺點:

  • 個人感覺不容易上手,不適合初學(xué)者入門,資料也比較少,只能***網(wǎng)去找
  • 占的指令空間較大,因為是16位單片機,程序以字為單位,有的指令竟然占6個字節(jié)。雖然程序表面上簡潔, 但與PIC單片機比較空間占用很大

應(yīng)用范圍:

  • 在低功耗及超低功耗的工業(yè)場合應(yīng)用的比較多
  • 使用最多的器件:MSP430F系列、MSP430G2系列、MSP430L09系列

TMS單片機

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

這里也提一下TMS系列單片機,雖不算主流。由TI推出的8位CMOS單片機,具有多種存儲模式、多種外圍接口模式,適用于復(fù)雜的實時控制場合。雖然沒STM32那么優(yōu)秀,也沒MSP430那么張揚,但是TMS370C系列單片機提供了通過整合先進的外圍功能模塊及各種芯片的內(nèi)存配置,具有高性價比的實時系統(tǒng)控制。

同時采用高性能硅柵CMOS EPROM和EEPROM技術(shù)實現(xiàn)。低工作功耗CMOS技術(shù),寬工作溫度范圍,噪聲抑制,再加上高性能和豐富的片上外設(shè)功能,使TMS370C系列單片機在汽車電子,工業(yè)電機控制,電腦,通信和消費類具有一定的應(yīng)用。

STM32單片機

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

由ST廠商推出的STM32系列單片機,行業(yè)的朋友都知道,這是一款性價比超高的系列單片機,應(yīng)該沒有之一,功能及其強大。其基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM Cortex-M內(nèi)核。

同時具有一流的外設(shè):1μs的雙12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表現(xiàn),當然和MSP430的功耗比起來是稍微遜色的一些,但這并不影響工程師們對它的熱捧程度,由于其簡單的結(jié)構(gòu)和易用的工具再配合其強大的功能在行業(yè)中赫赫有名…

特性:

  • 內(nèi)核:單周期乘法和硬件除法
  • 存儲器:片上集成32-512KB的Flash存儲器。6-64KB的SRAM存儲器
  • 時鐘、復(fù)位和電源管理:2.0-3.6V的電源供電和I/O接口的驅(qū)動電壓。POR、PDR和可編程的電壓探測器(PVD)。4-16MHz的晶振。內(nèi)嵌出廠前調(diào)校的8MHz RC振蕩電路。內(nèi)部40 kHz的RC振蕩電路。用于CPU時鐘的PLL。帶校準用于RTC的32kHz的晶振
  • 調(diào)試模式:串行調(diào)試(SWD)和JTAG接口。最多高達112個的快速I/O端口、最多多達11個定時器、最多多達13個通信接口
  • 使用最多的器件:STM32F103系列、STM32 L1系列、STM32W系列

PIC單片機

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

PIC單片機系列是美國微芯公司(Microship)的產(chǎn)品,共分三個級別,即基本級、中級、高級,是當前市場份額增長最快的單片機之一,CPU采用RISC結(jié)構(gòu),分別有33、35、58條指令,屬精簡指令集。

同時采用Harvard雙總線結(jié)構(gòu),運行速度快,它能使程序存儲器的訪問和數(shù)據(jù)存儲器的訪問并行處理,這種指令流水線結(jié)構(gòu),在一個周期內(nèi)完成兩部分工作,一是執(zhí)行指令,二是從程序存儲器取出下一條指令,這樣總的看來每條指令只需一個周期,這也是高效率運行的原因之一,此外PIC單片機之所以成為一時非常熱的單片機不外乎以下特點:

特點:

  • 具有低工作電壓、低功耗、驅(qū)動能力強等特點。PIC系列單片機的I/O口是雙向的,其輸出電路為CMOS互補推挽輸出電路。I/O腳增加了用于設(shè)置輸入或輸出狀態(tài)的方向寄存器,從而解決了51系列I/O腳為高電平時同為輸入和輸出的狀態(tài)。
  • 當置位1時為輸入狀態(tài),且不管該腳呈高電平或低電平,對外均呈高阻狀態(tài);置位0時為輸出狀態(tài),不管該腳為何種電平,均呈低阻狀態(tài),有相當?shù)尿?qū)動能力,低電平吸入電流達25mA,高電平輸出電流可達20mA。相對于51系列而言,這是一個很大的優(yōu)點。
  • 它可以直接驅(qū)動數(shù)碼管顯示且外電路簡單。它的A/D為10位,能滿足精度要求。具有在線調(diào)試及編程(ISP)功能。

不足之處:

  • 其專用寄存器(SFR)并不像51系列那樣都集中在一個固定的地址區(qū)間內(nèi)(80~FFH),而是分散在四個地址區(qū)間內(nèi)。只有5個專用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4個存儲體內(nèi)同時出現(xiàn),但是在編程過程中,少不了要與專用寄存器打交道,得反復(fù)地選擇對應(yīng)的存儲體,也即對狀態(tài)寄存器STATUS的第6位(RP1)和第5位(RP0)置位或清零。
  • 數(shù)據(jù)的傳送和邏輯運算基本上都得通過工作寄存器W(相當于51系列的累加器A)來進行,而51系列的還可以通過寄存器相互之間直接傳送,因而PIC單片機的瓶頸現(xiàn)象比51系列還要嚴重,這在編程中的朋友應(yīng)該深有體會。
  • 使用最多的器件:PIC16F873、PIC16F877

AVR單片機

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

AVR單片機是Atmel公司推出的較為新穎的單片機,其顯著的特點為**高性能、高速度、低功耗。**它取消機器周期,以時鐘周期為指令周期,實行流水作業(yè)。

AVR單片機指令以字為單位,且大部分指令都為單周期指令。而單周期既可執(zhí)行本指令功能,同時完成下一條指令的讀取。通常時鐘頻率用4~8MHz,故最短指令執(zhí)行時間為250~125ns。

特點:

  • AVR系列沒有類似累加器A的結(jié)構(gòu),它主要是通過R16~R31寄存器來實現(xiàn)A的功能。在AVR中,沒有像51系列的數(shù)據(jù)指針DPTR,而是由X(由R26、R27組成)、Y(由R28、R29組成)、Z(由R30、R31組成)三個16位的寄存器來完成數(shù)據(jù)指針的功能(相當于有三組DPTR)。
  • 而且還能作后增量或先減量等的運行,而在51系列中,所有的邏輯運算都必須在A中進行;而AVR卻可以在任兩個寄存器之間進行,省去了在A中的來回折騰,這些都比51系列出色些
  • AVR的專用寄存器集中在00~3F地址區(qū)間,無需像PIC那樣得先進行選存儲體的過程,使用起來比PIC方便。AVR的片內(nèi)RAM的地址區(qū)間為0~00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它們占用的是數(shù)據(jù)空間的地址,這些片內(nèi)RAM僅僅是用來存儲數(shù)據(jù)的,通常不具備通用寄存器的功能。
  • 當程序復(fù)雜時,通用寄存器R0~R31就顯得不夠用;而51系列的通用寄存器多達128個(為AVR的4倍),編程時就不會有這種感覺。
  • AVR的I/O腳類似PIC,它也有用來控制輸入或輸出的方向寄存器,在輸出狀態(tài)下,高電平輸出的電流在10mA左右,低電平吸入電流20mA。這點雖不如PIC,但比51系列還是要優(yōu)秀的…

缺點:

  • 沒有位操作,都是以字節(jié)形式來控制和判斷相關(guān)寄存器位。
  • C語言與51的C語言在寫法上存在很大的差異,這讓從開始學(xué)習(xí)51單片機的朋友很不習(xí)慣。
  • 通用寄存器一共32個(R0~R31),前16個寄存器(R0~R15)都不能直接與立即數(shù)打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接與立即數(shù)打交道,顯然要優(yōu)于前者。
  • 使用最多的器件:ATUC64L3U、ATxmega64A1U、AT90S8515

STC單片機

說到STC單片機有人會說到,STC也能算主流,估計要被噴了~~我們基于它是國內(nèi)還算是比較不錯的單片機來說。

STC單片機是宏晶生產(chǎn)的單時鐘/機器周期的單片機,說白了STC單片機是51與AVR的結(jié)合體,有人說AVR是51的替代單片機,但是AVR單片機在位控制和C語言寫法上存在很大的差異。而STC單片機洽洽結(jié)合了51和AVR的優(yōu)點,雖然功能不及AVR那么強大,但是在AVR能找到的功能,在STC上基本都有,同時STC單片機是51內(nèi)核,這給以51單片機為基礎(chǔ)的工程師們提供了極大的方便,省去了學(xué)習(xí)AVR的時間,同時也不失AVR的各種功能…

STC單片機是高速、低功耗、超強抗干擾的新一代8051單片機51單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8~12倍,內(nèi)部集成MAX810專用復(fù)位電路。4路PWM 、8路高速10位A、D轉(zhuǎn)換,針對電機電機 的供應(yīng)商控制,強干擾場合,成為繼51單片機后一個全新系列單片機…

特性:

  • 下載燒錄程序用串口方便好用,容易上手,擁有大量的學(xué)習(xí)資料及視頻,最著名的要屬于杜老師的那個視頻了,好多對單片機有興趣的朋友都是通過這個視頻入門的,同時具有寬電壓:5.5~3.8V,2.4~3.8V, 低功耗設(shè)計:空閑模式,掉電模式(可由外部中斷喚醒)
  • STC單片機具有在應(yīng)用編程,調(diào)試起來比較方便;帶有10位AD、內(nèi)部EEPROM、可在1T/機器周期下工作,速度是傳統(tǒng)51單片機的8~12倍,價格也較便宜
  • STC12C2052AD系列為2通道,也可用來再實現(xiàn)4個定時器或4個外部中斷,2個硬件16位定時器,兼容普通8051的定時器。4路PCA還可再實現(xiàn)4個定時器,具有硬件看門狗、高速SPI通信端口、全雙工異步串行口,兼容普通8051的串口,同時還具有先進的指令集結(jié)構(gòu),兼容普通8051指令集。
  • **PS:**STC單片機功能雖不及AVR、STM32強大,價格也不及51和ST32便宜,但是這些并并不重要,重要的是這屬于國產(chǎn)單片機比較出色的單片機,但愿國產(chǎn)單片機能一路長虹…
  • 使用最多的器件:STC12C2052AD

Freescale單片機

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

主要針對S08,S12這類單片機,當然Freescale單片機遠非于此。Freescale系列單片機采用哈佛結(jié)構(gòu)和流水線指令結(jié)構(gòu),在許多領(lǐng)域內(nèi)都表現(xiàn)出低成本,高性能的的特點,它的體系結(jié)構(gòu)為產(chǎn)品的開發(fā)節(jié)省了大量時間。此外Freescale提供了多種集成模塊和總線接口,可以在不同的系統(tǒng)中更靈活的發(fā)揮作用!Freescale單片機的特有的特點如下:

  • 全系列:從低端到高端,從8位到32位全系列應(yīng)有盡有,其推出的8位/32位管腳兼容的QE128,可以從8位直接移植到32位,彌補單片機業(yè)界8/32 位兼容架構(gòu)中缺失的一環(huán)
  • 多種系統(tǒng)時鐘模塊:三種模塊,七種工作模式。多種時鐘源輸入選項,不同的mcu具有不同的時鐘產(chǎn)生機制,可以是RC振蕩器,外部時鐘或晶振,也可以是內(nèi)部時鐘,多數(shù)CPU同時具有上述三種模塊!可以運行在FEI,F(xiàn)EE,F(xiàn)BI,F(xiàn)BILP,F(xiàn)BE,F(xiàn)BELP,STOP這七種工作模式
  • 多種通訊模塊接口:Freescale單片機幾乎在內(nèi)部集成各種通信接口模塊:包括串行通信接口模塊SCI,多主I2C總線模塊,串行外圍接口模塊 SPI,MSCAN08控制器模塊,通用串行總線模塊(USB/PS2)
  • 具有更多的可選模塊:具有LCD驅(qū)動模塊,帶有溫度傳感器,具有超高頻發(fā)送模塊,含有同步處理器模塊,含有同步處理器的MCU還具有屏幕顯示模塊OSD,還有少數(shù)的MCU具有響鈴檢測模塊RING和雙音多頻/音調(diào)發(fā)生器DMG模塊
  • 可靠性高,抗干擾性強,多種引腳數(shù)和封裝選擇
  • 低功耗、也許Freescale系列的單片機的功耗沒有MSP430的低,但是他具有全靜態(tài)的“等待”和“停止”兩種模式,從總體上降低您的功耗!新近推出的幾款超低功耗已經(jīng)與MSP430的不相上下!
  • 使用最多的器件:MC9S12G系列

如果真要在這些單片機中分個一二三等,那么如果你想跟隨大眾,無可厚非51單片機還是首選;如果你追求超高性價比,STM32將是你理想選擇;如果你渴望超低功耗,MSP430肯定不會讓你失望;如果你想支持國產(chǎn),STC會讓你興奮…


已剪輯自: https://zhuanlan.zhihu.com/p/106985266

一、什么是DSP

DSP,Digital Signal Processor,也就是數(shù)字信號處理器。這是一種具有特殊結(jié)構(gòu)的微處理器,是以數(shù)字信號來處理大量信息的微處理器。將模擬信號轉(zhuǎn)換成數(shù)字信號,用于專用處理器的高速實時處理。

DSP的工作原理:接收外部輸入的模擬信號,然后將其轉(zhuǎn)換為數(shù)字信號(為0或1),再對數(shù)字信號進行運算處理,并在其他系統(tǒng)芯片中把數(shù)字數(shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

DSP芯片的內(nèi)部采用程序和數(shù)據(jù)分開的哈佛結(jié)構(gòu),具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP 指令,可以用來快速地實現(xiàn)各種數(shù)字信號處理算法。它不僅具有可編程性,而且其實時運行速度可達每秒數(shù)以千萬條復(fù)雜指令程序,遠遠超過通用微處理器,是當前越來越熱門、應(yīng)用越來越廣泛的微處理器芯片。

二、 DSP的發(fā)展

1.世界上第一個單片DSP芯片是1978年AMI公司宣布的S2811

2.1979年,美國Iintel公司發(fā)布的商用可編程期間2920是DSP芯片的一個主要里程碑。

以上兩種芯片內(nèi)部都沒有現(xiàn)代DSP芯片所必須的單周期芯片。

3.1980年,日本NEC公司推出的μPD7720,這是第一個具有乘法器的商用DSP 芯片

4.1982年,日本Hitachi 公司推出浮點DSP芯片,是第一個采用CMOS工藝生產(chǎn)浮點DSP芯片。

5.1983年,日本的Fujitsu公司推出的MB8764,其指令周期為120ns ,且具有雙內(nèi)部總線,從而處理的吞吐量發(fā)生了一個大的飛躍。

6.1984年,AT&T公司推出的DSP32,是第一個高性能的浮點DSP芯片。

在這么多的DSP芯片種類中,最成功的是美國德克薩斯儀器公司(Texas Instruments,簡稱TI)的一系列產(chǎn)品。

TI是DSP領(lǐng)域的的老大。

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

TI公司1982年成功推出啟迪一代DSP芯片TMS32010及其系列產(chǎn)品TMS32011、TMS32C10/C14/C15/C16/C17等,之后相繼推出了:

第二代DSP芯片TMS32020、TMS320C25/C26/C28,

第三代DSP芯片TMS32C30/C31/C32,

第四代DSP芯片TMS32C40/C44,

第五代DSP芯片TMS32C50/C51/C52/C53以及集多個DSP于一體的高性能DSP芯片TMS32C80/C82等。

自1980年以來,DSP芯片獲得迅猛發(fā)展:

1.從運算速度來看,MAC(一次乘法和一次加法)時間已經(jīng)從80年代初的400ns(如TMS32010)降低到40ns(如TMS32C40),處理能力提高了10多倍。DSP芯片內(nèi)部關(guān)鍵的乘法器部件從1980年的占模區(qū)的40左右下降到5以下,片內(nèi)RAM增加一個數(shù)量級以上。

2.從制造工藝來看,1980年采用4μ的N溝道MOS工藝,而現(xiàn)在則普遍采用亞微米CMOS工藝。

3.從封裝工藝來看,DSP芯片的引腳數(shù)量從1980年的最多64個增加到現(xiàn)在的200個以上,引腳數(shù)量的增加,意味著結(jié)構(gòu)靈活性的增加。

此外,DSP芯片的發(fā)展,是DSP系統(tǒng)的成本、體積、重量和功耗都有很大程度的下降。

三、DSP芯片的類型

1. 根據(jù)基礎(chǔ)特性

根據(jù)DSP芯片的工作時鐘和指令類型來分類的。如果DSP芯片在某時鐘頻率范圍內(nèi)的任何頻率上能正常工作,除計算速度有變化外,沒有性能的下降,這類DSP芯片一般稱之為靜態(tài)DSP芯片。如果有兩種或兩種以上的DSP芯片,它們的指令集和相應(yīng)的機器代碼機管腳結(jié)構(gòu)相互兼容,則這類DSP芯片稱之為一致性的DSP芯片。

2. 根據(jù)數(shù)據(jù)格式

數(shù)據(jù)以定點格式工作的DSP芯片稱之為定點DSP芯片。以浮點格式工作的稱為浮點DSP芯片。不同的浮點DSP芯片所采用的浮點格式不完全一樣,有的DSP芯片采用自定義的浮點格式,有的DSP芯片則采用IEEE的標準浮點格式。

3. 根據(jù)用途

可分為通用型DSP芯片和專用型的DSP芯片。通用型DSP芯片適合普通的DSP應(yīng)用,如TI公司的一系列DSP芯片。專用型DSP芯片市為特定的DSP運算而設(shè)計,更適合特殊的運算,如數(shù)字濾波,卷積和FFT等。

四、DSP芯片的基本結(jié)構(gòu)

DSP芯片的基本結(jié)構(gòu)包括:

(1)哈佛結(jié)構(gòu);

(2)流水線操作;

(3)專用的硬件乘法器;

(4)特殊的DSP指令;

(5)快速的指令周期。

哈佛結(jié)構(gòu)

哈佛結(jié)構(gòu)的主要特點是將程序和數(shù)據(jù)存儲在不同的存儲空間中,即程序存儲器和數(shù)據(jù)存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址,獨立訪問。與兩個存儲器相對應(yīng)的是系統(tǒng)中設(shè)置了程序總線和數(shù)據(jù)總線,從而使數(shù)據(jù)的吞吐率提高了一倍。由于程序和存儲器在兩個分開的空間中,因此取指和執(zhí)行能完全重疊。

流水線與哈佛結(jié)構(gòu)相關(guān),DSP芯片廣泛采用流水線以減少指令執(zhí)行的時間,從而增強了處理器的處理能力。處理器可以并行處理二到四條指令,每條指令處于流水線的不同階段。

專用的硬件乘法器

乘法速度越快,DSP處理器的性能越高。由于具有專用的應(yīng)用乘法器,乘法可在一個指令周期內(nèi)完成。

特殊的DSP指令DSP芯片是采用特殊的指令。

快速的指令周期哈佛結(jié)構(gòu)、流水線操作、專用的硬件乘法器、特殊的DSP指令再加上集成電路的優(yōu)化設(shè)計可使DSP芯片的指令周期在200ns以下。

TMS320F28335 嵌入式DSP內(nèi)部結(jié)構(gòu)框圖:

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

TMS320F28335 嵌入式DSP 來自網(wǎng)上 侵刪

SEED-DEC28335主要集成了150M系統(tǒng)時鐘的DSP、64K x 16 位的片外SRAM、16 路片內(nèi)12 位A/D、12 路PWM、2 路UART、1 路CAN、一路高速USB、片外4 通道12-位D/A 和串行EEPROM RTC 實時時鐘等外設(shè)。這樣使其能夠應(yīng)用在電機、電力等工業(yè)控制領(lǐng)域。

五、如何選擇DSP芯片

一般來說,我們選擇DSP芯片時,需要考慮如下因素:

TI系列推薦:

如果用于控制,主要是選擇TMS320C2000系列;

如果用于通信,主要是選擇TMS320C5000系列;

如果用于圖像處理,那就選擇6000系列。

具體指標:

1.運算速度。運算速度是芯片的一個最重要的性能指標,也是選擇芯片時所需要考慮的一個主要因素。運算速度可以用以下幾種性能指標來衡量:

(1) 指令周期。就是執(zhí)行一條指令所需要的時間,通常以納秒(ns)為單位。

(2) MAC時間。即一次乘法加上一次加法的時間。

(3) FFT執(zhí)行時間。即運行一個N點FFT程序所需的時間。

(4) MIPS。即每秒執(zhí)行百萬條指令。

(5) MOPS。即每秒執(zhí)行百萬次操作。

(6) MFLOPS。即每秒執(zhí)行百萬次浮點操作。

(7) BOPS。即每秒執(zhí)行十億次操作。

2.價格。根據(jù)實際應(yīng)用,確定一個價格適中的芯片。

3.硬件資源。

4.運算速度。

5.開發(fā)工具。

6.功耗。

另外還要考慮一些其它的因素,如封裝的形式等等。

DSP應(yīng)用系統(tǒng)的運算量是確定選用處理能力多大的DSP芯片的基礎(chǔ)。確定一個DSP系統(tǒng)的運算量以選擇DSP芯片的方法:

1. 按樣點處理

就是DSP算法對每一個輸入樣點循環(huán)一次。比如:設(shè)計一個采用LMS算法的256抽頭的自適應(yīng)FIR濾波器,假定每個抽頭的計算需要3個MAC周期,則256抽頭計算需要256*3=768個MAC周期。如果采樣頻率為8KHz,即樣點之間的間隔為125μs的時間,DSP芯片的MAC周期為200μs,則768個周期需要153.6μs的時間,顯然無法實時處理,需要選用速度更快的芯片。

2. 按幀處理

有些數(shù)字信號處理算法不是每個輸入樣點循環(huán)一次,而是每隔一定的時間間隔(通常稱為幀)循環(huán)一次。所以選擇DSP芯片應(yīng)該比較一幀內(nèi)DSP芯片的處理能力和DSP算法的運算量。假設(shè)DSP芯片的指令周期為P(ns),一幀的時間為⊿τ(ns),則該DSP芯片在一幀內(nèi)所提供的最大運算量為⊿τ/ P 條指令。

六、DSP系統(tǒng)

三大特色:強大數(shù)據(jù)處理能力、數(shù)字信號處理的實時性和高運行速度,最值得稱道。一般具有如下的一些主要特點:

(1) 在一個指令周期內(nèi)可完成一次乘法和一次加法。

(2) 程序和數(shù)據(jù)空間分開,可以同時訪問指令和數(shù)據(jù)。

(3) 片內(nèi)具有快速RAM,通常可通過獨立的數(shù)據(jù)總線在兩塊中同時訪問。

(4) 具有低開銷或無開銷循環(huán)及跳轉(zhuǎn)的硬件支持。

(5) 快速的中斷處理和硬件I/O支持。

(6) 具有在單周期內(nèi)操作的多個硬件地址產(chǎn)生器。

(7) 可以并行執(zhí)行多個操作。

(8) 支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。

與通用微處理器相比,DSP芯片的其他通用功能相對較弱些。

數(shù)字信號處理系統(tǒng)是以數(shù)字信號處理為基礎(chǔ),因此具有數(shù)字處理的全部特點:

(1) 接口方便。DSP系統(tǒng)與其它以現(xiàn)代數(shù)字技術(shù)為基礎(chǔ)的系統(tǒng)或設(shè)備都是相互兼容,這樣的系統(tǒng)接口以實現(xiàn)某種功能要比模擬系統(tǒng)與這些系統(tǒng)接口要容易的多。

(2) 編程方便。DSP系統(tǒng)種的可編程DSP芯片可使設(shè)計人員在開發(fā)過程中靈活方便地對軟件進行修改和升級。

(3) 穩(wěn)定性好。DSP系統(tǒng)以數(shù)字處理為基礎(chǔ),受環(huán)境溫度以及噪聲的影響較小,可靠性高。

(4) 精度高。16位數(shù)字系統(tǒng)可以達到的精度。

(5) 可重復(fù)性好。模擬系統(tǒng)的性能受元器件參數(shù)性能變化比較大,而數(shù)字系統(tǒng)基本上不受影響,因此數(shù)字系統(tǒng)便于測試,調(diào)試和大規(guī)模生產(chǎn)。

(6) 集成方便。DSP系統(tǒng)中的數(shù)字部件有高度的規(guī)范性,便于大規(guī)模集成。

目前廣泛應(yīng)用的是TMS320F28335芯片系列。

DSP芯片實例TMS320C542:

TMS320C542屬于TI公司C5000系列。C5000系列具有以下特點:

·改進的哈佛結(jié)構(gòu),包含一條程序總線,三條數(shù)據(jù)總線和四條地址總線

·高度并行的CPU和針對應(yīng)用優(yōu)化的硬件

·針對算法和高級語言優(yōu)化的指令集

·先進的IC技術(shù)使其既高性能又低功耗。

單片機、DSP、ARM、FPGA區(qū)別(單片機,dsp,fpga,arm哪個好)

C5000系列DSP微處理器內(nèi)部結(jié)構(gòu)功能框圖,如圖1所示。包括:40bit算數(shù)邏輯單元(ALU);2個40bit累加器A和B;17×17bit乘加單元、40bitMAC ,可作64級FIR運算而不必考慮溢出;計算、選擇、存儲單元(CCSU),特別適合Viterbi等算法;40bit桶型移位寄存器;片上雙存取RAM,每機器周期可存取兩次;片上單存取RAM,可同時訪問兩塊片上存儲區(qū);片上外圍接口,包括串口、定時器、PLL、HPI接口等。

TMS320C542自身特點如下:

·25ns單周期定點指令執(zhí)行時間,5V供電

·10K Words16bit 片上雙存取RAM

·64K Words程序,64K Words數(shù)據(jù),64K Words I/O存儲空間

·2K Words HPI接口,可通過此接口方便地與主設(shè)備進行信息交換,主設(shè)備也可通過此接口下載DSP程序

·一個自動緩沖的串口和一個TDM串口,且都可用作標準同步串口

此外,C5000系列DSP可使用JTAG接口進行調(diào)試,可完全控制DSP上的所有資源,使用方便可靠。

學(xué)習(xí)指導(dǎo)

一本非常好用的DSP教材:手把手教你學(xué)DSP。

這本書以TMS320X281x的開發(fā)為主線,介紹與DSP開發(fā)相關(guān)的知識:DSP開發(fā)環(huán)境的搭建、新工程的建立、CCS6.0的使用、CMD文件的編寫、硬件電路的設(shè)計、存儲器的映像、三級中斷系統(tǒng)以及TMS320X281X各個外設(shè)模塊的功能和使用。

每部分內(nèi)容都有應(yīng)用實例,并手把手地講解例程的編寫過程。所有代碼都標注有詳細的中文注釋,為讀者快速熟悉并掌握DSP的開發(fā)方法和技巧提供了方便。

基于CCS6.0,生活化語言,淺顯易懂,深入淺出,非常適合新手學(xué)習(xí)。

出版社: 北京航空航天大學(xué)出版社 出版時間:2019-02-01

第1章如何開始DSP的學(xué)習(xí)和開發(fā)
第2章TMS320X2812的結(jié)構(gòu)、資源及性能
第3章TMS320X281x的硬件設(shè)計
第4章創(chuàng)建一個新工程
第5章CCS的常用操作
第6章使用C語言操作DSP的寄存器
第7章存儲器的結(jié)構(gòu)、映像及CMD文件的編寫
第8章X281x的時鐘和系統(tǒng)控制
第9章通用輸入/輸出多路復(fù)用器GPIO
第10章CPU定時器
第11章X2812的中斷系統(tǒng)
第12章事件管理器EV
第13章模/數(shù)轉(zhuǎn)換器ADC
第14章串行通信接口SCI
第15章串行外設(shè)接口SPI
第16章增強型控制器局域網(wǎng)通信接口eCAN
第17章基于HDSPSuper2812的開發(fā)實例

B站上 手把手教你學(xué)DSP視頻教程DSP281X

參考

  1. ^如有侵犯您的權(quán)益,請聯(lián)系作者刪除。

已剪輯自: https://dongka.github.io/2018/11/17/cpu/arm體系架構(gòu)的發(fā)展/

ARM體系架構(gòu)的發(fā)展

本文將從以下幾點去展開介紹arm體系架構(gòu)的發(fā)展:

  1. 指令集架構(gòu)
  2. arm公司的發(fā)展歷史以及授權(quán)模式
  3. arm的體系架構(gòu)

arm公司的發(fā)展歷史

arm的發(fā)展歷程在此文章講的非常詳細,故不再贅述一文帶你了解ARM的發(fā)展歷程

arm授權(quán)模式

在傳統(tǒng)PC領(lǐng)域,半導(dǎo)體有兩種路子可以走,一種是Intel這種,從頭到尾一條龍,架構(gòu)和芯片設(shè)計,生產(chǎn)一律不靠任何人; 這樣做需要極其雄厚,全方位的實力做保障,得有錢,有人,有技術(shù),在半導(dǎo)體技術(shù)日益復(fù)雜的今天,能這么做屈指可數(shù);好處就是利潤率比較高,想賣多少錢就多少;當然技術(shù)上得做到領(lǐng)先甚至于壟斷的地位優(yōu)勢才比較明顯;

另外一種則無工廠模式(Fabless),NVIDIA,AMD,這類企業(yè)都是自己設(shè)計芯片,制造交給代工廠,比如臺積電,聯(lián)電,GlobalFoundries,三星電子。好處很明顯,負擔輕,但是在半導(dǎo)體這種工藝在功耗與性能中扮演重要角色的行業(yè),你設(shè)計出來的是否能設(shè)計出來,怎么設(shè)計出來,很大程度看代工廠的能耐;幸好這些代工廠也十分給力,不斷的逼近物理極限;使得AMD最近也能慢慢的趕上擠牙膏的Intel;

arm就不一樣了,它不制造,不銷售芯片,只是自己設(shè)計IP,包括指令集,微處理器,GPU,總線,然后誰要的話就買arm的授權(quán);授權(quán)模式分為此三種:

處理器授權(quán)

ARM設(shè)計好一顆CPU或者GPU,armv7架構(gòu)對應(yīng)的IP為Cortex-A5/A7/A9/A12/A15/A17這幾個核心架構(gòu),對應(yīng)armv8-A就有Cortext-A35/A53/A57/A72/A73;ARMv8.2A指令集:Cortext-A55/A75;然后授權(quán)賣給伙伴,買下它們后,只能按照圖紙實現(xiàn),能發(fā)揮的不多,如何實現(xiàn)就比較隨便,如配置哪些模塊,幾個核心,多少緩存,多高頻率,什么工藝,誰來代工等等;

如果想優(yōu)化,但是技術(shù)有限,那么可以買arm的處理器優(yōu)化包/物理IP包授權(quán)(POP)
如果只是想更快速搞出產(chǎn)品,那么更干脆了,arm已經(jīng)幫你制定好代工廠處理器類型和工藝了;
代表商家有聯(lián)發(fā)科,展訊,聯(lián)芯,全志,瑞芯微,炬力等;這些設(shè)計公司獲得的是軟核或者這點硬核授權(quán),通過購買的CPU核,與GPU核,以及通過一定的流程,集成出SOC;

購買處理器授權(quán)的本質(zhì)上就大同小異了,可以做出差異化的只能在一些IP上做出差異化;

架構(gòu)/指令授權(quán)

這種授權(quán)方式價格比較貴,為防止碎片化的情況出現(xiàn)還有可能處于技術(shù)上的保護,arm禁止對指令集進行修改或者添加,但其他公司是否確切遵守了,這個就不得而知了;總之這種授權(quán)需要具有非常強的技術(shù)實力,也不過15家,如我們熟知的高通,蘋果,三星,華為等公司;

除了版稅,那些購買了arm IP授權(quán)的,還需要為每一個芯片支付版稅;

在這里有些問題就應(yīng)該提出來思考了,為什么都是arm的指令集,蘋果的芯片卻可以吊打現(xiàn)在的Android廠商的芯片呢?評價CPU性能指標在以下幾個方面:

一:指令集寬度(ISSUE)6

二:亂序指令執(zhí)行緩沖區(qū)(Recorder Buffer)(192)

三:內(nèi)存加載延遲(Load Latency):4

四:分支預(yù)測錯誤代價(Misprediction Penalty):16(一般介于14~19)

不得不說,蘋果很早就開始布局CPU的設(shè)計之路,具有極強的芯片設(shè)計能力,在廠家都是基于arm的公版進行設(shè)計,蘋果就已經(jīng)通過購買arm指令集,然后進行自己的CPU設(shè)計,在14年的時候A7處理器,作為第一個ARM 64位CPU商用,而且將指令集寬度位6,作為對比arm目前的指令集為3;由于封閉式的開發(fā),不像高通,需要考慮各個廠家的需求和成本,蘋果有更高的溢價能力,可以用面積去換取性能與功耗,并根據(jù)自己的系統(tǒng)去做定制化;

指令集架構(gòu)(ISA)

CPU執(zhí)行計算任務(wù)時都需要遵從一定的規(guī)范,程序在被執(zhí)行時都需要先翻譯成CPU可以理解的語言。這種規(guī)范就是指令集**(ISA,Intruction Set Architecrure);**

例如以下的機器碼:1110 0001 1010 0000 0010 0000 0000 0001

比如有個CPU定位1110 0001就是ADD指令,1010 0000對應(yīng)的是存儲數(shù)據(jù)的寄存器R2;0010 0000對應(yīng)的寄存器R0;
0000 0001對應(yīng)是寄存器R1,故意思可以是ADD R2 R0 R1,將R0,R1的值加起來放到R2;指令集就是定義一套約定俗成的CPU運行規(guī)則,對于編程人員,面對的匯編指令;而對于CPU來說,就是怎么去理解這段二進制碼,不同的CPU對這段二進制代碼不同,故就有了不同的指令集架構(gòu);

指令集一般分為兩種:精簡指令集(RISC:reduced instruction set computer)和復(fù)雜指令集(CISC:Complex Instrution Set Computer),以洗衣機洗衣服為例,RISC架構(gòu)為,加水->漂洗->風(fēng)干;而復(fù)雜指令集則可以發(fā)出洗衣服的指令,從而讓洗衣機自動幫忙做這一整套的流程;CISC可以通過一條復(fù)雜的指令來完成許多事情,性能在處理復(fù)雜的任務(wù)時,會比RISC更為高效;但隨之而來的是面積和功耗的提升;基于2/8理論,程序大部分時間(80%)都是在做重復(fù)而簡單的事情;所以RISC架構(gòu)就應(yīng)運而生,更為精簡的指令,將任務(wù)更多的放在了編譯器這塊,通過復(fù)雜的指令轉(zhuǎn)化成簡單指令的組合,在一定程度上增加了代碼量,但使其大部分場合能比CISC取得更小的面積和功耗;

采用精簡指令集的微處理,常見為ARM,MIPS,Power Architecture(包括PowerPC,PowerXCell),SPARC,RISC-V等而采用CISC則為X86和AMD

至于arm為代表RISC架構(gòu)與以X86為代表的CISC之間的優(yōu)劣比較還有是否存在替代一說,筆者認為,不會,而且從目前的發(fā)展來看,已經(jīng)出現(xiàn)了你中有我,我中有你的局面;
更進一步的探討可以看下知乎上關(guān)于精簡指令集與負雜指令集的討論,我也很贊同其中一個答主的觀點,這已經(jīng)不是個技術(shù)問題了,而是一個商業(yè)的問題

總結(jié)完RISC和CISC之間的關(guān)系,再講講基于RISC陣營里面的ARM和最近比較火熱的RISC-V,arm大家都熟悉,而RISC-V又是個什么東西呢?

RISC-V是加州大學(xué)伯克利分校的開源指令集,由計算機架構(gòu)的宗師級任務(wù)David Patterson領(lǐng)銜打造,通過將核心指令集以及
關(guān)鍵IP開源,意圖改變半導(dǎo)體生態(tài);詳細的可以看這篇文檔;名家專欄丨一文看懂RISC-V

總結(jié)如下:RISC-V具有以下優(yōu)點:1.可模塊化配置的指令集。 2.支持可擴展的指令集 3.一套指令集支持所有架構(gòu),基本指令集僅40余條指令,以此為共用基礎(chǔ),加上其他常用模塊子集指令總指令集也僅幾十條 4.硬件設(shè)計和編譯器非常簡單

筆者認為,RISC-V目前作為一個像linux看齊的硬件開源組織,linux之所以能健康長足發(fā)展,在于社區(qū)成千上萬的內(nèi)核愛好者的不斷貢獻,使得linux能夠蓬勃發(fā)展;而硬件則不同,在這動輒上百萬的流片費的無數(shù)擺在硬件設(shè)計者面前的坎,是否會有公司或者團體愿意將自己用血與淚驗證的IP,貢獻到社區(qū),如果沒有做到這一點,即將面臨由于廠家擴展指令不同的碎片化問題解決,還有RISC-V后面的長足發(fā)展,將付之空談;這樣RISC-V架構(gòu)只能作為幾個大廠找到的低廉的替代arm方案的選擇,而無法真正做到普惠;

arm的體系架構(gòu)

時間 架構(gòu) 主要更新

1985

ARMv1

只有26位的尋值空間,沒有用于商業(yè)產(chǎn)品

1986

ARMv2

首顆量產(chǎn)的ARM處理器,包括32位乘法指令和協(xié)處理器指令

1990

ARMv3

具有片上高速緩存,MMU和寫緩沖,尋址空間增大到32位

1993

ARMv4

ARM7,ARM8,ARM9和Strong ARM采用這種架構(gòu)。增加了16 Thumb指令集

1998

ARMv5

ARM7(EJ),ARM9(E),ARM10(E)和Xscale采用這種了該架構(gòu),改進了ARM/Thumb狀態(tài)之間的切換效率,此外還引入DSP指令和支持JAVA

2001

ARMv6

ARM11,強化了圖形處理性能,通過追加有效進行多媒體處理的SIMD將語音及圖像的處理功能大大提高。此外ARM在這個系列中引入混合16位/32位的Thumb-2指令集

2004

ARMv7

Cortex-M3/4/7,Cortex-R4/5/6/7,Cortex-A8/9都是基于該架構(gòu),該架構(gòu)包括NEON技術(shù)擴展,可將DSP和媒體處理吞吐量高達400%,并提供改進的浮點支持以滿足下一代3D圖形和游戲以及傳統(tǒng)嵌入式控制應(yīng)用的需要

2007

ARMv6-M

專門為低成本,高性能的設(shè)備而設(shè)計,Cortex-M0/1即采用該架構(gòu)

2011

ARMv8

Cortex-A32/35/53/57/72/73采用此架構(gòu),第一款支持64位的處理器架構(gòu)

ARM架構(gòu)發(fā)展圖:

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-KLo8uaGM-1666278819947)(http://yoursite.com/2018/11/17/cpu/arm體系架構(gòu)的發(fā)展/arm_develop.png)]

arm體系的CPU工作模式:

1.用戶模式(usr):正常的程序執(zhí)行狀態(tài)
2.快速中斷模式(fiq):用于支持高速數(shù)據(jù)傳輸或者通道處理
3.中斷模式(irq):用于普通中斷處理
4.管理模式(svc):操作系統(tǒng)使用的保護模式
5.系統(tǒng)模式(sys):運行具有特權(quán)的操作系統(tǒng)的任務(wù);
6.數(shù)據(jù)訪問終止模式(abt):數(shù)據(jù)或指令與預(yù)取終止時進入該模式
7.未定義指令終止模式(und):未定義的指令執(zhí)行時進入該模式;

linux如何從用戶態(tài)進入內(nèi)核態(tài)
分為兩種:主動式和被動式、

1.主動式:就是linux用戶在(ARM在用戶模式下)工作,通過發(fā)起用戶態(tài)程序發(fā)起命令請求,ARM響應(yīng)進入特權(quán)模式進而Linux切入內(nèi)核態(tài),就是系統(tǒng)調(diào)用;系統(tǒng)調(diào)用可被堪稱一個內(nèi)核與用戶空間程序交互的接口;把用戶進程的請求傳達 給內(nèi)核,待內(nèi)核把請求處理完畢后再將處理結(jié)果送回給用戶空間;
系統(tǒng)調(diào)用的主要用途:

一:控制硬件-系統(tǒng)調(diào)用往往作為硬件資源和用戶空間的抽象接口,比如讀寫文件用到的write/read調(diào)用

二:設(shè)置系統(tǒng)狀態(tài)或讀取內(nèi)核數(shù)據(jù);

2.被動式:就是Linux在用戶態(tài)(ARM在用戶模式)工作,沒有主動發(fā)起請求,而被動地進入內(nèi)核態(tài),包括硬件中斷和程序異常;

參考資料:

arm匯編基礎(chǔ)教程

給開源架構(gòu)潑潑冷水

ARMv8-a

ARM介紹1:發(fā)展史
ARM介紹2:授權(quán)模式

ARMV8

從arm到三星,蘋果是如何走向自研芯片的

一樣是ARM架構(gòu),為何蘋果處理器效能就是壓下其他人
淺析arm的異常,中斷和arm工作模式的聯(lián)系


如何零基礎(chǔ)入門FPGA?這篇文章讓你吃透!

已剪輯自: https://www.eet-china.com/mp/a124380.html

1. 看代碼,建模型

只有在腦海中建立了一個個邏輯模型,理解FPGA內(nèi)部邏輯結(jié)構(gòu)實現(xiàn)的基礎(chǔ),才能明白為什么寫Verilog和寫C整體思路是不一樣的,才能理解順序執(zhí)行語言和并行執(zhí)行語言的設(shè)計方法上的差異。在看到一段簡單程序的時候應(yīng)該想到是什么樣的功能電路。

2. 用數(shù)學(xué)思維來簡化設(shè)計邏輯

學(xué)習(xí)FPGA不僅邏輯思維很重要,好的數(shù)學(xué)思維也能讓你的設(shè)計化繁為簡,所以啊,那些看見高數(shù)就頭疼的童鞋需要重視一下這門課哦。舉個簡單的例子,比如有兩個32bit的數(shù)據(jù)X[31:0]與Y[31:0]相乘。

當然,無論Altera還是Xilinx都有現(xiàn)成的乘法器IP核可以調(diào)用,這也是最簡單的方法,但是兩個32bit的乘法器將耗費大量的資源。那么有沒有節(jié)省資源,又不太復(fù)雜的方式來實現(xiàn)呢?我們可以稍做修改:

將X[31:0]拆成兩部分X1[15:0]和X2[15:0],令X1[15:0]=X[31:16],X2[15:0]=X[15:0],則X1左移16位后與X2相加可以得到X;同樣將Y[31:0]拆成兩部分Y1[15:0]和Y2[15:0],令 Y1[15:0]=Y[31:16],Y2[15:0]=Y[15:0],則Y1左移16位后與Y2相加可以得到Y(jié),則X與Y的相乘可以轉(zhuǎn)化為X1和X2 分別與Y1和Y2相乘,這樣一個32bit32bit的乘法運算轉(zhuǎn)換成了四個16bit16bit的乘法運算和三個32bit的加法運算。轉(zhuǎn)換后的占用資源將會減少很多,有興趣的童鞋,不妨綜合一下看看,看看兩者差多少。

3. 時鐘與觸發(fā)器的關(guān)系

“時鐘是時序電路的控制者”這句話太經(jīng)典了,可以說是FPGA設(shè)計的圣言。FPGA的設(shè)計主要是以時序電路為主,因為組合邏輯電路再怎么復(fù)雜也變不出太多花樣,理解起來也不沒太多困難。

但是時序電路就不同了,它的所有動作都是在時鐘一拍一拍的節(jié)奏下轉(zhuǎn)變觸發(fā),可以說時鐘就是整個電路的控制者,控制不好,電路功能就會混亂。

打個比方,時鐘就相當于人體的心臟,它每一次的跳動就是觸發(fā)一個 CLK,向身體的各個器官供血,維持著機體的正常運作,每一個器官體統(tǒng)正常工作少不了組織細胞的構(gòu)成,那么觸發(fā)器就可以比作基本單元組織細胞。

時序邏輯電路的時鐘是控制時序邏輯電路狀態(tài)轉(zhuǎn)換的“發(fā)動機”,沒有它時序邏輯電路就不能正常工作。

因為時序邏輯電路主要是利用觸發(fā)器存儲電路的狀態(tài),而觸發(fā)器狀態(tài)變換需要時鐘的上升或下降沿,由此可見時鐘在時序電路中的核心作用。

最后簡單說一下體會吧,歸結(jié)起來就是多實踐、多思考、多問。實踐出真知,看100遍別人的方案不如自己去實踐一下。實踐的動力一方面來自興趣,一方面來自壓力。有需求會容易形成壓力,也就是說最好能在實際的項目開發(fā)中鍛煉,而不是為了學(xué)習(xí)而學(xué)習(xí)。

02

為什么你會覺得FPGA難學(xué)?

不熟悉FPGA的內(nèi)部結(jié)構(gòu)

FPGA為什么是可以編程的?

恐怕很多初學(xué)者不知道,他們也不想知道。

因為他們覺得這是無關(guān)緊要的。他們潛意識的認為可編程嘛,肯定就是像寫軟件一樣啦。

軟件編程的思想根深蒂固,看到Verilog或者VHDL就像看到C語言或者其它軟件編程語言一樣。一條條的讀,一條條的分析。

拒絕去了解為什么FPGA是可以編程的,不去了解FPGA的內(nèi)部結(jié)構(gòu),要想學(xué)會FPGA 恐怕是天方夜譚。

那么FPGA為什么是可以“編程”的呢?首先來了解一下什么叫“程”。

啟示 “程”只不過是一堆具有一定含義的01編碼而已。

編程,其實就是編寫這些01編碼。只不過我們現(xiàn)在有了很多開發(fā)工具運算或者是其它操作。

所以軟件是一條一條的,通常都不是直接編寫這些01編碼,而是以高級語言的形式來編寫,最后由開發(fā)工具轉(zhuǎn)換為這種01編碼而已。

對于軟件編程而言,處理器會有一個專門的譯碼電路逐條把這些01編碼翻譯為各種控制信號,然后控制其內(nèi)部的電路完成一個個的讀,因為軟件的操作是一步一步完成的。

而FPGA的可編程,本質(zhì)也是依靠這些01編碼實現(xiàn)其功能的改變,但不同的是FPGA之所以可以完成不同的功能,不是依靠像軟件那樣將01編碼翻譯出來再去控制一個運算電路,F(xiàn)PGA里面沒有這些東西。

FPGA內(nèi)部主要三塊:可編程的邏輯單元、可編程的連線和可編程的IO模塊。

其基本結(jié)構(gòu)某種存儲器(SRAM、 FLASH等)制成的4輸入或6輸入1輸出地“真值表”加上一個D觸發(fā)器構(gòu)成。

任何一個4輸入1輸出組合邏輯電路,都有一張對應(yīng)的“真值表”,同樣的如果用這么一個存儲器制成的4輸入1輸出地“真值表”,只需要修改其“真值表”內(nèi)部值就可以等效出任意4輸入1輸出的組合邏輯,這些“真值表”內(nèi)部值就是那些01編碼。

如果要實現(xiàn)時序邏輯電路怎么辦?任何的時序邏輯都可以轉(zhuǎn)換為組合邏輯 D觸發(fā)器來完成。但這畢竟只實現(xiàn)了4輸入1輸出的邏輯電路而已,通常邏輯電路的規(guī)模那是相當?shù)拇蟆?/span>

3.1 可編程連線

那怎么辦呢?這個時候就需要用到可編程連線了。在這些連線上有很多用存儲器控制的鏈接點,通過改寫對應(yīng)存儲器的值就可以確定哪些線是連上的而哪些線是斷開的。這就可以把很多可編程邏輯單元組合起來形成大型的邏輯電路。

3.2 可編程的IO

任何芯片都必然有輸入引腳和輸出引腳。有可編程的IO可以任意的定義某個非專用引腳(FPGA中有專門的非用戶可使用的測試、下載用引腳)為輸入還是輸出,還可以對IO的電平標準進行設(shè)置。

總歸一句話,F(xiàn)PGA之所以可編程是因為可以通過特殊的01代碼制作成一張張 “真值表”,并將這些“真值表”組合起來以實現(xiàn)大規(guī)模的邏輯功能。

不了解FPGA內(nèi)部結(jié)構(gòu),就不能明白最終代碼如何變到FPGA里面去的,也就無法深入的了解如何能夠充分運用FPGA?,F(xiàn)在的FPGA,不單單是有前面講的那三塊,還有很多專用的硬件功能單元,如何利用好這些單元實現(xiàn)復(fù)雜的邏輯電路設(shè)計,是從菜鳥邁向高手的路上必須要克服的障礙。而這一切,還是必須先從了解FPGA內(nèi)部邏輯及其工作原理做起。

3.3 錯誤理解HDL語言,怎么看都看不出硬件結(jié)構(gòu)

HDL語言的英語全稱是:Hardware Deion Language,注意這個單詞Deion,而不是Design。老外為什么要用Deion這個詞而不是Design呢?因為HDL確實不是用用來設(shè)計硬件的,而僅僅是用來描述硬件的。

描述這個詞精確地反映了HDL語言的本質(zhì),HDL語言不過是已知硬件電路的文本表現(xiàn)形式而已,只是將以后的電路用文本的形式描述出來而已。而在編寫語言之前,硬件電路應(yīng)該已經(jīng)被設(shè)計出來了。語言只不過是將這種設(shè)計轉(zhuǎn)化為文字表達形式而已。

硬件設(shè)計也是有不同的抽象層次,每一個層次都需要設(shè)計。最高的抽象層次為算法級、然后依次是體系結(jié)構(gòu)級、寄存器傳輸級、門級、物理版圖級。

使用HDL的好處在于我們已經(jīng)設(shè)計好了一個寄存器傳輸級的電路,那么用HDL描述以后轉(zhuǎn)化為文本的形式,剩下的向更低層次的轉(zhuǎn)換就可以讓EDA工具去做了,這就大大的降低了工作量。這就是可綜合的概念,也就是說在對這一抽象層次上硬件單元進行描述可以被EDA工具理解并轉(zhuǎn)化為底層的門級電路或其他結(jié)構(gòu)的電路。

在FPGA設(shè)計中,就是在將這以抽象層級的意見描述成HDL語言,就可以通過FPGA開發(fā)軟件轉(zhuǎn)化為上一點中所述的FPGA內(nèi)部邏輯功能實現(xiàn)形式。

HDL也可以描述更高的抽象層級如算法級或者是體系結(jié)構(gòu)級,但目前受限于EDA軟件的發(fā)展,EDA軟件還無法理解這么高的抽象層次,所以HDL描述這樣抽象層級是無法被轉(zhuǎn)化為較低的抽象層級的,這也就是所謂的不可綜合。

所以在閱讀或編寫HDL語言,尤其是可綜合的HDL,不應(yīng)該看到的是語言本身,而是要看到語言背后所對應(yīng)的硬件電路結(jié)構(gòu)。

3.4 FPGA本身不算什么,一切皆在FPGA之外

FPGA是給誰用的?很多學(xué)校是為給學(xué)微電子專業(yè)或者集成電路設(shè)計專業(yè)的學(xué)生用的,其實這不過是很多學(xué)校受資金限制,買不起專業(yè)的集成電路設(shè)計工具而用FPGA工具替代而已。其實FPGA是給設(shè)計電子系統(tǒng)的工程師使用的。

這些工程師通常是使用已有的芯片搭配在一起完成一個電子設(shè)備,如基站、機頂盒、視頻監(jiān)控設(shè)備等。當現(xiàn)有芯片無法滿足系統(tǒng)的需求時,就需要用FPGA來快速的定義一個能用的芯片。

前面說了,F(xiàn)PGA里面無法就是一些“真值表”、觸發(fā)器、各種連線以及一些硬件資源,電子系統(tǒng)工程師使用FPGA進行設(shè)計時無非就是考慮如何將這些以后資源組合起來實現(xiàn)一定的邏輯功能而已,而不必像IC設(shè)計工程師那樣一直要關(guān)注到最后芯片是不是能夠被制造出來。

本質(zhì)上和利用現(xiàn)有芯片組合成不同的電子系統(tǒng)沒有區(qū)別,只是需要關(guān)注更底層的資源而已。

要想把FPGA用起來還是簡單的,因為無非就是那些資源,在理解了前面兩點再搞個實驗板,跑跑實驗,做點簡單的東西是可以的。

而真正要把FPGA用好,那光懂點FPGA知識就遠遠不夠了。因為最終要讓FPGA里面的資源如何組合,實現(xiàn)何種功能才能滿足系統(tǒng)的需要,那就需要懂得更多更廣泛的知識。

3.5 數(shù)字邏輯知識是根本

無論是FPGA的哪個方向,都離不開數(shù)字邏輯知識的支撐。FPGA說白了是一種實現(xiàn)數(shù)字邏輯的方式而已。如果連最基本的數(shù)字邏輯的知識都有問題,學(xué)習(xí)FPGA的愿望只是空中樓閣而已。數(shù)字邏輯是任何電子電氣類專業(yè)的專業(yè)基礎(chǔ)知識,也是必須要學(xué)好的一門課。

如果不能將數(shù)字邏輯知識爛熟于心,養(yǎng)成良好的設(shè)計習(xí)慣,學(xué)FPGA到最后仍然是霧里看花水中望月,始終是一場空的。

以上幾條只是我目前總結(jié)菜鳥們在學(xué)習(xí)FPGA時所最容易跑偏的地方,F(xiàn)PGA的學(xué)習(xí)其實就像學(xué)習(xí)圍棋一樣,學(xué)會如何在棋盤上落子很容易,成為一位高手卻是難上加難。要真成為李昌鎬那樣的神一般的選手,除了靠刻苦專研,恐怕還確實得要一點天賦。

4.1 入門首先要掌握HDL(HDL=verilog VHDL)

第一句話是:還沒學(xué)數(shù)電的先學(xué)數(shù)電。然后你可以選擇verilog或者VHDL,有C語言基礎(chǔ)的,建議選擇VHDL。因為verilog太像C了,很容易混淆,最后你會發(fā)現(xiàn),你花了大量時間去區(qū)分這兩種語言,而不是在學(xué)習(xí)如何使用它。當然,你思維能轉(zhuǎn)得過來,也可以選verilog,畢竟在國內(nèi)verilog用得比較多。

接下來,首先找本實例抄代碼。

抄代碼的意義在于熟悉語法規(guī)則和編譯器(這里的編譯器是硅編譯器又叫綜合器,常用的編譯器有:

Quartus、ISE、Vivado、Design Compiler 、Synopsys的VCS、iverilog、Lattice的Diamond、Microsemi/Actel的Libero、Synplify pro),然后再模仿著寫,最后不看書也能寫出來。

編譯完代碼,就打開RTL圖,看一下綜合出來是什么樣的電路。

HDL是硬件描述語言,突出硬件這一特點,所以要用數(shù)電的思維去思考HDL,而不是用C語言或者其它高級語言,如果不能理解這句話的,可以看《什么是硬件以及什么是軟件》。

在這一階段,推薦的教材是《Verilog傳奇》、《Verilog HDL高級數(shù)字設(shè)計》或者是《用于邏輯綜合的VHDL》。不看書也能寫出個三段式狀態(tài)機就可以進入下一階段了。

此外,你手上必須準備Verilog或者VHDL的官方文檔,《verilog_IEEE官方標準手冊-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些語法問題的時候能查一下。

4.2 獨立完成中小規(guī)模的數(shù)字電路設(shè)計

現(xiàn)在,你可以設(shè)計一些數(shù)字電路了,像交通燈、電子琴、DDS等等,推薦的教材是夏老《Verilog 數(shù)字系統(tǒng)設(shè)計教程》(第三版)。在這一階段,你要做到的是:給你一個指標要求或者時序圖,你能用HDL設(shè)計電路去實現(xiàn)它。這里你需要一塊開發(fā)板,可以選Altera的cyclone IV系列,或者Xilinx的Spantan 6。

還沒掌握HDL之前千萬不要買開發(fā)板,因為你買回來也沒用。這里你沒必要每次編譯通過就下載代碼,咱們用modelsim仿真(此外還有QuestaSim、NC verilog、Diamond的Active-HDL、VCS、Debussy/Verdi等仿真工具),如果仿真都不能通過那就不用下載了,肯定不行的。

在這里先掌握簡單的testbench就可以了。推薦的教材是《WRITING TESTBENCHES Functional Verification of HDL Models》。

4.3 掌握設(shè)計方法和設(shè)計原則

你可能發(fā)現(xiàn)你綜合出來的電路盡管沒錯,但有很多警告。這個時候,你得學(xué)會同步設(shè)計原則、優(yōu)化電路,是速度優(yōu)先還是面積優(yōu)先,時鐘樹應(yīng)該怎樣設(shè)計,怎樣同步兩個異頻時鐘等等。

推薦的教材是《FPGA權(quán)威指南》、《IP核芯志-數(shù)字邏輯設(shè)計思想》、《Altera FPGA/CPLD設(shè)計》第二版的基礎(chǔ)篇和高級篇兩本。學(xué)會加快編譯速度(增量式編譯、LogicLock),靜態(tài)時序分析(timequest),嵌入式邏輯分析儀(signaltap)就算是通關(guān)了。如果有不懂的地方可以暫時跳過,因為這部分還需要足量的實踐,才能有較深刻的理解。

4.4 學(xué)會提高開發(fā)效率

因為Quartus和ISE的編輯器功能太弱,影響了開發(fā)效率。所以建議使用Sublime text編輯器中代碼片段的功能,以減少重復(fù)性勞動。Modelsim也是常用的仿真工具,學(xué)會TCL/TK以編寫適合自己的DO文件,使得仿真變得自動化,推薦的教材是《TCL/TK入門經(jīng)典》。

你可能會手動備份代碼,但是專業(yè)人士都是用版本控制器的,所以,為了提高工作效率,必須掌握GIT。

文件比較器Beyond Compare也是個比較常用的工具。此外,你也可以使用System Verilog來替代testbench,這樣效率會更高一些。如果你是做IC驗證的,就必須掌握System Verilog和驗證方法學(xué)(UVM)。推薦的教材是《Writing Testbenches using SystemVerilog》、《The UVM Primer》、《System Verilog1800-2012語法手冊》。

掌握了TCL/TK之后,可以學(xué)習(xí)虛擬Jtag(ISE也有類似的工具)制作屬于自己的調(diào)試工具,此外,有時間的話,最好再學(xué)個python。腳本,意味著一勞永逸。

4.5 增強理論基礎(chǔ)

這個時候,你已經(jīng)會使用FPGA了,但是還有很多事情做不了(比如,F(xiàn)IR濾波器、PID算法、OFDM等),因為理論沒學(xué)好。我大概地分幾個方向供大家參考,后面跟的是要掌握的理論課。

  • 信號處理 —— 信號與系統(tǒng)、數(shù)字信號處理、數(shù)字圖像處理、現(xiàn)代數(shù)字信號處理、盲信號處理、自適應(yīng)濾波器原理、雷達信號處理
  • 接口應(yīng)用 —— 如:UART、SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP/IP、SPI4.2(10G以太網(wǎng)接口)、SATA、光纖、DisplayPort
  • 無線通信 —— 信號與系統(tǒng)、數(shù)字信號處理、通信原理、移動通信基礎(chǔ)、隨機過程、信息論與編碼
  • CPU設(shè)計 —— 計算機組成原理、單片機、計算機體系結(jié)構(gòu)、編譯原理
  • 儀器儀表 —— 模擬電子技術(shù)、高頻電子線路、電子測量技術(shù)、智能儀器原理及應(yīng)用
  • 控制系統(tǒng) —— 自動控制原理、現(xiàn)代控制理論、過程控制工程、模糊控制器理論與應(yīng)用
  • 壓縮、編碼、加密 —— 數(shù)論、抽象代數(shù)、現(xiàn)代編碼技術(shù)、信息論與編碼、數(shù)據(jù)壓縮導(dǎo)論、應(yīng)用密碼學(xué)、音頻信息處理技術(shù)、數(shù)字視頻編碼技術(shù)原理

現(xiàn)在你發(fā)現(xiàn),原來FPGA會涉及到那么多知識,你可以選一個感興趣的方向,但是工作中很有可能用到其中幾個方向的知識,所以理論還是學(xué)得越多越好。如果你要更上一層,數(shù)學(xué)和英語是不可避免的。

4.6 學(xué)會使用MATLAB仿真

設(shè)計FPGA算法的時候,多多少少都會用到MATLAB,比如CRC的系數(shù)矩陣、數(shù)字濾波器系數(shù)、各種表格和文本處理等。

此外,MATLAB還能用于調(diào)試HDL(用MATLAB的計算結(jié)果跟用HDL算出來的一步步對照,可以知道哪里出問題)。推薦的教材是《MATLAB寶典》和杜勇的《數(shù)字濾波器的MATLAB與FPGA實現(xiàn)》。

4.7 圖像處理

Photoshop

花一、兩周的時間學(xué)習(xí)PS,對圖像處理有個大概的了解,知道各種圖片格式、直方圖、色相、通道、濾鏡、拼接等基本概念,并能使用它。這部分是0基礎(chǔ),目的讓大家對圖像處理有個感性的認識,而不是一上來就各種各樣的公式推導(dǎo)。推薦《Photoshop CS6完全自學(xué)教程》。

基于MATLAB或OpenCV的圖像處理

有C/C 基礎(chǔ)的可以學(xué)習(xí)OpenCV,否則的話,建議學(xué)MATLAB。這個階段下,只要學(xué)會簡單的調(diào)用函數(shù)即可,暫時不用深究實現(xiàn)的細節(jié)。推薦《數(shù)字圖像處理matlab版》、《學(xué)習(xí)OpenCV》。

圖像處理的基礎(chǔ)理論

這部分的理論是需要高數(shù)、復(fù)變、線性代數(shù)、信號與系統(tǒng)、數(shù)字信號處理等基礎(chǔ),基礎(chǔ)不好的話,建議先補補基礎(chǔ)再來??床欢睦碚撘部梢詴簳r先放下,或許學(xué)到后面就自然而然地開竅了。推薦《數(shù)字圖像處理》。

基于FPGA的圖像處理

把前面學(xué)到的理論運用到FPGA上面,如果這時你有前面第七個階段的水平,你將輕松地獨立完成圖像算法設(shè)計(圖像處理是離不開接口的,上面第五個階段有講)。推薦《基于FPGA的嵌入式圖像處理系統(tǒng)設(shè)計》、《基于FPGA的數(shù)字圖像處理原理及應(yīng)用》。

進一步鉆研數(shù)學(xué)。要在算法上更上一層,必然需要更多的數(shù)學(xué),所以這里建議學(xué)習(xí)實分析、泛涵分析、小波分析等。

5.1 為什么不推薦學(xué)習(xí)MicroBlaze等軟核?

性價比不高,一般的軟核性能大概跟Cortex M3或M4差不多,用FPGA那么貴的東西去做一個性能一般的CPU,在工程上是非常不劃算的。不如另外加一塊M3。

加上軟核,可能會影響到其它的邏輯的功能。這是在資源并不十分充足的情況下,再加上軟核,導(dǎo)致布局布線變得相當困難。軟核不開源,出現(xiàn)Bug的時候,不容易調(diào)試。工程上很少使用,極有可能派不上用場。

5.2 為什么不推薦0基礎(chǔ)學(xué)習(xí)ZYNQ或SOC?

入門應(yīng)該學(xué)習(xí)盡量簡單的東西,要么專心學(xué)習(xí)ARM,要么專心學(xué)習(xí)FPGA。這樣更容易有成就感,增強信心。

ZYNQ和SOC的應(yīng)用領(lǐng)域并不廣,還有很多人沒聽過這種東西,導(dǎo)致求職的不利。開發(fā)工具編譯時間長,浪費較多時間。絕大多數(shù)工作,都只是負責(zé)一方面,也就是說另一方面,很有可能派不上用場。

5.3 為什么已經(jīng)存在那么多IP核,仍需寫HDL?

問這種問題的,一般是學(xué)生,他們沒有做過產(chǎn)品,沒有遇到過工程上的問題。IP核并非萬能,不能滿足所有需求。盡量少用閉源IP核,一旦出問題,這種黑匣子很可能讓產(chǎn)品難產(chǎn)。

深入理解底一層次,可以更好地使用高一層次。該法則可以適用于所有編程語言。

-END-

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。