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