什么是數(shù)字集成電路呢?標(biāo)準(zhǔn)的定義是:數(shù)字集成電路是基于數(shù)字邏輯(布爾代數(shù))設(shè)計(jì)和運(yùn)行的,基于邏輯門搭建的,用于處理數(shù)字信號(hào)的集成電路。數(shù)字電路是用來處理0和1的信號(hào)的,在數(shù)字電路中,就只有0和1這兩個(gè)狀態(tài)。數(shù)字電路通過復(fù)雜的邏輯門設(shè)計(jì),通過簡單的0和1這兩個(gè)狀態(tài)的組合,就能實(shí)現(xiàn)非常復(fù)雜的功能。數(shù)字電路是用來處理數(shù)字信號(hào)的,那集成兩個(gè)字如何體現(xiàn)呢?“集成”的意思就是,把整個(gè)數(shù)字電路系統(tǒng)所有的元器件,包括電容,電阻,電感和晶體管以及互連線,制作在一小塊半導(dǎo)體晶片上,然后封裝在一起,最終實(shí)現(xiàn)的產(chǎn)品就是我們?nèi)粘J褂玫哪莻€(gè)指甲蓋大小的小黑片。
數(shù)字電路中的數(shù)字信號(hào)是指在時(shí)間上離散,在數(shù)值上也離散,且數(shù)值的大小和增減都是量化單位的整數(shù)倍的一類信號(hào)。處理數(shù)字信號(hào)的電子電路稱為數(shù)字電路。數(shù)字電路是以布爾代數(shù)為理論基礎(chǔ),以邏輯門為基礎(chǔ)原件,通過非常復(fù)雜的邏輯設(shè)計(jì),可以實(shí)現(xiàn)各種各樣的數(shù)字邏輯功能。
一個(gè)簡單的數(shù)字電路模型可以理解為如下,它有若干的輸入(input),若干個(gè)輸出(output),以及一個(gè)時(shí)鐘信號(hào)(clock)。輸入信號(hào)在數(shù)字電路模塊內(nèi)部經(jīng)過若干復(fù)雜的邏輯處理后,從輸出端口輸出。而模塊內(nèi)部復(fù)雜的邏輯功能,則是設(shè)計(jì)人員工作的重點(diǎn)。在數(shù)字電路中的信號(hào)都是離散的二值信號(hào),用數(shù)字0和1表示。
布爾代數(shù)是能實(shí)現(xiàn)數(shù)字邏輯功能的理論,數(shù)字電路的物理基礎(chǔ)是半導(dǎo)體理論?;诎雽?dǎo)體工藝,可以制作出符合布爾代數(shù)的實(shí)際物理器件,即與,或,非這些基本的門級(jí)電路,利用這些門級(jí)電路結(jié)構(gòu),可以搭建出更加復(fù)雜的數(shù)字邏輯電路?;陂T級(jí)電路,可以搭建出編碼器,譯碼器,數(shù)字選擇器,加法器,等等的基本模塊,利用這些基本模塊,可以搭建出復(fù)雜的專用系統(tǒng),如接口信號(hào)協(xié)議轉(zhuǎn)換,圖像處理芯片,DSP芯片等等。
組合邏輯電路
組合邏輯電路的特點(diǎn)是輸出只取決于當(dāng)前的輸入,而與之前的輸入無關(guān),即組合邏輯電路沒有記憶功能。對(duì)應(yīng)的電路特點(diǎn)就是組合邏輯電路只由基本的邏輯門原件構(gòu)成,沒有使用到寄存器和時(shí)鐘信號(hào)。當(dāng)信號(hào)從輸入端口輸入后,經(jīng)過短暫的電路延遲,結(jié)果就從輸出端口輸出,不用等待時(shí)鐘信號(hào)來同步。
組合邏輯電路有基本的與門,或門,非門組成。用與,或,非三種運(yùn)算符和邏輯變量可以構(gòu)成任何的邏輯函數(shù),依次稱這三個(gè)邏輯運(yùn)算符是一組完備集。任何邏輯函數(shù)都可以用這三種邏輯符運(yùn)算來加以表示。一個(gè)邏輯函數(shù)也可以有多種的函數(shù)表達(dá)形式。根據(jù)真值表,可以將任意的邏輯函數(shù)轉(zhuǎn)化為最大項(xiàng)或最小項(xiàng)表達(dá)式,進(jìn)而化簡到需要的最簡的表達(dá)式。
一個(gè)組合邏輯電路的功能有多種表達(dá)形式,例如表達(dá)式,波形圖,符號(hào)圖燈,但能體現(xiàn)組合邏輯電路最本質(zhì)的還是真值表。真值表是列出了邏輯事件輸入和輸出之間全部可能狀態(tài)的表格。通常以1表示真,以0表示假。在FPGA的內(nèi)部,將一切的組合邏輯電路以真值表的形式存儲(chǔ)在LUT(look up table ,查找表)中,根據(jù)輸入來將真值表中的對(duì)應(yīng)的值進(jìn)行輸出,達(dá)到實(shí)現(xiàn)組合邏輯電路的功能。
例如,利用組合邏輯電路,就可以實(shí)現(xiàn)二進(jìn)制的加法。首先根據(jù)加法的規(guī)律,列出二進(jìn)制加法的真值表,根據(jù)真值表,化簡得到邏輯表達(dá)式,然后用基本的電路原件加以實(shí)現(xiàn)即可。
時(shí)序邏輯電路
時(shí)序邏輯電路的基礎(chǔ)是觸發(fā)器,盡管在數(shù)字電路中我們學(xué)習(xí)了許多種類的觸發(fā)器,例如RS觸發(fā)器,JK觸發(fā)器,T觸發(fā)器,但在實(shí)際的工程設(shè)計(jì)中,用到的最多的還是D觸發(fā)器。常見的D觸發(fā)器由數(shù)據(jù)輸入端口D,數(shù)據(jù)輸出端口Q,時(shí)鐘端口CLK,復(fù)位端口RESET組成。D觸發(fā)器的特點(diǎn)是在時(shí)鐘clk的上升沿,觸發(fā)器會(huì)接收D端的數(shù)據(jù)并在Q端輸出,在其余的時(shí)刻,D觸發(fā)器Q端的值保持不變。在通常的數(shù)字電路設(shè)計(jì)中,都統(tǒng)一使用同一個(gè)時(shí)鐘信號(hào),稱為同步時(shí)序電路。 時(shí)序邏輯電路由組合邏輯電路和存儲(chǔ)電路兩部分組成。存儲(chǔ)部分通常就由觸發(fā)器組成?;冢挠|發(fā)器的時(shí)鐘觸發(fā)特性和保持特性,用觸發(fā)器保持電路的臨時(shí)狀態(tài)值,在觸發(fā)器的輸入端接入組合邏輯電路,用于實(shí)現(xiàn)邏輯功能,再將組合邏輯的輸出連接到需要觸發(fā)器的輸入端口中,在下一個(gè)時(shí)鐘的上升沿,觸發(fā)器在次采樣保持該組合邏輯的輸出,由此構(gòu)成了基于歷史狀態(tài)時(shí)序邏輯電路。
例如,對(duì)于一個(gè)基于時(shí)鐘的計(jì)數(shù)器,在復(fù)位時(shí),使計(jì)數(shù)器的寄存器的值復(fù)位為0,將寄存器的輸出端連接到加法器的一個(gè)輸入上,加法器的另一個(gè)輸入設(shè)置為1,然后再將加法器的輸出端口連接到計(jì)數(shù)器寄存器的輸入端口,形成邏輯閉環(huán)。在非時(shí)鐘上升沿,加法器將寄存器輸出的值加1,在時(shí)鐘上升沿,將加1的結(jié)果再采樣保持到寄存器中標(biāo)并輸出。由此,就能實(shí)現(xiàn)每個(gè)時(shí)鐘計(jì)數(shù)器加1的功能。
數(shù)字集成電路又分為專用集成電路和通用集成電路。專用集成電路是為實(shí)現(xiàn)特定功能而設(shè)計(jì)制造的集成電路。所謂專用集成電路就是我們常說的 ASIC ,是 Application Specific IntegratedCircuit 的縮寫,它是直接按功能和要求設(shè)計(jì)出整個(gè)系統(tǒng),并把這個(gè)系統(tǒng)做到集成電路上。ASIC 在批量生產(chǎn)時(shí)與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強(qiáng)、成本降低等優(yōu)點(diǎn)。通用集成電路:所謂通用集成電路就是我們常說的 51 單片機(jī)、DSP(數(shù)字信號(hào)處理器),與 ARM 等等,這些芯片中包含了通用微處理器,需要二次開發(fā),才能用于某一用途。通用集成電路還包括俗稱的“電路零件”,就是從各種各樣的相對(duì)明確的應(yīng)用當(dāng)中提取出來的公共部分,比如:我們在學(xué)習(xí)數(shù)字電路中用到的各種 74 系列數(shù)字門電路、A/D、D/A 轉(zhuǎn)換器、電源電路等等,這些通用集成電路的特點(diǎn)是可以被各種各樣的應(yīng)用系統(tǒng)直接添加進(jìn)去完成基本的功能的部分,本質(zhì)上是分立的。
硬件描述語言(HDL)
隨著數(shù)字集成電路設(shè)計(jì)的規(guī)模越來越大,門數(shù)越來越多,功能越來越復(fù)雜,現(xiàn)在的集成電路設(shè)計(jì)不可能從門級(jí)電路開始設(shè)計(jì)。隨著EDA設(shè)計(jì)工具的成熟以及基礎(chǔ)模塊設(shè)計(jì)的日趨成熟和完善化,數(shù)字集成電路設(shè)計(jì)可以往更高一個(gè)層級(jí)入手。由于基本的例如加法器,比較器,編碼器,譯碼器,寄存器等基礎(chǔ)模塊以及開發(fā)設(shè)計(jì)的非常完善,故只需要在這一層級(jí)上,調(diào)用這些基礎(chǔ)原件進(jìn)行設(shè)計(jì)即可。而硬件描述語言(HardwareDescription Language,HDL)就是進(jìn)行這一項(xiàng)工作的。我們在開發(fā)設(shè)計(jì)電路時(shí),只要按照HDL語言的規(guī)范進(jìn)行代碼編寫,EDA軟件就會(huì)自動(dòng)根據(jù)特定的算法將我們用代碼描述的電路翻譯(專業(yè)術(shù)語為“綜合”)為這些基本的電路單元。然后在根據(jù)所依賴的器件和工藝的不同,將這些基本模塊映射為門級(jí)電路,用以制造專用集成電路(ASIC),或者在FPGA上映射為以LUT和寄存器為基礎(chǔ)原件的電路。
技術(shù)的發(fā)展是十分快的,Verilog語言開發(fā)與1989年,如今已經(jīng)經(jīng)過了30年的發(fā)展,基于Verilog的集成電路設(shè)計(jì)也已經(jīng)十分的成熟。在以后的技術(shù)發(fā)展中,肯定會(huì)出現(xiàn)一種比HDL語言更高層級(jí)的集成電路設(shè)計(jì)工具,利用在現(xiàn)階段已經(jīng)做得非常成熟的模塊,將這些模塊再作為設(shè)計(jì)基礎(chǔ),進(jìn)行更高層級(jí)的設(shè)計(jì)開發(fā),實(shí)現(xiàn)更高層級(jí)的更復(fù)雜的功能。設(shè)計(jì)工具的出現(xiàn),將開發(fā)人員從底層重復(fù)繁瑣的工作中解放出來,讓他們能從跟高層級(jí)來進(jìn)行思考和設(shè)計(jì),大大的提高了設(shè)計(jì)的便利性,這也就是技術(shù)發(fā)展的趨勢。而作為一名技術(shù)開發(fā)人員,也要跟隨技術(shù)發(fā)展的潮流,不斷地學(xué)習(xí)新的技術(shù),才能保持競爭力。
SOC設(shè)計(jì)
SOC,是片上系統(tǒng)(system on chip)的簡稱。顧名思義,何為“片”,“片”指的就是芯片;按照標(biāo)準(zhǔn)的解釋,系統(tǒng)是由多個(gè)具有特定功能的集成電路組合在一個(gè)芯片上的產(chǎn)品。片上系統(tǒng),就是將一整個(gè)系統(tǒng)設(shè)計(jì)制造在一個(gè)芯片上。在集成電路領(lǐng)域,一個(gè)系統(tǒng)要包含中央處理器(CPU),專用數(shù)字IP,專用模擬IP,片內(nèi)總線通信,片上內(nèi)存(或片外存儲(chǔ)控制接口)等,由CPU通過片內(nèi)總線來控制專用模塊的工作。
我們現(xiàn)在用的手機(jī)處理器就是一個(gè)最典型的SOC。在手機(jī)處理器上,集成有ARM的處理器內(nèi)核,有DSP,ISP,wifi模塊,藍(lán)牙模塊,音視頻硬件解碼模塊,相機(jī)驅(qū)動(dòng)模塊,圖線處理器(GPU),DDR控制接口,無線基帶模塊,現(xiàn)在最新的手機(jī)處理器上還帶有專用的人工智能算法的加速模塊,用于加速人工智能算法的計(jì)算。利用SOC芯片,在加上一些外圍芯片,就可以設(shè)計(jì)出一個(gè)完整的可用的硬件設(shè)備。
一個(gè)典型的soc設(shè)計(jì),包括處理器內(nèi)核設(shè)計(jì),總線設(shè)計(jì),內(nèi)存模塊設(shè)計(jì),專用IP設(shè)計(jì)?,F(xiàn)在可以在ARM官網(wǎng)上無需授權(quán)就可以下載到designstart版本的M3內(nèi)核代碼以及各種的外圍專用IP源碼。利用ARM已經(jīng)提供好的內(nèi)核,通過AHB,APB總線,我們可以將我們所需要的各種模塊集成到系統(tǒng)中,定制自己的SOC。只需要利用M3處理器內(nèi)核,用于存儲(chǔ)運(yùn)行代碼的ROM,用于程序運(yùn)行時(shí)存儲(chǔ)數(shù)據(jù)的RAM,總線矩陣模塊,以及專用外設(shè)模塊,一個(gè)最簡單的SOC就可以正常運(yùn)行。這些模塊之間利用總線和處理器內(nèi)核進(jìn)行數(shù)據(jù)通信。
在的數(shù)字電路芯片在往單片集成的方向發(fā)展,目標(biāo)就是SOC,將所有的數(shù)字部分集成到一個(gè)單一的芯片上,不僅能提高芯片的設(shè)計(jì)生產(chǎn)成本,還能提高電路系統(tǒng)的穩(wěn)定度,并降低功耗。由于利用片內(nèi)的高性能的總線設(shè)計(jì),采用最先進(jìn)的工藝制造,芯片的總體頻率會(huì)達(dá)到更高最,一提供更高的性能。SOC級(jí)別的芯片,現(xiàn)在是ARM一統(tǒng)天下,在手機(jī)移動(dòng)端,在微控制領(lǐng)域的處理器芯片,大多都是基于ARM內(nèi)核來進(jìn)行開發(fā)設(shè)計(jì)的。SOC級(jí)別的設(shè)計(jì)重在系統(tǒng)性設(shè)計(jì),包括總線傳輸,內(nèi)存接口,各個(gè)模塊之間的互聯(lián),數(shù)據(jù)傳輸通信,各個(gè)專用外設(shè)的地址分配和驅(qū)動(dòng)編寫,總之就是初中于系統(tǒng)級(jí)別的各個(gè)資源模塊之間的調(diào)配。做SOC還要懂得ARM內(nèi)核的架構(gòu),能在匯編,C語言層級(jí)編寫驅(qū)動(dòng),在并使用操作系統(tǒng)來實(shí)現(xiàn)更加高級(jí)的功能和更加方便的開發(fā)。而專用的數(shù)字IP級(jí)別的開發(fā)則側(cè)重于算法的硬件實(shí)現(xiàn),側(cè)重于數(shù)據(jù)的接收處理,側(cè)重于單一的設(shè)計(jì)目標(biāo)的實(shí)現(xiàn)。設(shè)計(jì)好一個(gè)專用外設(shè)模塊后,可以將其打包封裝成為一個(gè)專用的數(shù)字IP外設(shè),然后加載到自定制的SOC中去。
對(duì)于數(shù)字集成電路來說,數(shù)字電路只是一個(gè)基礎(chǔ)工具,我們擁有的是加法器,比價(jià)器,編碼,譯碼器等這些基本的建筑材料。根據(jù)要設(shè)計(jì)的目標(biāo)的不同,我們用這些基本的建筑材料來構(gòu)建出可以實(shí)現(xiàn)不同目標(biāo)的設(shè)計(jì)。正如建設(shè)房屋一樣,我們有的基礎(chǔ)材料是磚瓦,水泥,鋼筋,用這些材料,可以建設(shè)出高樓大廈,也可以建設(shè)出精致的獨(dú)棟小樓,可以造出公路,也可以建設(shè)河提河壩,可以用來住人,可以用來自存儲(chǔ)貨物,也可以用來建設(shè)觀賞物??芍^是需求多種多樣,最終根據(jù)需求設(shè)計(jì)出來的產(chǎn)品也五花八門。如用數(shù)字電路的基本單元,構(gòu)建一個(gè)最簡單的串口數(shù)據(jù)收發(fā)送模塊,構(gòu)建一個(gè)專用芯片的時(shí)序驅(qū)動(dòng)模塊,構(gòu)建一個(gè)專用計(jì)算的加速模塊,例如人工智能計(jì)算中的卷積計(jì)算加速模塊,可以構(gòu)建處理器,可以構(gòu)建非常復(fù)雜的專用模塊,例如圖像處理模塊,接口協(xié)議轉(zhuǎn)換模塊,內(nèi)存接口驅(qū)動(dòng)模塊等等等等,數(shù)字電路的設(shè)計(jì)百種千樣,各個(gè)領(lǐng)域都有各自非常成熟的企業(yè)在做。如華為之通信,ARM之處理器核心,還有非常多的在大眾眼里不熟悉,但在行業(yè)內(nèi)非常出名的企業(yè),大到處理器芯片,交換機(jī)芯片,USB接口芯片,指紋識(shí)別芯片,小到一個(gè)手機(jī)鏡頭的防抖芯片,都有公司做出了成熟的產(chǎn)品。
雖然技術(shù)的發(fā)展雖然說日新月異,但卻是一脈相承的,每一個(gè)新的技術(shù)的出現(xiàn)其實(shí)就是在舊的技術(shù)的有一點(diǎn)小小上的創(chuàng)新。除非發(fā)送像工業(yè)革命那樣翻天覆地的技術(shù)革新,新的技術(shù)直接取代了舊的技術(shù),在大多數(shù)時(shí)間中,技術(shù)的發(fā)展是平穩(wěn)而又預(yù)期的發(fā)展的。技術(shù)底層的革新是非常緩慢的,也是百年難一遇,可遇而不可求的。在大多時(shí)間中的技術(shù)發(fā)展,其實(shí)就是對(duì)前人做的產(chǎn)品基礎(chǔ)上修修補(bǔ)補(bǔ),增添功能,做到功能更好,性能更高,僅此而已。所以在個(gè)人一生的時(shí)間尺度之內(nèi),技術(shù)的發(fā)展其實(shí)是有跡可循的。已有的技術(shù)是基礎(chǔ),要掌握,新型的技術(shù)是技術(shù)發(fā)展的趨勢,要學(xué)習(xí)。當(dāng)你掌握了你領(lǐng)域的相關(guān)的技術(shù)時(shí),其實(shí)很容易向其他技術(shù)去擴(kuò)展的,不斷學(xué)習(xí),不斷尋找機(jī)遇,幸運(yùn)會(huì)青睞于有理想,并為理想做出行動(dòng)的人的。
評(píng)論
查看更多