施慶展,馮 起,羅 慧,袁乃昌
(國防科學(xué)技術(shù)大學(xué) 電子科學(xué)與工程學(xué)院,湖南 長沙 410073)
作為高性能多核信號(hào)處理器的代表,TMS320C6678 DSP在導(dǎo)彈制導(dǎo),醫(yī)學(xué)成像,測控與自動(dòng)化以及高性能計(jì)算方面取得了廣泛的應(yīng)用。單核處理速度達(dá)到1.25 GHz,八核同時(shí)工作時(shí)的處理速度可以達(dá)到10 GHz。定點(diǎn)運(yùn)算處理能力40 GMAC,浮點(diǎn)運(yùn)算處理能力20 GFLOP[1]?;谝陨蟽?yōu)良的性能以及超高的信號(hào)處理速度,這使得對(duì)于TMS320C6678 DSP系統(tǒng)的硬件和軟件設(shè)計(jì)都提出了較高的要求。作為系統(tǒng)正常工作的前提,TMS320C6678 DSP的上電時(shí)序以及精確的時(shí)鐘控制尤為重要。錯(cuò)誤的上電時(shí)序或不精確的時(shí)鐘輸出可能造成芯片的損壞以及錯(cuò)誤的時(shí)序邏輯操作,從而造成無法預(yù)料的后果。
目前,F(xiàn)PGA作為現(xiàn)代集成電路設(shè)計(jì)驗(yàn)證的主流技術(shù),其最大的特點(diǎn)是具有現(xiàn)場可編程特性,是硬件系統(tǒng)設(shè)計(jì)中不可或缺的設(shè)備之一。FPGA芯片具有豐富的IO資源、靈活的編程操作、精確的時(shí)序控制以及強(qiáng)大的信號(hào)并行處理能力[2],這使得其作為TMS320C6678 DSP的上電和時(shí)鐘控制時(shí)具有其它器件無法比擬的優(yōu)越性。因此,基于FPGA的電源和時(shí)鐘系統(tǒng)設(shè)計(jì)具有很大的可行性,并預(yù)期會(huì)得到理想的結(jié)果。
由于TMS320C6678 DSP具有不同功能的邏輯模塊,各個(gè)模塊的電源電壓不盡相同,為了有效且適當(dāng)?shù)膯?dòng)TMS320C6678 DSP芯片,各個(gè)的模塊的電源啟動(dòng)時(shí)序有一定的要求。另外,輸入的時(shí)鐘信號(hào)在電源穩(wěn)定前必須保持在高阻狀態(tài),否則會(huì)造成芯片的損壞[3]。TI公司提供了兩種TMS320C6678 DSP芯片的上電時(shí)序解決方案,一種是內(nèi)核先于IO的上電順序,另一種是IO先于內(nèi)核的上電時(shí)序解決方案,圖1給出的是內(nèi)核先于IO的上電時(shí)序圖。

圖1 內(nèi)核先于IO的上電時(shí)序圖Fig.1 Core-before-IO power sequencing diagram
TMS320C6678 DSP的上電初始化分為兩個(gè)階段。第一個(gè)階段是從第一個(gè)電源上電開始到最后一個(gè)電源上電結(jié)束,第二個(gè)階段是POR#和RESETFULL#兩個(gè)復(fù)位信號(hào)的釋放,這兩個(gè)復(fù)位信號(hào)相繼釋放后完成芯片的上電初始化過程[2]。輸入時(shí)鐘是在1.8 V的電源上電完成之后開始進(jìn)行配置,配置完成后再繼續(xù)完成后續(xù)的上電過程。
FPGA作為電源和時(shí)鐘管控的核心,控制著DSP電源的上電時(shí)序以及時(shí)鐘的配置和輸出,因此FPGA在硬件設(shè)計(jì)中起著非常重要的作用[4]。Xilinx公司的Spartan-3AN系列的FPGA不僅具有Spartan-3A系列的全部特性,而且Spartan-3AN芯片內(nèi)部集成了Flash存儲(chǔ)器[5],這就避免了另外在芯片外部為FPGA配置Flash存儲(chǔ)器的麻煩,從而在一定程度上大大減少了布線密度及電路板面積,增加了系統(tǒng)設(shè)計(jì)的可靠性。圖2是硬件電路功能框圖。

圖2 硬件系統(tǒng)功能框圖Fig.2 Hardware system function diagram
FPGA通過控制電源使能信號(hào)來控制各個(gè)電源的上電順序,通過檢測Power_pgood信號(hào)來確定某個(gè)電源信號(hào)是否達(dá)到穩(wěn)定狀態(tài)。對(duì)時(shí)鐘芯片的操作是通過SPI接口對(duì)寄存器進(jìn)行配置,來產(chǎn)生需要頻率的時(shí)鐘信號(hào)并控制其輸出使能。Clk_status是用來檢測輸出時(shí)鐘信號(hào)狀態(tài)的,當(dāng)其為高電平時(shí)表明輸出時(shí)鐘已經(jīng)達(dá)到穩(wěn)定。產(chǎn)生的各種電源和時(shí)鐘信號(hào)直接連接到DSP的電源管腳和時(shí)鐘管腳,通過DSP的SYSCLKOUT引腳測出的輸出信號(hào)的頻率可以來檢測芯片是否正常工作。
FPGA對(duì)整個(gè)系統(tǒng)的控制主要包括兩部分:電源控制和時(shí)鐘控制。系統(tǒng)軟件的設(shè)計(jì)其實(shí)就是要滿足各個(gè)電源上電的時(shí)序要求,硬件電路設(shè)計(jì)完成之后,相應(yīng)的軟件設(shè)計(jì)也就隨之完成了。軟件設(shè)計(jì)的關(guān)鍵是精確的上電時(shí)序控制以及對(duì)時(shí)鐘芯片寄存器的配置。圖3給出的是軟件設(shè)計(jì)的流程圖。

圖3 軟件設(shè)計(jì)流程圖Fig.3 Software design block diagram
系統(tǒng)上電后,F(xiàn)PGA首先開始工作。根據(jù)DSP各個(gè)不同功能模塊的上電時(shí)序要求,F(xiàn)PGA對(duì)不同的電源芯片進(jìn)行使能控制。FPGA首先使能CVDD的輸出控制信號(hào),然后檢測CVDD_pgood信號(hào)的狀態(tài),當(dāng)檢測到CVDD_pgood為高時(shí),延時(shí)一段時(shí)間,然后再去使能下一個(gè)需要上電的電源芯片的輸出控制信號(hào),依此流程完成TMS320C6678 DSP上電。時(shí)鐘信號(hào)的配置是在電平上電過程中完成的,當(dāng)VCC1V8的電平輸出穩(wěn)定后,F(xiàn)PGA開始配置時(shí)鐘芯片,當(dāng)需要時(shí)鐘信號(hào)輸出穩(wěn)定后,F(xiàn)PGA繼續(xù)完成其它電源的上電。
在進(jìn)行設(shè)計(jì)時(shí),F(xiàn)PGA對(duì)時(shí)鐘芯片的配置是通過SPI的方式進(jìn)行的。首先外部輸入的50 MHz的系統(tǒng)時(shí)鐘經(jīng)過十分頻后作為SPI通信的基準(zhǔn)時(shí)鐘。一次SPI通信的數(shù)據(jù)信息格式是32位,數(shù)據(jù)的最高有效位是R/W信號(hào),為1時(shí)表示FPGA對(duì)時(shí)鐘寄存器進(jìn)行讀操作,為0表示FPGA對(duì)時(shí)鐘寄存器進(jìn)行寫操作。30至27位是保留位,26至16位表示所要操作寄存器的地址,低16位表示數(shù)據(jù)信息[6]。圖4是SPI通信仿真結(jié)果。

圖4 SPI仿真結(jié)果Fig.4 SPI simulation result
由于本設(shè)計(jì)主要是產(chǎn)生系統(tǒng)所需的時(shí)鐘信號(hào),所以對(duì)寄存器進(jìn)行的是寫操作。在SPI_CS信號(hào)有效之后,在下一個(gè)時(shí)鐘的上升沿開始進(jìn)行數(shù)據(jù)的寫入,每位數(shù)據(jù)的寫入都是在時(shí)鐘的上升沿完成的。一次SPI通信結(jié)束時(shí),done信號(hào)被拉高并保持一個(gè)時(shí)鐘周期的高電平,然后SPI_CS信號(hào)置為無效,一次SPI通信完成。然后接著進(jìn)行下一次的通信。FPGA對(duì)整個(gè)時(shí)鐘芯片的寄存器配置完成后,config_done信號(hào)被拉高并一直保持。圖4的仿真結(jié)果證明該通信是可行的。
將上面仿真設(shè)計(jì)好的程序燒到FPGA的Flash中,然后對(duì)整個(gè)設(shè)計(jì)系統(tǒng)進(jìn)行測試。系統(tǒng)上電后,測量時(shí)鐘芯片的輸出時(shí)鐘和TMS320C6678 DSP的SYSCLKOUT引腳的輸出時(shí)鐘,以此來判斷上電控制和時(shí)鐘控制兩部分功能是否完美實(shí)現(xiàn)。 用示波器觀察的結(jié)果如圖 5 中(a)、(b)、(c)、(d)所示。
從上圖(a)、(b)、(c)的測試結(jié)果可以看出,F(xiàn)PGA 對(duì)時(shí)鐘芯片的配置結(jié)果是正確的,能夠得到系統(tǒng)所需要頻率的信號(hào)。圖(d)的測試結(jié)果表明DSP的電源和時(shí)鐘配置都是正確的,只有上電時(shí)序以及輸入的時(shí)鐘信號(hào)正確DSP內(nèi)部才能產(chǎn)生16.667 MHz的信號(hào)出來。測試結(jié)果表明該系統(tǒng)的硬件和軟件的設(shè)計(jì)方案是合理可行的。

圖5 測試結(jié)果Fig.5 Test results
文中針對(duì)高性能信號(hào)處理器TMS320C6678 DSP芯片的電源和時(shí)鐘設(shè)計(jì)提供了一種比較有效的解決方案。軟件仿真和最終的硬件系統(tǒng)測試結(jié)果都驗(yàn)證了設(shè)計(jì)方案的可行性,并得到了比較理想的效果。該系統(tǒng)設(shè)計(jì)方案設(shè)計(jì)靈活,易于修改,適應(yīng)性強(qiáng),可以移植到任何包含TMS320C6678 DSP芯片的系統(tǒng)平臺(tái)上,為TMS320C6678 DSP的廣泛應(yīng)用提供了保障。
[1]TI.TEXAS INSTRUMENTS.TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Data Manual[EB/OL].(2013).http://www.ti.com/product/tms320c6678.
[2]林英撐,童曉華,劉向宇.FPGA嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)指南[M].北京:中國電力出版社,2012.
[3]TI.TEXASINSTRUMENTS.Hardwae Design Guide for Key-Stone Devices[EB/OL].(2011).http://www.ti.com/product/tms 320c6678.
[4]吳厚航.深入淺出玩轉(zhuǎn)FPGA[M].北京:北京航空航天大學(xué)出版社,2010.
[5]Xilinx.Spartan-3AN FPGA Family Data Sheet[EB/OL].(2011).http://www.xilinx.com/support/documentation/data_sheets/ds557.
[6]TI.TEXAS INSTRUMENTS.CDCM6208 DataSheet[EB/OL].(2014).http//:www.ti.com/product/cdcm6208.