• 沒有找到結果。

發展軟體無線電技術---智慧型天線系統/技術之研發---總計畫(II)

N/A
N/A
Protected

Academic year: 2021

Share "發展軟體無線電技術---智慧型天線系統/技術之研發---總計畫(II)"

Copied!
75
0
0

加載中.... (立即查看全文)

全文

(1)

目 錄

一、計畫摘要

...

1

二、研究成果

...

2

2.1

MISO

W-CDMA 高速下鏈硬體收發機技術架構 ... 2

2.2

W-CDMA 系統簡介... 2

2.2.1 專用實體通道之展頻與調變 ... 2

2.2.2 空-時區塊編碼... 3

2.2.3 波束形成器與通道資訊 ... 3

2.3

下鏈路同步程序... 4

2.3.1 時序同步... 4

2.3.2 頻率估計與頻率補償 ... 4

2.4

空時區塊解碼器與犁耙接收器

... 5

2.5

迴旋碼編碼器/解碼器... 5

三、快速雛型發展系統設計流程介紹

………16

3.1

Aptix 快速雛型發展平台與 Explorer 軟體 ... 16

3.1.1

MP3C

系統架構

... 16

3.1.2

Aptix

Explorer 設計流程介紹 ... 16

3.2

FPGA 電路設計流程 ... 17

(2)

3.2.1

FPGA 介紹 ... 17

3.2.2

FPGA 電路設計流程 ... 18

3.3

TMS320C6701

DSP 簡介 ... 19

3.3.1

TMS320C6701

DSP

CPU 結構 ... 19

3.3.2

TMS320C6701

DSP 記憶體分配 ... 19

3.3.3

TMS320C6701

DSP 週邊元件 ... 20

3.4 ‘C6701 DSP EVM 模組簡介 ... 21

3.4.1

‘C6701

DSP

EVM 模組架構 ... 21

3.4.2

‘C6701

DSP

EVM 與 FPGA 之連結... 22

3.5 USB 2.0 模組簡介... 22

3.6

FPGA 與 DSP 電路設計技巧 ... 23

四、MISO W-CDMA 高速下鏈基頻收發機之硬體電路設計...

40

4.1

MISO

W-CDMA 基頻傳送端... 40

4.2

時序同步之

FPGA 與 DSP 電路設計 ... 41

4.2.1

碼擷取單元

... 41

4.2.2

路徑搜尋單元

... 42

4.2.3

碼追蹤單元

... 42

4.3

自動頻率控制器之

FPGA 與 DSP 電路設計... 43

4.4

解展頻單元之

FPGA 電路設計 ... 44

(3)

4.5

空-時區塊解碼器及犁耙式接收機之

FPGA 電路設計 ... 45

4.6

迴旋碼解碼器之

FPGA 電路設計 ... 47

4.6.1 執行單元... 47

4.6.2 回溯單元... 48

4.7

MISO

W-CDMA 收發機系統測試... 49

五、結論

...

70

參考文獻

... 71

(4)

一、計畫摘要

由於近年來無線通訊技術的迅速發展,頻譜已成為日益寶貴之資源。因此,第三世 代(3rd Generation, 3G)及下一世代(Beyond 3rd Generation, B3G)之無線通訊技術的重要課題 即為能有效地提昇頻譜使用效率,並且利用數位訊號處理的方式來改善無線接取的技術,

以提昇通訊系統的品質及容量。在3G 及 B3G 的系統中,智慧型天線通訊技術為極具代表

性之研究主題,係因其可於不需增加頻寬的前題下,有效降低干擾量,從而使傳輸容量有 效增加;同時並提供了空間分集效益以克服通道衰減等問題,並增加接收訊號的品質及可 靠度。在本計畫中,吾人採用Aptix® MP3C 為發展平台;藉由平台上之 FPGA 及 DSP 等

可程式化組件,來實現MISO W-CDMA 高速下鏈收發機的軟硬體架構。其中,FPGA 為可

程式化之邏輯元件,利用硬體描述語言合成數位邏輯電路,具有可重構性之特性,提供快 速之硬體驗證。而DSP 則擁有高速之浮點或定點運算,可用以實現即時的訊號處理。系統 中包括有時序同步電路、展頻/解展頻電路、空-時區塊編碼/解碼電路、自動頻率控制 器,以及迴旋編碼/解碼電路完成系統基頻部分的電路實現,並結合實際量測之通道,以 增加系統的正確性與可靠度。最後,吾人進一步導入軟體無線電之概念,透過DSP 程式之 參數控制及FPGA 硬體電路的模組化,以增加系統之擴充性及可適性。

(5)

二、研究成果

2.1 MISO W-CDMA 高速下鏈硬體收發機技術架構

在MISO W-CDMA 高速下鏈收發機之硬體設計過程中,吾人將藉由 FPGA 與 DSP 處

理器具備之獨立運行系統(stand-alone system)能力與便利性,作為系統開發核心,並進 一步實現可適性的基頻系統架構、適應性調變及陣列訊號處理法則之發展,以達到加強訊

號增益、抑制干擾訊號,提高系統容量及頻率使用效率之目的。基於此想法,吾人選用FPGA

做為硬體電路開發元件,另外,使用 DSP 做為軟體開發工具,並且利用 USB 模組來傳送

個人電腦中的資料來增加系統的彈性,再搭配Aptix®設計之System Explorer MP3C 快速雛 型發展平台,資料產生器(pattern generator)與振盪器(oscillator)模組,以處理 MISO W-CDMA

之基頻訊號。硬體架構圖如圖2.1所示。

吾人之系統開發著重於MISO W-CDMA 高速下鏈的基頻訊號處理,首先資料經過迴旋

碼 編 碼(convolution encoder) 及 交 錯 器 資 料 交 錯 (interleaving) , 之 後 由 解 多 工 器 (de-multiplexing)以串列平行轉換後,再經由空-時區塊編碼(Space-Time Block Coder, STBC),將四組相互正交之 Walsh 碼乘入後再組合為資料通道(traffic channel),再分別與乘 上展頻碼(spreading code)之同步通道(synchronous channel)及引導通道(pilot channel) 組合

為I、Q 資料通道(其中同步通道及引導通道分別傳送於 IQ 通道),最後再經脈波整型(pulse

shaping)濾波後送出。經由實際量測的通道後,基頻接收機依時間之先後可區分為兩種模 式,分別為碼擷取(code acquisition)模式以及碼追蹤(code tracking)模式。於碼擷取模式時, 系統只找出訊框起始時間(frame start time),並無資料通道傳輸;於碼追蹤模式時,系統則 分別找出發射載波與接收載波之頻率偏移(frequency offset)以及訊框起始時間,執行頻率補 償;及引導通道及資料通道之解展頻、通道響應估測、空-時區塊解碼(Space-Time Block Decoder, STBD) 與 犁 耙 接 收 (RAKE receiver) 、 解 交 錯 (de-interleaver) 以 及 迴 旋 碼 解 碼 (convolution decoder)後,偵測出原來的資料。 目前吾人規劃設計之系統傳送資料的通道展頻因子為 64,編碼率為 1/2 及 1/3,在 I 通道及Q 通道上傳送資料,原始資料速率則視發展之演算邏輯及與介面模組間之資料傳送 速率,預估在160~240 Kbps 間。

2.2 W-CDMA 系統簡介

2.2.1 專用實體通道之展頻與調變

在3GPP 規範中,明訂使用 W-CDMA 為其傳輸技術[7],W-CDMA 為一 DS-CDMA 技 術[8],它將資料位元乘上一組展頻碼(spreading code),形成新的基頻訊號(圖2.4),擴張了 原來訊號頻寬,展頻碼中每一位元稱之為碼片(chip),碼片速率(chip rate)為 3.84 Mcps (chip-per-second)。在 3GPP 中提供給使用者專用之傳輸通道稱為專用實體通道(Dedicated

(6)

Physical Channel, DPCH),DPCH 主要分為兩種,一是專用實體控制通道(Dedicated Physical Control Channel, DPCCH),用以傳送引導符元(pilot symbol)、回饋資訊(Feedback Information, FBI)、傳輸格式合成指標(Transport Format Combination Indicator, TFCI)與傳輸功率控制 (Transmit Power Control, TPC)等控制訊號;另一種通道則用以傳送資料,稱為專用實體資 料通道(Dedicated Physical Data Channel, DPDCH),本節將介紹 W-CDMA 系統中展頻與調 變之架構。 於展頻技術中,展頻因數(Spreading Factor, SF)決定了一個資料位元所使之展頻碼長 度,選用之展頻碼愈長,在相同時間內可以傳輸之資料量則愈少,然而,愈長之展頻碼卻 可以提高資料傳輸可靠度,以抵抗多變的通道效應,故吾人可以依據不同需求或是通道環 境好壞決定資料速率。 DPCH 之下鏈路訊框架構如圖 2.6 所示,吾人將資料切割成相同單位之區塊傳送,稱 之為訊框,每一個訊框之時間長度為10 ms,共計有 38400 個碼片,其中又可再細分成 15 個時槽(time slot),時槽為最小之傳送單位。對 DPDCH 來說,3GPP 規範了不同傳輸速率 與展頻因數間之關係,吾人可以選用4 至 256 等不同展頻因數,展頻因數愈小,則表示在 一個時槽中,包含了更多個資料位元,傳輸速度也愈快。下鏈路之通道展頻架構為單一使 用者至多可同時傳送 6 個 DPDCH 通道,展頻碼分別為 Cd,1至 Cd,6,平均置於 I 通道與 Q 通道中,若展頻因數為4 且使用編碼率(code rate)為 1/3、限制長度(constraint length)為 9 之 迴旋碼(convolutional code)編碼器,則每個 DPDCH 資料傳送速率可達 320 Kbps,在 6 通道 平行傳送下,總資料速率達1920 Kbps。另外,DPCCH 置於 Q 通道傳輸,展頻碼為 Cc, 因為 DPCCH 傳送重要的控制訊號,為了保護此通道之訊息,吾人必須使用展頻因數 256 以增加其對環境變化之抵抗能力。

2.2.2 空-時區塊編碼

空時區塊編碼[9]-[12]是一種把編碼、調變和空間分集結合起來的新興技術,也將成為 B3G 技術中重要的一部分。它是一種傳輸分集(transmit diversity)技術,在不增加傳送能量 及系統頻寬之狀態下,對傳送訊號做空-時編碼動作,用以抵抗無線通訊中時變多路徑衰 落(time-varying multipath fading)效應,並增加系統之頻寬使用效益。此外,在接收端部分 只需增加些許的運算量,且不需回饋任何資訊至傳送端,可以降低系統實現上之複雜度。 在本計畫中,吾人將經由迴旋編碼器(convolution encoder)、交錯器及 QPSK 符元對應之後

的訊號,通過一空-時區塊編碼器(圖2.7、圖 2.8),以降低因多路徑衰落所產生之影響。

2.2.3 波束形成器與通道資訊

吾人之波束形成器是先由通道資訊,估出入射角的方向(Direction of Arrival, DOA)後, 再對入射角方向形成由八根天線形成一組波束,把入射角範圍的訊號全部收下來,由於八

(7)

目前吾人所使用的通道資料是在台北市區實際量測而得的通道,有LOS (light of sight) (圖2.9~圖 2.12)和 NLOS (Non light of sight) (圖2.13~圖 2.17)二種通道,由於是在靜止的 情形下量測的通道,所以並不考慮都卜勒效應(Doppler effect)。

2.3 下鏈路同步程序

在通訊系統中,同步是相當重要的一環,同步又分為時序同步及頻率補償。時序同步 的主要目的為協助接收機找到訊框的正確起始位置,而由於傳送端和接收端頻率振盪器的 頻率不同,所以必須要做頻率補償之後,才能對接收訊號做後續的處理動作,否則對於接 收端所估測出的資料會造成相當大的錯誤。在本報告中,吾人將分別對時序同步及頻率補 償作介紹。

2.3.1 時序同步

在下鏈路之時序同步方面,吾人藉由偵測SCH (Synchronization Channel)的結構來獲得 同步資訊,SCH 使用 64 碼片的展頻碼,安插於每一個時槽之開始位置。所有的基地台在 SCH 時槽中傳送相同的展頻碼,這是為了讓接收端可以輕易地與發射端達到同步的目的, 也就是在每一訊框之開始位置安插一段 PN (Pseudo-Noise) 碼,藉以提供吾人正確之訊框 起始位置,如此一來,接收機部份可以使用一組匹配濾波器得到周期性出現之峰值,兩峰 值間距為10 ms,相當於 38400 個碼片的長度。此外,因為周圍環境的雜訊、干擾或是發 射端與接收端時脈不同步的影響,僅使用匹配濾波器尚不足保證峰值必定出現於訊框之起 始點,故吾人在硬體實現上利用DSP 作碼追蹤單元,不斷鎖定訊框之起始點位置,如此一 來,在時序正確之前提下,吾人之解展頻電路方可正常工作無誤。

2.3.2 頻率估計與頻率補償

在 W-CDMA 系統因傳送端和接收端頻率振盪器的頻率不同或都卜勒效應所造成的頻 率偏移,使得在接收端會使得訊號的極性會一直改變,進而降低系統效能。在本報告中, 吾人利用DPCCH,因為 DPCCH 中含有已知之引導符元 A,由於頻率偏移之影響,解展頻 後之引導符元中含有頻率偏移項,為頻率偏移,為初始相位。吾人可以利用此符元讓頻率 估計器換算出頻率偏移值,首先,將引導符元延遲時間Ts後得到P1,取共軛複數與當時之 引導符元P2相乘Tc為碼片時間,n 為 DPCCH 之展頻因數。取出相位部分吾人可以發現相 位差與頻率差有關,將此相位差除上延遲時間Ts之後,可以得到所需之頻率偏移,其推導 如下列式子:

(8)

( ) ( ) ( ) ( ) ( ) ( ) ( )

(

)

1 2 1 1 2 2 1 2 0 0 1 1 2 2 2 ' 0 0 2 1 2 2 ' 0 1 2

2

c s s c s s c c s c n n j f iT T j f mT i m n n j f T j f iT j f mT i m n j f T j f iT i

P P

A

e

e

Ae

e

e

Ae

e

P P

f

Ts

π θ π θ π π π π π

π

− − − ⎡ ∆ − + ⎤ ⎡ ∆ + ⎤ ∗ ⎣ ⎦ ⎣ ⎦ = = − − ∆ − ∆ ∆ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ = = − ∆ − ∆ ⎡ ⎤ ⎡ ⎤ ⎣ ⎦ ⎣ ⎦ = ∗

=

=

=

=

i

2.4 空時區塊解碼器與犁耙式接收機

空時區塊解碼器之目的是將經過空時區塊編碼的資料解出來,其解碼後之資料為含有 I、Q 之符元資料,以送入下一級解調變器之解調用。因為接收到的資料已受到通道效應的 影響,因此空時區塊解碼器需要通道估計值幫助,才能讓收到的資料消除通道效應,因為 空-時區塊編碼會提供分集式增益,擴大系統效能,所以會有較好的效能來解出正確的資 料,以下為空-時區塊解碼的數學推導: 1 1 1 2 2 1 * * 2 1 2 2 1 2 1 1 2 1 1 * * * * 2 2 1 2 2 2 2 1 1 1 1 2 2 2 2

(

)

H

x

h s

h s

n

x

h s

h s

n

x

h

h

s

n

x

x

h

h

s

n

s

s

n

H x

h

h

s

s

n

+

⎡ ⎤ ⎡

⎤ ⎡ ⎤

=

+

⎢ ⎥ ⎢

+

⎥ ⎢ ⎥

⎣ ⎦ ⎣

⎦ ⎣ ⎦

⎡ ⎤

⎡ ⎤ ⎡

⎤ ⎡ ⎤

⇒ =

⎢ ⎥ ⎢

=

⎥ ⎢ ⎥

+ ⎢ ⎥

⎣ ⎦ ⎣

⎦ ⎣ ⎦ ⎣ ⎦

⎡ ⎤

⎡ ⎤

⎡ ⎤

⎢ ⎥

=

=

+

⎢ ⎥

+

⎢ ⎥

⎣ ⎦

⎢ ⎥

⎢ ⎥

⎣ ⎦

⎣ ⎦

經過空時區塊解碼器後的資料已經補償了通道效應,所以之後的犁耙式接收機只要單 純的把不同 finger 的資料收集結合起來,在設計上只要用幾組暫存器把不同 finger 的資料 疊加起來,即是估計的符元資料,在本報告的第四章會有詳細的介紹。

2.5 迴旋碼編碼器/解碼器

3GPP 規格書規定使用之通道編碼的方式為迴旋碼編碼及渦輪碼(turbo code)編碼,其 中迴旋碼是規定必要使用的通道編碼方式,目前吾人所使用的通道編碼方式是採用迴旋碼 編碼,編碼率是1/3,限制長度(constraint length) 是 7,狀態(state)數目為 64,編碼器及解

碼器以FPGA 實現,由於此架構的狀態數目非常多,在解碼器的電路設計上,必須就硬體

(9)

狀態的運算,使解碼速度加快,也可以只用一套硬體依序處理每個狀態的運算,可以使硬 體縮小,但是解碼速度也比較慢。目前吾人採用的方式是由許多套的硬體平行處理不同狀 態的運算,才能符合高速下鏈系統所需求的傳輸速度。

(10)

Transmitter FPGA Reciever FPGA DSP DSP FPGA Aptix MP3C Channel 15.36 MHz 15.36 MHz 15.36 MHz 圖2.1 MISO W-CDMA 高速下鏈硬體架構圖 圖2.2 MISO W-CDMA 高速下鏈基頻發射機之系統方塊圖 Traffic Channel Encoder

Puncture Inteleaver Demux

STBC ∑ ∑ STBC ∑ ∑ 1 C C2 3 C C4

1 P C Pilot Channel

1 P C Pilot Channel

2 P C Pilot Channel

S C Sync. Channel Downlink Beamspace Beamformer 1 t 2 t

(11)

圖2.3 MISO W-CDMA 高速下鏈基頻接收機之系統方塊圖 圖2.4 DS-CDMA 展頻技術示意圖 Pilot Despreader De-interleaver RRC Filter MF Code Acquisition Finger Searcher Traffic Despreader Pilot Canceller Code Tracking AFC Channel Estimate Space Time Block Decoder (STBD) RAKE Receiver Viterbi Decoder Frequency Offset Estimate Timing Acquisition Timing Tracking Output Data Received Data chip data bit Spreading Code Data Spreaded Data

(12)

圖2.5 3GPP 下鏈路 DPCH 訊框與時槽架構圖 圖2.6 W-CDMA 下鏈路訊框架構圖 SCH (64) DPCCH (256) DPCCH (256) SCH (64) DPDCH (64) DPDCH (64) 0 SCH DPCCH DPDCH 1 frame = 38400 chips DPCCH (256) SCH (64) DPCCH (256) DPCCH (256) SCH (64) DPDCH (64) DPDCH (64) 0 SCH DPCCH DPDCH 1 frame = 38400 chips DPCCH (256) 0 1 2 3 14

Pilot (Npilot bits) TFCI (NTFCI bits) FBI (NFBI bits) TPC (NTPC bits) Data (Ndata bits)

DPCCH

downlink DPCH DPDCH

time slot = 2560 chips

(13)

圖2.7 資料通道之空-時區塊編碼圖(1) 1

c

DE-MUX 1

s

2

s

3

s

4

s

1

s

* 2

s

2

s

* 1

s

3

s

* 4

s

4

s

* 3

s

2

c

3

c

4

c

STBC STBC 1

y

2

y

3

y

4

y

1 t 2 t 圖2.8 資料通道之空-時區塊編碼圖(2)

[

]

*2 1 2 1 * 1 2

s

s

s

s

s

s

→ ⎢

* * 4 3 2 1

s

s

s

s

* * 3 4 1 2

s

s

s

s

4 3 2 1

s

s

s

s

STBC Source data

(14)

圖2.9 LOS 之角度響應圖

(15)

圖2.11 LOS 之脈衝響應圖(1)

(16)

圖2.13 NLOS 之角度響應圖

(17)

圖2.15 第二條路徑之脈衝響應圖

(18)

圖2.17 NLOS 之脈衝響應圖(2) 圖2.18 八根天線之波束形成器示意圖 1 t 2 t 11 w 21 w 12 w 22 w 1 11 1H t w h MS MS BS BS 房屋 1 θ 2 θ 2 12 1H t w h 1 21 2H t w h 2 22 2H t w h 1 t 2 t 11 w 21 w 12 w 22 w 1 11 1H t w h MS MS BS BS 房屋 1 θ 2 θ 2 12 1H t w h 1 21 2H t w h 2 22 2H t w h

(19)

三、快速雛型發展系統設計流程介紹

3.1 Aptix 快速雛型發展平台與 Explorer 軟體

吾人在MISO W-CDMA 高速下鏈硬體的收發機開發過程中,採用『可程式化設計之

快速雛型通訊系統』Aptix MP3C 為發展平台[16],搭配Aptix Explorer 軟體和 Agilent 16702B 邏輯分析儀(Logic Analyzer, LA)完成系統架構(圖3.1)。MP3C(圖3.2)為一具有高度整合性

的發展平台,可搭配多種不同功能之模組,如 FPGA、DSP、ASICs、ARM 微控制器等模

組,以便達到快速系統開發的目的;除此之外,只要能符合MP3C 硬體平台規格,亦可以

設計專用的模組應用於此系統,如MISO W-CDMA 硬體平台中所使用的’C6701 EVM DSP

及USB 2.0 模組,皆非 Aptix 公司所製作,而是由本實驗室自行開發符合 MP3C 的規格。 因此,MP3C 對於複雜的數位系統,亦或利用 FPGA、PLDs 所設計的 ASIC 可以提供完整 的系統模擬及驗證環境。

3.1.1 MP3C

系統架構

MP3C 為 Aptix 公司所推出的 MPx 快速雛形發展平台系列產品,其硬體架構主要分為 幾個重要的區塊: 1. 微處理機:主要負責管理整個平台的運作及載入 FPGA 檔於系統中。 2. 時脈產生器:提供系統的時脈(Clock),最多可外接 8 組不同的時脈。 3. FPCB(Field Programmable Circuit Board):模組可放置的區塊。

4. FPICs(Field programmable Interconnect Components):管理模組間的繞線。 5. I/O 匯流排:提供 MP3C 與外界溝通的橋樑。 FPCB 為可程式化大型電路板,其中共有 3520 個 freehole,freehole 表示為一根模組 可外接的腳位,模組可安插於freehole 上。MP3C 的 freehole 主要分為三種: 1. 特殊腳位(special pins):負責模組電壓與系統時脈。 2. 可 交 換 式 腳 位 (swappable pins) : 提 供 模 組 輸 出 腳 位 , 其 訊 號 電 氣 規 格 為 TTL(Transistor-Transistor Logic)之輸出入位準。

3. 輸出入腳位(I/O pins):提供 freehole 與 MP3C 外部匯流排之連結。

FPIC 為可程式化繞線晶片,一共有三顆,每顆 FPIC 都有 1024 根 I/O 的腳位,負責 freehole 之間的繞線(圖3.3),使得各個模組間可達到雙向溝通的目的。

3.1.2 Aptix Explorer

設計流程介紹

Aptix Explorer 軟體為一整合了 MP3C FPCB 和邏輯分析儀(LA),提供吾人一套快速驗 證系統,以達到快速開發及偵錯的目的,以下為系統設計及驗證流程如:

(20)

體,撰寫硬體描述語言,並合成為邏輯電路的描述檔案,如.xnf 或.edif 檔。 2. 匯入設計檔(import netlist file):將在 PC 端所編譯好的.edif 檔,上傳至工作站,其

中必需要有二種的.edif 檔。一種是 MP3C 各模組間拉線的 top.edif 另一種則是各 模組內部行為及連線的design.edif

3. 匯入 pinmap 檔案(import pinmap file):pinmap 檔的內容主要是設定在 MP3C 上, 各模組腳位的定義與各模組所使用的套件。

4. 設定 FPCB 的參數(setup FPCB parameter):這個步驟是為當所有的模組都已經匯 入定義好後,設定模組的電源線(power)、接地(ground)及 FPGA 的限制(FPGA constraint)及時脈(clock)的腳位

5. 版面配置(board placement):設定模組在 FPCB 上所放置的位置。

6. 編譯(compile):此時 Explorer 會幫我們呼叫 Xilinx ISE 的軟體作 FPGA 配置和繞 線(place & route)的動作。

7. 探查設定(setup probe):把欲觀察分析的訊號線拉出。

8.

下載除錯(download & debug):將程式下載至 MP3C FPCB 平台上之 FPGA 和邏輯 分析儀,並利用邏輯分析儀觀察訊號的波形,做為系統驗證及除錯。

3.2 FPGA 電路設計流程

3.2.1 FPGA

介紹

科技的快速發展,進一步帶動半導體技術之成長。從早期的由數個電晶體及電阻所構 成之積體電路,進步到數仟個電晶體的LSI (large scale integrated),再進步到數十萬甚至數 百萬電晶體的VLSI (very large scale integrated)。目前可程式化數位邏輯元件分為可程式邏 輯元件(programmable logic device, PLD)和場式可程式閘陣列(field programmable gate array, FPGA)兩大類。其中 FPGA 依其構造可大致分成 3 類:

1. 查表型(look up tables, LUT):Xilinx, Altera, AT&T 2. 多工器型(multiplexer type, MPX):Actel, Quicklogic 3. 電晶體陣列型:Cross point

若以規劃架構可分為:

1. SRAM:Xilinx, Altera, AT&T, Atmel 2. Anti-fuse:Actel, Cypress, Quicklogic

其中,SRAM 類型的 FPGA 具有可重複程式化的優點,適合用於實作邏輯設計與功能

性驗證。而 Anti-fuse 由於具有一次燒錄(OTP)特性,在保密性上提供較佳保護,但也因此

無法重複修改。

與ASIC (Application Specific Integrated Circuit)相較之下,FPGA 雖具有可程式化之特

性及較高的整合度及可適性,但其速度上仍明顯輸於 ASIC。但隨著半導體製程技術的進

(21)

近年來多媒體、電子通訊與網路應用市場的蓬勃發展,可程式化和整合性較高的FPGA 逐 漸受到巿場的重視。

3.2.2 FPGA

電路設計流程

在設計 FPGA 的工具中,吾人採用 Xilinx Foundation 為開發軟體,其中 Xinlinx Foundation 所內建的 Core Generator 可產生 Xilinx 公司所提供之內建元件,如記憶體、加

法器、乘法器等,可以加速吾人開發的時間,提供了硬體設計的方便性,以下就是 FPGA

電路的設計流程(圖3.4):

1. 設計輸入(design entity):Xilinx Foundation 提供了三種設計的方式為: (1) HDL Editor:輸入硬體描述語言,如 VHDL、Verilog 等 (2) Schematic Flow:直接用內建的電路畫出電路之邏輯方塊,這種設計方式較直 觀且簡單,且內建許多完整的電路,如多工器、乘法器等,適合較簡單的電 路來使用。 (3) FSM Flow:使用時態關係圖(state diagram),軟體會自動合成相對應之邏輯電 路,特別適用於控制器(controler)的實現,如記憶體控制器。

2. 合成電路(synthesis circuit):將設計輸入之行為描述(behavior description)電路轉換 成RTL(Register Transfer Level)電路。

3. 功能模擬(function simulation):驗證合成的 RTL 的邏輯功能是否正確,在此並未 考慮到FPGA 內部訊號的傳遞延遲(transmit delay)。其驗證的方式可用硬體描述語 言 撰 寫 測 試 平 台(test bench) 或 者 是 用 Xilinx Foundation 內 建 的 波 形 模 擬 器 (waveform simulator)來觀察功能是否正確。

4. 電路驗證(implementation):主要的功能是將 RTL 電路描述編譯成實際電路的佈 局,必需經過Translate、Mapping、Place & Route、Timing 與 Configure 等五個步 驟來完成:Translate 是將 Design entity 轉成 FPGA 的格式;Mapping 是將 Translate 後的格式最佳化,再映射成FPGA 元件內部的格式;Place & Route 將 Mapping 出 的格式作最佳擺設與繞線;Timing 是依照 FPGA 內部元件之特性,估出所有元件 的延遲時間;Configure 是將 Place & Route 後元件擺設位置及繞線方式轉換成可 燒入FPGA 格式的檔案。 5. 時序模擬(timing simulation):考慮實際訊號在邏輯閘間的延遲效應,使得電路行 為表現更符合實際的情形,根據吾人所選擇之FPGA 晶片來加入該特性參數,如 長距離繞線之延遲時間,一般而言,時序模擬結果會和實際晶片上之結果相同。

6.

MP3C/Aptix Explorer:於 PC 端驗證完所設計的電路後,即可將設計依 3.1.1 節所 描述的流程,將設計置於MP3C 系統進行驗證。

(22)

3.3 TMS320C6701 DSP 簡介

在數位時代的來臨,通訊技術及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

(23)

‘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 存 取記憶體時使用。

(24)

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 硬體平台上,可以透過介面電路與其

(25)

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 認知之時間。

3.5 USB 2.0 模組簡介

USB 2.0 模組採用 CYPRESS CY7C68013 晶片(圖3.15、圖 3.16),其中內含一顆 24 MHz 的8051 與 4 Kbytes 的 FIFO,所能達到的最高資料傳輸率為 480 Mb/s,其中 FIFO 提供 USB 2.0 模組與 C6701 EVM 模組之連接介面。圖3.17為USB 2.0 模組之系統架構圖,USB 2.0 模組透過Aptix MP3C 與‘C6701 EVM 模組連結,可將 PC 傳入 USB FIFO 內的資料再傳給 DSP;USB 2.0 模組亦可接收 DSP 資料後,再傳回 PC 上。USB 與 FPGA 的溝通是透過 DSP 模組當緩衝(buffer),而不直接與 USB 2.0 模組溝通。 USB 支援四種傳輸型態,說明如下: 1. 多量(Bulk):保證資料傳輸正確,但是傳遞時間不確定。通常使用在突發資料(burst data),如 PC 傳送列印資料給印表機(printer)。 2. 等時性(Isochronous):保證傳遞時間,但不保證接收資料之正確性。通常使用傳輸 影像(image)與聲音(voice)檔的時候。 3. 控制(Control):用於列舉(enumeration)與裝置(device)之控制。

(26)

USB 2.0 模組與 C6701 EVM 模組之連接,可將圖3.12的Board 1 視為 USB 2.0 模組,

因為兩個模組是透過一組 I/O 完成連接的,其中不一樣的是 USB2.0 模組之資料匯流排為

16 位元,而 C6701 EVM 模組的為 32 位元,因此需將 C6701 EVM 模組的資料匯流排由最 低有效位元(Least Significant Bit, LSB)數起 16 位元,指定給 USB2.0 模組之資料匯流排,才 能完成資料傳輸。

PC 為 USB 2.0 模組之開發平台,並需要介面卡與開發軟體,才能透過 USB 連接埠與 模組連結。吾人使用介面卡為NEC 控制晶片之 PCI 介面卡,而開發軟體為 EZ USB Control Panel (圖3.18)。吾人操作 EZ USB Control Panel,可控制 PC 與 USB2.0 模組間檔案的傳送 與接收,其中PC 將檔案傳送到 USB 2.0 模組是透過 endpoint 2 的管道(pipe)傳遞,而 PC 從USB 2.0 模組接收檔案則使用 endpoint 6 之管道,兩個管道皆使用 Bulk 之傳輸型態。

3.6 FPGA 與 DSP 電路設計技巧

吾人在硬體設計過程中,有許多地方都是需要長時間的嘗試及經驗累積才能得到結 果,因此從設計電路的過程,吾人歸納出一些心得及經驗: 1. FPGA 設計心得: (1) FPGA 的設計通常都是由許多小的電路來組成一個完整的收發機電路,所以可 先驗證所設計的小電路功能是否正確,再進階的組合起來。由每個部份的組 合中,驗證其輸入輸出是否合理,並且善用LA 來作除錯的工作,如此發生錯 誤時,比較容易找到錯誤的地方且快速修正,以節省系統開發的時間,使其 更有效率。 (2) 乘法器的使用會佔用大量的硬體面積和降低執行的效能,所以盡量避開乘法 器的使用,如展頻所需的乘法器改用多工器取代。如果乘法器的使用是無法 避免時,應降低位元數來使用,否則所佔用硬體的面積會隨著位元數增加而 呈平方增加。 (3) 設計時多利用參數化和模組化的設計,以期能迅速調整電路的架構及系統的 擴充性。如此就不用重覆撰寫HDL 語言,可減少錯誤的發生。 2. DSP 設計心得: (1) DSP 的運算時間會依不同的資料型態而異,又以整數型態的運算速度最快。 所以從FPGA 收到的資料盡量用整數型態來儲存運算,以縮短運算的時間。 區塊間的相關性與平行處理具有高度的相關性,由於DSP 之 CPU 內含兩個乘法器,若無 相關性的兩個乘法平行使用CPU 內的乘法器,則可在同一個時脈時間內完成動作。但若區 塊相關性很高的話則會造成運算時間的延遲,所以遇到此情形的區塊應盡量使用FPGA 完 成之。

(27)

Aptix MP3C

JTAG

Code Composer Studio

Xilinx Foundation

Ethernet

Ethernet

Ethernet

POD

Logic Analyzer

Work station

圖3.1 快速雛型發展系統硬體連線示意圖

(28)

FPICs

Patten

Generator

USB 2.0

module

C6701

EVM

module

Virtex

6000

Virtex

2000

圖3.2 Aptix System Explorer MP3C 實體圖

F r e e h o le

E n tity 1

E n tity 2

F P IC

(29)

Circuit Design

HDL Editor Schematic Flow FSM Editor

Synthesis

Behavior description

Function Simulation

Place & Route

Download to

MP3C & LA

LA Debug

Yes Yes No No No

Timing Simulation

Yes RTL RTL Yes No 圖3.4 MISO W-CDMA 系統硬體平台驗證流程圖

(30)
(31)
(32)

16M x 8 External RAM

4M x 8 External RAM 64K x 8 Internal Prog. RAM

On-chip Peripherals

16M x 8 External RAM

16M x 8 External RAM

64K x 8 Internal Data RAM

Byte Address

0000_0000 0180_0000 0140_0000 0100_0000 0200_0000 0300_0000 8000_0000 Range 0, 2, 3

„Async (SRAM, ROM, etc) „Sync (SBSRAM, SDRAM)

Range 1

„Only Async SBSRAM „Used by Boot Loader

Internal Block

„Prog = RAM or cache „Data = 8/16/32-bit R/W „Mem-mapped Periph = reserved 16M x 8 External RAM 4M x 8 External RAM 64K x 8 Internal Prog. RAM

On-chip Peripherals

16M x 8 External RAM

16M x 8 External RAM

64K x 8 Internal Data RAM

Byte Address

0000_0000 0180_0000 0140_0000 0100_0000 0200_0000 0300_0000 8000_0000 Range 0, 2, 3

„Async (SRAM, ROM, etc) „Sync (SBSRAM, SDRAM)

Range 1

„Only Async SBSRAM „Used by Boot Loader

Internal Block

„Prog = RAM or cache „Data = 8/16/32-bit R/W

„Mem-mapped Periph

= reserved

(33)
(34)

圖3.9 ‘C6701 DSP EVM 模組實體圖

(35)

TM S 32 0C 67 01 F loating D S P S B S RA M T ran scei ce r F lash U A R T Co ntrol ( CP LD ) JTA G Buffer / C E0 C E1 CE3 CE2 External C o ntrol S ign al External D ata B us P C 32 圖3.11 ‘C6701 DSP EVM 模組架構圖 Board 1 Board 2 Board 3 Board 4 ADDR[3:0] Data[31:0] OE0 OE1 STRBN0 RDY0 RD/W R0 EXTINT0 STRBN1 RDY1 RD/W R1 EXTINT1 STRBN2 RDY2 RD/W R2 EXTINT2 STRBN3 RDY3 RD/W R3 EXTINT3 C6701EVM to PC's RS232 XDS510 emulator 圖3.12 ‘C6701 DSP EVM 模組與外部介面模組連線圖

(36)

t2 STRBN0/1/2/3 RD/WR0/1/2/3 ADDR[3:0] OEN0/1 RDY0/1/2/3

Zero wait delay Wait delay

t1

Data[31:0] DSPCLK

tclk

t2+n*1/tclk

Ready sample Ready sample t5

Setup=2 Strobe=4 HOLD=1 Setup=2 Strobe=4

HOLD =1 Not ready t3 t4 圖3.13 DSP EVM 模組讀取時序圖 t2 STRBN0/1/2/3 RD/WR0/1/2/3 ADDR[3:0] OEN0/1 RDY0/1/2/3

Zero wait delay Wait delay Data[31:0]

DSPCLK tclk

t2+n*1/tclk

Ready sample Ready sample t5 Setup=2 Strobe=4 HOLD

=1 Setup=2 Strobe=4 HOLD =1 Not ready 10ns(max) 圖3.14 DSP EVM 模組寫出時序圖

(37)

圖3.15 USB 2.0 模組實體圖

(38)

USB

Module

Module

DSP

FPGA

Module

Aptix MP3C

PC

Terminal

Data Bus

圖3.17 USB 2.0 與週邊模組架構圖 圖3.18 EX USB 軟體操作介面圖

(39)

表3.1 TTL 邏輯準位

TTL

邏輯準位

一、 VOL VOH VIL VIH 電源

≦0.4 Volt ≧2.4 Volt ≦0.8 Volt ≧2.0 Volt 5 Volt

表3.2 TMS320C6701 DSP 外部記憶體與記憶體種類使用對應表

外部記憶體區塊

記憶體種類

CE0 CE1 CE2 CE3

SBSRAM

○ ○ ○ ○

SDRAM

○ ○ ○

ASRAM

○ ○ ○ ○

(40)

表3.3 C6701 EVM 模組記憶體映射表 Description Address Range(Hex) Size

(Byte) MAP 0 MAP 1

0000 0000–0003 FFFF Internal program RAM

64K Bytes 0040 0000–0003 FFFF

External memory SRAM CE0 256K Bytes 0100 0000–0101 FFFF External memory FLASH

CE1 128K Bytes

External memory SRAM CE0 256K Bytes 0140 0000–0141 FFFF Internal program RAM

64K Bytes

External memory FLASH CE1 128K Bytes 0180 0000-01FF FFFF DSP internal control register

0210 0000-0210 001C 32 UART (Only use low byte for each word) 0300 0000-0300 003F 32 All board disable

0300 0040-0300 007F 64 Board 1 active area. 0300 0080-0300 00BF 64 Board 2 active area.

0300 00C0-0300 0FFF Not use

0300 0100-0300 013F 64 Board 3 active area

0300 0140-0300 01FF Not use

(41)

表3.4 USB 2.0 模組管道對應表

16

16

0

ISO

10 OUT

16

16

0

ISO

10 IN

16

16

0

ISO

9 OUT

16

16

0

ISO

9 IN

256

16

0

ISO

8 OUT

256

16

0

ISO

8 IN

64

64

0

BULK

6 OUT

64

64

0

BULK

6 IN

64

64

0

BULK

4 OUT

64

64

0

BULK

4 IN

64

64

0

BULK

2 OUT

64

64

0

BULK

2 IN

64

16

0

INT

1 IN

64

64

64

CTL

0

Max Packet Size (bytes)

2

1

0

Alternate Setting

Type

Endpoint

(42)

表3.5 ALU 功能表,使用 2 埠 4 bits 輸入 A、B,與 1 埠 4 bits 輸出,並使用 S2S1S0決 定其工作模式

Operation Inputs

S

2

S

1

S

0

Outputs

F

Clear 000 0000

B−A 001 B−A

A−B 010 A−B

ADD 011

A

ADD

B

XOR 100

A

XOR

B

OR 101

A

OR

B

AND 110

A

AND

B

Preset 111 1111

(43)

四、MISO W-CDMA 高速下鏈基頻收發機之硬體電路設計

吾人所發展之MISO W-CDMA 高速下鏈收發機的系統實現電路中,將全系統的各功

能單元分為FPGA 及 DSP 兩部份來互相搭配,在 FPGA 的部分中,吾人使用二顆模組,分

別為Xilinx 所出的 VIRTEXE-2000 及 VIRTEXⅡ-6000,DSP 則使用’C6701 EVM 的模組,

系統的操作時脈為15.36MHz;在發射端,資料由 DSP 寫入到 FPGA 中的一組記憶體中, 再由記憶體把資料根據不同的編碼率來調整資料送出之速率,經由迴旋碼編碼器(編碼率 為 1/2 與 1/3)、交錯器、空-時區塊編碼電路,再和引導通道和同步通道相加起來,利用 八根天線所產生的二組波束,把資料由二組不同的角度送出。 在收接機的部分,吾人所使用到的功能單元為:RRC 濾波器,碼同步單元、路徑搜 尋單元、碼追蹤單元、解展頻電路、頻率估計及補償電路、空-時解碼電路、解交錯、迴 旋碼解碼電路,以上除了碼追蹤單元、路徑搜尋單元及頻率估計電路由DSP 來完成外,其 餘皆是由FPGA 來實現,使系統平台的整體速率可達到平行化(pipeline)的效能,其中部分 電路為採用學長的IP (Intellectual Property),整合於吾人的系統中,可以增加系統開發的時 效性。由FPGA 及 DSP 驗證結果,吾人將各部份單元更進一步的詳細說明與效能探討。在 本章最後,吾人將利用USB 模組來傳輸即時的影像,更可驗證系統的效能分析,吾人也將 說明討論及簡單歸納研究的心得結果。

4.1 MISO W-CDMA 基頻傳送端

吾人之 MISO W-CDMA 下鏈路傳送端架構如圖 4.1,其中使用了三種實體通道, DPDCH 通道用來傳送資料符元,DPCCH 通道為傳送一固定之引導符元,SCH 通道則是在 每個訊框的開頭放入64 碼片長度之 PN 碼,使接收端能偵測訊框起始位置。為了使同步訊 號能在更差的通道環境中依然能發揮效用,吾人令同步通道的振幅為其他通道的4 倍。 吾人利用DSP 產生長度為 300 bytes 的已知位元,其資料速率為 240 Kbps,透過資料 匯流排,將其送入FPGA 的雙埠記憶體中。依據系統的資料速率將記憶體中的資料周期性 的輸入編碼器電路中,其中編碼器是使用編碼率為 1/2、限制長度為 7 之迴旋編碼器,每 輸入一個資料位元,吾人可得到二個位元的輸出。依序經過交錯器重新排列後,其中交錯 器為使用雙埠記憶體來儲存資料陣列,為了能達到即時資料寫入與讀出,吾人配置雙倍之 記憶體空間儲存兩訊框之資料。當完成交錯器輸出後,資料為一串列位元流,之後經過串 列轉平行(serial to parallel)電路分成兩平行資料流,分別為 I 通道與 Q 通道,進入空-時編 碼電路。 由於資料流為一位元所表示之資料,以 0 與 1 映射成+1 與-1,故可用反相器來完成 共軛的電路。將交錯器輸出所分的I、Q 通道再分為四路,可做二組

2 2

×

之空-時區塊編 碼,經由每組空-時區塊編碼電路輸出為四路資料流,接著啓動展頻電路。DPDCH 展頻 0 與 1 之資料流,在每路資料流乘上相對應的展頻碼,完成展頻的動

(44)

作。但在電路實現的考量上,由於使用乘法器來作展頻會增加電路面積,故吾人以多工器

之架構來取代乘法器電路,當輸入資料為0 時,送出展頻碼

C

DPDCH,輸入資料為1 時,送

出反相展頻碼

C

DPDCH。吾人共使用4 組互相正交之 DPDCH,皆在每組空-時區塊編碼後

使用之。吾人之引導通道DPCCH 則固定送出位元 0,採用與 DPDCH 相同架構之多工器展

頻電路,所使用的展頻碼為

C

DPCCH。將各通道的資料結合起來,進入波束形成器電路中。

吾人之波束形成器是假設通道資料的方向角(Direction of Arrival, DOA)已被估測出 來,針對訊號來的方向,給予一組波束,將此方向的訊號接收下來。每組波束皆是由二根 波辦組成,由估出的方向角度左右各22.5 度產生一根波辦,此時方向角的位置即為 3dB 的 點。通道資料則由實際量測而得,先存放在 DSP 中,然後固定時間由 DSP 送出並與傳送 資料相結合,以模擬通道的效應。

4.2 時序同步之 FPGA 與 DSP 電路設計

在MISO W-CDMA 接收機(圖4.2)中,最重要的工作是找到訊框的起始位置,否則 之後各功能區塊的功能將無法正常運作。為了達到此目地時序同步為接收機不可或缺之單 元,時序同步單元主要分為三個部份,分別為碼擷取單元、路徑搜尋單元與碼追蹤單元。 在整個時序同步的流程中,起始的前十六個訊框做碼擷取單元,找出訊框粗略的起始位 置,再利用路徑搜尋單元,來找出經過多重路徑的訊框起始位置;由於在傳送端和接收端 分別使用不同的工作時脈,所以在接收端會產生時脈的偏移誤差,此時利用碼追蹤單元即 可解決時脈不同步的問題。以上三種電路除了使用FPGA 外,並搭配著 DSP 來作參數的計 算,產生多重路徑所需之訊框起始觸發訊號,來啓動下一階段的解展頻電路。

4.2.1

碼擷取單元

接收機收到資料後,資料經過了RRC 濾波器後便啓動碼擷取單元,其中,碼擷取單 元包含了匹配濾波器、比較器、計數器、最大值選擇器以及記憶體等,以下會介紹碼擷取 單元的運作流程。系統中,吾人以四倍的超取樣率(圖 4.3)作為系統的取樣,並且在進 入碼擷取電路前,吾人先把訊號平行分為四路(圖4.4),此時訊號的位元速率將會等於碼 片速率。由於在每個訊框的開頭都有包含了長度為64 碼片的 SCH 同步通道,所以由係數 為 SCH 的 PN 碼之匹配濾波器可將此 SCH 同步通道的位置對應出來,是為匹配濾波器的 輸出值。將值輸入比較器電路,找出訊框中之極大值出現時間(圖 4.5),其流程如圖 4.6 所示,因每個訊框只有一段SCH 同步通道,所以只會出現一個最大值,若在時間 t 得到最 大值時,表示在t 時間已完成匹配濾波器輸出,此時從 t 時間往前數 64 個碼片即是訊框的 起始位置。所以當最大值發生時,將會觸發一計數器電路,當計數器電路到達剩餘訊框時 間K 時,剛會產生下一個訊框之觸發訊號,其中 K 依式4.1計算:

(45)

SCH

(

)

K =

=

=

訊框碼片數

碼片數

超取樣率-1

(38400-64) 4-1

153343

(4.1)

4.2.2

路徑搜尋單元

當訊框的起始時間決定後,因多重路徑效應的影響,所以在接收端會產生數個極大 值,吾人必須從這些極大值中,找出多重路徑的起始位置。由於使用FPGA 做排序的動作 會較複雜且耗費FPGA 的面積,所以吾人改用 DSP 來處理路徑搜尋單元。首先,先將匹配 濾波器輸出能量的最大時間點前後 20 碼片區間的資料存入記憶體中,再利用中斷訊號並 透過資料匯流排來將記憶體中的資料寫入DSP,並且由 DSP 分析各路徑之起始位置,因為 系統是經過超取樣 41 碼片範圍內的資料(圖 4.7),所以吾人將資料經由下式重新排列合 併後,以減輕DSP 的運算量,加快運算的速度。 1,1 1,2 1,41 2,1 2,2 2,41 4 41 3,1 3,2 3,41 4,1 4,2 4,41

m

m

m

m

m

m

M

m

m

m

C

m

m

m

×

=

"

"

"

"

(4.2) 4 2 4 2 4 2 ,1 ,2 ,41 1 1 1 1 41 1 2 41 k k k k k k

M

m

m

m

M

M

M

R

= = = ×

=

=

"

"

(4.3) 其中

m

i j, 為延遲特徵符元,i 為超取樣引數,j 為碼片引數。吾人利用 DSP 搜尋

M ′

中的極 大值,並且根據大小來排列,依吾人所要求多重路徑的數目n 來取出前 n 個最大值;能量 最大者為第一條路徑,次大者為第二條路徑,並把這些路徑起始位置的參數回傳給FPGA, 以產生相對應之觸發訊號,並啓動解展頻電路,接著開始執行碼追蹤單元。

4.2.3

碼追蹤單元

在路徑搜尋單元取得多重路徑的訊框起始位置後,接著就啓動碼追蹤單元做精確時序 同步,以維持接收訊框與解展頻電路之間的同步性。而碼追蹤單元是使用先-遲碼追蹤迴 路(early-late code tracking loop)的架構(圖4.8)實現,因本系統為四倍超取樣率,所以當

時序有偏移時,碼追蹤單元所能修正的訊框長度為 1/4 碼片長。在碼追蹤單元中,調整步

伐之大小決定於傳送與接收電路工作時脈之漂移,若吾人之接收機之訊框起始位置每 10

(46)

在啟動解展頻電路後,除了對引導通道解展頻外,同時也會產生兩個伴隨之觸發訊

號,其中一個觸發訊號提前原訊框觸發訊號 1/2 碼片發生,啟動先引導通道(early pilot

channel)解展頻電路,另一個則落後原訊框觸發訊號 1/2 碼片,啟動遲引導通道(late pilot channel)解展頻電路。DSP 碼追蹤迴路之工作流程如圖4.9,由DSP 模組接收先、遲引導通 道解展頻之符元,並將其切割成15 個單位,相當於一個時槽容納 10 筆符元,吾人接著比 較在每一個單位中,先、後引導符元累積能量之大小,將比較的結果儲存於 loop_filter 參 數中,其初始值為 0,當先引導通道大於遲引導通道時,loop_filter 加 1,反之減 1。當比 較完 15 個單位後,若 loop_filter> Q+,則訊框起始觸發時間須提前 1/4 碼片;若 loop_filter<Q−,則觸發時間延後1/4 碼片;若 Q−<loop_filter<Q+,則不改變觸發時間。Q+Q−為吾人設定之上限值,其值愈大,表示調整步伐之條件愈嚴苛。 在時序同步電路上,圖4.10及圖4.11分別是NLOS 及 LOS 通道經過 DSP 路徑分析 後,所畫出的圖,可以很明顯的看出NLOS 有二處明顯的峰值,且相距約為 900ns;而 LOS 有二處明顯的峰值,同時FPGA 會根據峰值數目來送出相對應之訊框處理訊號,如圖4.12。

4.3 自動頻率控制器之 FPGA 與 DSP 電路設計

因為傳送端與接收端射頻(Radio Frequency, RF)電路製程上的不匹配,所以會有頻率 上的誤差。但本系統中並無使用到射頻元件來作升降頻的動作,故吾人利用 Xilinx

Foundtion 內的 Core Generator 自行產生一誤差弦波乘入系統內,模擬實際射頻電路所造成

的頻率誤差如圖4.13,使得本系統之同步功能更加完整,以降低和真實系統的差異性。 以下就是自動頻率控制器的原理及電路設計,自動頻率控制器分成兩塊主要部分,一 為頻率估計器,另一為頻率補償器。吾人之頻率估計器於DSP 模組中運算,頻率補償器則 為FPGA 電路,置於 RRC 濾波器前。DSP 中之頻率估計器每一個訊框估計一次頻率誤差, 並且更新FPGA 電路中頻率暫存器之頻率值,接著由頻率補償器根據此頻率補償接收訊號 中之頻率差。 在解展頻電路之後,吾人利用 DPCCH 估算頻率偏移

f

。DPCCH 為吾人已知之領 導符元 A,因頻率偏移之影響,解展頻後之引導符元為

A e

j(2π⋅∆ ⋅ +f t θ)。首先,將 DPCCH 領導符元延遲一個符元之時間長度 Ts後得到P1,與當時之領導符元 P2取共軛複數乘積, 得到如式4.4所示: 1 2 1 1 * * (2 ( ) ) * (2 ( ) ) 1 2 0 0 1 1 2 (2 ) (2 ( )) (2 ( )) 0 0 2 1 2 (2 ) (2 ( )) 0 c s s c s s c c s c n n j f iT T j f mT i m n n j fT j f iT j f mT i m n j fT j f iT i

P P

A e

A e

A e

e

e

A e

e

π θ π θ π π π π π − − − ⋅∆ − + ⋅∆ + = = − − ⋅∆ − ⋅∆ ⋅∆ = = − ⋅∆ − ⋅∆ =

=

=

=

(4.4) 將之

P P

*

的相位除上

2

π ⋅

T

之後,可求得

f

之估計值(圖 4.14)。然而,

f

之估計

(47)

範圍只在

1/2

T

s

≤ ∆ ≤

f

1/2

T

s有效,大於此估計範圍之頻率偏移會因為相位模糊 (phase ambiguity)之關係,無法得到正確之

f

,由於吾人之領導符元長度為256 碼片時間, 故吾人可以估算之

f

範圍為±7.5 KHz,足以對抗 3GPP 規格書中對頻率誤差 6 KHz 之要 求。 吾人利用 DSP 估計系統之頻率偏移,首先,讀取 FPGA 記憶體中 DPCCH 符元數學 式子如下:

P

1 150 1 2 150

p

p

p

C

×

=

"

(4.5) 將P 矩陣中兩相鄰符元之共軛複數乘積:

R

* * * 1 149 1 2 2 3 149 150

p p

p p

p p

C

×

=

"

(4.6) R 矩陣代表了訊號在此一訊框中之相位變化,最後,吾人將每一單元中的相位變化與其對 應之

f

i ,求其平均值

f

即為頻率估計值: * 1

(

)

2

i i i s

p p

f

T

π

+

∆ =

其中

i ∈

{

1,2, ,149

"

}

(4.7) 149 1

1

149

i i

f

f

=

∆ =

(4.8) 吾人所使用的頻率補償器架構圖如圖4.15,利用查表電路,將頻率估計出的值,找出最接

近的值,作為 CNT_TRIGER 的頻率引數 freq_idx,此引數決定 CNT_TRIGER 輸出觸發訊

號的時間間隔,頻率引數與補償器輸出頻率之相對關係如式4.9:

7

1.536 10

_

256

_

freq

freq idx

N

freq idx

×

=

×

(4.9) 再將產生出來的補償器乘回RRC 濾波器前,即完成頻率補償的動作。

4.4 解展頻單元之 FPGA 電路設計

在此系統中,吾人所使用的解展頻電路為一展頻碼相關器(correlator),其功能是對完 成時序同步的訊號作積分及傾卸(integrate and dump)的動作。吾人所需解展頻的訊號有二

類,分別是引導通道 DPCCH 及 DPDCH 兩種實體通道:對 DPCCH 而言,傳送端使用係 數為256 的展頻碼,則吾人要解出一筆引導通道符元,須依式4.10對接收的訊號做積分的 動作: 255

[ ]

DPCCH

[256

]

y n

=

C

x

n

+

m

(4.10)

(48)

其中

C

DPCCH

±

1

的展頻碼,

x m

[ ]

為接收到的訊號,解展頻電路的示意圖如圖4.16所示, 在引導通道解展頻的過程中,吾人藉由路徑搜尋單元所找出來的延遲路徑,對於不同的路 徑產生的訊框觸發訊號,來啓動不同路徑的引導解展頻電路,每個訊框皆有150 筆的引導 符元,吾人將先、遲與主要的引導通道解展頻之符元寫入雙埠記憶體中,再利用DSP 的資 料匯流排寫入DSP,作為碼追蹤單元以及頻率估計單元的依據資料。 利用FPGA 電路的參數化設計,資料解展頻電路只須改變解展頻電路的參數,吾人將 係數改為64 並且每 64 個碼片取樣一次,即可產生 DPDCH 的資料解展頻電路;而資料匯 流排 d_in 的寬度為 8 位元,當 frm_str 收到訊框觸發訊號時,資料解展頻電路即開始接收 此訊框的第一筆資料,係數依chip_str 輸出為

[

C

DPDCH,0

C

DPDCH,1

"

C

DPDCH,63

]

,再 與接收資料相乘,經過64 個碼片取樣後,隨即輸入一資料符元之結果 d_out,並且伴隨著 一符元觸發訊號sym_str 傳到下一級空-時解展頻電路。

4.5 空-時區塊解碼器及犁耙式接收機之 FPGA 電路設計

空-時區塊解碼器中使用到了通道估計值及解展頻後的資料,將經過空-時區塊編碼 的符元資料還原出來。故在吾人使用空時區塊解碼器之前,還須完成通道估計的動作。因 吾人之資料通道與引導通道會經過相同的通道效應,而且 DPCCH 為一已知的通道,故在 接收端DPCCH 解展頻後之輸出即為吾人所需通道估計值(圖4.17)。而空時區塊解碼器之 方塊圖如圖4.18所示,接收天線所計算之各通道估計值及不同路徑的資訊,再合併於空時 區塊解碼器上。由於利用傳送端八根天線的方式,把資料分為不同時間及空間送出,達到 分集式增益,能夠將符元資料更有效率地解出來,在接收天線之接收資料模型,數學式子 推導如式4.11: 1 1 11 1 2 21 1 1 11 2 12 2 1 21 2 2 22 2 1 21 2 22 H H H H

r

t w h

t w h

t

t

r

t w h

t w h

t

t

α

α

α

α

=

+

=

+

=

+

=

+

(4.11) 其中r1及r2為第一條路徑及第二條路徑接收到的資料,hi為傳送端對於特定角度所量測道 的通道,

w

ij為波束形成器的加權值,c1~c4為展頻相關器的係數。在接收機做完了同步及 解展頻電路之後,如式4.12、式 4.13:

數據

圖 2.3 MISO  W-CDMA 高速下鏈基頻接收機之系統方塊圖  圖 2.4 DS-CDMA 展頻技術示意圖 PilotDespreader  De-interleaverRRCFilterMFCodeAcquisitionFingerSearcherTrafficDespreaderPilotCancellerCodeTrackingAFCChannelEstimateSpace TimeBlock Decoder(STBD)RAKE Receiver Viterbi DecoderFrequenc
圖 2.7  資料通道之空-時區塊編碼圖(1)  c 1  DE-MUX s 1s 2 s 3 s 4 s 1 2 *−ss21*ss34*−ss4* 3s c 2c3 c 4 STBC STBC y 1y 2y3y4 t 1t 2 圖 2.8  資料通道之空-時區塊編碼圖(2) [21]**2112ssssss⎡−⎤→ ⎢⎥⎢⎥⎣⎦ * *432 1ssss−−**3412ssss4321ssssSTBCSource data
圖 2.10  第一條路徑之脈衝響應圖
圖 2.11 LOS 之脈衝響應圖(1)
+7

參考文獻

相關文件

開發職場安全 防災與智慧監 控技術,掌握 職業衛生危害 問題與預防技 術,提升職場 危害因子暴露 評估與職業傷 病預防,落實

Keywords: accuracy measure; bootstrap; case-control; cross-validation; missing data; M -phase; pseudo least squares; pseudo maximum likelihood estimator; receiver

Receiver operating characteristic (ROC) curves are a popular measure to assess performance of binary classification procedure and have extended to ROC surfaces for ternary or

‡ RFID 運作原理是透過一片小型硬體的無線射頻辨識技 術晶片( RFID chips),利用內含的天線來傳送與接

n Receiver Report: used to send reception statistics from those participants that receive but do not send them... The RTP Control

張庭瑄 華夏技術學院 數位媒體設計系 廖怡安 華夏技術學院 化妝品應用系 胡智發 華夏技術學院 資訊工程系 李志明 華夏技術學院 電子工程系 李柏叡 德霖技術學院

So the WiSee receiver computes the average energy in the positive and negative Doppler frequencies (other than the DC and the four frequency bins around it). If the ratio between

– discrete time and discrete state space – continuous time and discrete state space – discrete time and continuous state space – continuous time and continuous state space..