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