《TigerSHARC處理器技術(shù)及其應(yīng)用》課件第8章_第1頁
《TigerSHARC處理器技術(shù)及其應(yīng)用》課件第8章_第2頁
《TigerSHARC處理器技術(shù)及其應(yīng)用》課件第8章_第3頁
《TigerSHARC處理器技術(shù)及其應(yīng)用》課件第8章_第4頁
《TigerSHARC處理器技術(shù)及其應(yīng)用》課件第8章_第5頁
已閱讀5頁,還剩226頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章TS系列DSP系統(tǒng)設(shè)計(jì)技術(shù)8.1TS處理器的復(fù)位電路設(shè)計(jì)8.2TS處理器的引導(dǎo)模式和引導(dǎo)程序8.3初始化程序和特殊引腳8.4TS處理器系統(tǒng)時(shí)鐘設(shè)計(jì)8.5TS處理器電源單元設(shè)計(jì)8.6JTAG接口設(shè)計(jì)8.7信號(hào)處理系統(tǒng)設(shè)計(jì)8.8多處理器系統(tǒng)的數(shù)據(jù)傳輸和同步協(xié)調(diào)技術(shù) 8.1TS處理器的復(fù)位電路設(shè)計(jì)

8.1.1TS101S的復(fù)位方式

TS101S的上電復(fù)位波形比較特殊,在設(shè)計(jì)復(fù)位電路時(shí)應(yīng)引起充分重視。除了可以利用軟件復(fù)位外,TS101S的硬件復(fù)位為兩級(jí)復(fù)位,一是上電復(fù)位,一是上電穩(wěn)定后的任何正常復(fù)位。要使TS101S產(chǎn)生正確的復(fù)位,必須在TS101S的復(fù)位引腳上輸入滿足復(fù)位時(shí)序要求的外部復(fù)位信號(hào)。圖8.1-1TS101S上電復(fù)位時(shí)序圖8.1-2利用TS101S正常復(fù)位時(shí)序8.1.2TS101S處理器復(fù)位電路設(shè)計(jì)

根據(jù)TS101S處理器復(fù)位波形的特殊要求,在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),外部復(fù)位輸入必須滿足其時(shí)序要求。下面重點(diǎn)討論TS101S復(fù)位的常用電路。

通常要產(chǎn)生以上波形,既可以利用專用復(fù)位芯片實(shí)現(xiàn),也可以通過FPGA編程實(shí)現(xiàn)。在一般的信號(hào)處理系統(tǒng)中,通常都使用FPGA/CPLD器件進(jìn)行接口或者邏輯應(yīng)用,因此可以利用其中的資源實(shí)現(xiàn)復(fù)位信號(hào)設(shè)計(jì)。當(dāng)使用FPGA產(chǎn)生上電復(fù)位波形和時(shí)序控制時(shí),由于FPGA也有自己的復(fù)位和配置過程,所以它和DSP加電過程存在一個(gè)次序的問題。上電后,如果CPLD芯片完成配置文件的讀入時(shí),DSP仍未上電穩(wěn)定,則應(yīng)充分延長(zhǎng)復(fù)位起始階段TSTART_LO的低電平時(shí)間,避免DSP上電未穩(wěn)定而FPGA提供的上電復(fù)位波形已產(chǎn)生和結(jié)束。如果DSP上電穩(wěn)定快于FPGA芯片配置文件的讀入,則不必考慮。此問題在系統(tǒng)設(shè)計(jì)時(shí)應(yīng)予以充分重視,否則DSP將無法正常工作。圖8.1-3利用FPGA構(gòu)成的復(fù)位邏輯電路

此外,也可以采用專門的復(fù)位電路芯片構(gòu)成滿足時(shí)序的復(fù)位電路。如ADM708S和ADM809-5S等。ADM708S是電源監(jiān)控芯片,在電源上電、掉電或者電源低于某個(gè)門限值的情況下,會(huì)在復(fù)位引腳上產(chǎn)生復(fù)位脈沖,復(fù)位脈沖寬度典型值為200ms。這樣,也可以用于DSP復(fù)位信號(hào)的產(chǎn)生。當(dāng)然,該ADM708S的輸出信號(hào)仍然需要經(jīng)過圖8.1-3的處理邏輯,才能連接到DSP的復(fù)位引腳上。

ADM809-5S與ADM708S的功能類似,也是專門用于多處理器系統(tǒng)中的電源監(jiān)控芯片,當(dāng)該芯片上電時(shí),或者電源輸入低于某個(gè)門限值時(shí),將在輸出引腳上產(chǎn)生一個(gè)低電平有效的復(fù)位信號(hào)。通過芯片內(nèi)部的定時(shí)器,低電平能維持50ms以上,其用法與ADM708S類似。8.2TS處理器的引導(dǎo)模式和引導(dǎo)程序前兩種情況屬于硬件復(fù)位,硬件復(fù)位會(huì)引起處理器自動(dòng)進(jìn)行程序引導(dǎo)。軟件復(fù)位時(shí),TS處理器只是跳轉(zhuǎn)到復(fù)位向量處執(zhí)行,并且不執(zhí)行從外部引導(dǎo)程序的操作。

所謂引導(dǎo),就是TS處理器在硬件復(fù)位的情況下,自動(dòng)從片外裝載程序代碼的過程。用戶在VisualDSP++下調(diào)試程序成功后,就要考慮如何在無仿真器的狀態(tài)下,把代碼加載到TS處理器的片內(nèi)或片外存儲(chǔ)器中。只有一種例外,那就是TS處理器擴(kuò)展了非易失的外部存儲(chǔ)器,而且此外部存儲(chǔ)器是32位寬的。復(fù)位后TS處理器直接執(zhí)行外部存儲(chǔ)器中的程序代碼,這稱為“非引導(dǎo)”(noboot)模式。

TS處理器支持兩類引導(dǎo)模式:主引導(dǎo)(masterboot)和從引導(dǎo)(slaveboot)模式。在主引導(dǎo)模式下,TS處理器作為主動(dòng)方,用外部口輸出地址、讀和BMS等控制信號(hào),從EPROM或FLASH中加載代碼。在從引導(dǎo)模式下,TS處理器作為被動(dòng)方,不向外部輸出控制信號(hào),外部主機(jī)或其他設(shè)備通過TS處理器的主機(jī)接口、鏈路口傳送要加載的代碼;TS處理器僅僅啟動(dòng)若干DMA,并執(zhí)行第一個(gè)DMA所接收到的加載核。另外,還可以選擇“非引導(dǎo)”模式或利用TS處理器的EZ-ICE仿真器通過JTAG口加載程序。

通過BMS管腳可以將引導(dǎo)模式設(shè)置成主引導(dǎo)或從引導(dǎo)模式。在復(fù)位期間,如果BMS管腳為低,則選擇EPROM或FLASH引導(dǎo);如果該管腳為高,則TS處理器進(jìn)入空閑狀態(tài),等待主機(jī)接口或鏈路口的引導(dǎo)信號(hào),進(jìn)入從引導(dǎo)模式。復(fù)位后,DMA通道0被自動(dòng)配置好,DMA相應(yīng)的兩個(gè)TCB被初始化,于是從8位的外部引導(dǎo)EPROM地址0開始,把一個(gè)256字的程序塊傳送到內(nèi)部存儲(chǔ)器地址0x00~0xFF。DMA通道0的中斷矢量初始化為內(nèi)部存儲(chǔ)器地址0x00。當(dāng)DMA通道0傳送完成時(shí),產(chǎn)生中斷,TS處理器開始從0x00執(zhí)行加載核。然后,加載核通過一種單字DMA傳送將后續(xù)應(yīng)用代碼和數(shù)據(jù)加載。最后,加載核啟動(dòng)一個(gè)256字的DMA,使其自身被用戶應(yīng)用程序代碼覆蓋。當(dāng)該DMA過程完成時(shí),DMA通道0的中斷矢量入口地址為內(nèi)部存儲(chǔ)器地址0,用戶的應(yīng)用代碼從此地址開始執(zhí)行。EPROM引導(dǎo)自動(dòng)使用8→32位的專用打包方式,低位在前,完成對(duì)EPROM的DMA讀,只有DMA通道0支持該專用打包模式,故EPROM引導(dǎo)過程必須用該通道。另外,內(nèi)核不能用指令(使BMS有效)訪問引導(dǎo)EPROM。對(duì)EPROM的每一個(gè)讀訪問,TS處理器需要插入16個(gè)等待周期。

2.主機(jī)引導(dǎo)或鏈路口引導(dǎo)

在復(fù)位期間,如果BMS管腳為高,則TS處理器進(jìn)入空閑狀態(tài),等待主機(jī)(host)接口或鏈路口(linkport)的引導(dǎo)信號(hào)。因此,如果需要通過主機(jī)引導(dǎo)模式加載處理器,那么必須將BMS管腳上拉到處理器的I/O電源。TS處理器自動(dòng)檢測(cè)主機(jī)或者鏈路口的活動(dòng),確定進(jìn)入主機(jī)或者鏈路口引導(dǎo)方式。主機(jī)(Host)引導(dǎo)時(shí),32位或64位主機(jī)通過外部口的數(shù)據(jù)和地址總線完成對(duì)TS處理器的引導(dǎo)。主機(jī)引導(dǎo)利用TS處理器的任何一個(gè)AutoDMA通道(DMA0或者DMA1,復(fù)位后被激活和初始化)進(jìn)行代碼傳送。除了引導(dǎo)通道不同外,其引導(dǎo)過程與EPROM引導(dǎo)相同。主機(jī)通過DMA狀態(tài)寄存器DSTAT監(jiān)視AutoDMA的狀態(tài),以保證在引導(dǎo)過程中AutoDMA緩沖不發(fā)生overrun錯(cuò)誤(緩沖因填滿而丟數(shù))。默認(rèn)情況下,加電復(fù)位后外部總線寬度被設(shè)置成32位,因此,作為總線持有者的主機(jī)必須使用流水線協(xié)議與TS處理器通信。

任何一個(gè)鏈路口均能用于引導(dǎo)。鏈路口(linkport)引導(dǎo)使用TS處理器的任何一個(gè)鏈路口DMA通道。除了引導(dǎo)通道不同外,其引導(dǎo)過程與EPROM引導(dǎo)相同。VisualDSP++軟件開發(fā)工具中默認(rèn)使用鏈路口3完成鏈路引導(dǎo),其過程與主機(jī)引導(dǎo)模式相似。8.2.2引導(dǎo)程序的生成方法

在VisualDSP++集成開發(fā)工具的示例程序中,提供了包括TS處理器在內(nèi)的各種處理器的不同引導(dǎo)模式的加載程序源代碼文件及其相應(yīng)的工程文件。它們通常位于安裝路徑的…\TS\ldr目錄中,如果需要,可以查閱這些文件。

在VisualDSP++集成開發(fā)工具中嵌入了引導(dǎo)程序生成工具(elfloader.exe),可以將工程中的用戶可執(zhí)行文件(*.dxe)生成加載文件(*.ldr)。在VisualDSP++中,選擇PROJECT屬性頁的編譯類型的選項(xiàng)為加載文件(LOADERFILE),然后在LOAD屬性頁選擇加載方式,如圖8.2-1所示。圖8.2-1工程中的LOAD屬性頁示例8.2.3引導(dǎo)程序舉例

以EPROM引導(dǎo)為例,默認(rèn)情況下,VisualDSP++工具提供的引導(dǎo)程序生成程序(elfloader.exe)接受用戶可執(zhí)行文件(*.dxe)和加載運(yùn)行文件(默認(rèn):Ts101_prom.dxe,即加載核),并生成EPROM加載器輸出文件(即加載碼*.ldr)。該加載器輸出文件定義引導(dǎo)過程中TS處理器的內(nèi)部和外部存儲(chǔ)器變量塊如何被初始化,其格式如圖8.2-2所示。其中塊標(biāo)簽字(用來識(shí)別不同的初始化塊)的格式如圖8.2-3所示。圖8.2-2EPROM加載格式圖8.2-3標(biāo)簽字格式加載核(bootloadkernel)分為多種引導(dǎo)模式的程序代碼。這些程序代碼從EPROM、鏈路口或主機(jī)接口裝入TS處理器,其過程比較復(fù)雜。下面以EPROM引導(dǎo)模式的加載核程序?yàn)槔齺碚f明其過程。

(1)加載核(TS101_prom.dxe)存放在EPROM/FLASH存儲(chǔ)器的0x0000~0x003ff。它通過TS處理器的DMA0通道加載到內(nèi)部存儲(chǔ)器0x00000000~0x000000ff。當(dāng)加載核被加載到TS處理器的內(nèi)部存儲(chǔ)器塊0后,產(chǎn)生DMA0中斷,使TS處理器退出空閑狀態(tài)。TS處理器開始從地址0x00000000執(zhí)行加載核。此時(shí),TS處理器處于DMA0中斷級(jí),比DMA0優(yōu)先級(jí)高的中斷和全局中斷(PMASK[60])是無效的。

(2)加載核設(shè)置SQCTL寄存器中的NMOD位,確保DSP運(yùn)行在監(jiān)督模式。RDS指令把當(dāng)前的中斷降低為子程序級(jí)。DMA0和全局中斷重新使能。

(3)?DMA0中斷矢量指向dma_int。DMA0被配置為:從EPROM的地址0x400(0x0000~0x03ff放的是加載核TS101_prom.dxe)開始傳送數(shù)據(jù)到內(nèi)部存儲(chǔ)器0x00000000(處理器的標(biāo)識(shí)符,一個(gè)或兩個(gè)字)。DMA服務(wù)程序要進(jìn)行:編程TCB來啟動(dòng)DMA,修正EPROM指針,保持處理器處于IDLE狀態(tài)。當(dāng)DMA中斷發(fā)生時(shí),程序控制器指向DMA0中斷矢量。在此矢量處,RTI指令使程序控制器返回到DMA服務(wù)程序,繼續(xù)執(zhí)行加載核。

(4)因?yàn)樵撘龑?dǎo)不是鏈路引導(dǎo),所以所有的鏈路口DMA通道控制寄存器復(fù)位,所有的鏈路口DMA無效。

(5)處理器ID被存儲(chǔ)在XR10。

(6)加載核判斷來自EPROM的數(shù)據(jù)塊。前兩個(gè)字被傳送到內(nèi)存0x00000000和0x00000001,這兩個(gè)字是后續(xù)數(shù)據(jù)塊的標(biāo)簽字。第一個(gè)字的位31:30是塊的類型,位29:27是塊的ID,位26:16為保留位,位15:0是塊長(zhǎng)度(count)。第二個(gè)標(biāo)簽字是指向目的地址的指針。

(7)塊的ID與存儲(chǔ)在XR10中的處理器ID比較。如果不同,則跳過該EPROM塊,跳過的地址量由標(biāo)簽字的類型和長(zhǎng)度值指定。如果ID號(hào)相同,則檢測(cè)類型值。如果類型為1,則此塊被傳送到目的地址,一次一個(gè)字。如果類型為2,則標(biāo)簽字中若干個(gè)0被傳送到目的地址,個(gè)數(shù)=長(zhǎng)度值。以上兩種情況中傳送一旦完成,就返回到步驟(5),重復(fù)執(zhí)行。

(8)如果TYPE為0,則加載核執(zhí)行“FinalInit”,也就是,用戶應(yīng)用代碼把加載核覆蓋,256字放入地址0x00000000~0x000000ff。這是最后一個(gè)DMA,可將處理器從IDLE狀態(tài)喚醒,完成加載核的自我覆蓋。但是,簡(jiǎn)單的自我覆蓋會(huì)使用戶應(yīng)用代碼在DMA0中斷級(jí)開始執(zhí)行。為了解決這一問題,加載核使用了下面的方法:①用戶應(yīng)用代碼的第一個(gè)四字(最終放在0x00000000~0x00000003)被存儲(chǔ)在xR11:8。

②下面的代碼被寫入0x00000000~0x00000003:

RETI=0;;NOP;;RTI(NP);Q[j31+=0]=xR11:8;;

DMA中斷矢量設(shè)置為0x00000000。

④跳轉(zhuǎn)地址緩沖池?zé)o效(BTBINV),以清除緩沖池內(nèi)的任何分支地址。

⑤?DMA把252個(gè)用戶代碼傳送到0x00000004~0x000000ff。

⑥對(duì)TCB編程,啟動(dòng)DMA,處理器進(jìn)入IDLE狀態(tài)。

⑦當(dāng)DMA完成時(shí),響應(yīng)DMA中斷,程序控制器跳到地址0x00000000,開始執(zhí)行步驟②中插入的代碼。⑧執(zhí)行下列指令:

RTI(NP);Q[j31+=0]=xR11:8;;

這些指令使中斷降級(jí),用戶應(yīng)用代碼被放到0x00000000~0x00000003,控制器跳到地址0x00000000繼續(xù)執(zhí)行(因?yàn)镽ETI被設(shè)置為0x00000000)。用戶代碼從0x00000000開始,不處于中斷級(jí)。注意,“無預(yù)測(cè)”(NP)選項(xiàng)是必需的,以使RTI指令不在BTB中緩存。

值得注意的是:如果系統(tǒng)中的外部存儲(chǔ)器需要被特殊初始化(如SDRAM),則這個(gè)存儲(chǔ)器應(yīng)由加載核來配置和初始化。因此,用戶需要修改加載核,按照具體應(yīng)用重新編寫加載核,但必須保證加載核長(zhǎng)度不超過256個(gè)字。默認(rèn)的加載核源代碼如下:

/*******************************************************/

.sectionseg_ldr;

/*****************Startofcode*************************/

_main:

xr0=0x00000201;; //設(shè)置程序控制寄存器的NMOD和BTB使能

SQCTLST=xr0;; //傳送到寄存器SQCTLST

rds;; //中斷簡(jiǎn)化為子程序

//如果用戶要對(duì)SDRAM控制寄存器等進(jìn)行配置,在此處完成

jL0=0;;

jL1=0;;

j0=_dma_int;; //設(shè)置DMA中斷矢量

IVDMA0=j0;; //使能全局和DMA0中斷

yr0=0;; //使用零初始化

LCTL0=yr0;; //關(guān)閉并且清除鏈路口

LCTL1=yr0;;

LCTL2=yr0;;

LCTL3=yr0;;

xr1=0x00040004;; //count=4,modify=4

xr3=0x00000000;;

DC4=xr3:0;; //關(guān)閉DMA

DC5=xr3:0;;

DC6=xr3:0;;

DC7=xr3:0;;

DC8=xr3:0;;

DC9=xr3:0;;

DC10=xr3:0;;

DC11=xr3:0;;

xr0=0x400;; //xr0=源變址寄存器

xr3=0xc3000000;; //初始化參數(shù)

xr4=0;; //xr4=目的地址寄存器

xr7=0x43000000;; //初使化參數(shù)

xr8=1;;

xr10=SYSTAT;;

xr1=0x00000007;;

xr10=r1andr10;; //xr10=處理器ID

/*********************************************************/

_boot_loop:

xr1=0x00020004;; //源count=2,modify=4

xr5=0x00020001;; //目的count=2,modify=1

xr9=8;; //prom指針修正值

call_do_dma(NP);; //讀處理器DMA傳輸

xr2=[j31+=0];; //讀處理器ID、type和count

j0=[j31+1];; //讀目的

xr1=0x0000FFFF;;

xr9=r1andr2;; //屏蔽count

xr6=0x00001B03;;

xr6=fextr2byr6;; //提取處理器ID

xcomp(r6,r10);; //比較是否相同

ifnxaeq,jump_wrong_id(NP);; //如果不同,則跳轉(zhuǎn)

xr6=0x00001E02;;

xr6=fextr2byr6;; //否則,提取類型

ifxseq,jump_final_init(NP);; //如果為0,則初始化

xr6=r6-r8;; //為1時(shí)

ifxaeq,jump_init_data(NP);; //非0數(shù)據(jù)初始化

/**********************************************/

_zero_init: //否則,零數(shù)據(jù)初始化

LC0=xr9;; //傳送count到循環(huán)計(jì)數(shù)器

_zero_init_loop:

[j0+=1]=yr0;; //用0初始化

ifNLC0E,jump_zero_init_loop(NP);;

jump_boot_loop(NP);; //檢查下一項(xiàng)

/*******************************************/

_init_data:

LC0=xr9;; //傳送count到循環(huán)計(jì)數(shù)器

xr1=0x00010004;; //源count=1,modify=4

xr5=0x00010001;; //目的count=1,modify=1

xr9=4;; //prom指針修正值

_init_data_1:

call_do_dma(NP);; //DMA傳輸

xr6=[j31+=0];; //讀一個(gè)字

[j0+=1]=xr6;; //寫一個(gè)字

ifNLC0E,jump_init_data_1(NP);;

jump_boot_loop(NP);; //檢查下一個(gè)塊

/*************************************************/

_wrong_id:

xr6=0x000001E02;;

xr6=fextr2byr6;; //提取類型

ifxseq,jump_skip_255(NP);; //如果為0,則轉(zhuǎn)為初始化

xr9=lshiftr9by2;; //否則,4倍count

xr6=r6-r8;; //如果為1

ifxaeq,jump_skip_block(NP);; //跳轉(zhuǎn)到skipblock

xr9=0;; //否則為0,零初始化,不跳轉(zhuǎn)

jump_skip_block(NP);;

_skip_255:

xr9=0x3FC;; //prom指針修正值

=255×4

_skip_block:

xr0=r0+r9;; //調(diào)整prom指針

jump_boot_loop(NP);; //檢查下一個(gè)塊

/************************************************************

本程序用DMA0傳送數(shù)據(jù)

輸入:xr3:0=源TCB,xr7:4=目的TCB,xr9=prom指針修正值*****************************************************/

_do_dma:

DCS0=xr3:0;; //啟動(dòng)DMA

DCD0=xr7:4;;

idle;; //等待DMA中斷

xr0=r0+r9;; //調(diào)整prom指針

cjmp(NP)(ABS);; //返回

/*******************DMA0ISR*************************/

_dma_int:

nop;; //注意:RTI不能為ISR的第一個(gè)指令

rti(ABS)(NP);;

/***************FinalInit—完成加載核自我覆蓋*************/

_final_init:

xr9=4;; //最終初始化僅僅一個(gè)

xr0=r0-r9;; //備份一個(gè)字(4Byte)

xr1=0x00040004;; //源count=4,modify=4

xr5=0x00040001;; //目的count=4,modifier=1

xr9=16;;

call_do_dma(NP);; //DMA傳輸

xr11:8=Q[j31+=0];; //前4條用戶指令放置到xr11:8

j0=_last_patch_code;; //移動(dòng)到位置0x00000000~0x00000003

j1=0;;

LC0=4;;

_patch_loop:

xr6=[j0+=1];;

[j1+=1]=xr6;;

ifNLC0E,jump_patch_loop(NP);;

j1=0;; //設(shè)置DMA0中斷矢量0x00000000

IVDMA0=j1;;

yr0=0x80000000;; //IMASKH值,屏蔽除仿真器中斷之外的其他中斷

xr1=0x00FC0004;; //count=0xFC,modifier=4

xr4=4;; //起始位置0x4,臨時(shí)位置0x0~0x3

xr5=0x00FC0001;; //count=0xFC,modifier=1

btbinv;; //cache不可用

DCS0=xr3:0;; //啟動(dòng)DMA

DCD0=xr7:4;;

idle;;

//等待DMA完成

//DMA0中斷后,跳轉(zhuǎn)到0x0執(zhí)行

/****************LastPatch************************/

_last_patch_code:

RETI=0;; //設(shè)置RETI到0x0(臨時(shí))

IMASKH=yr0;; //屏蔽中斷

rti(ABS)(NP);Q[j31+=0]=xr11:8;; //簡(jiǎn)化中斷

nop;;

nop;;

nop;;

nop;;

8.3初始化程序和特殊引腳

8.3.1初始化參數(shù)

1.主要寄存器

●?SYSCON:該寄存器定義總線控制配置。硬件復(fù)位后,只能對(duì)其進(jìn)行一次編程,系統(tǒng)運(yùn)行期間它是不能被改變的,即第一次編程后,任何對(duì)它的寫均被忽略。SYSCON的初始值是0x000279E7。它定義了所有總線為32位寬,使用3個(gè)等待狀態(tài)的慢速流水線協(xié)議?!?SDRCON:該寄存器定義了SDRAM配置。復(fù)位后,只能對(duì)其進(jìn)行一次編程,系統(tǒng)運(yùn)行期間它是不能被改變的。SDRCON的初始化值是零,意味著復(fù)位后SDRAM是關(guān)閉的。

●?SQCTL:通過向該寄存器寫,來配置和控制程序控制器,復(fù)位后其值為0x0100。它表示處理器工作在用戶模式下。

●?BUSLK:該寄存器定義總線狀態(tài),復(fù)位后其值為0。當(dāng)該寄存器中位0置1時(shí),處理器請(qǐng)求總線,并在該位置1期間占用總線。

2.中斷初始化狀態(tài)

中斷初始化狀態(tài)如表8.3-1所示。

3.總線

系統(tǒng)復(fù)位后,對(duì)存儲(chǔ)器、主機(jī)和多處器訪問的外部總線寬度設(shè)為32位。總線配置為3個(gè)等待狀態(tài)的慢速流水線協(xié)議。

4.?SDRAM

系統(tǒng)復(fù)位后,SDRAM是關(guān)閉的,要訪問SDRAM,就需要配置SDRCON寄存器,并對(duì)SDRAM芯片進(jìn)行初始化。配置內(nèi)容包括行、列BANK的數(shù)目,刷新計(jì)數(shù),讀寫延遲等。8.3.2初始化程序舉例

1.?SDRAM初始化程序片段

#include<defts101.h>

#include“TSEZkitDEF.h”

.sectionprogram;

SDRAM_Init:

xr0=SYSCON_MP_WID64|SYSCON_MEM_WID64|

SYSCON_MSH_SLOW|SYSCON_MSH_WT3|SYSCON_MSH_IDLE|

SYSCON_MS1_SLOW|SYSCON_MS1_WT3|SYSCON_MS1_IDLE|

SYSCON_MS0_SLOW|SYSCON_MS0_WT3|SYSCON_MS0_IDLE;;

SYSCON=xr0;;

/*32MbDIMM模型和rev1.3EZ-kit的SDRAM設(shè)置*/

xr0=SDRCON_INIT|SDRCON_RAS2PC4|SDRCON_PC2RAS3|SDRCON_REF1200|

SDRCON_PG256|SDRCON_CLAT2|SDRCON_ENBL;;

SDRCON=xr0;;

2.初始化標(biāo)志管腳FLAG

復(fù)位后,所有FLAG管腳默認(rèn)為輸入管腳,TS處理器的SQSTAT將鎖存其值。下面的代碼表示如何將FLAG2管腳變換為輸出管腳。

xr0=SQCTL;; /*讀程序控制寄存器*/

xr0=bsetr0bySQCTL_FLAG_EN_P;; /*設(shè)置Flag2作為輸出(位22)*/

SQCTL=xr0;; /*寫控制寄存器*/8.3.3特殊引腳功能說明

1.?strap引腳

1)?TS101S的strap引腳

TS處理器的strap引腳是復(fù)用引腳,在上電復(fù)位期間有特殊用途,用來確定處理器的工作模式,復(fù)位后正常工作時(shí),其功能又將發(fā)生變化。

TS101S的strap引腳的定義和功能如表8.3-2所示。

2)?TS201S的strap引腳

TS201S處理器有四個(gè)雙重strap引腳:、、TMR0E和。這些引腳在上電復(fù)位時(shí)可以選擇加載模式、SYSCON/SDRCON寫使能、鏈路口寬度和中斷方式(電平/邊緣)等,且復(fù)位后有其他功能。

這四個(gè)引腳的每一個(gè)都有內(nèi)部上拉電阻、下拉電阻或無電阻(三態(tài))。電阻的類型取決于RST_IN是低電平還是高電平。表8.3-3說明了在復(fù)位和正常工作期間電阻的連接方式。pd_0引腳有5kΩ內(nèi)部下拉電阻,只對(duì)于ID2-0?=?000的處理器;pu_0引腳有5kΩ內(nèi)部上拉電阻,只對(duì)于ID2-0?=?000的處理器。

strap引腳的功能和使用情況簡(jiǎn)要說明如下:

BMS引腳用來設(shè)置EEPROM(默認(rèn))或外部引導(dǎo)模式。在復(fù)位期間,假如處理器的ID2~I(xiàn)D0引腳為000,其BMS內(nèi)部為5kΩ下拉電阻。系統(tǒng)中所有其他ID2~I(xiàn)D0編號(hào)為1到N的DSPs的BMS內(nèi)部沒有上拉或下拉電阻。要改變默認(rèn)值,可在BMS和VDD_IO之間連接500Ω的上拉電阻。

BM引腳設(shè)置IRQ3~I(xiàn)RQ0的中斷屏蔽(默認(rèn))和中斷使能。在復(fù)位期間,BM內(nèi)部為5kΩ的內(nèi)部下拉電阻。要改變默認(rèn)值,可在BMS和VDD_IO之間連接500Ω的上拉電阻。

2.阻抗匹配和驅(qū)動(dòng)能力配置引腳

1)?TS101S的阻抗匹配和驅(qū)動(dòng)能力配置引腳

TS101S的阻抗匹配引腳為CONTROLIMP2~CONTROLIMP0,用于選擇正常驅(qū)動(dòng)模式和ADC驅(qū)動(dòng)模式。驅(qū)動(dòng)強(qiáng)度選擇引腳DS2~DS0,用于選擇驅(qū)動(dòng)強(qiáng)度。CONTROLIMP2~CONTROLIMP0的定義在表8.3-4中給出,DS2~DS0的定義在表8.3-5中給出,其中驅(qū)動(dòng)強(qiáng)度7為100%。

2)?TS201S的阻抗匹配和驅(qū)動(dòng)能力配置引腳

TS101S的阻抗匹配引腳為CONTROLIMP1~CONTROLIMP0,用于選擇正常驅(qū)動(dòng)模式、脈沖模式和ADC驅(qū)動(dòng)模式。CONTROLIMP0內(nèi)部有5kΩ下拉電阻,CONTROLIMP1內(nèi)部有5kΩ上拉電阻,這些引腳用于控制輸出的驅(qū)動(dòng)阻抗。CONTROLIMP1~CONTROLIMP0的定義在表8.3-6中給出。驅(qū)動(dòng)強(qiáng)度選擇引腳DS2~DS0,用于選擇驅(qū)動(dòng)強(qiáng)度。DS2和DS0內(nèi)部有5kΩ上拉電阻,DS1內(nèi)部有5kΩ下拉電阻。這些引腳控制ADSP—TS20xS輸出的驅(qū)動(dòng)強(qiáng)度。DS2~DS0的定義在表8.3-7中給出。

3)?TS201S的ENEDREG配置引腳

不使用內(nèi)部整流器時(shí),ENEDREG引腳必須接到VSS(地)。如果需要使用內(nèi)部整流器,這個(gè)引腳需要上拉到電源。ENEDREG引腳內(nèi)部有5kΩ上拉電阻,它用來選擇內(nèi)部DRAM電源整流器是失能還是使能。

8.4TS處理器系統(tǒng)時(shí)鐘設(shè)計(jì)

8.4.1TS101S系統(tǒng)時(shí)鐘設(shè)計(jì)

TS101S有兩對(duì)差分時(shí)鐘輸入引腳,分別是LCLK_P(N)和SCLK_P(N)。輸入時(shí)鐘經(jīng)過內(nèi)部的時(shí)鐘管理單元后,形成DSP內(nèi)部時(shí)鐘,它們分別是SCLK(系統(tǒng)時(shí)鐘)和CCLK(內(nèi)核時(shí)鐘)。其相互關(guān)系如圖8.4-1所示。圖8.4-1時(shí)鐘關(guān)系

1)系統(tǒng)時(shí)鐘SCLK

SCLK是系統(tǒng)時(shí)鐘,它為外部總線接口提供時(shí)鐘。外部總線接口運(yùn)行于1×SCLK頻率,同時(shí)SCLK與TS101S的外部輸入時(shí)鐘頻率相同,即內(nèi)部的DLL將輸入時(shí)鐘SCLK_P鎖定后的輸出稱為系統(tǒng)時(shí)鐘SCLK。最大的SCLK時(shí)鐘頻率為DSP內(nèi)核時(shí)鐘CCLK頻率的一半。注意,在外部連接時(shí),SCLK_P和LCLK_P引腳必須連接到同一個(gè)時(shí)鐘源。

2)內(nèi)核時(shí)鐘CCLK

CCLK是內(nèi)核時(shí)鐘,它由LCLK驅(qū)動(dòng)內(nèi)部的鎖相環(huán)PLL形成。CCLK為處理器的內(nèi)核、內(nèi)部總線、存儲(chǔ)器和鏈路口提供時(shí)鐘源,指令執(zhí)行速度也等于CCLK。處理器的LCLKRAT引腳確定由LCLK到CCLK的時(shí)鐘倍頻數(shù),倍頻數(shù)的選擇參見表8.4-1。由表8.4-1可以看出,最高的內(nèi)核時(shí)鐘頻率可以達(dá)到輸入時(shí)鐘的六倍。但需要注意的是,內(nèi)核時(shí)鐘最高只能工作在300MHz。系統(tǒng)時(shí)鐘SCLK的輸入范圍是40~100MHz。鏈路口的時(shí)鐘有CCLK驅(qū)動(dòng),鏈路口的時(shí)鐘頻率最高為CCLK的1/2。如內(nèi)核工作頻率為250MHz時(shí),鏈路口的時(shí)鐘為125MHz。鏈路口時(shí)鐘由CCLK通過軟件可編程分頻器得到。

將SCLK和LCLK連接到同一個(gè)時(shí)鐘源是芯片內(nèi)部的要求。在設(shè)置倍頻系數(shù)時(shí),所得到的核時(shí)鐘周期最好是整數(shù)。當(dāng)然,設(shè)置成非整數(shù)值在功能上也是可以的,但是需要注意,得到的時(shí)鐘的占空比要滿足50%左右的要求。

在設(shè)計(jì)時(shí)鐘電路時(shí),還必須增加專門的濾波電路,以確保時(shí)鐘的穩(wěn)定性。圖8.4-2給出了VREF、SCLK_N和LCLK_N的濾波電路,該電路為參考電壓輸出、系統(tǒng)時(shí)鐘和局部參考時(shí)鐘提供了參考電壓。圖8.4-2時(shí)鐘輸入濾波電路

在設(shè)計(jì)系統(tǒng)時(shí)鐘電路時(shí),由于處理器內(nèi)核工作時(shí)鐘頻率不斷提高,雖然在內(nèi)部采用PLL電路來提高內(nèi)核工作時(shí)鐘的穩(wěn)定性,但仍然要求外部輸入時(shí)鐘信號(hào)是穩(wěn)定的并且不能有較大的抖動(dòng)。否則在多時(shí)鐘源系統(tǒng)中,就會(huì)導(dǎo)致整個(gè)系統(tǒng)的時(shí)鐘混亂甚至工作不穩(wěn)定。

在上圖中,R1為2kΩ電阻,R2為1.67kΩ電阻,C1為1μF電容(SMD),C2為1nF電容(HFSMD),并且盡量貼近DSP引腳放置。通常,在多處理器系統(tǒng)內(nèi),要求采用同頻同相的時(shí)鐘。實(shí)際上,在整個(gè)信號(hào)處理系統(tǒng)中,盡管系統(tǒng)由多塊電路板組成,但也要求有一個(gè)統(tǒng)一的時(shí)鐘。此外,在多處理器系統(tǒng)中,也應(yīng)由統(tǒng)一的時(shí)鐘源進(jìn)行驅(qū)動(dòng),而且時(shí)鐘信號(hào)要具有較小的失真。這樣處理器之間、處理器與外部設(shè)備之間才能進(jìn)行有效的同步通信。TS處理器的工作頻率很高,對(duì)時(shí)鐘參數(shù)和抖動(dòng)的要求也很高,LCLK/SCLK最大的輸入抖動(dòng)偏差為100ps。在選擇時(shí)鐘驅(qū)動(dòng)芯片時(shí),必須查閱相關(guān)的資料,選擇合適的時(shí)鐘驅(qū)動(dòng)器,才能保證整個(gè)系統(tǒng)有穩(wěn)定的時(shí)鐘源。否則,高頻時(shí)鐘的抖動(dòng)會(huì)引起內(nèi)部時(shí)鐘周期不穩(wěn),使DSP運(yùn)行不可靠或者出錯(cuò)?;谝陨峡紤],在時(shí)鐘電路設(shè)計(jì)中應(yīng)注意以下幾點(diǎn):

(1)由一個(gè)晶振(或外接時(shí)鐘)作為多處理器系統(tǒng)的同頻同相時(shí)鐘源。

(2)同一電路板上各個(gè)DSP的時(shí)鐘用同一驅(qū)動(dòng)器的各個(gè)門分別并行驅(qū)動(dòng),不應(yīng)采用串行驅(qū)動(dòng)方式,更不能將不同頻率的時(shí)鐘源用同一個(gè)時(shí)鐘驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng)。圖8.4-3所示為扇型驅(qū)動(dòng)方式。驅(qū)動(dòng)器可以采用ACTQ240,IDT49FCT805/A或CY7C992等。圖8.4-3扇型驅(qū)動(dòng)器

(3)時(shí)鐘部分應(yīng)處于電路板中央位置,使時(shí)鐘驅(qū)動(dòng)線到各DSP的距離大體相等,保證各時(shí)鐘的相位差在一個(gè)允許的范圍內(nèi)。

(4)用高速小規(guī)模集成電路驅(qū)動(dòng)時(shí),還應(yīng)選擇其正、負(fù)相驅(qū)動(dòng)延時(shí)相差較小的芯片。

(5)在PCB布時(shí)鐘線時(shí),時(shí)鐘線應(yīng)盡可能靠近地線層,且盡可能短。如果布線較長(zhǎng),則時(shí)鐘驅(qū)動(dòng)線應(yīng)串接30Ω左右的串聯(lián)匹配電阻,以減少信號(hào)反射(適用于TTL電路驅(qū)動(dòng))。當(dāng)然,如果條件允許,在PCB設(shè)計(jì)過程中最好進(jìn)行信號(hào)完整性仿真。圖8.4-4多處理器系統(tǒng)時(shí)鐘配置電路8.4.2TS201S的系統(tǒng)時(shí)鐘設(shè)計(jì)

TS201S的時(shí)鐘輸入引腳是SCLK,稱為SCLK(系統(tǒng)時(shí)鐘)。輸入時(shí)鐘經(jīng)過內(nèi)部的時(shí)鐘管理單元后,形成DSP內(nèi)部的4種時(shí)鐘,它們分別是SCLK(系統(tǒng)時(shí)鐘)、CCLK(內(nèi)核時(shí)鐘)、外設(shè)總線時(shí)鐘(SOCCLK)和鏈路口時(shí)鐘(LxCLKOUT)。其相互關(guān)系如圖8.4-5所示。圖8.4-5TS201S處理器的系統(tǒng)時(shí)鐘

TS201S處理器系統(tǒng)時(shí)鐘包含:

(1)系統(tǒng)時(shí)鐘SCLK:為外部總線口提供時(shí)鐘。

(2)內(nèi)核時(shí)鐘CCLK:作為內(nèi)核、內(nèi)部總線、存儲(chǔ)器以及鏈路口的時(shí)鐘,指令執(zhí)行速度也等于CCLK。內(nèi)核時(shí)鐘由SCLK倍頻得到,其關(guān)系是CCLK=SCLK×SCLKRATx,而SCLKRATx是時(shí)鐘倍頻比選擇引腳,它的取值范圍為4~12。

(3)外設(shè)總線時(shí)鐘SOCCLK:是I/O處理器的總線時(shí)鐘,通常等于1/2×CCLK。

(4)鏈路口輸出時(shí)鐘LxCLKOUT:等于CCLK/CR,CR為寄存器LCTLx中的速度設(shè)置位,其取值范圍為1~4。圖8.4-6Rev0.x版SCLKRC延遲電路

8.5TS處理器電源單元設(shè)計(jì)

8.5.1TS處理器電源供電的特點(diǎn)和要求

1.?TS處理器電源供電的主要特點(diǎn)

TS處理器的電源供電有以下主要特點(diǎn):

(1)供電電壓種類多。為了減小處理器的功耗,它們的電源都采用分區(qū)供電,其內(nèi)核電源電壓和I/O供電電壓分別供電,需提供多種供電電壓。如TS101S需要提供內(nèi)核電源、I/O電源VDD和模擬電源等三種電源電壓;TS201S除了上述三種電源外,還需要為內(nèi)部的SDRAM提供電源。

(2)內(nèi)核電壓供電電壓低、電流大。如TS101S的內(nèi)核電壓為1.2V,典型工作電流為1.4A;TS201S的內(nèi)核電壓為1.0V,典型工作電流為1.8A。

(3)電源電壓的穩(wěn)定度要求高,一般為5%左右。如TS101S的內(nèi)核電壓的正常工作范圍為1.14~1.26V,TS201S的內(nèi)核電壓的正常工作范圍為1.0~1.1V。電源電壓只允許80~100mV的波動(dòng)范圍,因此其穩(wěn)定度要求很高。

(4)電源輸入引腳多,使用時(shí)每個(gè)電源輸入引腳都必須連接在相應(yīng)的電源上,不能忽略不連。

(5)對(duì)電源的加電次序有一定的要求,一般需要同時(shí)加電,也可以先加內(nèi)核電源,然后加I/O電源。

(6)各電源必須設(shè)計(jì)獨(dú)立的濾波電路,以減小相互影響并提高濾波效果。濾波電容應(yīng)盡可能靠近引腳放置。

2.?TS101S電源供電的基本要求

TS101S的內(nèi)核時(shí)鐘的最高工作頻率為250MHz或者300MHz。其內(nèi)部有三種電源:數(shù)字3.3V,用于I/O供電;數(shù)字1.2V,用于DSP內(nèi)核供電;模擬1.2V,用于內(nèi)部鎖相環(huán)電路供電。TigerSHARCDSP要求數(shù)字3.3V和1.2V同時(shí)上電。若無法嚴(yán)格同步,應(yīng)保證內(nèi)核電源1.2V先上電,I/O電源3.3V后上電。

TS101S的總功耗由兩部分組成:一部分是由內(nèi)部電路引起的,稱為內(nèi)核功耗;一部分是由外部輸出驅(qū)動(dòng)切換引起的,稱為IO功耗。

內(nèi)核功耗(VDD供電)取決于指令的執(zhí)行順序、指令的并行程度和工作頻率等因素。表8.5-1給出了各種不同條件下TS101S的內(nèi)核電源的電流IDD的值。圖8.5-1工作電流估算方法按照上面的估計(jì)方法,需要了解系統(tǒng)在不同情況下工作的比例。在系統(tǒng)設(shè)計(jì)階段,要得到這些時(shí)間比是件不太容易的事情。根據(jù)我們開發(fā)工作的經(jīng)驗(yàn),典型情況下內(nèi)核電流

IDD?=?0.8~1.2A。

TS101S內(nèi)核的最大工作電流與外界溫度和其工作頻率都有關(guān)系。圖8.5-2和8.5-3分別給出了內(nèi)核工作電流隨頻率和溫度的變化曲線。在常溫和正常工作電壓下,TS101S內(nèi)核工作電流為1.277A,它是DSP進(jìn)行單指令多數(shù)據(jù)(SIMD)方式下,4個(gè)16位定點(diǎn)字乘加與兩個(gè)四字讀取并行操作,同時(shí)還需要進(jìn)行由外部口到內(nèi)部存儲(chǔ)器的DMA操作,工作頻率為250MHz條件下所需的工作電流。圖8.5-2工作電流與頻率的關(guān)系(250MHz核時(shí)鐘)圖8.5-3工作電流與溫度的關(guān)系供給DSP內(nèi)核的電流可根據(jù)不同的并行處理任務(wù)和內(nèi)核工作頻率確定。若并行處理較少,工作頻率低,則所需電流就小。最大內(nèi)核功耗為內(nèi)核電壓與電流的乘積。

I/O功耗(對(duì)VDD_IO)主要是輸出引腳(例如:數(shù)據(jù)線的某個(gè)位由高到低,或由低到高)切換消耗的,而且該功耗與系統(tǒng)的外部擴(kuò)展情況和器件特性有關(guān)。其功耗值主要由以下參數(shù)決定:

(1)在每個(gè)周期中需要切換的輸出引腳數(shù)量;

(2)輸出引腳的負(fù)載電容值;

(3)該引腳上的電壓峰峰值;

(4)該引腳上可以切換的最大頻率。I/O部分的平均電流為0.137A,功耗為

PDD_IO?=?0.1370A?×?3.3V?=?0.45W

3.?TS201S電源供電的基本要求

值得注意的是,TS201S處理器功耗遠(yuǎn)大于TS101S,需要附加專門的散熱器,否則當(dāng)TS201S的工作頻率超過300MHz時(shí),在室溫條件下會(huì)有較嚴(yán)重的發(fā)熱。

TS201S器件消耗的總功率是處理器的每個(gè)電壓域(VDD、VDD_DRAM、VDD_IO)上消耗的功率總和,包括內(nèi)核邏輯、內(nèi)部DRAM、I/O邏輯等。作為器件功耗計(jì)算的基礎(chǔ),先分析各電源的電流消耗量。

1)?VDD電流

VDD電源上的總內(nèi)部電流消耗(IDD)是處理器的靜態(tài)和動(dòng)態(tài)分量之和。由于處理器的動(dòng)態(tài)活動(dòng)取決于應(yīng)用代碼和相關(guān)數(shù)據(jù)操作數(shù)的指令執(zhí)行序列,在估計(jì)處理器內(nèi)核消耗的動(dòng)態(tài)電流(IDD_DYN)時(shí),了解指令的執(zhí)行是非常重要的??梢酝ㄟ^將不同活動(dòng)級(jí)的加權(quán)平均值與基線動(dòng)態(tài)電流特性相乘,得到動(dòng)態(tài)電流消耗。

下面的定義適用于表8.5-3所示的內(nèi)部動(dòng)態(tài)活動(dòng)級(jí)(IDD_DYN)。除了IDD_DMA和IDD_IDLE活動(dòng)級(jí),每個(gè)活動(dòng)級(jí)都沒有停頓周期,因此代表了最差情況下的處理器內(nèi)核活動(dòng)。

(1)?IDD_CLU_HIGH_CLU的持續(xù)高活動(dòng)級(jí)操作,定義為XCORRS指令并在每個(gè)周期并行訪問兩個(gè)四字長(zhǎng)數(shù)據(jù)。同時(shí),在同一個(gè)周期中,執(zhí)行64位的并行ALU、SIMD四字長(zhǎng)16位復(fù)數(shù)乘法或64位雙格型歷史寄存器的刷新操作。數(shù)據(jù)的取出和操作是隨機(jī)的,數(shù)據(jù)和指令分別位于獨(dú)立的內(nèi)存塊中,以獲得最高的數(shù)據(jù)吞吐量,并確保不發(fā)生停止周期。這個(gè)IDD_CLU_HIGH活動(dòng)級(jí)還包括一個(gè)同時(shí)的外部端口DMA序列,如IDD_DMA活動(dòng)級(jí)中介紹的那樣。

(2)IDD_CLU_TYP_CLU的持續(xù)典型活動(dòng)級(jí)操作被定義為ACS和PERMUTE指令的組合。ACS指令和四位字長(zhǎng)格型歷史寄存器的讀取一起發(fā)生,還進(jìn)行一個(gè)長(zhǎng)字存儲(chǔ)器訪問;PERMUTE指令與兩個(gè)四字長(zhǎng)數(shù)據(jù)讀取一起發(fā)生。數(shù)據(jù)的取出和操作是隨機(jī)的,數(shù)據(jù)和指令分別位于獨(dú)立的內(nèi)存塊中,以獲得最高的數(shù)據(jù)吞吐量,并確保不發(fā)生停止周期。這個(gè)IDD_CLU_TYP活動(dòng)級(jí)還包括一個(gè)同時(shí)的外部端口DMA序列,如IDD_DMA活動(dòng)級(jí)中介紹的那樣。

(3)?IDD_CLU_LOW_CLU的持續(xù)低活動(dòng)級(jí)操作被定義為TMAX或MAX指令,還進(jìn)行兩個(gè)并行四字長(zhǎng)數(shù)據(jù)讀取,在每個(gè)執(zhí)行周期中的每個(gè)計(jì)算塊中發(fā)生移位操作。數(shù)據(jù)的取出和操作是隨機(jī)的,數(shù)據(jù)和指令分別位于獨(dú)立的內(nèi)存塊中,以獲得最高的數(shù)據(jù)吞吐量,并確保不發(fā)生停止周期。這個(gè)IDD_CLU_LOW活動(dòng)級(jí)還包括一個(gè)同時(shí)的外部端口DMA序列,如IDD_DMA活動(dòng)級(jí)中介紹的那樣。

(4)?IDD_FFT是處理器內(nèi)核的計(jì)算單元的持續(xù)高活動(dòng)級(jí)浮點(diǎn)操作。這個(gè)活動(dòng)級(jí)是一個(gè)SIMD浮點(diǎn)加/減雙操作,還包括下述幾種操作之一:四字長(zhǎng)合并訪問,單個(gè)四字長(zhǎng)數(shù)據(jù)訪問,一個(gè)SIMD浮點(diǎn)乘法和一個(gè)四字長(zhǎng)合并訪問,一個(gè)SIMD浮點(diǎn)乘法和一個(gè)四字長(zhǎng)合并訪問,一個(gè)對(duì)某個(gè)計(jì)算單元中的兩個(gè)通用寄存器的長(zhǎng)字訪問。數(shù)據(jù)的取出和操作是隨機(jī)的,數(shù)據(jù)和指令分別位于獨(dú)立的內(nèi)存塊中,以獲得最高的數(shù)據(jù)吞吐量,并確保不發(fā)生停止周期。這個(gè)IDD_FFT活動(dòng)級(jí)還包括一個(gè)同時(shí)的外部端口DMA序列,如IDD_DMA活動(dòng)級(jí)中介紹的那樣。

(5)?IDD_COMPUTE_HIGH是處理器內(nèi)核的計(jì)算單元的持續(xù)高活動(dòng)級(jí)操作。這個(gè)活動(dòng)級(jí)是下述操作之一:并行進(jìn)行的一個(gè)SIMD四字長(zhǎng)16位定點(diǎn)乘法和一個(gè)SIMD四字長(zhǎng)16位定點(diǎn)加法,并行進(jìn)行的一個(gè)SIMD擴(kuò)展浮點(diǎn)乘法和一個(gè)SIMD擴(kuò)展浮點(diǎn)加法,同時(shí)執(zhí)行雙合并存儲(chǔ)器讀取。數(shù)據(jù)的取出和操作是隨機(jī)的,數(shù)據(jù)和指令分別位于獨(dú)立的內(nèi)存塊中,以獲得最高的數(shù)據(jù)吞吐量,并確保不發(fā)生停止周期。這個(gè)IDD_COMPUTE_HIGH活動(dòng)級(jí)還包括一個(gè)同時(shí)的外部端口DMA序列,如IDD_DMA活動(dòng)級(jí)中介紹的那樣。

(6)?IDD_COMPUTE_TYP是處理器內(nèi)核的計(jì)算單元的持續(xù)典型活動(dòng)級(jí)操作。這個(gè)活動(dòng)級(jí)是下述操作之一:一個(gè)SIMD四字長(zhǎng)16位定點(diǎn)乘法,一個(gè)SIMD四字長(zhǎng)16位定點(diǎn)加法,一個(gè)SIMD擴(kuò)展精度浮點(diǎn)乘法,一個(gè)SIMD擴(kuò)展精度浮點(diǎn)加法。其中任一指令與兩個(gè)四位字長(zhǎng)數(shù)據(jù)取出同時(shí)發(fā)生。取出和操作的數(shù)據(jù)是隨機(jī)的。這個(gè)IDD_COMPUTE_TYP活動(dòng)級(jí)還包括一個(gè)同時(shí)的外部端口DMA序列,如IDD_DMA活動(dòng)級(jí)中介紹的那樣。

(7)?IDD_CTRL是控制活動(dòng)為連續(xù)判斷指令和分支預(yù)測(cè)的序列??晒室鈱⒎种ьA(yù)測(cè)的錯(cuò)誤率設(shè)置為50%,以獲得相同的分配。這個(gè)IDD_CTRL活動(dòng)級(jí)還包括DMA活動(dòng)級(jí),如IDD_DMA活動(dòng)級(jí)中介紹的那樣。

(8)?IDD_DMADMA活動(dòng)是一個(gè)從外部存儲(chǔ)器到內(nèi)部存儲(chǔ)器的單通道外部端口DMA,使用四字長(zhǎng)傳送總共32個(gè)字。DMA被鏈接到自身(以便連續(xù)運(yùn)行),不使用中斷。在初始化DMA序列后,不涉及處理器內(nèi)核,它僅執(zhí)行IDLE;;指令。

(9)IDD_IDLE是用于閑置活動(dòng)的VDD電流。這個(gè)活動(dòng)級(jí)定義為處理器內(nèi)核僅執(zhí)行一個(gè)IDLE;;指令,沒有激活的DMA或中斷。

在VDD域估計(jì)動(dòng)態(tài)電流消耗需要兩步:第一步?jīng)Q定動(dòng)態(tài)基礎(chǔ)電流;第二步?jīng)Q定每個(gè)離散矢量的活動(dòng)占整個(gè)應(yīng)用代碼的百分比。ADSP—TS201SIDD_BASELINE動(dòng)態(tài)電流特性圖如圖8.5-4所示。圖8.5-4TS201SIDD_BASELINE動(dòng)態(tài)電流特性圖通過將動(dòng)態(tài)基礎(chǔ)電流的值與每個(gè)分立矢量的活動(dòng)因子值相乘,可以計(jì)算出處理器內(nèi)核的動(dòng)態(tài)電流。然后,將這個(gè)值與應(yīng)用程序中每個(gè)矢量花費(fèi)的時(shí)間百分比相乘,用等式表示為

(%IDD_CLU_HIGH×IDD_CLU_HIGH活動(dòng)因子×IDD_BASELINE)+

(%IDD_CLU_TYP×IDD_CLU_TYP活動(dòng)因子×IDD_BASELINE)+

(%IDD_CLU_LOW×IDD_CLU_LOW活動(dòng)因子×IDD_BASELINE)+

(%IDD_FFT×IDD_FFT活動(dòng)因子×IDD_BASELINE)+

(%IDD_COMPUTE_HIGH×IDD_COMP_HIGH活動(dòng)因子×IDD_BASELINE)+

(%IDD_COMPUTE_TYP×IDD_COMP_TYP活動(dòng)因子×IDD_BASELINE)+

(%IDD_CTRL×IDD_CTRL活動(dòng)因子×IDD_BASELINE)+

(%IDD_DMA×IDD_DMA活動(dòng)因子×IDD_BASELINE)+

(%IDD_IDLE×IDD_IDLE活動(dòng)因子×IDD_BASELINE)+

=加權(quán)平均總動(dòng)態(tài)電流(IDD_DYN)圖8.5-5典型靜態(tài)電流特性圖圖中的每條曲線代表一個(gè)給定電壓下的基礎(chǔ)靜態(tài)內(nèi)部電流值。為計(jì)算VDD電壓域上的總靜態(tài)電流(IDD_STATIC),從代表設(shè)備電壓的曲線出發(fā),在這條曲線上找到系統(tǒng)中設(shè)備運(yùn)行時(shí)將處于的特定溫度,通過找到曲線左側(cè)標(biāo)簽為“靜態(tài)電流”的縱軸交叉點(diǎn),可以估計(jì)基礎(chǔ)靜態(tài)電流值。

假定所有的處理器內(nèi)核運(yùn)行在VDD=1.05V,TCASE的最大值是25℃。因此,從圖8.5-6可以看出,VDD電壓域消耗的靜態(tài)電流是0.20A。

總內(nèi)核電流(IDD)估計(jì):

IDD=IDD_DYN?+IDD_STATIC

IDD約為2A左右。

2)?VDD_A電流消耗

每個(gè)TS201S處理器包括一個(gè)模擬鎖相同步邏輯(PLL)和相關(guān)電路,為內(nèi)核和外設(shè)邏輯提供時(shí)鐘信號(hào)。

TS201S處理器有兩種工作頻率等級(jí)(500和600MHz),對(duì)每個(gè)工作頻率有兩個(gè)特定的VDD_A電壓要求。因此,對(duì)每個(gè)速度等級(jí)相應(yīng)地有兩種不同的IDD_A電流值:典型值和最大值。

對(duì)于500MHz頻率工作的器件,處理器的模擬電路消耗的典型電流(IDD_A(TYP))是20mA。500MHz時(shí)每個(gè)處理器的最大電流IDD_A(IDD_A(MAX))是50mA。

對(duì)600MHz頻率工作的器件,由于器件工作電壓的提高,IDD_A電流略有增加。每個(gè)處理器的模擬電路消耗的典型電流(IDD_A(TYP))是25mA。600MHz時(shí)每個(gè)處理器的最大電流IDD_A(IDD_A(MAX))是55mA。

3)總內(nèi)部功率(PDD)估計(jì)

由于VDD_A從VDD導(dǎo)出,可以用下式計(jì)算VDD電壓域上的總功耗(PDD)估計(jì)值:PDD=VDD×(IDD+IDD_A(典型值))這個(gè)值約為2.2W左右。

4)?VDD_DRAM電流消耗

TS201S處理器的內(nèi)部DRAM模塊可以從外部電壓源供電。VDD_DRAM源的電壓要求取決于處理器的工作頻率。對(duì)500MHz速度等級(jí)的器件,VDD_DRAM電壓域需要1.50V的電源;對(duì)600MHz速度等級(jí)的設(shè)備,內(nèi)部DRAM的電源必須是1.60V。

(1)對(duì)500MHz的設(shè)備,內(nèi)部DRAM消耗的典型電流值(IDD_DRAM(TYP))是250mA。這個(gè)值代表典型內(nèi)核和I/O活動(dòng)使用內(nèi)部DRAM的過程中所消耗的電流。處理器的內(nèi)部DRAM的典型功耗(PDD_DRAM(TYP))是375mW。

(2)?500MHz設(shè)備的內(nèi)部DRAM消耗的總的最大電流值(IDD_DRAM(MAX))是400mA。因此,處理器的內(nèi)部DRAM消耗的總的最大功率(PDD_DRAM(MAX))是600mW。

(3)對(duì)600MHz的設(shè)備,內(nèi)部DRAM消耗的典型電流(IDD_DRAM(TYP))是280mA。處理器的內(nèi)部DRAM消耗的典型功率(PDD_DRAM(TYP))是448mW。

(4)?600MHz設(shè)備的內(nèi)部DRAM消耗的總的最大電流值(IDD_DRAM(MAX))是430mA。因此,處理器的內(nèi)部DRAM消耗的總的最大功率(PDD_DRAM(MAX))是688mW。

5)?VDD_IO電流消耗

VDD_IO電壓域上總的外部功耗(PDD_IO)包括三部分:外部端口、鏈路口和與外部管腳輸出驅(qū)動(dòng)器和控制邏輯相關(guān)的電路。這三種電流分量包括靜態(tài)和動(dòng)態(tài)分量。

VDD_IO源的外部端口的動(dòng)態(tài)電流消耗由輸出管腳的電平跳變引起,且與系統(tǒng)相關(guān)。對(duì)每個(gè)特定的管腳組,消耗的功率值依賴于:

(1)在每個(gè)周期內(nèi)跳變的輸出管腳數(shù)O;

(2)輸出管腳的負(fù)載電容C;

(3)它們的電壓范圍VDD_IO;

(4)管腳的最高跳變頻率f。負(fù)載電容應(yīng)該包括連接的每個(gè)設(shè)備的輸入電容和處理器自身的輸入電容(CIN)。為了更準(zhǔn)確,應(yīng)盡可能包括PCB走線電容。開關(guān)頻率包括將負(fù)載驅(qū)動(dòng)為高電平,然后回到低電平。地址和數(shù)據(jù)管腳可以在1/2SCLK的最高頻率下驅(qū)動(dòng)為高電平和低電平。

在給定上述4個(gè)參數(shù)后,可計(jì)算外部端口消耗的、VDD_IO

源上的地址、數(shù)據(jù)和控制管腳的平均動(dòng)態(tài)電流值:IDD_IO_EP_DYN=O×C×VDD_IO×?f外部端口靜態(tài)電流是處理器的內(nèi)部電路消耗的靜態(tài)電流。VDD_IO域上的外部端口電路消耗的靜態(tài)電流大約是7.0mA。注意,當(dāng)計(jì)算VDD_IO域上的總電流估計(jì)值時(shí),7mA這個(gè)值包括系統(tǒng)中每個(gè)處理器的貢獻(xiàn)。

VDD_IO域上的鏈路口電流(IDD_IO_LP)消耗包括三個(gè)分量:外部動(dòng)態(tài)電流、內(nèi)部靜態(tài)電流和內(nèi)部動(dòng)態(tài)電流。發(fā)送鏈路口的外部動(dòng)態(tài)電流可以忽略,在電流消耗估計(jì)中可以忽略。(對(duì)接收鏈路口也是如此。)鏈路口的輸出管腳被電流模式驅(qū)動(dòng)器驅(qū)動(dòng),因此差分輸出管腳的邏輯值由電流的方向決定,而不是輸出管腳的電壓值。因此,對(duì)鏈路口的外部動(dòng)態(tài)電流不依賴于C×V×F。而且,LVDS上的外部電容負(fù)載對(duì)鏈路口的電流消耗沒有影響。估計(jì)內(nèi)部靜態(tài)電流的一部分是由于鏈路口和其相關(guān)邏輯的有效電路產(chǎn)生的,這個(gè)分量不依賴于鏈路口的數(shù)據(jù)位寬(1比特或4比特模式)。鏈路口的內(nèi)部靜態(tài)電流的其余部分由差分管腳對(duì)上的端接方法決定。由于LVDS鏈路口使用電流模式驅(qū)動(dòng)器,通過LVDS接收機(jī)的“P”和“N”管腳的100?端接電阻,把“P”和“N”差分模式驅(qū)動(dòng)器連接為電流環(huán)路,對(duì)內(nèi)部靜態(tài)電流有貢獻(xiàn)。內(nèi)部動(dòng)態(tài)電流取決于輸出驅(qū)動(dòng)器電路的跳變頻率和與相關(guān)內(nèi)部電路有關(guān)的電容。(而大多數(shù)動(dòng)態(tài)跳變是由于鏈路口的差分?jǐn)?shù)據(jù)和時(shí)鐘的跳變引起的,盡管傳輸塊結(jié)束時(shí)單端的控制信號(hào)的輸出和響應(yīng)在鏈路口傳輸期間也是跳變的,但它們的貢獻(xiàn)可以被忽略。)

表8.5-4是每個(gè)鏈路口不同頻率、數(shù)據(jù)寬帶、數(shù)據(jù)活動(dòng)級(jí)和端接方法時(shí)的總電流值。(如下面段落介紹的那樣,這個(gè)表中沒使用的LVDS數(shù)據(jù)管腳對(duì)未被連接。)這些值在TCASE?=?85℃和VDD_IO?=?2.5V下得到。下面對(duì)總I/O功率估計(jì)(PDD_IO)進(jìn)行估計(jì)。

對(duì)每個(gè)處理器VDD_IO域上消耗的總功率(PDD_IO),可以通過將總I/O電流估計(jì)值IDD_IO與VDD_IO相乘得到:PDD_IO=VDD_IO×IDD_IO總I/O功率估計(jì)為313mW左右??偟膩碚f,TS201S的功率估計(jì)為P(總)=P(內(nèi)部)+P(外部)+P(edram)

TS201S基本功率值為:

“典型”(Typical)平均核功率@1.00VVdd,500MHz,25C=2.0W;

●“典型”(Typical)平均核功率@1.00VVdd,500MHz,85C=2.7W;

●“最大”(Max)核功率@1.05VVdd,500MHz,85C=3.5W;

●?EDRAM最差情況功率=1W。8.5.2TS101S的電源單元設(shè)計(jì)

1.電源單元設(shè)計(jì)的基本原則

上一節(jié)說明了如何估計(jì)一個(gè)給定系統(tǒng)的內(nèi)部和外部電源的平均電流和平均功耗。在設(shè)計(jì)供電電源時(shí),設(shè)計(jì)人員必須確保供電電源能在功耗最大的情況下提供持續(xù)和穩(wěn)定的功率。

因此,在功耗估計(jì)時(shí),必須使用能確保穩(wěn)定和可靠工作的最大內(nèi)部功耗(PDD)和外部功耗(PDD-IO)的值。這樣就能確保系統(tǒng)在最大活動(dòng)時(shí)為兩個(gè)電源(VDD和PDD_IO)中的每一個(gè)提供足夠大、相對(duì)高效(通常大于90%)的電壓。

具體在設(shè)計(jì)由TS101S構(gòu)成的處理系統(tǒng)時(shí),電源單元設(shè)計(jì)應(yīng)注意以下幾點(diǎn):

(1)注意模擬供電電源(VDD_A)濾波電路的設(shè)計(jì),VDD_A為時(shí)鐘產(chǎn)生器的PLL供電。要產(chǎn)生一個(gè)穩(wěn)定的時(shí)鐘,系統(tǒng)必須為輸入VDD_A提供一個(gè)干凈的供電電源,設(shè)計(jì)者必須特別注意VDD_A的旁路濾波電路。圖8.5-6是VDD_A的濾波電路,注意元件安裝位置應(yīng)盡可能地靠近DSP芯片的引腳。圖8.5-6模擬供電電源濾波電路參考設(shè)計(jì)

(2)對(duì)DSP的上電順序是先加VDD(和VDD_A),然后為VDD_IO加電。為了實(shí)現(xiàn)這樣的上電次序,一個(gè)簡(jiǎn)單的方法是:在IO電源VDD_IO(3.3V)輸入端并聯(lián)大容量的電容,內(nèi)核電源VDD(1.2V)輸入端并聯(lián)小容量電容,使得3.3V充電時(shí)間大于1.2V充電時(shí)間,這樣就能簡(jiǎn)單而且可靠地解決電源供電的先后問題。

(3)根據(jù)系統(tǒng)供電情況,在PCB板內(nèi)使用合適的DC/DC或者LDO電源變換模塊,為處理器的內(nèi)核、模擬和I/O單元提供合適的電壓和足夠大的電流。系統(tǒng)中的每個(gè)處理器最好采用單獨(dú)的電源變換電路,并且單獨(dú)進(jìn)行濾波電路設(shè)計(jì)。

(4)對(duì)處理器的各個(gè)電源分別設(shè)計(jì)電源濾波電路,特別是內(nèi)核電源和模擬電源也需要單獨(dú)的電源濾波電路。電源濾波電路一般采用磁珠(功率電感)加旁路電容方式,如圖8.5-7所示。為了提供低的ESR性能,旁路電容采用大容量電容和小容量電容結(jié)合的方法,使用大容量的電容可以防止供電電源上由大電流波動(dòng)引起的電壓波動(dòng)。大容量旁路電容應(yīng)當(dāng)使用電解電容,最好是ESR性能良好的鉭電容。小容量的旁路電容推薦使用0.1

F的無感電容,也可以在0.1

F的旁邊并聯(lián)使用0.01

F和0.001

F的小電容濾除高頻分量。圖8.5-7電源濾波電路

(5)在濾波電路的PCB布局安排方面,最好將旁路電容放置在電路板的底層,并盡量靠近電源引腳。旁路電容最好安排在芯片的四個(gè)角上,朝四個(gè)不同的方向布置,如圖8.5-8所示。圖8.5-8

2.電源變換芯片的選擇

TS101S處理器需要供給的電源包括:用于I/O供電的3.3V、用于內(nèi)核供電的1.2V和用于模擬部分供電的1.2V。由于單片DSP工作在核時(shí)鐘頻率300MHz時(shí),內(nèi)核最大工作電流為1.55A,I/O口平均消耗電流為0.14A,因此,在選擇電源變換芯片時(shí),必須考慮到以上處理器對(duì)電源功率的要求和低壓大電流的特點(diǎn),并且有一定的裕度。

適合于處理器系統(tǒng)的常用的電源變換芯片有DC/DC和LDO兩種。其中DC/DC電源變換芯片的效率比較高、輸出能力強(qiáng)、功耗低,但是輸出波紋比LDO大。LDO是低壓降線性電源,電源變換的效率低、功耗大,但是輸出波紋小。表8.5-5是常用的電源變換芯片的主要特性。

3.電源設(shè)計(jì)方案舉例

1)單片DSP電源方案

對(duì)于單片工作的TS101S,可以選擇的供電方式很多,如采用兩片LDO或者單片的雙輸出電源,實(shí)現(xiàn)電源變換。

例1TSP78601是單路LDO線性電源變換芯片,最大輸出電流為1.5A。這個(gè)例子采用兩片TPS78601:一片用于將5V變換為3.3V,作為IO電源;另一片將5V變換為1.2V,作為內(nèi)核電源和模擬電源使用。但是由于TPS78601是線性LDO電源,其自身的功耗較大,特別是作為內(nèi)核電源變換時(shí),其自身的功耗可能達(dá)到4~5W,因此必須考慮電源變換芯片的散熱問題。如果系統(tǒng)中具有良好的散熱條件,那么這種方案是比較簡(jiǎn)單的,因?yàn)門PS78601引腳數(shù)少、體積小,使用起來很方便,其典型連接關(guān)系如圖8.5-9所示。圖8.5-9TPS78601的典型連接關(guān)系按照上述關(guān)系,當(dāng)輸出為1.2V時(shí),R1?=?0Ω;當(dāng)輸出為3.3V時(shí),R1?=?51kΩ,R2?=?30kΩ,C1?=?15~33pF。

例2在這個(gè)例子中,采用LT公司的LTM4615,為TS101S提供IO電源和內(nèi)核電源。LTM4615是專門針對(duì)DSP/FPGA設(shè)計(jì)的微型電源模塊,它內(nèi)部集成了2個(gè)最大輸出電流達(dá)到4A的DC-DC,其轉(zhuǎn)換效率可以達(dá)到95%,內(nèi)部還有一個(gè)最大輸出電流達(dá)到1.5A的LDO。

設(shè)輸入電源為5V,利用一路DC-DC將5V變換為3.3V(Vout2),作為IO電源;另一路DC-DC將5V變換為1.8V,再利用LDO模塊將1.8V轉(zhuǎn)換為1.2V,作為內(nèi)核電源和模擬電源使用。采用LTM4615電源變換模塊的優(yōu)點(diǎn)是,利用DC-DC模塊的高效率,并且LDO的電壓差只有0.6V,其功耗小于1W,使得電源變換芯片自身的總功耗比使用LDO類型的例1極大下降,同時(shí)其輸出波紋小。但是LTM4615的封裝是LGA,對(duì)焊接工藝要求高,會(huì)增加設(shè)計(jì)成本。圖8.5-10LTM4615的電路連接關(guān)系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論