一種DSP內(nèi)嵌DARAM的電路設(shè)計(jì)與ADvance MS仿真驗(yàn)證
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹了一種DSP芯片內(nèi)嵌DARAM的電路結(jié)構(gòu),詳細(xì)分析了接口電路中各個(gè)模塊的功能,包括地址譯碼電路,字線譯碼電路,位線選擇電路及控制電路四部分內(nèi)容。著重介紹了控制電路的原理,及如何實(shí)現(xiàn)一個(gè)周期“雙存取”的功能。利用數(shù)?;旌戏抡婀ぞ逜Dvance MS對(duì)整體電路進(jìn)行仿真,結(jié)果證明DARAM可以在一個(gè)時(shí)鐘周期內(nèi)完成一次讀和一次寫操作,實(shí)現(xiàn)預(yù)期的功能,為DSP設(shè)計(jì)乃至SOC的設(shè)計(jì)工作提供了參考。
在復(fù)雜的系統(tǒng)級(jí)微處理器設(shè)計(jì)中,存儲(chǔ)器負(fù)責(zé)系統(tǒng)程序和數(shù)據(jù)的儲(chǔ)存,是整個(gè)系統(tǒng)的重要組成部分,在CPU執(zhí)行指令的過(guò)程中,要經(jīng)常被訪問(wèn)存儲(chǔ)器,所以存儲(chǔ)器的讀寫速度會(huì)影響指令執(zhí)行的速度。RAM是系統(tǒng)芯片中常用的存儲(chǔ)器,用來(lái)存放數(shù)據(jù),普通的RAM在一個(gè)時(shí)鐘周期內(nèi)只能進(jìn)行一次讀或?qū)懖僮?,即CPU在一個(gè)時(shí)鐘周期內(nèi)只能訪問(wèn)存儲(chǔ)器一次,稱為單存取隨機(jī)存儲(chǔ)器(Single-Access On-Chip RAM),而雙存取隨機(jī)存儲(chǔ)器(Dual-Access On-Chip RAM)可以在一個(gè)吋鐘周期內(nèi)進(jìn)行數(shù)據(jù)的讀和寫兩次操作。利用DARAM一個(gè)周期內(nèi)“雙存取”的特點(diǎn),可以大幅提高CPU執(zhí)行指令的速度,進(jìn)而提高整個(gè)系統(tǒng)的性能。
1 DARAM整體電路
DARAM整體電路如圖1所示,該DARAM的大小為256字x 16位,用來(lái)存儲(chǔ)數(shù)據(jù),輸入信號(hào)為兩相不交疊時(shí)鐘SCLOCK1和SCLOCK2,數(shù)據(jù)寫總線DWE,數(shù)據(jù)讀地址總線DRA和數(shù)據(jù)寫地址總線DWA,讀使能R_en和寫使能W_en(高電平有效),輸出信號(hào)為數(shù)據(jù)讀總線DRD。
DARAM的存儲(chǔ)陣列根據(jù)地址的高低分為大小相等的兩塊,接口電路主要包括地址譯碼、地址選擇、字線譯碼、位線選擇和控制電路幾個(gè)部分。其中,控制電路中的讀寫使能信號(hào)與內(nèi)部時(shí)鐘共同作用產(chǎn)生的脈沖信號(hào),會(huì)使地址選擇電路在一個(gè)時(shí)鐘周期內(nèi)的高低電平部分,分別輸出讀地址和寫地址,這樣就可以使位線選擇電路在一個(gè)周期內(nèi)進(jìn)行讀寫兩次操作,這是接口電路中的重要部分,也是隨機(jī)存儲(chǔ)器可以進(jìn)行“雙存取”的關(guān)鍵。
2 DARAM電路設(shè)計(jì)
2.1 地址譯碼
該DARAM的物理地址為0300H-03FFH,所以讀寫地址的高8位必須為“0000_0011”,地址譯碼電路的功能就是判斷高8位地址是否匹配,如果地址匹配W_en和R_en才會(huì)輸入到控制電路。
2.2 控制電路
控制電路實(shí)現(xiàn)的功能有:產(chǎn)生內(nèi)部時(shí)鐘,讀寫脈沖信號(hào)和預(yù)充電控制信號(hào)OE。
圖2中SCLOCK1和SCLOCK2高電平不交疊,當(dāng)SCLOCK1為高時(shí)輸出0,SCLOCK2為高時(shí)輸出1,都為低時(shí)輸出保持不變,這樣兩相時(shí)鐘就轉(zhuǎn)換成一相內(nèi)部時(shí)鐘CLK,如圖3。
圖4產(chǎn)生的讀寫脈沖信號(hào)Rs與Ws會(huì)控制地址選擇模塊。W_en經(jīng)過(guò)一個(gè)高電平觸發(fā)的觸發(fā)器,是為了寄存半個(gè)周期的時(shí)間,使輸出的讀脈沖Rs和寫脈沖Ws交替產(chǎn)生,形成單周期雙脈沖,是可以實(shí)現(xiàn)“雙存取”的關(guān)鍵。
圖5電路中,當(dāng)進(jìn)行讀操作時(shí),R_en為高,在時(shí)鐘上跳的瞬間,由于邏輯門的延遲,輸出信號(hào)會(huì)出現(xiàn)一小段低電平,之后再升高,這樣就產(chǎn)生了一個(gè)很窄的脈沖Rss,見(jiàn)圖6。類似的,由SCLOCK2和W_en也會(huì)產(chǎn)生寫信號(hào)窄脈沖Wss。
Rss與Wss并不是最后控制讀寫放大器的控制脈沖,因?yàn)樽x出與寫入數(shù)據(jù)的時(shí)間很關(guān)鍵,也就是說(shuō)脈沖的寬度要很精確,讀脈沖如果過(guò)寬的話不僅會(huì)增大靈敏放大器的能量消耗,也會(huì)減慢數(shù)據(jù)讀出的速度,時(shí)間要恰好使位線上的電壓可以滿足靈敏放大器的靈敏度,而寫脈沖如果太窄,數(shù)據(jù)會(huì)無(wú)法寫入,所以要設(shè)計(jì)的恰到好處。
圖7所示電路可以產(chǎn)生讀寫控制脈沖和預(yù)充電控制信號(hào)。RSE是讀脈沖,WSE是寫脈沖,OE是預(yù)充電控制信號(hào),由讀寫地址的第7位A7選擇要控制的存儲(chǔ)塊。負(fù)載電容的大小就決定了讀寫脈沖的寬度,所以需經(jīng)過(guò)精確設(shè)計(jì)。最終輸出的波形如圖8。
2.3 地址選擇
由控制電路產(chǎn)生的Rs和Ws會(huì)控制DRA和DWA低8位的傳輸,使兩條地址總線有選擇性的輸出,產(chǎn)生一條8位的讀寫地址總線,其中地址[1:0]經(jīng)過(guò)譯碼會(huì)控制四條位線,進(jìn)行位線選擇,地址[6:2]會(huì)進(jìn)行字線譯碼,地址經(jīng)過(guò)控制電路產(chǎn)生存儲(chǔ)陣列的塊選擇信號(hào)。
2.4 位線選擇與存儲(chǔ)陣列
位線選擇電路包括讀寫放大器和多路選擇器。圖9為一個(gè)位線選擇單元,根據(jù)最低兩位數(shù)據(jù)地址來(lái)選擇4組位線,由讀寫控制脈沖RSE和WSE決定對(duì)位線進(jìn)行讀或?qū)懖僮鳌_@就意味著在一個(gè)周期內(nèi),并不是對(duì)任意兩個(gè)讀寫地址都可以進(jìn)行操作,也就是說(shuō),進(jìn)行“雙存取”的兩個(gè)地址必須相近,這也是可以實(shí)現(xiàn)“雙存取”的關(guān)鍵。
存儲(chǔ)陣列的結(jié)構(gòu)如圖10。存儲(chǔ)單元為常用的6管SRAM單元,進(jìn)行讀寫操作時(shí),OE由低變高,預(yù)充電管關(guān)閉,通過(guò)讀寫放大器對(duì)位線的充電與放電來(lái)實(shí)現(xiàn)數(shù)據(jù)讀寫。
3 仿真驗(yàn)證
為了使仿真結(jié)果準(zhǔn)確,輸入波形應(yīng)該與實(shí)際情況一致,先用ModelSim對(duì)整體DSP芯片進(jìn)行仿真,然后觀察DARAM的輸入端,按照所得的輸入信號(hào)再單獨(dú)對(duì)DARAM進(jìn)行仿真,由于電路中既有數(shù)字電路也有模擬電路,所以采用數(shù)?;旌戏抡娴姆椒ǎ肁Dvance MS對(duì)該電路進(jìn)行仿真。仿真波形如圖11。
在4個(gè)時(shí)鐘周期內(nèi),對(duì)DARAM進(jìn)行三次寫操作和三次讀操作,數(shù)據(jù)在SCLOCK2上升沿時(shí)寫入,在SCLOCK1上升沿時(shí)讀出,在第二個(gè)周期與第三個(gè)周期內(nèi),W_en和R_en同時(shí)使能,也就是要在一個(gè)周期內(nèi)進(jìn)行兩次操作,進(jìn)行“雙存取”。從兩塊存儲(chǔ)陣列中讀出的數(shù)據(jù)分別為DRD0和DRD1,可以看出,DRD0依次讀出的三組數(shù)據(jù)0123H、4567H和89ABH即為前一周期寫入的數(shù)據(jù),說(shuō)明此電路可以正確的讀寫數(shù)據(jù),也可以在一個(gè)周期內(nèi)完成一次讀操作和一次寫操作。
4 結(jié)束語(yǔ)
本文以一款國(guó)外公司的DSP為例,介紹了其內(nèi)嵌的一塊DARAM的整體電路,給出了關(guān)鍵部分的具體電路,并結(jié)合仿真波形,詳細(xì)介紹了電路的工作原理,最后采用數(shù)?;旌戏抡娴姆椒?,用ADvance MS對(duì)整體的電路進(jìn)行仿真,結(jié)果證明此電路可以實(shí)現(xiàn)一個(gè)周期內(nèi)的“雙存取”功能,可以為DSP乃至SOC中存儲(chǔ)器接口電路的設(shè)計(jì)提供一種參考。