在數位時代的來臨,通訊技術及DSP 的發展迅速,在通訊系統中 DSP 已成為已成為 不可或缺的工具,主要是因為其程式開發容易且易於實現複雜度較高之演算法,以逹到即 時訊號處理的目的。目前吾人所使用的DSP EVM 模組之核心處理器是由德州儀器公司所 出的 TMS320C6701 DSP[17]-[21],透過此模組吾人將與 FPGA 分工處理,以實現 MISO W-CDMA 高速下鏈硬體電路。在本章中,吾人將介紹此 DSP 之結構、記憶體及周邊元件 等三部分。
3.3.1 TMS320C6701 DSP CPU 結構
TMS320C6701 DSP 為一顆浮點數運算(float point)的數位訊號處理器,採用 VelociTI VLIW(Very Long Instruction Word)CPU 架構之浮點數運算器。內建有 8 組功能單元(function unit)及 2 組暫存器(register),其功能介紹如下(圖3.5、圖 3.6):
1. .M 單元:乘法器,提供兩個 16-bit 變數相乘,其輸出為 32-bit。
2. .L 單元:加法器,提供變數之加、減法,和邏輯運算功能,如 AND、OR 和 XOR。
3. .S 單元:提供位元移位(bit shift)及分枝程式碼執行(branch)之功能。
4. .D 單元:負責資料在記憶體與一般暫存器間之存取,提供線性定址(linear-addressing) 和環狀定址(circular-addressing)模式。
一般暫存器主要是提供功能單元暫存變數空間,.M1、.L1、.S1 及.D1 共用一般暫存 器A 之空間,.M2、.L2、.S2 及.D2 則共用一般暫存器 B 之空間。
3.3.2 TMS320C6701 DSP 記憶體分配
‘C6701 DSP 使用 32 位元之位址線,理論上可定址至 4G Bytes 之記憶體,其規劃如 圖3.7,包含了大小皆為64k bytes 的內部程式記憶體(internal program memory)及內部資料 記憶體(internal data memory),‘C6701 對內部程式記憶體之使用提供二種方法,一是映射模 式(mapped mode),另一種為快取模式(cache mode),由程式記憶體控制器(Program Memory Controller, PMEMC)來決定何種操作模式,以下為此二種模式之討論:
1. 映射模式:吾人可定義兩個記憶體區塊為程式記憶體,當定義成 Map 0 時,從 0x01400000h 至 0x0140FFFFh 為程式記憶體,而定義成 Map 1 時,從 0x00000000h 至0x0000FFFFh 為程式記憶體。CPU 和 DMA (Direct Memory Access Controller) 皆可存取程式記憶體的位址,但CPU 和 DMA 要同時存取同一位址時,DMA 需 等待CPU 完成後方可取得控制權。
2. 快取模式:吾人定義所有的程式記憶體為快取記憶體,CPU 可利用 256 位元之快 取線(cache line)存取程式碼,相當於 8 個 32 位元的指令,但在快取模式下,DMA
‘C6701 DSP 的內部資料記憶體分為兩大區塊,而每一區塊又再細分為八個槽。記憶體 區塊的的分配是由一資料記憶體控制器(Data Memory Controller, DMEMC)來控制,只要不 同時存取同一位址資料時,CPU 內的暫存器 A、暫存器 B 與 DMA 可以同時存取資料記憶 體,而不降低CPU 的效能。
3.3.3 TMS320C6701 DSP 週邊元件
‘C6701 DSP 的基本週邊包含了共處理器存取介面(host-port interface, HPI)、中斷選擇器 (interrupt selector)、直接記憶體控制器及外部記憶體介面(external memory interface, EMIF 圖3.8)等,其討論如下:
1. 共處理器存取介面:提供其它微處理器存取介面,透過 DMA/EDMA 控制器連結 至CPU 記憶體,以存取 CPU 記憶體中的資料和利用記憶體映射方式之周邊元件。
CPU 和 HPI 兩者皆可存取 HPIC (HPI controller register),而 HPI 還可利用外部資 料和介面控制訊號存取HPIA (HPI address register)及 HPID (HPI data register)。
2. 中斷選擇器:中斷選擇之目的為系統透過中斷訊號的機制,安排 DSP 與非同步元 件工作之先後順序,以完成DSP 與外界非同步元件之連線。TMS320C6701 CPU 有三種中斷模式,重置(reset)、非屏蔽中斷(Nonmaskable Interrupt, NMI)與、可屏 蔽中斷(maskable interrupt)。重置具有最高的優先權,是用來將系統設定成某已知 狀態,假如系統偵測到重置訊號時,系統會中斷 CPU 運算並回到設定的狀態;
NMI 擁有次高的優先權,其使用在某硬體突然發生問題時,對 CPU 發出警告之 中斷訊號;可屏蔽中斷訊號的優先權是最低的,其包含INT4 至 INT15,IN4-INT7 為DSP 與外界之中斷訊號,INT8-IN15 為 DSP 內部之中斷訊號,INT4-INT15 之 優先權為INT4 最高而 INT15 最低。欲啟動可屏蔽中斷服務,需滿足以下三個狀 態:
(1) 在控制狀態暫存器(Control State Register, CSR)中,宇中斷致能(Global Interrupt Enable, GIE)位元設定為 1。
(2) 在中斷致能暫存器(Interrupt Enable Register, IER)中,NMI 致能(NMI Enable, NMIE)位元設定為 1。
(3) 在 IER 中,將欲啟動可屏蔽中斷訊號相對應之中斷致能(Interrupt Enable, IE) 設定為1。
3. 直接記憶體控制器:在 CPU 運算的同時,DMA 控制器可以在背景作業中持續在 記憶體中搬移資料的動作,而不需要中斷 CPU 的運算,使得 DSP 的效能大幅提 昇,但需適當規畫CPU 和 DMA 控制器之時程安排(scheduling)以避免資料在存取 時發生碰撞的情形。DMA 控制器包含 四組獨立的可編排程序通道(programmable channel)供 DMA 使用,和一組輔助通道(auxiliary channel)供 HPI 之 Host CPU 存 取記憶體時使用。
4. 外部記憶體介面:EMIF 主要的目的在提供各種控制介面,使 DSP 之外部記憶體
Static Random Access Memory, SBSRAM)、同步動態記憶體(Synchronous Dynamic Random Access Memory, SDRAM) 、 以 及 非 同 步 元 件 如 非 同 步 靜 態 記 憶 體 (Asynchronous SRAM, ASRAM)、先進先出元件(First In First Out, FIFO)與唯讀記 憶體(Read Only Memory, ROM)等。EMIF 負責管理 DSP 之四個外部記憶體,分別 為CE0、CE1、CE2 以及 CE3,其支援的記憶體種類如表 3.1,除了 ROM 只能使 用於CE1,以及 SDRAM 只能使用在 CE0、CE2 與 CE3 外,每一個外部記憶體均 能使用其他記憶體元件。另外,內部程式記憶體、資料記憶體與直接記憶體存取 (Direct Memory Access, DMA)皆可透過 EMIF 存取外部記憶體資料。
3.4 ‘C6701 DSP EVM 模組簡介
吾 人 在 MISO W-CDMA 高 速 下 鏈 收 發 機 硬 體 架 構 中 , 使 用 由 德 州 儀 器 (Texas Instruments, TI)所開發 TMS320C6701 DSP 之 DSP EVM 模組(圖3.9),其工作頻率為 132 MHz,且運算速度可達 1056 Mflops。吾人透過一轉接卡(圖3.10),連接於 Aptix MP3C 平 台上,達到系統整合模組之目的。在資料傳輸方面,則利用 32 位元之非同步資料匯流排 及四組中斷訊號和 FPGA 做資料傳輸;另外,在開發環境上,以 PC 做為開發平台,搭配 Co composer’s CCS 之軟體,編譯演算法並透過 IEEE 1149.1 JTAG (Joint Testing Action Group)介面載入 EVM 模組執行。
3.4.1 ‘C6701 DSP EVM模組架構
‘C6701 EVM 模組架構圖如圖3.11所示,主要包括TMSC6701 DSP、快閃記憶體、
SBSRAM、UART、JTAG 與其他介面電路,說明如下:
1. 快閃記憶體:可重複寫入資料之非揮發性記憶體,容量 128 Kbytes。當應用程式 在開發階段確定時,可將程式執行碼寫入快閃記憶體中。‘C6701 EVM 模組在重 開機或按下重置鍵時,DSP 會自動由快閃記憶體中讀取程式碼,並下載到程式記 憶體中執行。快閃記憶體另外的功能是儲存系統參數與數學函數。
2. SBSRAM:快速靜態記憶體,容量為 512 Kbytes,速度最高可達 132 MHz,與 DSP 工作同速。當DSP 元件設定模式為 MAP0 時,SBSRAM 為程式記憶體;設定模 式為MAP1 時,SBSRAM 當作一般記憶體使用。
3. UART:UART 為串列資料傳輸的一種規約。PC 可以透過 RS232 與 C6701 EVM 模組連接,進行資料傳輸。
4. JTAG:符合 IEEE 1149.1 標準,連接於 RS232 傳輸線與 C6701 EVM 模組之間,
具有重置的功能。
5. 其他介面電路:6701 EVM 模組置於 MP3C 硬體平台上,可以透過介面電路與其 他模組作資料連結。
3.4.2 ‘C6701 DSP EVM與FPGA 之連結
‘C6701 DSP EVM 模組與 FPGA 相連結時(圖3.12),由於工作頻率的不同,需設計一 機制使FPGA 和 DSP 能正確地接收或傳送資料。在 FPGA 端,透過中斷訊號 EXTINT0/1/2/3 相對應至DSP 之 INT4-INT7,而 DSP 端則透過四塊前端處理模組(board 1 ~ board 4)對應至 EMIF CE3 之記憶體區段。
DSP 與 FPGA 之接收與傳送資料程序如下:
1. 當 FPGA 端欲傳送資料至 DSP 端時,傳送 EXTINT0/1/2/3 中斷訊號至 DSP 2. DSP 進入相對應之中斷程式,接收資料並同時執行運算。其接收資料之時序如圖
3.13所示,當STRBN0/1/2/3 於下緣觸發且 RD/WR0/1/2/3 為高準位時,前端模組 進入讀出狀態,將FPGA 寫入匯流排的資料存入相對應 DSP 之記憶體位址。
3. 待 DSP 執行結束,將資料傳回至 FPGA。其傳送資料之時序如圖 3.14 所示,當 STRBN0/1/2/3 於下緣觸發且 RD/WR0/1/2/3 為低準位時,前端模組進入寫入狀 態,將相對應DSP 之記憶體中的資料寫入匯流排,由 FPGA 讀取。
‘C6701 DSP 時序圖之相關參數如下:
1. tclk:DSP 之 clock 周期,因 DSP 工作頻率為 132 MHz,故 tclk=1/132 MHz。
2. t1:位址線準備完成至 STRBN0/1/2/3 下緣觸發之時間。
3. t2:STRBN0/1/2/3 訊號低準位持續之時間。
4. t3:STRBN0/1/2/3 下緣觸發至資料匯流排準備完成之時間。
5. t4:資料匯流排中資料之有效時間。
6. t5:Ready 訊號至 DSP 認知之時間。