多核DSP的多路同步時(shí)鐘信號(hào)設(shè)計(jì)
摘要:多核數(shù)字信號(hào)處理器(DSP)具有豐富的外設(shè)接口,每個(gè)外設(shè)接口具有各自獨(dú)立的參考時(shí)鐘。由于多核DSP具有較快的數(shù)據(jù)處理能力,對(duì)外設(shè)接口的時(shí)鐘要求較高。當(dāng)多個(gè)接口協(xié)同工作時(shí),對(duì)時(shí)鐘的同步要求較高。本文介紹了多核數(shù)字信號(hào)處理器丁MS320C6678的時(shí)鐘設(shè)計(jì),通過時(shí)鐘芯片CDCM6208提供多路不同工作頻率的時(shí)鐘信號(hào)到DSP,文中介紹了時(shí)鐘芯片的初始化和設(shè)置以及詳細(xì)的軟硬件設(shè)計(jì)方法。
本文引用地址:http://m.butianyuan.cn/article/201610/308154.htm引言
多核處理器是最近快速發(fā)展的電子器件,單個(gè)芯片內(nèi)集成了多個(gè)同構(gòu)或者異構(gòu)的處理器,使得其計(jì)算處理能力得到較大幅度的提高。DSP處理器由于其具有較高的數(shù)字處理能力,得到較廣泛的應(yīng)用。多核DSP芯片以目前性能較高的TMS320C66系列為例,其中TMS320C6678(以下簡(jiǎn)稱C6678)含有8個(gè)處理器。這些處理器可以獨(dú)立工作,也可以并行聯(lián)合工作。當(dāng)它們聯(lián)合工作時(shí),相互之間通信和握手就非常重要,尤其是在對(duì)時(shí)間要求較高的場(chǎng)合,時(shí)鐘的穩(wěn)定和同步就非常關(guān)鍵。時(shí)鐘的穩(wěn)定和同步對(duì)系統(tǒng)設(shè)計(jì)、時(shí)鐘源、時(shí)鐘分配、電路布線、時(shí)鐘線屏蔽等都提出較高的要求。
本文利用CDCM6208時(shí)鐘分配芯片,以此輸出多路時(shí)鐘,提供到8核DSP芯片C6678,提供出DSP核工作時(shí)鐘、DDR3數(shù)據(jù)讀寫時(shí)鐘、RapidIO和PCIe數(shù)據(jù)傳輸時(shí)鐘、千兆網(wǎng)絡(luò)加速器等時(shí)鐘信號(hào)。文中介紹了詳細(xì)的電路設(shè)計(jì)、時(shí)鐘芯片配置以及多核DSP的配置,相關(guān)片內(nèi)設(shè)備的初始化等。
1 C6678及其結(jié)構(gòu)
C6678是TI公司多核處理器中的一款8核浮點(diǎn)型DSP,最高工作頻率達(dá)到1.25 GHz,單核可以提供40GMAC定點(diǎn)計(jì)算或者20G FLOP浮點(diǎn)計(jì)算能力,單個(gè)芯片可以提供320G MAC或者160G FLOP計(jì)算能力。C6678的片內(nèi)結(jié)構(gòu)如圖1所示。
C6678的每個(gè)核具有32 KB的程序、32 KB的數(shù)據(jù)以及512 KB的2級(jí)Cache存儲(chǔ)空間,芯片片內(nèi)具有一個(gè)4MB的共享SRAM。C6678具有DDR3控制器接口,可以外接DDR3,直接尋址范圍達(dá)到8 GB。C6678的片內(nèi)外設(shè)有RapidIO、PCIe、EMIF以及SPI、I2C總線等接口。這些接口通過片內(nèi)的高速互聯(lián)總線和各個(gè)處理器交互數(shù)據(jù)。
和網(wǎng)絡(luò)相關(guān)的片內(nèi)設(shè)備如圖1右下角灰色模塊所示,主要包括兩個(gè)對(duì)外的SGMII接口、以太交換和網(wǎng)絡(luò)交換模塊,以及用于數(shù)據(jù)管理的安全加速器和包加速器,是為了快速檢測(cè)數(shù)據(jù)的校驗(yàn)以及協(xié)議是否遵循網(wǎng)絡(luò)標(biāo)準(zhǔn),對(duì)于錯(cuò)誤的數(shù)據(jù)直接丟棄.降低CPU的負(fù)擔(dān)。為了加快網(wǎng)絡(luò)和CPU的數(shù)據(jù)交換,片內(nèi)的隊(duì)列管理器用于管理網(wǎng)絡(luò)包或者網(wǎng)絡(luò)幀的緩存,分發(fā)等功能。這些數(shù)據(jù)都采用數(shù)據(jù)包DMA讀/寫,不需要CPU參與。
C6678的其他片內(nèi)設(shè)備包括PLL、仿真口、信號(hào)量、電源管理和復(fù)位管理等模塊。其中PLL配置CPU和外設(shè)的工作時(shí)鐘;仿真口用于連接仿真器,實(shí)現(xiàn)對(duì)軟件運(yùn)行的監(jiān)控;信號(hào)量實(shí)現(xiàn)對(duì)DSP/BIOS操作系統(tǒng)中信號(hào)量的控制;電源管理實(shí)現(xiàn)整個(gè)芯片電流電壓的控制;復(fù)位管理配
置啟動(dòng)的方式,硬復(fù)位進(jìn)行全啟動(dòng),軟復(fù)位進(jìn)行部分啟動(dòng)。
2 CDCM6208及其結(jié)構(gòu)
CDCM62xx系列芯片是TI公司針對(duì)多核處理器專門開發(fā)的時(shí)鐘產(chǎn)生、驅(qū)動(dòng)和分配芯片。CDCM6208是該系列的第二代產(chǎn)品,相比于第一代CDCM6208的最大優(yōu)點(diǎn)就是功耗大幅度降低,從第一代的2~3 W降低到0.5 W左右。而其功能、指標(biāo)和體積沒有弱化。CDCM6208有兩路可選時(shí)鐘輸入,8路時(shí)鐘輸出。8路輸出中的4路只能做整數(shù)倍分頻,另外4路可以做小數(shù)倍分頻,滿足多核芯片的各種不同的時(shí)鐘需求。8路時(shí)鐘支持LVPECL、CML、HCSL以及LVDS信號(hào)電平,最大支持800 MHz的時(shí)鐘頻率,滿足RapidIO和PCIe這些高速接口需求。時(shí)鐘抖動(dòng)小于265 fs。其控制可以通過標(biāo)準(zhǔn)的SPI或者I2S接口實(shí)現(xiàn),非常方便靈活。TI公司提供針對(duì)該芯片專門開發(fā)的圖形化控制軟件,用戶選擇所要設(shè)置的時(shí)鐘工作方
式、輸出頻率等參數(shù),該軟件生成其內(nèi)部寄存器的值,通過SPI或I2S接口寫入就完成整個(gè)芯片的配置。
CDCM6208的內(nèi)部結(jié)構(gòu)如圖2所示。從圖中可以看出,可選兩路時(shí)鐘輸入后,首先經(jīng)過一個(gè)14倍頻器,作為參考時(shí)鐘驅(qū)動(dòng)片內(nèi)VCO產(chǎn)生時(shí)鐘信號(hào)。為了提高時(shí)鐘相位噪聲,倍頻后信號(hào)經(jīng)過一個(gè)片內(nèi)的濾波器,該濾波器可以由片內(nèi)提供阻容電路設(shè)置。VCO時(shí)鐘功分到兩路預(yù)分頻器,預(yù)分頻器只能4、5或者6分頻。預(yù)分頻后時(shí)鐘再次進(jìn)入后期的分頻器。每個(gè)預(yù)分頻器功分到兩個(gè)小數(shù)分頻器和一個(gè)整數(shù)分頻器。分頻后信號(hào)驅(qū)動(dòng)后輸出。從圖2右邊輸出可以看出,整數(shù)分頻器輸出的Y0和Y1兩路時(shí)鐘頻率一樣,Y2和Y3時(shí)鐘頻率一樣。小數(shù)分頻的Y4~Y7可以各自設(shè)置CDCM6208的這種時(shí)鐘配置限制了其應(yīng)用,但好處是降低了功耗,目前這種配置滿足絕大部分多核處理器的要求,尤其是TI公司的C66系列以及AK2系列多核DSP可以實(shí)現(xiàn)無(wú)縫連接。
3 硬件設(shè)計(jì)
根據(jù)TMS320C6678的應(yīng)用,所需要的時(shí)鐘如圖3所示。
其主要時(shí)鐘包括:①內(nèi)核運(yùn)行時(shí)鐘,該時(shí)鐘輸入是100 MHz,DSP片內(nèi)PLL將其鎖定到工作頻率,最高為1GHz,最低為700 MHz。②RapioIO接口和HyperLink超級(jí)連接接口工作時(shí)鐘,這兩路時(shí)鐘輸入都為312.5MHz,RapioIO倍頻4、8、10、16,工作在1.25 GHz、2.5GHz、3.125 GHz和5 GHz。HyperLink倍頻到40、80、100、160,工作在12.5 GHz、25 GHz、31.25 GHz和50 GHz。
③PCIe接口時(shí)鐘和PA_SS網(wǎng)絡(luò)加速器時(shí)鐘,這兩路時(shí)鐘都是輸入100MHz,內(nèi)部倍頻后相應(yīng)的工作時(shí)鐘,滿足各自接口傳輸時(shí)鐘要求。④DDR3時(shí)鐘,該時(shí)鐘輸入為66.667 MHz,倍頻20或者25倍,工作在1333.33 MHz或者1666.7 MHz。這些時(shí)鐘在DSP片內(nèi)都各有獨(dú)立的PLL電路設(shè)置,其工作原理和設(shè)置方法基本一致。圖3中的單獨(dú)25 MHz是專門為千兆網(wǎng)提供的工作時(shí)鐘,由一個(gè)單獨(dú)的晶體提供。C6678還提供一路時(shí)鐘輸出信號(hào),默認(rèn)輸出為核時(shí)鐘的1/6,圖中為16.667 MHz,輸出時(shí)鐘可以檢測(cè)C6678是否正常工作。
由于C6678的核時(shí)鐘由CDCM6208提供,所以對(duì)CDCM6208的設(shè)置只能由另外一個(gè)處理器完成,只要該處理器具有SPI或者I2S接口即可。本文使用低功耗的DSP芯片C6747來(lái)實(shí)現(xiàn)多CDCM6208的設(shè)置。C6747和CDCM6208的接口如圖4所示,采用標(biāo)準(zhǔn)4線制SPI接口控制,為了避免干擾提高傳輸可靠性,在SPI的片選信號(hào)的寫信號(hào)分別上拉和下拉,這樣在空閑下其引腳狀態(tài)不會(huì)被干擾。在控制CDCM6208之前,需要對(duì)其進(jìn)行復(fù)位,圖中使用一個(gè)通用GPIO引腳控制,當(dāng)CDCM6208配置成功后,會(huì)提供一個(gè)狀態(tài)檢測(cè)信號(hào),該信號(hào)連接到C6747的GPIO引腳,用來(lái)判斷是否正確配置。圖中C6747還使用一個(gè)引腳控制CDCM6208的低功耗設(shè)置,當(dāng)該引腳為高時(shí),CDCM6208進(jìn)入低功耗模式。
4 軟件設(shè)計(jì)
由于系統(tǒng)采用C6747控制CDCM6208時(shí)鐘信號(hào),所以C6747的軟件是系統(tǒng)整個(gè)初始化的關(guān)鍵,C6747的初始化軟件主要包括對(duì)CDCM6208的復(fù)位、配置和檢測(cè)以及對(duì)C6678的復(fù)位、C6678外掛Flash的復(fù)位等工作。整個(gè)系統(tǒng)的軟件流程如圖5所示。
上電啟動(dòng)后,C6747軟件加載成功后,復(fù)位CDCM6208,為確保復(fù)位成功,C6747要等待10 ms才能通過SPI接口配置CDCM6208。配置完成后,C6747可以查詢CDCM6208的狀態(tài)輸出引腳,檢測(cè)是否配置成功。如果配置失敗,重復(fù)復(fù)位、配置、檢測(cè)這幾個(gè)步驟。配置成功后,表明CDCM6208已經(jīng)輸出準(zhǔn)備時(shí)鐘到C6678,但在此之前,C6678仍然處于復(fù)位狀態(tài)。由于C6678的程序保存在片外Flash中。所以,C6747要首先復(fù)位Flash,等待其復(fù)位后,再?gòu)?fù)位C6678,查詢C6678的輸出狀態(tài),確定C6678是否正常下作。如果輸出不正常,仍然重復(fù)復(fù)位Flash、復(fù)位C6678和檢測(cè)這幾個(gè)步驟,直到初始化成功。
結(jié)語(yǔ)
多核處理器由于其接口豐富,運(yùn)行頻率較高,對(duì)時(shí)鐘設(shè)計(jì)要求較高,一般要求一個(gè)高精度的時(shí)鐘通過分頻/倍頻方式產(chǎn)生多路時(shí)鐘到相應(yīng)的接口。本文以多核數(shù)字信號(hào)處理器C6678為應(yīng)用對(duì)象,通過CDCM6208產(chǎn)生多路時(shí)鐘,提供到多核DSP的核時(shí)鐘、DDR3、RapidIO等時(shí)鐘信號(hào)。通過單核低功耗小成本處理器C6747實(shí)現(xiàn)對(duì)整個(gè)時(shí)鐘電路的復(fù)位、設(shè)置和檢測(cè)。本文介紹的時(shí)鐘配置方法具有通用性,對(duì)同類產(chǎn)品的時(shí)鐘設(shè)計(jì)方案具有一定的參考價(jià)值。
評(píng)論