3設(shè)計(jì)特色(1)簡(jiǎn)潔的高效率本地總線在SOC設(shè)計(jì)中,內(nèi)部及外部總線的選擇是一個(gè)非常重要的因素,一個(gè)高效、簡(jiǎn)潔的總線可以讓芯片的運(yùn)行效率和可擴(kuò)充性提高。在ARM結(jié)構(gòu)體系的SOC芯片設(shè)計(jì)中,ARM公司一般推薦采用標(biāo)準(zhǔn)的AMBA總線來(lái)進(jìn)行設(shè)計(jì)。同時(shí),ARM7TDMI核本身還帶有一個(gè)簡(jiǎn)單的內(nèi)部總線。在決定采用的總線規(guī)范前,我們對(duì)SM1658的體系結(jié)構(gòu)和應(yīng)用特點(diǎn)進(jìn)行了下面的分析。AMBA總線的優(yōu)點(diǎn)之一就是可以支持多個(gè)主設(shè)備的調(diào)用、裁決和數(shù)據(jù)的
3 設(shè)計(jì)特色
(1)簡(jiǎn)潔的高效率本地總線
在
SOC設(shè)計(jì)中,內(nèi)部及外部總線的選擇是一個(gè)非常重要的因素,一個(gè)高效、簡(jiǎn)潔的總線可以讓芯片的運(yùn)行效率和可擴(kuò)充性提高。
在ARM 結(jié)構(gòu)體系的SOC 芯片設(shè)計(jì)中,ARM 公司一般推薦采用標(biāo)準(zhǔn)的AMBA 總線來(lái)進(jìn)行設(shè)計(jì)。同時(shí),ARM7TDMI 核本身還帶有一個(gè)簡(jiǎn)單的內(nèi)部總線。在決定采用的總線規(guī)范前,我們對(duì)SM1658 的體系結(jié)構(gòu)和應(yīng)用特點(diǎn)進(jìn)行了下面的分析。
AMBA 總線的優(yōu)點(diǎn)之一就是可以支持多個(gè)主設(shè)備的調(diào)用、裁決和數(shù)據(jù)的流水處理。在SM1658 中,只有一個(gè)主設(shè)備ARM7TDMI,其他
模塊電路都處于從設(shè)備狀態(tài),由
CPU統(tǒng)一進(jìn)行調(diào)度,而且所有的外部從設(shè)備都與主設(shè)備采用相同的時(shí)鐘,可以在單個(gè)時(shí)鐘內(nèi)立即響應(yīng)CPU 的訪問(wèn)。因此,在這個(gè)方面采用ARM7TDMI 本地的總線更有優(yōu)勢(shì)。
如果使用AMBA 總線,設(shè)計(jì)團(tuán)隊(duì)可以使用大量的第三方
IP模塊,這些IP 模塊都符合AMBA 總線的規(guī)范要求,并且經(jīng)過(guò)了嚴(yán)格的驗(yàn)證。在SM1658 的芯片設(shè)計(jì)中,我們?yōu)榱俗畲蟪潭鹊慕档托酒某杀,同時(shí)客觀上也由于重要的模塊電路都沒(méi)有合適的IP 可以使用,所以我們自己設(shè)計(jì)了所有的電路模塊。那么,想通過(guò)使用IP 來(lái)節(jié)省開(kāi)發(fā)時(shí)間就沒(méi)有可行性了。
此外,如果使用AMBA 總線,就必須在原有的ARM7TDMI 的3J流水線上增加一級(jí)流水,并將ARM7TDMI 的雙時(shí)鐘邊沿的總線結(jié)構(gòu)轉(zhuǎn)變?yōu)閱螘r(shí)鐘邊沿的總線結(jié)構(gòu),這樣可以簡(jiǎn)化芯片后期的設(shè)計(jì)工作量。但是,這樣對(duì)于某些跳轉(zhuǎn)指令就多損失了一個(gè)時(shí)鐘周期,降低了CPU 的工作效率。此外,使用AMBA 總線,CPU 和每個(gè)模塊都需要增加AMBA 總線的接口邏輯,增加了芯片的規(guī)模和成本。
最后,我們從芯片的最大使用效率和簡(jiǎn)化邏輯控制的方面出發(fā),決定參考ARM7TDMI 接口,規(guī)劃了一種簡(jiǎn)潔的本地總線。使用這種總線有幾個(gè)優(yōu)勢(shì):總線狀態(tài)相對(duì)簡(jiǎn)單,不需要進(jìn)行復(fù)雜的AMBA 總線協(xié)議驗(yàn)證;對(duì)模塊的接口功能要求低,接口電路非常簡(jiǎn)單;減少了流水線長(zhǎng)度,在一個(gè)最高時(shí)鐘由IP 硬核固定了的SOC 芯片中,流水減少就意味著芯片的代碼執(zhí)行效率的提高。同時(shí),通過(guò)對(duì)總線結(jié)構(gòu)和時(shí)序上進(jìn)行嚴(yán)格的約束和驗(yàn)證,確保了芯片后期設(shè)計(jì)的正確性。
(2)帶有軟件冗余的內(nèi)部SRAM
ARM7TDMI 是一款沒(méi)有內(nèi)部
CACHE 的CPU 核,對(duì)于慢速的SRAM、
FLASH存儲(chǔ)器的訪問(wèn)只能插入等待。即使采用了高速的外部SRAM,由于數(shù)據(jù)接口寬度和芯片與芯片之間的
數(shù)據(jù)傳輸的延遲,也不能有效的用到高速CPU 的全部性能;同時(shí),大容量的高速SRAM 價(jià)格昂貴,將會(huì)大大增加CAM 系統(tǒng)的成本。從系統(tǒng)結(jié)構(gòu)和成本方面考慮,我們決定在SM1658 中嵌入一個(gè)SRAM 模塊,此SRAM 容量可以滿足相當(dāng)部分CAM 系統(tǒng)的應(yīng)用需求。同時(shí),我們的芯片也支持各種外部高速和低速SRAM,對(duì)于一些SRAM需求非常大的系統(tǒng)也可以滿足要求。