0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

了解一些基礎(chǔ)的、用來處理數(shù)據(jù)的集成電路芯片

M8kW_icbank ? 2018-02-07 12:52 ? 次閱讀

目前世界上有兩種文明,一種是人類社會(huì)組成的的碳基文明,一種是各種芯片組成的硅基文明——因?yàn)閹缀跛械男酒际且詥尉Ч铻樵现谱鞯?,芯片系統(tǒng)的總數(shù)比人類的數(shù)量還多出數(shù)十上百倍。芯片大家族里面也分各種不同類型的芯片,從古老的用電子管堆出來的成噸的邏輯門到現(xiàn)在的超級數(shù)據(jù)中心,電子技術(shù)的發(fā)展走過了一代又一代,到了今天,各種芯片更是百花齊放,芯片廠商百家爭鳴。

可是,這么多芯片,按照功能分類,有專門用于計(jì)算的、有專門用于控制的、有專門用于存儲(chǔ)的……按照集成電路規(guī)模分,有超大規(guī)模,大規(guī)模,和古老的中規(guī)模、小規(guī)模。而具體到了類型,又有CPU,SoC,DSP……有這么多的芯片,真的區(qū)分清除也是要花上一番功夫的,這篇文章就可以帶領(lǐng)大家了解一些基礎(chǔ)的、用來處理數(shù)據(jù)的集成電路芯片。

在這些專門用于處理數(shù)據(jù)的芯片中,最常用的就是由微處理器構(gòu)成的微處理器系統(tǒng),小到一塊單片機(jī),大到數(shù)據(jù)中心的幾十路幾十核地表最強(qiáng)處理器,都是由簡單的微處理器系統(tǒng)發(fā)展而來,微處理器是應(yīng)用最廣泛的芯片。首先了解微處理器及微處理器系統(tǒng),對接下來了解各種芯片及控制系統(tǒng)的很有幫助。

微處理器系統(tǒng)

微處理器系統(tǒng),囊括了各種類型的計(jì)算機(jī),微控制器/單片機(jī)。世界上的微處理器系統(tǒng)的總數(shù)比人類總數(shù)還多得多。它的基本工作原理是用程序控制系統(tǒng)的行為。

微處理器系統(tǒng)的基本操作過程是中央處理器(Central Processing Unit, CPU)不斷地從存儲(chǔ)器取指并執(zhí)行,實(shí)現(xiàn)對系統(tǒng)的全面管理。

一、CPU結(jié)構(gòu)和功能CPU的結(jié)構(gòu):

▲圖:CPU的結(jié)構(gòu)

1) 控制器:完成指令的讀入、寄存、譯碼和執(zhí)行。

2) 寄存器:暫存用于尋址和計(jì)算過程的產(chǎn)生的地址和數(shù)據(jù)。

3) I/O控制邏輯:負(fù)責(zé)CPU中與輸入/輸出操作有關(guān)的邏輯。

4) 算數(shù)邏輯運(yùn)算單元(Arithmetic & Logic Unit, ALU):運(yùn)算器核心,負(fù)責(zé)進(jìn)行算術(shù)運(yùn)算、邏輯運(yùn)算和移位操作,用來進(jìn)行數(shù)值計(jì)算和產(chǎn)生存儲(chǔ)器訪問地址。

CPU的功能:

1) 與存儲(chǔ)器之間交換信息。

2) 和I/O設(shè)備之間交換信息。

3) 為了使系統(tǒng)正常工作而接收和輸出必要的信號,如復(fù)位信號、電源、輸入時(shí)鐘脈沖等。

二、微處理器系統(tǒng)的結(jié)構(gòu)

▲圖:微處理器系統(tǒng)的結(jié)構(gòu)

1) CPU的外部特征就是數(shù)量有限的輸入輸出引腳。

2) 數(shù)據(jù)總線:用于CPU和存儲(chǔ)器或I/O接口之間傳送數(shù)據(jù),雙向通信;數(shù)據(jù)總線的條數(shù)決定了CPU和存儲(chǔ)器或I/O設(shè)備一次最多能交換數(shù)據(jù)的位數(shù),是微處理器的位數(shù)的判據(jù),例如:Intel 386DX、ARM Cortex-M3是32位微處理器;Intel采用了IA-64架構(gòu)的處理器、PowerPC 970是64位處理器;類似地,還有更加古老的8位、16位處理器等。

3) 地址總線:CPU通過地址總線輸出地址碼用以選擇某一存儲(chǔ)單元或某一成為I/O端口的寄存器,單向通信;地址總線的條數(shù)決定了地址碼的位數(shù),進(jìn)而決定了存儲(chǔ)空間的大小,例如:地址總線寬度(條數(shù))為8,則可以標(biāo)記2^8 = 256個(gè)存儲(chǔ)單元,若每個(gè)存儲(chǔ)單元的字長為8 bit,則最大可以接入系統(tǒng)的存儲(chǔ)空間為256kB。

4) 控制總線:用來傳送自CPU發(fā)出的控制信息或外設(shè)送到CPU的狀態(tài)信息,雙向通信;

微處理器系統(tǒng)的程序設(shè)計(jì)語言:程序設(shè)計(jì)語言(Programming Language),又稱為編程語言,是用來定義計(jì)算機(jī)程序的,通過代碼向處理機(jī)發(fā)出指令。編程語言讓開發(fā)者能夠準(zhǔn)確地提供計(jì)算機(jī)所使用的數(shù)據(jù),并精確地控制在不同情況下所應(yīng)當(dāng)采取的行動(dòng)。最早的編程語言是在計(jì)算機(jī)發(fā)明之后產(chǎn)生的,當(dāng)時(shí)是用來控制提花織布機(jī)及自動(dòng)演奏鋼琴的動(dòng)作。在電腦領(lǐng)域已發(fā)明了上千不同的編程語言,而且每年仍有新的編程語言誕生。很多編程語言需要用指令方式說明計(jì)算的程序,而有些編程語言則屬于聲明式編程,說明需要的結(jié)果,而不說明如何計(jì)算。

機(jī)器語言:機(jī)器語言的每條語句即是處理器可以直接執(zhí)行的一條指令,這些指令是以二進(jìn)制0、1序列的形式表示,對應(yīng)數(shù)字集成電路的高低電平。不同的處理器指令的機(jī)器代碼各不相同,完成的具體功能也將不相同,按著一種計(jì)算機(jī)的機(jī)器指令編寫的程序,不能在另一種計(jì)算機(jī)上執(zhí)行。

示例:(僅作為示例,不代表真實(shí)硬件的機(jī)器代碼)

指令的機(jī)器代碼:

0000’0000 STORE

0000’0001 LOAD

地址的機(jī)器代碼:

0000’0000 寄存器R0

0000’0001 寄存器R1

優(yōu)點(diǎn):功能和代碼一一對應(yīng),CPU可以直接執(zhí)行,效率最高。

缺點(diǎn):只有二進(jìn)制0、1序列,枯燥,難以辨識。

匯編語言:用簡潔的英文字母、符號串來替代一個(gè)特定的機(jī)器語言指令——二進(jìn)制0、1序列:用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標(biāo)號(Label)代替地址碼。匯編語言與機(jī)器語言一一對應(yīng),所以和機(jī)器語言一樣對計(jì)算機(jī)硬件的依賴性很大。

示例:加法運(yùn)算(分號表示接注釋)

MOV R1,? R3;

將寄存器R3的值賦予R1

LDR R2, [R4]

;將寄存器R4的值代表的地址對應(yīng)的存儲(chǔ)空間的值賦予R2

ADCS R0, R1, R2

;將寄存器R1、R2與之前的進(jìn)位值相加且進(jìn)位,存儲(chǔ)到寄存器R0

優(yōu)點(diǎn):匯編語句和機(jī)器語言一一對應(yīng),助記符與標(biāo)號往往與實(shí)際意義相關(guān),相比于機(jī)器語言,更加直觀,容易理解,執(zhí)行效率上類似。

缺點(diǎn):不同的處理器指令集不同,移植性不好;即使完成簡單的數(shù)據(jù)處理(如累加,簡單排序等)所需的代碼體積很大,處理實(shí)際問題所需的工作量夸張,成本高。

高級語言:使用接近于數(shù)學(xué)語言或人類語言的表達(dá)描述程序。

特點(diǎn):相比于面向機(jī)器開發(fā)的機(jī)器語言和匯編語言,高級語言擁有較高的可讀性,并且代碼量大大減少;高級語言通常遠(yuǎn)離對硬件的直接操作,安全性較高,也有部分高級語言可以使用調(diào)用匯編語言的接口操控硬件;高級語言有很多成熟、易于使用、可移植的數(shù)據(jù)結(jié)構(gòu)與算法,使開發(fā)流程大大簡化,節(jié)省開發(fā)成本,易于維護(hù);發(fā)展迅速,社區(qū)完備,可以很方便地求助,解決遇到的各種問題;已經(jīng)有很多各具特色、用以解決不同領(lǐng)域問題且發(fā)展相當(dāng)完備的高級語言供開發(fā)者選用,如:適合初學(xué)者了解編程思想的Basic;效率頗高,接近于硬件操控,適合系統(tǒng)、硬件驅(qū)動(dòng)編程與嵌入式開發(fā)的C/C++;跨平臺、可移植特性優(yōu)良的Java;搭配Visual Studio可以快速開發(fā)項(xiàng)目的C#.NET;適合于數(shù)據(jù)分析、人工智能,越來越被青睞的Python;Microsoft公司為未來的量子計(jì)算而開發(fā)的Q#,等等。諸如MATLAB、HTML、JavaScript這樣的用以在不同領(lǐng)域大顯身手的語言亦可以稱之為高級語言。

示例:加法運(yùn)算

int a = 1, b = 2, c;

c = a + b;

優(yōu)點(diǎn):不依賴于硬件,移植性好;不用場合選用適合的語言,開發(fā)效率高。

缺點(diǎn):不直接使用硬件,需要編譯-鏈接執(zhí)行或解釋執(zhí)行,沒有利用到具體硬件的特點(diǎn),效率相比于機(jī)器語言和匯編語言不高;先天的特點(diǎn)決定了高級語言在底層的設(shè)計(jì)中無法完全取代機(jī)器語言和匯編語言。

可以看出,微處理器系統(tǒng)的核心部件是CPU,使用微處理器系統(tǒng)控制外部的設(shè)備工作的實(shí)質(zhì)就是使用編寫軟件程序的手段來控制外部設(shè)備。由于CPU已經(jīng)是一個(gè)完整的、封裝好的部件,系統(tǒng)的設(shè)計(jì)人員只能通過編寫軟件,再經(jīng)由編譯器或解釋器翻譯為機(jī)器能夠理解的代碼來執(zhí)行,CPU并沒有專門的硬件電路來實(shí)現(xiàn)完全地控制外部設(shè)備的運(yùn)行,這種實(shí)現(xiàn)方式是軟件實(shí)現(xiàn),是一種通用的實(shí)現(xiàn),控制信號從軟件到硬件要經(jīng)過若干次轉(zhuǎn)化,但有的時(shí)候,工程和設(shè)計(jì)領(lǐng)域往往需要高速高性能的芯片來實(shí)現(xiàn)控制與計(jì)算,這時(shí)候就需要更加強(qiáng)大的CPU或?qū)讉€(gè)CPU用一些技術(shù)并行起來協(xié)同工作,成本就會(huì)增加。這時(shí)候,可以不妨試試設(shè)計(jì)專門的硬件來滿足工作的需求。

三、專用集成電路

專用的集成電路(Application Specific Integrated Circuit, ASIC)是一種為專門目的而設(shè)計(jì)的集成電路。是指應(yīng)特定用戶要求和特定電子系統(tǒng)的需要而設(shè)計(jì)、制造的集成電路。ASIC的特點(diǎn)是面向特定用戶的需求,ASIC在批量生產(chǎn)時(shí)與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強(qiáng)、成本降低等優(yōu)點(diǎn)。

ASIC分為全定制和半定制。全定制設(shè)計(jì)需要設(shè)計(jì)者完成所有電路的設(shè)計(jì),包括芯片設(shè)計(jì)的所有流程,因此需要大量人力物力,靈活性好但開發(fā)效率低下。如果設(shè)計(jì)較為理想,全定制能夠比半定制的ASIC芯片運(yùn)行速度更快。半定制ASIC使用準(zhǔn)邏輯單元(Standard Cell),設(shè)計(jì)時(shí)可以從標(biāo)準(zhǔn)邏輯單元庫中選擇SSI(小規(guī)模集成電路,如門電路)、MSI(中規(guī)模集成電路,如加法器、比較器等)、數(shù)據(jù)通路(如ALU、存儲(chǔ)器、總線等)、存儲(chǔ)器甚至系統(tǒng)級模塊(如乘法器、微控制器等)和IP核,這些邏輯單元已經(jīng)布局完畢,而且設(shè)計(jì)得較為可靠,設(shè)計(jì)者可以較方便地完成系統(tǒng)設(shè)計(jì)。

當(dāng)今ASIC的設(shè)計(jì)方向已經(jīng)越來越多地使用可編程邏輯器件來構(gòu)造,開發(fā)門檻和難度不斷降低,流程不斷簡化,成本不斷下降,業(yè)務(wù)也開始變得豐富且多元化。目前ASIC已經(jīng)走向了深度學(xué)習(xí)、人工智能、第五代移動(dòng)通信技術(shù)5G)等高新技術(shù)領(lǐng)域,在可編程邏輯器件兩大巨頭Xilinx和Altera的推動(dòng)下,可以預(yù)見未來的ASIC設(shè)計(jì)將是可編程邏輯器件(尤其是現(xiàn)場可編程門陣列,FPGA)的天下。

四、可編程邏輯器件

可編程邏輯器件(Programmable Logic Device, PLD)是一種通用集成電路,它是ASIC的一個(gè)子集,邏輯功能可以按照用戶對器件編程來確定。一般的PLD的集成度很高,足以滿足設(shè)計(jì)一般的數(shù)字系統(tǒng)的需要。這樣就可以由設(shè)計(jì)人員自行編程而把一個(gè)數(shù)字系統(tǒng)“集成”在一片PLD上,而不必去請芯片制造廠商設(shè)計(jì)和制作ASIC芯片了,因?yàn)槿绻酒枨罅坎淮螅?a target="_blank">設(shè)計(jì)制造ASIC的單片成本是很高的。

PLD與一般數(shù)字芯片不同的是:PLD內(nèi)部的數(shù)字電路可以在出廠后才規(guī)劃決定,甚至可以無限制改變,而一般數(shù)字芯片在出廠前就已經(jīng)決定其內(nèi)部電路,無法在出廠后再次改變,事實(shí)上一般的模擬芯片、通信芯片、微控制器也都一樣,出廠后就無法再對其內(nèi)部電路進(jìn)行更改。最近鬧得沸沸揚(yáng)揚(yáng)的Intel公司的芯片漏洞事件,就是因?yàn)镃PU的內(nèi)部電路已經(jīng)無法更改,所以只能設(shè)計(jì)新的CPU芯片來解決,或是損失一些性能用軟件修補(bǔ)的方法來彌補(bǔ)。

五、可編程邏輯器件的發(fā)展歷程

最早的可編程邏輯器件(PLD)是1970年制成的可編程只讀存儲(chǔ)器(PROM),它由固定的與陣列和可編程的或陣列組成。PROM采用熔絲技術(shù),只能寫一次,不能擦除和重寫。隨著技術(shù)的發(fā)展,此后又出現(xiàn)了紫外線可擦除只讀存儲(chǔ)器(UVEPROM)和電可擦除只讀存儲(chǔ)器(EEPROM)。由于其價(jià)格便宜、速度低、易于編程,適合于存儲(chǔ)函數(shù)和數(shù)據(jù)表格。

可編程邏輯陣列(PLA)于20世紀(jì)70年代中期出現(xiàn),它是由可編程的與陣列和可編程的或陣列組成,但由于器件的價(jià)格比較貴、編程復(fù)雜、資源利用率低,因而沒有得到廣泛應(yīng)用。

可編程陣列邏輯(PAL)是1977年美國MMI公司率先推出的,它采用熔絲編程方式,由可編程的與陣列和固定的或陣列組成,采用雙極性工藝制造,器件的工作速度很高。由于它的設(shè)計(jì)很靈活,輸出結(jié)構(gòu)種類很多,因而成為第一個(gè)得到普遍應(yīng)用的可編程邏輯器件

通用陣列邏輯(GAL)是1985年Lattice公司最先發(fā)明的可電擦寫、可重復(fù)編程、可設(shè)置加密位的PLD。GAL在PAL的基礎(chǔ)上,采用了輸出邏輯宏單元形式(EECMOS)工藝結(jié)構(gòu)。在實(shí)際應(yīng)用中,GAL對PAL仿真具有百分之百的兼容性,所以GAL幾乎完全代替了PAL,并可以取代大部分標(biāo)準(zhǔn)SSI、MSI集成芯片,因而獲得廣泛應(yīng)用。

可擦除可編程邏輯器件(EPLD)是20世紀(jì)80年代中期Altera公司推出的基于UVEPROM和CMOS技術(shù)的PLD,后來發(fā)展到采用EECMOS工藝制作的PLD,EPLD的基本邏輯單元是宏單元,宏單元是由可編程的與陣列、可編程寄存器和可編程I/O三部分組成的。從某種意義上講,EPLD是改進(jìn)的GAL,它在GAL基礎(chǔ)上大量增加輸出宏單元的數(shù)目,提供更大的與陣列,集成密度大幅提高,內(nèi)部連線相對固定,延時(shí)小,有利于器件在高頻下工作,但內(nèi)部互連能力較弱。

復(fù)雜可編程邏輯器件(CPLD)是20世紀(jì)80年代末Lattice公司提出了在線可編程技術(shù)(SP)以后于20世紀(jì)90年代初推出的。CPLD至少包含三種結(jié)構(gòu):可編程邏輯宏單元可編程I/O單元和可編程內(nèi)部連線,它是在EPLD的基礎(chǔ)上發(fā)展起來的,采用EECMOS工藝制作,與EPLD相比,增加了內(nèi)部連線,對邏輯宏單元和I/O單元也有很大改進(jìn)。

現(xiàn)場可編程門陣列(FPGA)器件是Xilinx公司1985年首家推出的,它是一種新型的高密度PLD,采用CMOS-SRAM工藝制作。FPGA的結(jié)構(gòu)與門陣列PLD不同,其內(nèi)部由許多獨(dú)立的可編程邏輯模塊(CLB)組成,邏輯塊之間可以靈活地相互連接,CLB的功能很強(qiáng),不僅能夠?qū)崿F(xiàn)邏輯函數(shù),還可以配置成RAM等復(fù)雜的形式。配置數(shù)據(jù)存放在芯片內(nèi)的SRAM中,設(shè)計(jì)人員可現(xiàn)場修改器件的邏輯功能,即所謂的現(xiàn)場可編程。FPGA出現(xiàn)后受到電子設(shè)計(jì)工程師的普遍歡迎,發(fā)展十分迅速。

FPGA和CPLD都具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬的特點(diǎn)。這兩種器件兼容了簡單PLD和通用門陣列的優(yōu)點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路,編程也很靈活,與ASIC相比,具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低,開發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無須測試、質(zhì)量穩(wěn)定等優(yōu)點(diǎn),用戶可以反復(fù)地編程、擦除、使用,或者在外圍電路不動(dòng)的情況下用不同軟件就可實(shí)現(xiàn)不同的功能以及可實(shí)時(shí)在線檢驗(yàn)。

CPLD是一種比PLD復(fù)雜的邏輯元件。CPLD是一種用戶可根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。與FPGA相比,CPLD提供的邏輯資源相對較少,但是經(jīng)典CPLD構(gòu)架提供了非常好的組合邏輯實(shí)現(xiàn)能力和片內(nèi)信號延時(shí)可預(yù)測性,因此對于關(guān)鍵的控制應(yīng)用比較理想。

FPGA是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為ASIC領(lǐng)域中的一種半定制電路而出現(xiàn)的,提供了豐富的可編程邏輯資源、易用的存儲(chǔ)、運(yùn)算功能模塊和良好的性能,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。

FPGA和CPLD因?yàn)榻Y(jié)構(gòu)上的區(qū)別,各具自身特色。因?yàn)镕PGA的內(nèi)部構(gòu)造觸發(fā)器比例和數(shù)量多,所以它在時(shí)序邏輯設(shè)計(jì)方面更有優(yōu)勢:而CPLD因具有與或門陣列資源豐富、程序掉電不易失等特點(diǎn),適用于組合邏輯為主的簡單電路??傮w來說,由于FPGA資源豐富功能強(qiáng)大,在產(chǎn)品研發(fā)方面的應(yīng)用突出,當(dāng)前新推出的可編程邏輯器件芯片主要以FPGA類為主,隨著半導(dǎo)體工藝的進(jìn)步,其功率損耗越來越小,集成度越來越高。

在微處理器系統(tǒng)上,軟件設(shè)計(jì)師用程序設(shè)計(jì)語言控制整個(gè)系統(tǒng)的正常運(yùn)轉(zhuǎn),而在可編程器件領(lǐng)域,操作的對象不再是一組組數(shù)據(jù)類型,而是一些硬件器件,如存儲(chǔ)器,計(jì)數(shù)器等,甚至是一些更加底層的觸發(fā)器、邏輯門,有的甚至要精確到集成晶體管開關(guān)級的控制。并且很多器件不再是順序的阻塞式工作,而是并行的觸發(fā)工作,經(jīng)典的程序流程控制思想在可編程器件領(lǐng)域不適用。設(shè)計(jì)人員需要使用一種能夠構(gòu)造硬件電路的語言,即硬件描述語言。

六、硬件描述語言

硬件描述語言(Hardware Description Language, HDL)是一種用形式化方法描述邏輯電路和系統(tǒng)的語言。利用這種語言,邏輯電路系統(tǒng)的設(shè)計(jì)可以從上層到下層(從抽象到具體)逐層描述自己的設(shè)計(jì)思想,用一系列分層次的模塊來表示極其復(fù)雜的邏輯系統(tǒng)。然后,利用電子設(shè)計(jì)自動(dòng)化(EDA)工具,逐層進(jìn)行仿真驗(yàn)證,再把其中需要變?yōu)閷?shí)際電路的模塊組合,經(jīng)過自動(dòng)綜合工具轉(zhuǎn)換到門級電路網(wǎng)表。接下來,再用專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)自動(dòng)布局布線工具,把網(wǎng)表轉(zhuǎn)換為要實(shí)現(xiàn)的具體電路布線結(jié)構(gòu)。據(jù)統(tǒng)計(jì),目前在美國的硅谷約有90%以上的ASIC和PLD采用硬件描述語言進(jìn)行設(shè)計(jì)。

硬件描述語言HDL的發(fā)展至今已有30多年的歷史,其成功地應(yīng)用于設(shè)計(jì)的各個(gè)階段:建模、仿真、驗(yàn)證和綜合等。到20世紀(jì)80年代,已出現(xiàn)了上百種硬件描述語言,對設(shè)計(jì)自動(dòng)化曾起到了極大的促進(jìn)和推動(dòng)作用。但是,這些語言一般各自面向特定的設(shè)計(jì)領(lǐng)域和層次,而且眾多的語言使用戶無所適從。因此,需要一種面向設(shè)計(jì)的多領(lǐng)域、多層次并得到普遍認(rèn)同的標(biāo)準(zhǔn)硬件描述語言。20世紀(jì)80年代后期至90年代,VHDL和Verilog HDL語言適應(yīng)了這種趨勢的要求,先后成為電氣電子工程師協(xié)會(huì)(Institute of Electrical & Electronics Engineers, IEEE)標(biāo)準(zhǔn)。

現(xiàn)在,隨著超大規(guī)模FPGA以及包含SoC內(nèi)核FPGA芯片的出現(xiàn),軟硬件協(xié)調(diào)設(shè)計(jì)和系統(tǒng)設(shè)計(jì)變得越來越重要。傳統(tǒng)意義上的硬件設(shè)計(jì)越來越傾向于與系統(tǒng)設(shè)計(jì)和軟件設(shè)計(jì)結(jié)合。硬件描述語言為適應(yīng)新的情況,迅速發(fā)展,出現(xiàn)了很多新的硬件描述語言,像System Verilog,SystemC、Cynlib C++等;另一方面,PLD設(shè)計(jì)工具在原先僅支持硬件描述語言設(shè)計(jì)輸入的基礎(chǔ)上,日益增加對傳統(tǒng)高級設(shè)計(jì)語言(如C/C++)的設(shè)計(jì)支持。

目前,硬件描述語言可謂是百花齊放,有VHDL、Verilog HDL、Superlog、SystemC、System Verilog、Cynlib C++、C Level等。整體而言,在PLD開發(fā)領(lǐng)域應(yīng)用最廣的還是VHDL和Verilog HDL。隨著邏輯系統(tǒng)開發(fā)規(guī)模的不斷增大,SystemC和System Verilog等系統(tǒng)級硬件描述語言也得到越來越多的應(yīng)用。

VHDL

早在1980年,因?yàn)槊绹娛?a target="_blank">工業(yè)需要描述電子系統(tǒng)的方法,美國國防部開始進(jìn)行VHDL的開發(fā)。1987年,IEEE將VHDL制定為標(biāo)準(zhǔn)。參考手冊為IEEE VHDL語言參考手冊標(biāo)準(zhǔn)草案1076/B版,于1987年批準(zhǔn),稱為IEEE 1076-1987。然而,起初VHDL只是作為系統(tǒng)規(guī)范的一個(gè)標(biāo)準(zhǔn),而不是為設(shè)計(jì)而制定的。第二個(gè)版本是在1993年制定的,稱為VHDL-93,增加了一些新的命令和屬性。

雖然有“VHDL是一個(gè)4億美元的錯(cuò)誤”這樣的說法,但VHDL畢竟是1995年以前唯一制定為標(biāo)準(zhǔn)的硬件描述語言,這是它不爭的事實(shí)和優(yōu)勢;但同時(shí)它的使用確實(shí)比較麻煩,而且其綜合庫至今也沒有標(biāo)準(zhǔn)化,不具有晶體管開關(guān)級模擬設(shè)計(jì)的描述能力。目前來說,對于特大型的系統(tǒng)級邏輯電路設(shè)計(jì),VHDL是較為合適的。

實(shí)質(zhì)上,在底層的VHDL設(shè)計(jì)環(huán)境是由Verilog HDL描述的器件庫支持的,因此,它們之間的互操作性十分重要。目前,Verilog和VHDL的兩個(gè)國際組織OVI(Open Verilog International)、VI正在籌劃這一工作,準(zhǔn)備成立專門的工作組來協(xié)調(diào)VHDL和Verilog HDL語言的互操作性。OVI也支持不需要翻譯,由VHDL到Verilog的自由表達(dá)。

Verilog HDL

Verilog HDL是在1983年,由GDA(Gateway Design AUTOMATION)公司的Phil Moorby首創(chuàng)的。Phil Moorby后來成為Verilog-XL的主要設(shè)計(jì)者和Cadence公司的第一合伙人。在1984-1985年,Phil Moorby設(shè)計(jì)出了第一個(gè)名為Verilog-XL的仿真器;1986年,他對Verilog HDL的發(fā)展又作出了另一個(gè)巨大的貢獻(xiàn):提出了用于快速門級仿真的XL算法。

隨著Verilog-XL算法的成功,Verilog HDL語言得到迅速發(fā)展。1989年,Cadence公司收購了GDA公司,Verilog HDL語言成為Cadence公司的私有財(cái)產(chǎn)。1990年,Cadence公司決定公開Verilog HDL語言,于是成立了OVI組織,負(fù)責(zé)促進(jìn)Verilog HDL語言的發(fā)展?;赩erilog HDL的優(yōu)越性,IEEE于1995年制定了Verilog HDL的IEEE標(biāo)準(zhǔn),即Verilog HDL 1364-1995;2001年發(fā)布了Verilog HDL 1364—2001標(biāo)準(zhǔn),在這個(gè)標(biāo)準(zhǔn)中,加入了Verilog HDL - A標(biāo)準(zhǔn),使Verilog HDL有了模擬設(shè)計(jì)描述的能力

SystemC

隨著半導(dǎo)體技術(shù)的迅猛發(fā)展,SoC已經(jīng)成為當(dāng)今集成電路設(shè)計(jì)的發(fā)展方向,智能手機(jī),平板電腦里的處理器,嚴(yán)格地來說實(shí)際上是SoC,因?yàn)槠渖霞闪薈PU、圖形處理單元(Graphic Processing Unit, GPU)、數(shù)字信號處理器(Digital Signal Processor)、基帶(Baseband)信號處理器等。在系統(tǒng)芯片的各個(gè)設(shè)計(jì)(像系統(tǒng)定義、軟硬件劃分、設(shè)計(jì)實(shí)現(xiàn)等)中,集成電路設(shè)計(jì)界一直在考慮如何滿足SoC的設(shè)計(jì)要求,一直在尋找一種能同時(shí)實(shí)現(xiàn)較高層次的軟件和硬件描述的系統(tǒng)級設(shè)計(jì)語言

SystemC正是在這種情況下,由Synopsys公司和Coware公司積極響應(yīng)目前各方對系統(tǒng)級設(shè)計(jì)語言的需求而合作開發(fā)的。1999年9月27日,40多家世界著名的EDA公司、IP公司、半導(dǎo)體公司和嵌入式軟件公司宣布成立“開放式SystemC聯(lián)盟”。著名公司Cadence也于2001年加入了SystemC聯(lián)盟。SystemC從1999年9月聯(lián)盟建立初期的0.9版本開始更新,從1.0版到1.1版,一直到2001年10月推出了最新的2.0版。

七、常見的數(shù)據(jù)處理芯片

既然已經(jīng)梳理了兩大類(微處理器,專用集成電路)芯片的概念和原理,接下來就了解一下常見的芯片

MCU

日常生活中最常見得到的微處理器系統(tǒng)就是我們身邊的微型計(jì)算機(jī),也就是個(gè)人電腦(Personal Computer, PC),可以使臺式機(jī)、筆記本,或是PC界的新秀——各種炫酷的二合一設(shè)備。這些看起來復(fù)雜無比的電子系統(tǒng)都是由最簡單的微處理器系統(tǒng)發(fā)展起來的。但是生活中并不需要那么多的電腦,比如想要做一臺能夠自動(dòng)控制加熱保溫的電飯煲,其CPU性能可能只需要電腦這樣的大家伙的九牛一毛即可,也不需要復(fù)雜的輸入輸出設(shè)備,在設(shè)計(jì)上大可以大刀闊斧地將用不到的部分砍掉,靈活地將CPU、時(shí)鐘發(fā)生器(Clock)、隨機(jī)存儲(chǔ)器(Random Access Memory, RAM)、只讀存儲(chǔ)器(Read-Only Memory, ROM)和需要的外部設(shè)備集成起來小型化,這種經(jīng)過大改觀的微處理器系統(tǒng),其所有部分都集成在了一塊芯片上,稱為微控制器或單片機(jī)(Micro Controller Unit, MCU)。目前MCU是應(yīng)用最廣泛的一種電子控制芯片,其控制程序可以由特殊的燒錄工具下載到ROM中,行使系統(tǒng)的功能。這些ROM可以使以是PROM、UVEPROM、EEPROM等,若MCU上沒有集成ROM,也可以外接ROM。按照系統(tǒng)結(jié)構(gòu),微處理器系統(tǒng)可以分為馮·諾依曼結(jié)構(gòu)(也稱普雷斯頓結(jié)構(gòu))和哈佛結(jié)構(gòu),其區(qū)別是程序與數(shù)據(jù)的存放方式不同,同樣地,MCU芯片也可以分為這兩種結(jié)構(gòu),靈活地滿足需要。

MPU

微處理器單元(Micro Processor Unit, MPU),就是把很多CPU集成在一起并行處理數(shù)據(jù)的芯片。通俗來說,MCU集成了RAM,ROM等設(shè)備;MPU則不集成這些設(shè)備,是高度集成的通用結(jié)構(gòu)的中央處理器矩陣,也可以認(rèn)為是去除了集成外設(shè)的MCU。

PLD(CPLD/FPGA)

因?yàn)槟壳皬V泛使用的PLD是CPLD和FPGA,因此把這兩種芯片作為例子介紹。前面已經(jīng)介紹過,CPLD/FPGA的內(nèi)部結(jié)構(gòu)和CPU完全不同,內(nèi)部電路可以被多次修改,可以按照用戶的編程形成不同的組合邏輯電路、時(shí)序邏輯電路結(jié)構(gòu),是一種“萬能”的芯片,CPLD/FPGA看起來像一個(gè)CPU,其實(shí)不然,因?yàn)槭褂肅PLD/FPGA實(shí)現(xiàn)控制是純硬件實(shí)現(xiàn),實(shí)質(zhì)上和使用成千上萬基本邏輯門搭建的數(shù)字邏輯電路沒有區(qū)別。因此可以直接用HDL編程在CPLD/FPGA里搭建出一個(gè)“CPU”(有時(shí)還有硬盒和軟核之分,限于篇幅,不再贅述),再做好相應(yīng)的I/O、總線,就是一個(gè)簡單的微處理器系統(tǒng)了。但是這樣一來,又變成了軟件控制,PLD的硬件控制優(yōu)勢蕩然無存。故CPLD/FPGA經(jīng)常和實(shí)際的CPU搭配使用,在CPLD/FPGA上編寫一些較復(fù)雜算法的運(yùn)算電路,當(dāng)CPU處理到這些復(fù)雜任務(wù)時(shí),就交由CPLD/FPGA進(jìn)行處理,處理結(jié)束以后再將結(jié)果返回給CPU,提高控制系統(tǒng)的整體性能。

ADC、DAC

自然界的物理量分為模擬(Analog)量和數(shù)字(Digital)量兩種。模擬量在一定范圍內(nèi)的取值是連續(xù)的,個(gè)數(shù)是無窮的;數(shù)字量在一定范圍內(nèi)的取值是離散的,個(gè)數(shù)是有限的。計(jì)算機(jī)只能處理離散的數(shù)字量,所以模擬信號必須經(jīng)過變換才能交由計(jì)算機(jī)處理。將自然界的物理量轉(zhuǎn)化為連續(xù)變化的電流或電壓(故稱“模擬”),在滿足奈奎斯特采樣定理(Nyquist Sampling Theory,也稱香農(nóng)采樣定理,Shannon Sampling Theory)的條件下采樣,得到時(shí)域離散信號,再經(jīng)量化器(可以是線性量化和非線性量化)量化后數(shù)字信號,最后經(jīng)過一道編碼得到二進(jìn)制的0、1數(shù)字信息,才能交由計(jì)算機(jī)處理。以上的這一道變換稱為模數(shù)轉(zhuǎn)換(A/D),可以將這部分電路集成到一塊芯片上,這就是模數(shù)轉(zhuǎn)換電路(Analog Digital Circuit, ADC),相應(yīng)的也有數(shù)模轉(zhuǎn)換(D/A)和數(shù)模轉(zhuǎn)換電路(Digital Analog Circuit, DAC)芯片,進(jìn)行D/A的時(shí)候同樣要在數(shù)學(xué)和信息論上滿足相關(guān)定理。

DSP

數(shù)字信號處理器(Digital Signal Processor, DSP)是用來高速處理數(shù)字信號的專用芯片。

經(jīng)過ADC轉(zhuǎn)化好的數(shù)字信號,數(shù)據(jù)量往往很龐大,直接交由CPU處理的效率是不高的,并且CPU還要進(jìn)行更多的通用計(jì)算的任務(wù)。因此,常常采用專用的電路來處理數(shù)字信號,如數(shù)字濾波、快速傅里葉變換、時(shí)頻分析、語音信號和圖像信號的處理加工等。這些運(yùn)算往往很復(fù)雜,很多涉及復(fù)數(shù)的累加、累乘運(yùn)算,舉個(gè)例子:離散傅里葉變換的計(jì)算就十分復(fù)雜,但是運(yùn)用時(shí)域抽取或頻域抽取的快速傅里葉變換算法后就可以大大減少運(yùn)算量,但是電路較為復(fù)雜。將能完成這些復(fù)雜運(yùn)算的電路集成在一塊芯片上,能在一個(gè)時(shí)鐘周期完成一次乘加運(yùn)算,使其能完成如基2-FFT蝶形運(yùn)算、音頻濾波、圖像處理等復(fù)雜運(yùn)算,這樣的芯片叫做DSP。DSP也是一種特殊的CPU,特別適合信號的處理,如3G中的Node B就大量使用了DSP進(jìn)行信號處理。DSP對于流媒體的處理能力遠(yuǎn)遠(yuǎn)的優(yōu)于CPU,現(xiàn)在手機(jī)上的語音信號都是由DSP處理的?,F(xiàn)階段DSP的概念正在變得模糊,如ARM9的架構(gòu)就不像是一顆CPU,更像是一顆DSP?,F(xiàn)在有很多芯片,其上都集成了DSP,GPU,基帶處理器等,越來越多的傳統(tǒng)上分立的芯片被集成到一起,協(xié)同工作以提高效率,降低能耗,這也是未來的一個(gè)趨勢。

SoC

隨著半導(dǎo)體技術(shù)、移動(dòng)互聯(lián)網(wǎng)和智能終端的迅猛發(fā)展,傳統(tǒng)的微處理器系統(tǒng)的發(fā)展已經(jīng)跟不上時(shí)代的潮流,現(xiàn)代信息技術(shù)迫切地需要一種功能多,性能強(qiáng),功耗低的芯片來滿足越來越多的智能設(shè)備的需求。SoC便應(yīng)運(yùn)而生。

SoC的全稱是System on a Chip,顧名思義,就是在一塊芯片上集成一整個(gè)信息處理系統(tǒng),稱為片上系統(tǒng)或系統(tǒng)級芯片。這個(gè)定義現(xiàn)在也不盡明確,因?yàn)椴煌猛镜腟oC上集成的部件是不一樣的,一般說來,SoC是一個(gè)完整的整體,已經(jīng)擁有了整個(gè)數(shù)字系統(tǒng)的完整功能它也是一種ASIC,其中包含完整的控制系統(tǒng)并有嵌入式的軟件。

SoC也代表著一種技術(shù),是一種以確定系統(tǒng)功能為目標(biāo),各個(gè)模塊的軟硬件協(xié)同開發(fā),最后把開發(fā)成果集成為一塊芯片的技術(shù)。由于功能豐富,又要求有不俗的性能發(fā)揮,SoC已然是功能最為豐富的硬件,其上集成了CPU、GPU、RAM、ADC/DAC、Modem、高速DSP等各種芯片,有的SoC上還必須集成電源管理模塊,各種外部設(shè)備的控制模塊,充分考慮各總線的分布利用……現(xiàn)如今,智能手機(jī)里的SoC上就集成了以上的部件和基帶處理器等很多相關(guān)的通信模塊。

SoC的電路相比于傳統(tǒng)的微處理器系統(tǒng)更加復(fù)雜,其對設(shè)計(jì)和制造工藝的要求自然更上一層樓,對軟硬件協(xié)同開發(fā)的依賴性相當(dāng)高。迄今為止,在半導(dǎo)體行業(yè)首屈一指的企業(yè)才有自主設(shè)計(jì)制造SoC的能力,目前在性能和功耗敏感的終端芯片領(lǐng)域,SoC已占據(jù)主導(dǎo)地位,人們每天使用的手機(jī)里面,就有一顆顆性能強(qiáng)勁,永遠(yuǎn)在線的SoC在為我們服務(wù)。就連傳統(tǒng)的軟件大廠微軟也推出了基于高通公司的驍龍835平臺的Windows操作系統(tǒng);而且SoC的應(yīng)用正在擴(kuò)展到更廣的領(lǐng)域,SoC在無人機(jī)技術(shù)、自動(dòng)駕駛,深度學(xué)習(xí)等行業(yè)也有越來越多的應(yīng)用,用一塊單芯片就能實(shí)現(xiàn)完整的電子系統(tǒng),是半導(dǎo)體行業(yè)、IC產(chǎn)業(yè)未來的發(fā)展方向。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21568

    瀏覽量

    600572
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50005

    瀏覽量

    419717
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16804

    瀏覽量

    349392
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2233

    瀏覽量

    82216
  • vhdl
    +關(guān)注

    關(guān)注

    30

    文章

    816

    瀏覽量

    128018

原文標(biāo)題:基本知識科普,CPU、MCU、FPGA、SoC這些芯片有啥異同?

文章出處:【微信號:icbank,微信公眾號:icbank】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    集成電路制造技術(shù)的應(yīng)用

    電路同時(shí)植在塊硅片上的可行性。微電子及機(jī)械裝置:集成電路的生產(chǎn)工序可用來制造小型機(jī)械式裝置,例如杠桿和齒輪系統(tǒng)。同樣的技術(shù)亦可應(yīng)用來制造
    發(fā)表于 08-20 17:58

    什么是模擬集成電路?

    模擬集成電路主要是指由電容、電阻、晶體管等組成的模擬電路集成一起用來處理模擬信號的集成電路。模擬集成電
    發(fā)表于 11-14 14:04

    【轉(zhuǎn)】電路分析中的集成電路應(yīng)用電路的識圖

    過程時(shí),最好是查閱該集成電路的內(nèi)電路方框圖。分析內(nèi)電路方框圖時(shí),可以通過信號傳輸線路中的箭頭指示,知道信號經(jīng)過了哪些電路的放大或處理,最后信
    發(fā)表于 06-21 20:27

    集成電路應(yīng)用電路識圖方法分享

    。   ⑥了解集成電路一些關(guān)鍵測試點(diǎn)、引腳直流電壓規(guī)律對檢修電路是十分有用的。OTL電路輸出端的直流電壓等于
    發(fā)表于 07-13 09:27

    集成電路電源芯片的分類及發(fā)展

    中用字母“IC”表示。由于電路元器件種類繁多,隨著電子技術(shù)和工藝水平的不斷提高,大量新的器件不斷出現(xiàn),同種器件也有多種封裝形式,集成電路芯片大致可以根據(jù)以下特征進(jìn)行分類。(
    發(fā)表于 10-18 14:54

    芯片,集成電路,半導(dǎo)體含義

    多了,把一些電阻電容二極管集成起就算是集成電路了,可能是塊模擬信號轉(zhuǎn)換的芯片,也可能是
    發(fā)表于 02-18 13:23

    了解一下集成電路是有什么影響的

    你對集成電路感到好奇嗎?在我學(xué)習(xí)微電子學(xué)的日子里,我制作了自己的集成電路。這是次難以置信的經(jīng)歷!我學(xué)到了很多東西。它讓我對這個(gè)組件有了很好的了解
    發(fā)表于 03-23 10:24

    集成電路芯片類型和技術(shù)介紹

    ,集成電路也可以稱為微芯片,基本上是由硅等半導(dǎo)體材料制成的小芯片上的一些分立電路的集合集成電路
    發(fā)表于 03-31 10:46

    什么是模擬集成電路_集成電路

    模擬集成電路主要是指由電容、電阻、晶體管等組成的模擬電路集成一起用來處理模擬信號的集成電路。有許多的模擬
    發(fā)表于 10-28 11:16 ?2416次閱讀

    模擬集成電路的應(yīng)用

    模擬集成電路主要是指由電容、電阻、晶體管等組成的模擬電路集成一起用來處理模擬信號的集成電路。有許多的模擬
    發(fā)表于 06-12 14:23 ?7334次閱讀
    模擬<b class='flag-5'>集成電路</b>的應(yīng)用

    模擬集成電路的發(fā)展史 國內(nèi)廠商迎來發(fā)展機(jī)遇

    模擬集成電路主要是指由電容、電阻、晶體管等組成的模擬電路集成一起用來處理模擬信號的集成電路。
    的頭像 發(fā)表于 06-25 15:59 ?5804次閱讀

    模擬集成電路是什么

    本文主要講解的內(nèi)容是什么是模擬集成電路?模擬集成電路主要是指由電容、電阻、晶體管等組成的模擬電路集成一起用來處理模擬信號的
    發(fā)表于 05-22 17:28 ?5309次閱讀

    集成電路芯片個(gè)概念嗎?集成電路芯片區(qū)別?

    集成電路芯片個(gè)概念嗎?集成電路芯片區(qū)別? 集成電路
    的頭像 發(fā)表于 11-21 16:00 ?4777次閱讀

    集成電路芯片有哪些

    。 首先,我們需要了解集成電路芯片的基本概念。集成電路芯片種將大量的電子元器件
    的頭像 發(fā)表于 01-05 14:14 ?1288次閱讀

    集成芯片集成電路的區(qū)別

    集成芯片集成電路在電子領(lǐng)域中都有著重要的應(yīng)用,但它們之間確實(shí)存在一些關(guān)鍵性的區(qū)別。
    的頭像 發(fā)表于 03-20 17:08 ?710次閱讀