今天上午開了個(gè)務(wù)虛會(huì),和研究生一起探討了一下SoC設(shè)計(jì)的一般概念,發(fā)現(xiàn)很多同學(xué)根本沒有抓到SoC設(shè)計(jì)的核心。現(xiàn)在趁著討論的熱度還沒有過去,現(xiàn)在先在這記錄一下。
SoC設(shè)計(jì)是圍繞著什么在設(shè)計(jì)?
SoC設(shè)計(jì)是圍繞著總線來開展設(shè)計(jì)的。SoC最需要掌握的核心知識(shí)點(diǎn)其實(shí)并不是什么SoC的概念之類的,而是微機(jī)原理課程上面講的那些總線和接口的概念。例如什么叫三總線,什么叫主(Master)什么叫從(Slave)等等。
通過掌握這些概念可以理解處理器如何通過總線把數(shù)據(jù)讀出、寫入,從而理解如何通過處理器對(duì)于整個(gè)系統(tǒng)芯片加以控制和管理。
在理解總線時(shí),最核心的一點(diǎn)是要理解主-從模式的通信機(jī)制。既處理器作為主機(jī),是發(fā)起通信的一方。而外設(shè)、片上存儲(chǔ)器作為從機(jī),是響應(yīng)主機(jī)發(fā)起的通信。更在此基礎(chǔ)上進(jìn)一步的,需要理解總線的時(shí)序,理解在總線上發(fā)起通信到通信結(jié)束的全過程。這樣就可以理解,如何能夠通過軟件對(duì)于特定的地址空間加以訪問。
SoC如何實(shí)現(xiàn)IP核的集成?
要實(shí)現(xiàn)IP核的集成,本質(zhì)上是要讓數(shù)據(jù)寫得進(jìn),結(jié)果讀得出。也就是把需要這個(gè)IP處理的數(shù)據(jù)能以某種方式輸入到這個(gè)IP核內(nèi)部,在IP核在數(shù)據(jù)處理完畢以后的結(jié)果通過某種方式能夠讀出。如果這個(gè)IP本身的功能有好多種,還需要通過一個(gè)特定的方式把需要完成的功能類型傳輸給IP核。而如果結(jié)果運(yùn)算完畢了,則還需要以某種方式來告知CPU現(xiàn)在的運(yùn)算已經(jīng)結(jié)束。這些都是需要由寫得進(jìn)/讀得出的方式來實(shí)現(xiàn)的。
那么如何實(shí)現(xiàn)數(shù)據(jù)寫得進(jìn),結(jié)果讀得出呢?說到底就是要實(shí)現(xiàn)IP核在軟件層面的“可見”。要讓軟件層面可見,就需要能夠通過執(zhí)行指令的方式對(duì)IP核進(jìn)行訪問。如何訪問,當(dāng)然是通過總線?下圖一目了然:
SoC設(shè)計(jì)上軟硬件協(xié)同如何解決?
這就要做好軟件和硬件IP核的任務(wù)劃分和規(guī)劃了。一般說來,用處理器執(zhí)行的軟件部分適合完成調(diào)度、決策、判斷等管理性質(zhì)的任務(wù),而硬件IP核適合完成比較規(guī)整的運(yùn)算任務(wù)。而在軟硬件的劃分邊緣,就要設(shè)置合理的寄存器組來傳遞信號(hào)和數(shù)據(jù)。
例如,我們要實(shí)現(xiàn)一個(gè)快速計(jì)算三角函數(shù)的電路。那就需要實(shí)現(xiàn)一個(gè)Cordic算法的硬件計(jì)算單元。但僅僅實(shí)現(xiàn)這個(gè)硬件單元還不夠,還需要編寫一段軟件代碼把外部讀取的運(yùn)算數(shù)據(jù)送進(jìn)去、設(shè)置需要完成的計(jì)算(Cos/Sin等)、在運(yùn)算完成以后把計(jì)算的結(jié)果讀出。而在這個(gè)過程中還要有必要的握手、聯(lián)絡(luò)過程??梢砸揽砍绦虿樵兊姆绞絹硗瓿桑部梢砸揽恐袛嗟姆绞酵瓿?。
其實(shí)以上這些內(nèi)容,不是靠學(xué)習(xí)什么《SoC設(shè)計(jì)》之類無聊的課程習(xí)得的,核心的問題都在《微機(jī)原理》里面講清楚了。然而現(xiàn)在很多高校的教務(wù)部門以及部分高校教師,在急不可耐的將《微機(jī)原理》趕出培養(yǎng)方案,而用快餐式的單片機(jī)、嵌入式系統(tǒng)設(shè)計(jì)或者SoC設(shè)計(jì)之類的課題替代。這種短視而愚蠢的行為,最終卻要無辜的學(xué)生買單。各位看到本博客的同學(xué),如果你們的學(xué)校/學(xué)院也在干類似的事情,你們一定要警惕啊!
-
處理器
+關(guān)注
關(guān)注
68文章
19293瀏覽量
229965 -
soc
+關(guān)注
關(guān)注
38文章
4169瀏覽量
218350
原文標(biāo)題:【博文精選】淺談一下SoC設(shè)計(jì)的核心理念
文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論