SoC的全稱為System on a Chip,即片上系統,SoC芯片最早從智能手機發展起來,通過將CPU、GPU、內存、ISP、DSP、Codec等系統部件打包集成在一顆芯片內,具有降低耗電量、減少體積、增加系統功能、提高速度、節省成本等特點。當前,隨著智能化、電氣化的快速發展,而SoC芯片的地位越來越高,今天這篇文章就來聊一聊SoC設計應該如何進行。
首先,SoC設計是圍繞總線來開展設計的,SoC最需要掌握的核心知識點在于微機原理課程上面講的那些總線和接口的概念,比如說三總線,什么叫主(Master)什么叫從(Slave),通過這些概念可以理解處理器如何通過總線把數據讀出、寫入,從而理解如何通過處理器對于整個系統芯片加以控制和管理。
一、如何理解總線?
就是要搞明白主從模式的通信機制,處理器作為主機,是啟動通信的一方。外部設備和電影上的存儲器作為從機器,是響應主機啟動的通信。在此基礎上,我們需要進一步了解總線的時間順序,以及從在總線上啟動通信到通信結束的整個過程。這樣,我們就可以理解如何通過軟件訪問特定的地址空間。
二、SoC如何實現IP核的集成:
為了實現IP核的集成,本質上需要將數據寫入并讀取結果。也就是說,需要IP處理的數據可以某種方式輸入IP核,IP核處理后的結果可以通過某種方式讀取。如果IP本身有多種功能,則需要以特定的方式將需要完成的功能類型傳輸給IP核。如果結果完成,您還需要通過某種方式告知CPU目前的計算已經結束。這些都需要通過寫入/讀取來實現。
三、SoC設計上 軟硬件協同如何解決:
這就要做好軟件和硬件IP核的任務劃分和規劃了。一般說來,用處理器執行的軟件部分適合完成調度、決策、判斷等管理性質的任務,而硬件IP核適合完成比較規整的運算任務。而在軟硬件的劃分邊緣,就要設置合理的寄存器組來傳遞信號和數據。
例如,我們要實現一個快速計算三角函數的電路。那就需要實現一個Cordic算法的硬件計算單元。但僅僅實現這個硬件單元還不夠,還需要編寫一段軟件代碼把外部讀取的運算數據送進去、設置需要完成的計算(Cos/Sin等)、在運算完成以后把計算的結果讀出。而在這個過程中還要有必要的握手、聯絡過程。可以依靠程序查詢的方式來完成,也可以依靠中斷的方式完成。
ALL RIGHT RESERVED 2022. 粵ICP備17095549號 技術支持: 牛商股份 百度統計 粵公網安備 44030402004503號