單晶片系統片上系統(英語:System on a Chip縮寫SoC)是一個將電腦或其他電子系統整合到單一晶片的集成電路[1]。單晶片系統可以處理數碼訊號模擬訊號混訊甚至更高頻率的訊號。單晶片系統常常應用在嵌入式系統[2]。單晶片系統的整合規模很大,一般達到幾百萬門到幾千萬門。[3]

儘管微控制器通常只有不到100kB的隨機存取記憶體,但是事實上它也是一台小電腦的結構,一種簡易的、功能弱化的單晶片系統,而一般認知的「單晶片系統」這個術語常被用來指功能更加強大的處理器,這些處理器可以執行WindowsLinux的某些版本。單晶片系統更強的功能要求它具備外部記憶晶片,例如有的單晶片系統配備了快閃記憶體。單晶片系統往往可以連接額外的外部裝置。單晶片系統對半導體元件的整合規模提出了更高的要求。為了更好地執行更複雜的任務,一些單晶片系統採用了多個處理器核心。[4]:1

基本架構

Thumb
基於微控制器的單晶片系統

典型的單晶片系統具有以下部分:

數據的流動主要藉助了系統中的I/O匯流排,例如安謀國際科技公司的進階微控制器匯流排架構。採用DMA控制器,則可以使得外部數據直接被傳送到記憶體,無需經過中央處理器,這可以大大改善數據吞吐的效率。

設計流程

Thumb
單晶片系統的設計流程示意圖

一個完整單晶片系統由硬件和軟件兩部分組成,其中軟件用於控制硬件部分的控制器微處理器數碼訊號處理器核心以及外部裝置和介面。單晶片系統的設計流程主要是其硬件和軟件的設計。

由於單晶片系統的整合度已經達到數百萬門,工程師必須儘可能採取可重用的設計思路。大部分的單晶片系統都使用了預定義的半導體知識產權核(矽智財,包括軟核、硬核和固核),以可重用設計的方式來完成快速設計。與以往的集成電路設計相比,可重用設計要求設計人員的工作更加標準化,例如規範的代碼書寫風格等等。[4]:4-5[4]:68-110設計人員需要關注硬件驅動程式的實現,從而實現具體的功能。協定棧是一個重要的概念,它與諸如通用序列匯流排的介面的工業標準有關。設計人員通常使用電腦輔助工程工具來把已經設計(或者購買)的核連接在一起,這時整合式開發環境可以被用來整合包含不同子功能的模組。

設計的晶片在被送到工廠進行硬件製程製造之前,設計人員會採取不同方式對晶片的邏輯功能進行驗證。功能驗證的重要性絲毫不亞於集成電路設計,對於現代的超大型積體電路,這一步驟在整個設計周期中將花費相當的時間和金錢。[5]為了應對晶片極高的複雜程度,類似SystemVerilogSystemC、e驗證語言和OpenVera硬件驗證語言逐漸變得流行。在驗證階段,系統軟件的程式錯誤可以被反饋到設計人員那裏,以便進行針對性的修正。

工程師通常會使用精心設計的仿真器或者在通用的現場可程式化邏輯閘陣列(FPGA)上執行程式,來測試之前進行的系統級、行為級(或用另一個術語暫存器傳輸級,即RTL)的設計代碼,這一步的目的是在設計專案在進行最後的硬件生產(投片)之前,其軟、硬件的功能、效能得到最後的確認,並改正所有功能、時序、功耗上的錯誤。

其中,使用現場可程式化邏輯閘陣列構建產品原型的工作方式可以讓工程師評估、測試各種刺激(stimulus)施加在系統時,系統的執行狀態。相關的電子設計自動化工具包括Certus[6],它可以被用來分析、檢測系統設計的暫存器傳輸級代碼,監視其中的變數和訊號在整個執行過程中的變化。

在功能驗證過程結束之後,工程師還會採取電腦輔助工程的方式完成佈局布線流程,這一步他們需要關注何種佈局布線方式可以儘可能地減少連線之間的訊號干擾和延遲,功率也是另外一個考慮的重點。[4]:42-46

參考文獻

相關條目

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.