多核DSP的多路同步時(shí)鐘信號設計
摘要:多核數字信號處理器(DSP)具有豐富的外設接口,每個(gè)外設接口具有各自獨立的參考時(shí)鐘。由于多核DSP具有較快的數據處理能力,對外設接口的時(shí)鐘要求較高。當多個(gè)接口協(xié)同工作時(shí),對時(shí)鐘的同步要求較高。本文介紹了多核數字信號處理器丁MS320C6678的時(shí)鐘設計,通過(guò)時(shí)鐘芯片CDCM6208提供多路不同工作頻率的時(shí)鐘信號到DSP,文中介紹了時(shí)鐘芯片的初始化和設置以及詳細的軟硬件設計方法。
本文引用地址:http://dyxdggzs.com/article/201610/308154.htm引言
多核處理器是最近快速發(fā)展的電子器件,單個(gè)芯片內集成了多個(gè)同構或者異構的處理器,使得其計算處理能力得到較大幅度的提高。DSP處理器由于其具有較高的數字處理能力,得到較廣泛的應用。多核DSP芯片以目前性能較高的TMS320C66系列為例,其中TMS320C6678(以下簡(jiǎn)稱(chēng)C6678)含有8個(gè)處理器。這些處理器可以獨立工作,也可以并行聯(lián)合工作。當它們聯(lián)合工作時(shí),相互之間通信和握手就非常重要,尤其是在對時(shí)間要求較高的場(chǎng)合,時(shí)鐘的穩定和同步就非常關(guān)鍵。時(shí)鐘的穩定和同步對系統設計、時(shí)鐘源、時(shí)鐘分配、電路布線(xiàn)、時(shí)鐘線(xiàn)屏蔽等都提出較高的要求。
本文利用CDCM6208時(shí)鐘分配芯片,以此輸出多路時(shí)鐘,提供到8核DSP芯片C6678,提供出DSP核工作時(shí)鐘、DDR3數據讀寫(xiě)時(shí)鐘、RapidIO和PCIe數據傳輸時(shí)鐘、千兆網(wǎng)絡(luò )加速器等時(shí)鐘信號。文中介紹了詳細的電路設計、時(shí)鐘芯片配置以及多核DSP的配置,相關(guān)片內設備的初始化等。
1 C6678及其結構
C6678是TI公司多核處理器中的一款8核浮點(diǎn)型DSP,最高工作頻率達到1.25 GHz,單核可以提供40GMAC定點(diǎn)計算或者20G FLOP浮點(diǎn)計算能力,單個(gè)芯片可以提供320G MAC或者160G FLOP計算能力。C6678的片內結構如圖1所示。

C6678的每個(gè)核具有32 KB的程序、32 KB的數據以及512 KB的2級Cache存儲空間,芯片片內具有一個(gè)4MB的共享SRAM。C6678具有DDR3控制器接口,可以外接DDR3,直接尋址范圍達到8 GB。C6678的片內外設有RapidIO、PCIe、EMIF以及SPI、I2C總線(xiàn)等接口。這些接口通過(guò)片內的高速互聯(lián)總線(xiàn)和各個(gè)處理器交互數據。
和網(wǎng)絡(luò )相關(guān)的片內設備如圖1右下角灰色模塊所示,主要包括兩個(gè)對外的SGMII接口、以太交換和網(wǎng)絡(luò )交換模塊,以及用于數據管理的安全加速器和包加速器,是為了快速檢測數據的校驗以及協(xié)議是否遵循網(wǎng)絡(luò )標準,對于錯誤的數據直接丟棄.降低CPU的負擔。為了加快網(wǎng)絡(luò )和CPU的數據交換,片內的隊列管理器用于管理網(wǎng)絡(luò )包或者網(wǎng)絡(luò )幀的緩存,分發(fā)等功能。這些數據都采用數據包DMA讀/寫(xiě),不需要CPU參與。
C6678的其他片內設備包括PLL、仿真口、信號量、電源管理和復位管理等模塊。其中PLL配置CPU和外設的工作時(shí)鐘;仿真口用于連接仿真器,實(shí)現對軟件運行的監控;信號量實(shí)現對DSP/BIOS操作系統中信號量的控制;電源管理實(shí)現整個(gè)芯片電流電壓的控制;復位管理配
置啟動(dòng)的方式,硬復位進(jìn)行全啟動(dòng),軟復位進(jìn)行部分啟動(dòng)。
2 CDCM6208及其結構
CDCM62xx系列芯片是TI公司針對多核處理器專(zhuān)門(mén)開(kāi)發(fā)的時(shí)鐘產(chǎn)生、驅動(dòng)和分配芯片。CDCM6208是該系列的第二代產(chǎn)品,相比于第一代CDCM6208的最大優(yōu)點(diǎn)就是功耗大幅度降低,從第一代的2~3 W降低到0.5 W左右。而其功能、指標和體積沒(méi)有弱化。CDCM6208有兩路可選時(shí)鐘輸入,8路時(shí)鐘輸出。8路輸出中的4路只能做整數倍分頻,另外4路可以做小數倍分頻,滿(mǎn)足多核芯片的各種不同的時(shí)鐘需求。8路時(shí)鐘支持LVPECL、CML、HCSL以及LVDS信號電平,最大支持800 MHz的時(shí)鐘頻率,滿(mǎn)足RapidIO和PCIe這些高速接口需求。時(shí)鐘抖動(dòng)小于265 fs。其控制可以通過(guò)標準的SPI或者I2S接口實(shí)現,非常方便靈活。TI公司提供針對該芯片專(zhuān)門(mén)開(kāi)發(fā)的圖形化控制軟件,用戶(hù)選擇所要設置的時(shí)鐘工作方
式、輸出頻率等參數,該軟件生成其內部寄存器的值,通過(guò)SPI或I2S接口寫(xiě)入就完成整個(gè)芯片的配置。
CDCM6208的內部結構如圖2所示。從圖中可以看出,可選兩路時(shí)鐘輸入后,首先經(jīng)過(guò)一個(gè)14倍頻器,作為參考時(shí)鐘驅動(dòng)片內VCO產(chǎn)生時(shí)鐘信號。為了提高時(shí)鐘相位噪聲,倍頻后信號經(jīng)過(guò)一個(gè)片內的濾波器,該濾波器可以由片內提供阻容電路設置。VCO時(shí)鐘功分到兩路預分頻器,預分頻器只能4、5或者6分頻。預分頻后時(shí)鐘再次進(jìn)入后期的分頻器。每個(gè)預分頻器功分到兩個(gè)小數分頻器和一個(gè)整數分頻器。分頻后信號驅動(dòng)后輸出。從圖2右邊輸出可以看出,整數分頻器輸出的Y0和Y1兩路時(shí)鐘頻率一樣,Y2和Y3時(shí)鐘頻率一樣。小數分頻的Y4~Y7可以各自設置CDCM6208的這種時(shí)鐘配置限制了其應用,但好處是降低了功耗,目前這種配置滿(mǎn)足絕大部分多核處理器的要求,尤其是TI公司的C66系列以及AK2系列多核DSP可以實(shí)現無(wú)縫連接。

3 硬件設計
根據TMS320C6678的應用,所需要的時(shí)鐘如圖3所示。

其主要時(shí)鐘包括:①內核運行時(shí)鐘,該時(shí)鐘輸入是100 MHz,DSP片內PLL將其鎖定到工作頻率,最高為1GHz,最低為700 MHz。②RapioIO接口和HyperLink超級連接接口工作時(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,內部倍頻后相應的工作時(shí)鐘,滿(mǎn)足各自接口傳輸時(shí)鐘要求。④DDR3時(shí)鐘,該時(shí)鐘輸入為66.667 MHz,倍頻20或者25倍,工作在1333.33 MHz或者1666.7 MHz。這些時(shí)鐘在DSP片內都各有獨立的PLL電路設置,其工作原理和設置方法基本一致。圖3中的單獨25 MHz是專(zhuān)門(mén)為千兆網(wǎng)提供的工作時(shí)鐘,由一個(gè)單獨的晶體提供。C6678還提供一路時(shí)鐘輸出信號,默認輸出為核時(shí)鐘的1/6,圖中為16.667 MHz,輸出時(shí)鐘可以檢測C6678是否正常工作。

由于C6678的核時(shí)鐘由CDCM6208提供,所以對CDCM6208的設置只能由另外一個(gè)處理器完成,只要該處理器具有SPI或者I2S接口即可。本文使用低功耗的DSP芯片C6747來(lái)實(shí)現多CDCM6208的設置。C6747和CDCM6208的接口如圖4所示,采用標準4線(xiàn)制SPI接口控制,為了避免干擾提高傳輸可靠性,在SPI的片選信號的寫(xiě)信號分別上拉和下拉,這樣在空閑下其引腳狀態(tài)不會(huì )被干擾。在控制CDCM6208之前,需要對其進(jìn)行復位,圖中使用一個(gè)通用GPIO引腳控制,當CDCM6208配置成功后,會(huì )提供一個(gè)狀態(tài)檢測信號,該信號連接到C6747的GPIO引腳,用來(lái)判斷是否正確配置。圖中C6747還使用一個(gè)引腳控制CDCM6208的低功耗設置,當該引腳為高時(shí),CDCM6208進(jìn)入低功耗模式。
4 軟件設計
由于系統采用C6747控制CDCM6208時(shí)鐘信號,所以C6747的軟件是系統整個(gè)初始化的關(guān)鍵,C6747的初始化軟件主要包括對CDCM6208的復位、配置和檢測以及對C6678的復位、C6678外掛Flash的復位等工作。整個(gè)系統的軟件流程如圖5所示。

上電啟動(dòng)后,C6747軟件加載成功后,復位CDCM6208,為確保復位成功,C6747要等待10 ms才能通過(guò)SPI接口配置CDCM6208。配置完成后,C6747可以查詢(xún)CDCM6208的狀態(tài)輸出引腳,檢測是否配置成功。如果配置失敗,重復復位、配置、檢測這幾個(gè)步驟。配置成功后,表明CDCM6208已經(jīng)輸出準備時(shí)鐘到C6678,但在此之前,C6678仍然處于復位狀態(tài)。由于C6678的程序保存在片外Flash中。所以,C6747要首先復位Flash,等待其復位后,再復位C6678,查詢(xún)C6678的輸出狀態(tài),確定C6678是否正常下作。如果輸出不正常,仍然重復復位Flash、復位C6678和檢測這幾個(gè)步驟,直到初始化成功。
結語(yǔ)
多核處理器由于其接口豐富,運行頻率較高,對時(shí)鐘設計要求較高,一般要求一個(gè)高精度的時(shí)鐘通過(guò)分頻/倍頻方式產(chǎn)生多路時(shí)鐘到相應的接口。本文以多核數字信號處理器C6678為應用對象,通過(guò)CDCM6208產(chǎn)生多路時(shí)鐘,提供到多核DSP的核時(shí)鐘、DDR3、RapidIO等時(shí)鐘信號。通過(guò)單核低功耗小成本處理器C6747實(shí)現對整個(gè)時(shí)鐘電路的復位、設置和檢測。本文介紹的時(shí)鐘配置方法具有通用性,對同類(lèi)產(chǎn)品的時(shí)鐘設計方案具有一定的參考價(jià)值。
評論