• 沒有找到結果。

碩 士 論 文 中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "碩 士 論 文 中 華 大 學"

Copied!
80
0
0

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

全文

(1)

中 華 大 學 碩 士 論 文

題目: 適用於無線區域網路 IEEE 802.11g 之 ERP-PBCC 維特比解碼器製作

Hardware Implementation of Viterbi Decoder for 802.11g ERP-PBCC Receiver

系 所 別 : 電機工程學系碩士班

學號姓名 : M09101030 施 英 堂

指導教授 : 陳 棟 洲 博士

(2)
(3)
(4)
(5)

中文摘要

本論文主要是以FPGA 晶片來實現一適用於無線區域網路 IEEE802.11g 系統 中的ERP-PBCC( Extend Rate PHY-Packet Binary Convolutional Coding)模式之維 特比解碼器。其中使用MATLAB 軟體估算維特比解碼器在不同資料傳送速率和 調變方式下之系統解碼效能,解碼器在解碼時之截斷長度(Truncation Length)與軟 式解碼之輸入量化位元數的解碼效能與硬體複雜度的比較分析。而比較之後的結 果將用來做為硬體實現的參考。在硬體實現方面,我們使用 VHDL 硬體描述語 言完成維特比解碼器之電路設計,在邏輯偵錯後,利用Synplify Pro 軟體來合成 維特比解碼器與設計電路。接著再以Altera 公司的 Quartus Ⅱ軟體對合成後之電 路進行模擬與驗證,最後再用Altera 公司 APEX 系列 EP20K1500EBC652-1X 可 程式化邏輯陣列(FPGA)晶片之發展板完成硬體實現。

(6)

ABSTRACT

In this thesis, the FPGA hardware implementation of Viterbi decoder for the ERP-PBCC mode of IEEE 802.11g system is completed. We use the MATLAB simulation tool to simulate the system performance. The decoding performances of Viterbi decoder for different truncation length and different number of soft-input bits are simulated and compared. The simulation results will be provided for reference of hardware implementation of Viterbi decoder. A Viterbi decoder of the ERP-PBCC mode of IEEE 802.11g system is designed with VHDL hardware design language, simulated with Quartus II tool, and synthesized with Synplify Pro tool. Finally, Using the Altera family APEX EP20K1500EBC652-1X FPGA development board to complete the hardware implementation and testing of the Viterbi decoder.

(7)

誌謝

首 先 感 謝 我 的 指 導 教 授,陳 棟 洲 博 士。陳 教 授 在 我 研 究 所 求 學 這 個 階 段 的 指 導 與 教 誨,使 我 完 成 研 究 所 學 業,也 使 我 在 通 訊 解 碼 這 方 面 獲 益 不 少 。 幾 年 的 時 光 , 說 長 不 長 , 說 短 不 短 , 卻 過 得 相 當 充 實 。

此 外,感 謝 周 良 昌 和 張 建 緯 學 長 的 啟 發 與 教 導,在 語 法 結 構 與 選 擇 適 合 工 具 上,給 予 大 力 協 助,還 有 申 仲 加、李 建 鋒 學 長 對 我 學 業 上 的 照 顧 。

感 謝 和 我 同 為 陳 教 授 的 研 究 所 戰 友 王 譯 鋒 和 黃 邵 雋 同 學,和 同 樣 為 基 頻 組 的 同 學 ,趙 育 誼 、 黃 俊 豪 、 蔣 忠 易、 金 道 倫 、 方 世 明 、 李 秋 樺 、 曾 國 華、吳 宜 龍、呂 宗 憲,一 起 度 過 這 研 究 所 裡 的 每 一 個 日 子。尤 其 是 王 譯 鋒 清 楚 的 觀 念 , 更 是 時 時 點 通 我 錯 誤 的 觀 念 。

另 外 當 然 不 能 忘 記 感 謝 實 驗 室 的 學 弟 們,王 永 彬、蘇 子 傑、張 皓 清、

陳 鵬 貴、王 昱 桀、劉 家 鈞、徐 名 諺、劉 政 佑、蔡 明 希、蘇 志 傑、梁 章 桓… 等 , 每 個 實 驗 室 的 成 們 , 讓 我 在 這 個 大 家 庭 中 成 長 。

最 後 , 最 重 要 的 要 感 謝 我 重 要 的 父 母 與 家 人 親 戚 , 由 於 他 們 的 鼓 勵 與 支 持 讓 我 無 後 顧 之 憂 完 成 研 究 所 學 業 , 取 得 碩 士 學 位 。

施 英 堂 筆 於 新 竹 風 城

(8)

目錄

中文摘要……….……….…...………I

ABSTRACT……….………...……….. II

誌謝………..III

目錄………..………IV

圖目錄………...…………...VI

表目錄……….………...………...X

第一章 802.11g 系統簡介………..………….. 1

第二章 PBCC 系統的詳細介紹和維特比解碼器之錯誤率軟體模擬…...…....…... 5

2.1 802.11g 系統中 ERP-PBCC 的主要編碼器和技術...………....……. 5

2.2 ERP-PBCC 模式之 MATLAB 模擬環境建構………….………..………17

2.3 ERP-PBCC 模式之解碼效能模擬………..………..………..21

第三章 ERP-PBCC 系統的維特比解碼器之硬體實現與驗證... 28

3.1 維特比解碼器之硬體電路架構……..………...…………...…... 28

3.2 維特比解碼器(Viterbi Decoder)之電路設計……….……….……….………..32

(9)

3.2.1 BMU………...……….……….32

3.2.2 ACSU 與 PMMU………...………….………..37

3.2.3 SMU………...……..………45

3.3 維特比解碼器硬體實現驗證………..…………54

第四章 結論..………..………..……….61

參考文獻………...………….…..64

(10)

圖目錄

圖2.1 ERP-PBCC 的 Packet 格式………...………6

圖2.2 ERP-PBCC 中的(2, 1, 6)編碼器...8

圖2.3 傳送端 ERP-PBCC 的調變架構……….……….8

圖2.4 (2, 1, 6)編碼器的調變方式……….………...…9

圖 2.5 ERP-PBCC 中的(3, 2, 8)的編碼器………..……….10

圖2.6 (3, 2, 8 )編碼器的 8PSK 調變方式……….………….…...………...11

圖2.7 (3, 2, 8)編碼器的 Clock 切換………...…..…...11

圖2.8 PPDU(PHY protocol data units)說明圖….………... 12

圖2.9 CRC 中內建的 ponynomial 運算方塊圖…………..……….. 16

圖2.10 CRC 中內建的 ponynomial 運算方塊架構說明圖….…………... 16

圖2.11 維特比解碼器模擬環境圖……….…...………...18

圖2.12 ERP-PBCC 5.5Mbps 維特比解碼截斷長度效能比較圖…...……...…22

圖2.13 ERP-PBCC 11Mbps 維特比解碼截斷長度效能比較圖……..…...……22

圖2.14 ERP-PBCC 22、33Mbps 維特比解碼截斷長度效能比較圖…….…...23

(11)

圖2.15 ERP-PBCC 5.5Mbps 維特比解碼模擬效能圖.………...24

圖2.16 ERP-PBCC 11Mbps 維特比解碼模擬效能圖………..………...24

圖2.17 ERP-PBCC 22、33Mbps 維特比解碼模擬效能圖………...…25

圖2.18 ERP-PBCC 5.5Mbps 硬式、軟式決策維特比解碼綜合效能比較圖…..…26

圖2.19 ERP-PBCC 11Mbps 硬式、軟式決策維特比解碼綜合效能比較圖…...27

圖 2.20 ERP-PBCC 22、33Mbps 軟式決策維特比解碼綜合效能比較圖……...27

圖 3.1 維特比解碼器之電路符號……...…..………....………...……29

圖3.2 維特比解碼器電路方塊連接………..……….…………....29

圖3.3 (2, 1, 6)編碼器 BMU 電路架構圖………..……....33

圖3.4 (3, 2, 8)編碼器 BMU 電路架構圖…………..………..………..34

圖3.5 (2, 1, 6)編碼器的 BMU 電路方塊合成圖…...……….…………..34

圖3.6 VHDL 所撰寫的(2, 1, 6)編碼器 BMU 硬體複雜度……...……….………..35

圖3.7 (3, 2, 8)編碼器的 BMU 電路方塊合成圖………….……...……….…….…35

(12)

圖3.11 路徑計值正規化的(2, 1, 6)編碼器 ACS cell 電路合成圖………...…...…39

圖3.12 VHDL 所撰寫的(2, 1, 6)編碼器 ACSU 硬體複雜度……….……...……40

圖3.13 利用Synplify Pro合成的(2, 1, 6)編碼器ACSU方塊……….……...…….41

圖3.14 路徑計值正規化的(3, 2, 8)編碼器ACS cell電路合成圖………....42

圖3.15 VHDL 所撰寫的(3, 2, 8)編碼器 ACSU 硬體複雜度….…………...……..42

圖3.16 利用 Synplify Pro 合成的(3, 2, 8)編碼器 ACSU 方塊………..……...43

圖3.17 SMU 單元電路內的記憶和邏輯架構圖……...……….…………...46

圖 3.18 回溯架構的方塊圖………...……….…………..46

圖3.19 Trace-Back 3-pointer even 架構下各方塊狀態與時間關係…..……...…..48

圖3.20 3-pointer even 架構的元件和電路方塊連接圖……….…………...…...…49

圖3.21 (2, 1, 6)編碼器中主要的 tb cell 電路合成圖………….…………...…...…50

圖3.22 (3, 2, 8)編碼器中主要的 tb cell 電路合成圖………….…………...…..….50

圖3.23 VHDL 所撰寫的(2, 1, 6)編碼器 SMU 硬體複雜度…….………...……....51

圖3.24 VHDL 所撰寫的(3, 2, 8)編碼器 SMU 硬體複雜度….…………...………51

圖3.25 VHDL 所撰寫的(2, 1, 6)編碼器維特比 Viterbi 硬體複雜度………..52

圖3.26 VHDL 所撰寫的(3, 2, 8)編碼器維特比 Viterbi 硬體複雜度..…...……...53

圖 3.27 維特比解碼器測試環境圖……….…...………..54

(13)

圖3.28 (2, 1, 6)編碼器之維特比解碼器測試環境時序圖………...…….55

圖3.29 (2, 1, 6)編碼器的原始資料(result)產生器…….…………...………..56

圖3.30 (3, 2, 8)編碼器之維特比解碼器測試環境時序圖….………...56

圖3.31 (3, 2, 8)編碼器的原始資料(result_x0、result_x1)產生器……...……....…57

圖3.32 (2, 1, 6)編碼器執行維特比解碼器之 SignalTap 的介面….…...………….58

圖3.33 (3, 2, 8)編碼器執行維特比解碼器 SignalTap 的介面……….59

圖3.34 (2, 1, 6)編碼器從發展板讀取的維特比解碼資料…...………..60

圖3.35 (3, 2, 8)編碼器從發展板讀取的維特比解碼資料…...…..……….60

(14)

表目錄

表 1.1 802.11a 和 802.11b 的簡單比較………..……….2

表2.1 802.11b 中 5.5Mbps 和 11Mbps SERVICE 區塊內八個位元值…………...14

表2.2 802.11g 中 22Mbps 和 33Mbps SERVICE 區塊內八個位元值…….…..….15

表2.3 ERP-PBCC 5.5Mbps 的 BPSK 對映參考表……….………...………18

表2.4 ERP-PBCC 11Mbps 的 QPSK 對映參考表….……...….………..19

表2.5 ERP-PBCC 22Mbps、33Mbps 的 8PSK 對映參考表………...………19

表 2.6 ERP-PBCC 5.5、11Mbps 的 BPSK 和 QPSK 解對映關係表……...…..20

表 2.7 ERP-PBCC 22、33Mbps 的 8PSK 解對映關係表…….………...20

表3.1 維特比解碼電路輸入/輸出訊號功能描述………….………...……….….30

表3.2 維特比解碼器時脈速度與訊號對應表……….……...…………...31

表3.3 (3, 2, 8)編碼器在三、四位元時的硬體複雜度比較…….….………..……..53

表 4.1 (2, 1, 6)編碼器各功能方塊使用之邏輯閘數量………....…………..62

表4.2 (3, 2, 8)編碼器各功能方塊使用之邏輯閘數量……….….………....62

表4.3 (3, 2, 8)編碼器的三、四位元維特比解碼器硬體複雜度比較...63

(15)

第一章 802.11g 系統簡介

在目前多樣化的生活中,一般人們在享受便利性的同時,也漸漸以擺脫空間 的限制為重要方向,也因此無線化產品的應用正不斷產生,身邊生活產品的無線 化,已成一個必然的趨勢。在通訊方面,無線技術在通訊科技扮演著相當重要的 角色。而無線區域網路在許多環境中提供了使用者的便利性,尤其以不方便架設 網路線的公眾場所,無線區域網路提供了可行的網路解決方案。

1997 年,國際電機電子工程師學會(IEEE)正式採用並公佈 802.11 系統為業界 第一種無線區域網路標準。雖然802.11 系統提供了多種的操作模式,但資料速率 最高只有 2Mbps,在需要高速流量的使用者看來,很明顯地不足。因此在推出不 久後,許多研究人員就開始著手進行改善其效能,最後產生出 802.11b 系統和 802.11a 系統兩種互不相容的新標準。但是 802.11 的系統並不是一個單一的標準,

目前較常見的是“802.11b” 系統,次常見的是“802.11a” 系統,而其中 b 版本頻率 範圍和802.11 系統相同,都是使用 2.4GHz 的 ISM(Industrial-Scientific-Medical)頻 帶,a 版本則是使用 5GHz U-NII(Unlicensed National Information Infrastructure)頻 帶。

1.1 大約說明了 802.11a[1]系統和 802.11b[2]系統的分別:

(16)

表1.1 802.11a 系統和 b 系統的簡單比較

802.11a 802.11b

調變方式

OFDM

(Orthogonal Frequency Division Multiplexing)

CCK、PBCC

(Complementary Code Keying) (Packet Binary Convolutional

Coding)

傳輸速率

最高可達“54M”bps(每秒百萬 位元),而且有好幾種傳送 速率可以選擇,多載波系統

平均為每秒“11M”bps,

為單載波系統

使用頻帶 5GHz 2.4GHz

安全性 高 低

干擾問題 少有 嚴重

價格方面 昂貴 便宜

表中 802.11b 系統在標準裡面規定支援 CCK 編碼,速率 5.5 和 11Mbps,PBCC 的傳輸技術則為可選用編碼技術,資料產出速率也是5.5 和 11Mbps,連線距離則 可更遠。另外,802.11b 系統還支援 2Mbps 和 1Mbps 資料降速(fallback data rates) 功能,所使用的貝克(Barker)編碼與 802.11 系統完全相同。而 802.11a 系統則採用 另一種多載波編碼技術,稱為正交分頻分工(OFDM),最高速率可達 54Mbps 的資 料速率。

(17)

由於設備的發展和製造都更簡單化,802.11b 系統成為第一個進入市場的標 準,不但很快在市場上站穩腳步,也證明無線區域網路技術的可行性。根據某些 市場專家的估計,802.11b 系統無線網路在當時便已有超過 2,000 萬名的使用者,

在當時使用的人數可謂相當的可觀。不久之後,接著當802.11a 系統設備也開始進 軍市場時,由於”a”和”b”這兩套系統有著很大的不同點,使得使用者和系統製造者 都產生了困擾,他們必須要在這兩種既不相容、也無法相互操作的標準之間做出 選擇,這讓他們對於無線區域網路技術的發展感到迷惑。

後來在 2000 年三月份,IEEE 802.11 系統工作小組成立了一個專案研究小組,

探討進一步擴大802.11b 系統標準的可行性,目標是為了讓它在 2.4GHz 頻帶提供 20Mbps 以上的資料傳送速率。這個研究小組又被稱為”G 工作小組”(Task Group G)。G 小組以一年半的時間,研究出多種技術替代方案,最後決定採用混合解決 方案,其中包含和802.11a 系統完全相同的 OFDM 的編碼技術,也提供同樣的實 體資料速率;但在另外一方面,此版本的 802.11g 系統標準草案卻和使用 802.11 系統相同的2.4GHz 頻帶,它還包含數種編碼機制,包括 ERP-CCK、ERP-OFDM 與ERP-PBCC,後者可提供 22 和 33Mbps 資料速率。

最後,在 2003 年的 5 月,802.11g 系統的標準正式通過審查,它把兩種完全 獨立,並且互不相容的兩種技術解決方案匯聚在一起,完成市場上面兩種不相容

(18)

嚴格說起來,802.11g 的系統,只是在 802.11a 系統和 802.11b 系統中,找一 條中間的道路,算起來應該是整合這兩套系統的過渡時期。在將來需要更高速的 傳輸速率和傳輸流量的要求下,802.11g 的系統可能不太適用。不過,以目前來說,

卻是很好的折衷方案。

無線區域網路IEEE 802.11g[3]系統的傳送速率高達 14 種,更依照調變方式的 不同,可區分為ERP-DSSS(Extend Rate PHY-Direct Sequence Spread Spectrum)(1 &

2Mbps) , ERP-CCK(Extend Rate PHY-Complementary Code Keying)(5.5 &

11Mbps) , ERP-OFDM(Extend Rate PHY-Orthogonal Frequency Division Multiplexing)(6, 9, 12, 18, 24, 36, 48 & 54Mbps) , ERP-PBCC(Extend Rate PHY-Packet Binary Convolutional Coding)(5.5, 11, 22 & 33Mbps)。其中 ERP-PBCC 四種速率,編碼器和解碼器的架構,是本篇論文的研究重點。並且在解碼方面是 利用維特比解碼器來做為計算的工具。

本篇論文的後面章節,便對ERP-PBCC 所產生四種速率的兩個編碼器做深入 的研究。第二章前半段詳細介紹ERP-PBCC 系統,而後半段的小節針對 ERP-PBCC 做錯誤率軟體模擬,也就是假設在理想狀態下,兩個編碼器分別通過 AWGN 通 道,再經由維特比解碼方法所解回來的資料,對照原來的輸入訊號,計算其錯誤 率。第三章則是針對ERP-PBCC 的兩種編碼器做硬體設計的實現,配合維特比解 碼法則,以小區塊的方式,分別對各小部份做硬體測試,最後再將其全部組合起 來,並經由Altera 公司 APEX 系列 EP20K1500EBC652-1X 可程式化邏輯陣列(FPGA) 晶片之發展板,來做為驗證的依據。最後的第四章是結論,對研究的內容做結尾。

(19)

第二章 ERP-PBCC 系統詳細介紹和維特比解碼器之錯誤率軟體模擬

本章主要是詳細說明IEEE802.11g 中 ERP-PBCC 系統的各項介紹,和使用大 眾相當普遍使用的 MATLAB 軟體,做錯誤率的效能分析。首先原始資料經由 ERP-PBCC 中的編碼器編碼和對映之後,通過理想化的 AWGN 通道,再利用維特 比解碼法則加以追溯解碼,所得到的結果,再和原始資料相對照,計算其錯誤率。

模擬的內容包括追溯時所用的截斷長度(Truncation Length)的效能比較,我們選定 較好的截斷長度之後,再和MATLAB 內建的程式 Vitdec 指令與該調變系統的理論 值,做效能比較和評估。以得到的效能分析結果,來做為第三章維特比解碼器硬 體實現的參考。最後,再輔以軟式決策(Soft Decision)的模擬結果,做為軟體模擬 效能的參考。

2.1 802.11g 系統中 ERP-PBCC 的主要編碼器和技術

2000 年初,美國一家叫”Alantro Communications”公司的兩位人員, “Chris Heegrad 和 Matthew Shoemake 兩位技術工作人員,為了提高 802.11b 系統標準的 傳輸速率,就提出了 ERP-PBCC(Extend Rate PHY-Packet Binary Convolutional Coding )技術。Shoemake 緊接著受命成立一個研究小組,專門研究如何提高 802.11b 系統標準的傳輸速率。這個研究小組,後來就演變成IEEE 802.11g 系統的工作小

(20)

線網路的訊號速率,使它從802.11b 系統所支援的 11Mbps 增加至 22Mbps,並提 供和現有的802.11b 系統的共存能力和操作互通性。研究技術小組將此技術提報給 802.11g 系統小組時,802.11g 系統小組並未列入必備的高速調變技術,而是提供 作為選用功能。而ERP-PBCC 在市場上有時候也被稱為 802.11b+。

802.11g 系統採用 802.11b 系統裝置無法解碼的 ERP-OFDM 標頭,ERP-PBCC 的標頭則和現有的 802.11b 系統裝置相同,因此現有的 802.11b 系統裝置可對 ERP-PBCC 封包標頭進行解碼,這是 ERP-PBCC 重要的特性之一。ERP-PBCC 標 頭包含一個”持續時間”(Duration)欄位,它是由原始的 802.11 系統標準所定義,用 途是讓接收機知道目前傳送的封包有多長(單位以微秒來計算)。換言之,即使接收 機無法對封包的其餘部份進行解碼,例如受到干擾或資料編碼採用接收機不認識 的ERP-PBCC 或其它調變技術,接收機也知道要等待多久才能重新傳送資料,而 不會與目前的傳送動作發生衝突的現象。這是一個技術層面重要的突破。

圖2.1 簡單說明了 ERP-PBCC 其中的 Packet 格式。

圖2.1 ERP-PBCC 的 Packet 格式[3]

(21)

ERP-PBCC 技術的好處如下所列[4]:

(1) 因為它允許現有的 802.11b 系統的基地台、ERP-PBCC 加強型 802.11b 系 統基地台以及選用 ERP-PBCC 模式的 802.11g 系統基地台一起工作,不 需要特殊的QoS 網路連線品質或協調功能。ERP-PBCC 可以達成這項要 求,是由於它採用三種基地台(現有的 802.11b 系統基地台、ERP-PBCC 加強型802.11b 系統基地台與選用 ERP-PBCC 模式的 802.11g 系統基地台) 都能解碼的相同封包標頭,而且標頭還包含”持續時間”欄位。

(2) 能提高速率,進而提供更高的產出,而且不會影響這類混合模式操作。

(3) ERP-PBCC 網路卡與 ERP-PBCC 家庭網路以外的裝置通訊時,會採用可 相互操作的標準802.11b 系統模式。

(4) 消費性市場上,使用者多半會向同一家廠商購買接取點和無線網路卡,它 們 通 常 會 使 用 同 一 家 廠 商 的 晶 片 組 , 因 此 能 在 應 用 的 兩 端 提 供 ERP-PBCC 功能。

前 面 有 提 到 過 ,ERP-PBCC(Extend Rate PHY-Packet Binary Convolutional Coding)主要的傳送速率為有四種:5.5Mbps、11Mbps、22Mbps 和 33Mbps,不過,

這四種速率並非由同一個編碼器所產生,而是由兩個編碼器所分別構成。一個編 碼器分別產生兩種速率,二二得四,所以兩個編碼器分別產生四種速率。下面我 們便針對這兩種編碼器作深入的討論[3]。

(22)

圖2.2 的編碼器為一(2, 1, 6)的標準迴旋編碼器(Convolutional Encoder),所產 生的傳送速率分別為5.5Mbps 和 11Mbps,其中再以調變的方式來加以區分要傳送 的速率。圖 2.2 便是在傳送 5.5Mbps、11Mbps 時所用的編碼器,以及圖 2.3 也簡 單說明了當此編碼器在傳送端時的運作方式。

圖2.2 ERP-PBCC 中的(2, 1, 6)編碼器[2]

圖2.3 傳送端 ERP-PBCC 的調變架構[2]

在圖2.2 中,(2, 1, 6)編碼器的生成序列為 g(0) = (1 5 5 )和 g(1) = (1 3 7)。其中 5.5Mbps 的傳送速率是使用 BPSK 來傳送,而 11Mbps 的傳送速率則是使用 QPSK。

圖2.4 便說明了其傳送時的調變方式。

(23)

圖2.4 ERP-PBCC 5.5、11Mbps 的 BPSK、QPSK 調變方式[2]

不論是 BPSK 或 QPSK,經由在傳送端的開關(Switch)切換,每一種傳送方式 都有其S0 和 S1 兩種對稱式的調變方式。當然在解調回來的時候,也會配合在傳 送端所用的傳送方式是哪一種,而做相對應的切換解調,以減少解錯碼的機率發 生。

(24)

另外兩種的傳輸速率,也就是 22Mbps 和 33Mbps 的編碼器,可見圖 2.5。

圖 2.5 ERP-PBCC 中的(3, 2, 8)編碼器[3]

此編碼器已較原先的(2, 1, 6)編碼器複雜許多,是一個兩個輸入、三個輸出的 (3, 2, 8)編碼器。其生成序列的矩陣為[21 10 12, 2 25 12],傳送的速率便有 22Mbps 和33Mbps 兩種。不過,和之前(2, 1, 6)的編碼器最大不同的地方便是,(2, 1, 6)的 編碼器是利用調變方式的不同,就是BPSK 或 QPSK 來做兩種傳送速率的轉換,

但(3, 2, 8)的編碼器卻不是如此,而是利用傳送端的 Clock 的不同,來做為傳送速 率的區分。22Mbps 是用 11MHz 的頻率,而 33Mbps 則是用 16.5MHz 的頻率,不 過傳送的調變方式卻都是用8PSK。圖 2.6 便說明了其調變方式,同樣的,亦有 S0 和S1 兩種開關來做切換的動作。

(25)

圖 2.6 ERP-PBCC 22、33Mbps 的 8PSK 調變方式[3]

上文有提到說,22Mbps 和 33Mbps 兩種速率的切換是利用 Clock 的不同來作 為區分,而圖2.7 便簡單扼要地說明了,當這兩種速率在切換所執行的動作。

圖 2.7 ERP-PBCC 22、33Mbps 的 Clock 切換[3]

(26)

我們可以從圖 2.7 看出,在 shift 的區塊中,也就是 11Mchip/s 的尾端( Tail),

等Tail 經過了 3 個的 Clock 的週期,位元分別是 1 1 1 之後,便立刻做 Clock 的切 換,也就是馬上切換到16.5Msymbol/s 的前端(Head),週期亦為 3 個 Clock,位元 是0 0 0,便緊接著到後面的”ReSync”這個區塊。在 ReSync 這個區塊中,經過的 時間是 9 個 Clock,位元是 1 0 0 0 1 1 1 0 1。整個 ReSync 區塊可以算是 16.5Msymbol/s 速率的前導區塊。之後,便是成功地轉換到了 16.5Msymbol/s,完 成了兩種速率的切換。而切換的時間,也就是從 11Mchip/s 的尾端 Tail 開始,到 16.5Msymbol/s 的前導區塊 ReSync 結束(Tail & Head & ReSync),前後的時間總共 只需1μs 的時間。

最後,必定會考慮到一個問題,當一串的連續資料要傳送時,802.11g 的系統 要如何來辨別,是要用哪一種調變系統呢?要使用哪一個編碼器呢?如何選擇傳輸 所需要的速率呢?以下有簡略的說明。

參 考 圖 2.8 , 是 傳 送 端 PHY(Physical Layer) 裡 面 主 要 決 定 傳 送 方 式 的 PPDU(PHY protocol data units)說明圖[2]。

(27)

在 PPDU 裡面,最主要決定傳送系統的是在 PLCP(Physical Layer Convergence Procedure)區塊裡,就之前第一章有提到的內容,在 802.11g 的系統方面同時存在 著 ERP-DSSS、ERP-CCK、ERP-PBCC、ERP-OFDM 等四種調變方式,我們單純 地只針對ERP-PBCC 方面做探討。

一:PLCP Preamble(144bits)

在這一區塊裡面,包含了 SYNC(Synchronization,128bits)和 SFD(Start Frame Delimiter,16bits)兩個方面,其主要的工作便是將輸入訊號同步化,並且傳送啟動 訊號給下一段的PLCP Header,告知 PLCP Header 可以開始做傳送系統的選擇。

二:PLCP Header(48 bits)

在這個區塊裡,包含了 SIGNAL、SERVICE、LENGTH、CRC 的個小區塊,

這四個小區塊,決定了系統的傳送方式。SIGNAL 決定傳送速率,SERVICE 和 LENGTH 決定調變方式,也就選擇要使用哪一個編碼器,最後的 CRC 區塊則是將 前面所處理好的資料,再重新以內建的polynomial 運算偵錯,之後傳送出去。

(1) SIGNAL(8bits)

以八位元來表示所需要的傳送速率,分別如下[2-3]:

[37] (msb to lsb) for 5.5Mbit/s;

(28)

(2) SERVICE(8bits)

表2.1 說明了 802.11b 中,5.5Mbps 和 11Mbps 中 SERVUCE 的八個位元值的 運作形式[2]。

表2.1 802.11b 中 ERP-PBCC 5.5Mbps 和 11Mbps SERVICE 區塊內八個位元值[2]

b0 b1 b2 b3 b4 b5 b6 b7

Reserved Reserved Locked Clocks Bit 0=Not 1=Locked

Mod Selection Bit 0=CCK 1=PBCC

Reserved Reserved Reserved Length Extension Bit

b0、b1、b4、b5、b6 為預留值,設定為”0”。b2 為固定 clock 的位元值,”0”

為否,”1”則是鎖定。b3 則是選擇以何種調變方式傳送,”0”為 CCK 調變,”1”為 PBCC 調變。而最後的值 b7,是由下一個區塊 LENGTH 計算之後所置入的值,而 值如何產生的,在LENGTH 區塊會有說明。

同樣地,在 802.11g 中新增的 22Mbps 和 33Mbps,表 2.2 也有說明。

(29)

表2.2 802.11g 中 ERP-PBCC 22Mbps 和 33Mbps SERVICE 區塊內八個位元值[3]

b0 b1 b2 b3 b4 b5 b6 b7

Reserved Reserved

Locked Clocks Bit

0=Not 1=Locked

Modulation Selection 0=Not ERP-PBCC 1=ERP-PBCC

Reserved

Length Extension Bit

(EPR-PBCC)

Length Extension Bit

(EPR-PBCC)

Length Extension Bit

b0、b1、b4 同樣為預留值,設定是”0”。b2 是固定傳送的速率,”0”為否,”1”

為鎖定。b3 是決定是否使用 PBCC 的位元值,”0”為使用他其系統,”1”則是使用 PBCC 系統。b5、b6、b7 同樣是從 LENGTH 區塊所計算之後,置入的值。

(3) LENGTH(16bits)

簡單說明LENGTH 的計算程序如下:(以 11Mbps 為例) LENGTH’x = ((number of octets +P) × 8)/R

LENGTH = Ceiling (LENGTH’x)

若(R=11)且(LENGTH-LENGTH’x) ≧ 8/11 則LENGTH=”1”,其餘 LENGTH 為”0”。

(30)

在接收端,要解調回來的時候,只要將在傳送的計算方式,倒著算回來一次,

就能得到原來的資料了。

(4)CRC-16(16bit/s)

在這一區塊內,是將之前處理好的資料,再經由內建的 polynomial 重新運算,

主要目的在於偵錯,之後才將處理好的資料發送出去。可參考圖2.9 和圖 2.10。

圖 2.9 CRC 中內建的 ponynomial 運算方塊圖[2]

(31)

2.2 ERP-PBCC 模式之 MATLAB 模擬環境建構

圖2.11 為模擬環境架構圖,模擬環境是根據 IEEE 802.11g 系統中 ERP-PBCC 編碼技術來撰寫 M-file 檔案,構成維特比解碼器模擬環境的所有方塊。編碼器的 訊號來源是利用 MATLAB 軟體中的 rand 與 round 指令,來構成隨機數列產生器 (Random Number Generator)。

我們可由第一小節的圖 2.4 得知,(2, 1, 6)編碼器中的調變方式有 BPSK 和 QPSK 兩種,而其相對映的方塊則是根據表 2.3 和表 2.4 得知其輸入與輸出的關係 值,將編碼後的訊號做對映(mapping)後輸出到通道方塊。相似的方法,我們也同 樣參考第一小節中的圖2.6,8PSK 的對映方式,做出表 2.5 的對照值,來得知(3, 2, 8)編碼器的對映狀況。

因為模擬是針對維特比解碼器的參數進行模擬,所以通道是考量 AWGN 通 道,做為簡化的通道模型來進行模擬與分析。選擇用AWGN 為模擬通道的主要原 因,在於AWGN 所產生的雜訊,雜訊與雜訊之間互相是獨立的狀態,並不會互相 影響到,方便在解碼時的計算。而解對映方塊的運作是將接收到的訊號量化成維 特比解碼器所需之位元計值,表2.6 則是(2, 1, 6)編碼器量化之後 BPSK 和 QPSK 的解對映輸入與輸出關係表。表2.7 則為(3, 2, 8)解碼器的解對映關係表。

(32)

圖2.11 維特比解碼器模擬環境圖

表2.3 ERP-PBCC 5.5Mbps 的 BPSK 對映參考表

S0 S1 Input

(y0)

I-out Q-out Input

(y0)

I-out Q-out

0 0.707 0.707 0 -0.707 0.707

1 -0.707 -0.707 1 0.707 -0.707

(33)

表2.4 ERP-PBCC 11Mbps 的 QPSK 對映參考表

表2.5 ERP-PBCC 22Mbps、33Mbps 的 8PSK 對映參考表

S0 S1 Input(y2y1y0) Input(y2y1y0)

000 0.707+0.707j 000 -0.707+0.707j 001 -0.707+0.707j 001 -0.707-0.707j 010 -0.707-0.707j 010 0.707-0.707j 011 0.707-0.707j 011 0.707+0.707j

S0 S1 Input

(y1y0)

I-out Q-out Input (y1y0)

I-out Q-out

00 0.707 0.707 00 -0.707 0.707 01 -0.707 0.707 01 -0.707 -0.707 10 0.707 -0.707 10 0.707 0.707 11 -0.707 -0.707 11 0.707 -0.707

(34)

表2.6 ERP-PBCC 5.5、11Mbps 的 BPSK 和 QPSK 解對映關係表

S0 S1 Input (I、Q) y0(y1) Input (I、Q) y0(y1)

0.707 0 -0.707+0.707j 1 -0.707 1 -0.707-0.707j 0

表2.7 ERP-PBCC 22、33Mbps 的 8PSK 解對映關係表

S0 S1 Input (y2y1y0) Input (y2y1y0)

0.707+0.707j 000 -0.707+0.707j 000 -0.707+0.707j 001 -0.707-0.707j 001 -0.707-0.707j 010 0.707-0.707j 010 0.707-0.707j 011 0.707+0.707j 011

j 100 -1 100

-1 101 -j 101

-j 110 1 110

1 111 j 111

(35)

2.3 ERP-PBCC 模式之解碼效能模擬

根據維特比解碼法則,理論上訊號輸入的柵狀圖長度是無限長的,但是在硬 體實現上,儲存的長度是不可能無限的,所以需要將柵狀圖長度加以截斷,但又 不能影響到太多的解碼效能。學者Forney 提出的研究結果報告,維特比解碼器截 斷長度τ min ˜ 5.8 m 時(一般都以 6m 為估計值),而將輸入訊號以一定長度截斷之 後,會產生錯誤的機率,我們一般是可以忽略不計的[10-11]。而其中 m 為編碼暫 存器長度。

我們利用圖2.11 的模擬環境,進而模擬量化位元數對維特比解碼器效能的影 響。如之前所介紹的內容,來源資料首先經過編碼器之後,通過理想化的AWGN 通道,緊接著在經過維特比解碼器運算之後,需恢復成原來的原始碼的資料型態,

而解出來的資料,要和原先的來源資料做比較,計算有幾個解錯的資料。不過,

在維特比解碼器的運算中,其中處理解碼資料量的截斷長度(Truncation Length),

也就是控制追溯回去的資料長度。在考慮到硬體方面的問題,我們必需選擇適合 的、且最好是二位元次方的截斷長度。因此在此原則下,我們針對(2, 1, 6)編碼器 中的BPSK 調變、QPSK 調變的兩種型式,和(3, 2, 8)編碼器中的 8PSK 調變的截 斷長度進行模擬與效能分析。根據上文所提到的Forney 的研究報告[10-11],針對 (2, 1, 6)編碼器做四種截斷長度的比較,分別是 24、32、36、48,BPSK 和 QPSK

(36)

圖2.12 ERP-PBCC 5.5Mbps 維特比解碼截斷長度效能比較圖

(37)

圖2.14 ERP-PBCC 22、33Mbps 維特比解碼截斷長度效能比較圖

由圖 2.12、圖 2.13、圖 2.14 得知,在(2, 1 ,6)編碼器的 5.5Mbps 和 11Mbps 方 面,幾乎所有截斷長度的錯誤比較率,都集中在同一條線上,相差不遠,因此考 量到硬體方面的設計,我們就選擇截斷長度為”32”,來做為硬體在解碼方面的截 斷長度。而(3, 2, 8)編碼器方面,三種截斷長度的比較很明顯有差距,所以我們選 擇錯誤率較低的截斷長度”48”,做為在硬體解碼方面的應用。

(38)

圖 2.15 ERP-PBCC 5.5Mbps 維特比解碼模擬效能圖

(39)

圖2.17 ERP-PBCC 22、33Mbps 維特比解碼模擬效能圖

在圖 2.17 中,ERP-PBCC 22、33Mbps 模擬圖裡面並沒有用 Matlab 內建的 Vitdec 指令所描繪的線,這是因為在Vitdec 指令裡面,計算解碼的路徑計值(Branch Metric) 時,由於是8PSK 的原因,所以在計算路徑計值的漢明距離(Hamming Distance)會 發生計算錯誤的現象,所以不選擇使用。至於為何會計算錯誤的原因,在第三章 介紹路徑計值(Branch Metric Unit)的章節會有比較詳細的說明。

(40)

模擬比較,和原來硬式決策(Hard Decision,二等分)的效能做相互比較。(3, 2, 8) 編碼器則是做了三、四、五、六位元(就是八、十六、三十二、六十四等分)軟式決 策的模擬比較,其中(3, 2, 8)編碼器原先就是 8PSK 的型式,也就是說本身就是八 等分的型式,所以軟式決策便再細分到十六、三十二、甚至六十四等分。可參考 圖2.18、圖 2.19、圖 2.20。

圖 2.18 ERP-PBCC 5.5Mbps 硬式、軟式決策維特比解碼綜合效能比較圖

(41)

圖2.19 ERP-PBCC 11Mbps 硬式、軟式決策維特比解碼綜合效能比較圖

(42)

第三章 ERP-PBCC 系統的維特比解碼器之硬體實現與驗證

本章主要是實現與驗證符合 IEEE 802.11g 中 ERP-PBCC 部份之維特比解碼 器。我們使用VHDL 硬體描述語言完成維特比解碼器之電路設計,在邏輯偵錯後,

利用 Synplify Pro 軟體來合成維特比解碼器與設計電路。接著再以 Altera 公司的 Quartus Ⅱ軟體對合成後之電路進行模擬與驗證,最後再用 Altera 公司 APEX 系列 EP20K1500EBC652-1X 可程式化邏輯陣列(FPGA)晶片之發展板完成硬體實現。

3.1 維特比解碼器之硬體電路架構

圖3.1 與圖 3.2 分別為維特比解碼器之電路符號與內部架構圖。其中,輸入訊 號enable 為維特比解碼器的致能訊號,”0”為重置,”1”為啟動。clk 為 802.11g 的 四種傳送速率的頻率,也就是5.5、11、22 和 33 MHz 之時脈訊號,輸入訊號 data0、

data1、data2(data2 是頻率為 22MHz、33MHz 時才有用到),為子載波調變符元 (subcarrier symbol)信號。Code_Rate 為在接收訊號時,速率和編碼器的決定。

表 3.1 為維特比解碼電路輸入/輸出訊號功能簡單描述表,而表 3.2 則是維特 比解碼器時脈速度與訊號對應表。依據調變模式的不同,子載波調變符元之訊號 個數也不同。大概的情形,請參閱表3.2。

(43)

圖3.1 維特比解碼器之電路符號

(44)

表3.1 維特比解碼電路輸入/輸出訊號功能描述

訊號名稱 輸入/輸出 功能描述

enable 輸入

解碼器啟動致能訊號:

當enable 值為”1”時,解碼器開始動作。

clk 輸入

系統時脈:

維特比解碼器從輸入端讀入資料之時脈。

系統時脈有5.5M、11M、22M、33MHz 四種。

Data2 (MSB)

~ Data0 (LSB)

輸入

解碼輸入訊號:

根據不同的調變型態和碼率訊號,輸入訊號 有效值,可參考表3.2。

Code_Rate 輸入

碼率訊號:

碼率訊號有4 種模式:(PLCP 中的 SIGNAL) 5.5Mbps(37)8、11Mbps(6E)8、22Mbps(DC)8、 33Mbps(21)8

Decoder_out 輸出

解碼器輸出解碼結果。結果將和原輸入訊號 做比較。

(45)

表3.2 維特比解碼器時脈速度與訊號對應表

資料速率 訊號名稱

Data Rate(Mbps) 輸入訊號所用之腳位 clk (MHz) Code_Rate 5.5M Data0、Data1 5.5 00110111

11M Data0、Data1 11 01101110 22M Data0、Data1、Data2 22 11011100 33M Data0、Data1、Data2 33 00100001

(46)

3.2 維特比解碼器(Viterbi Decoder)之電路設計

3.2.1 BMU

BMU 電路主要是計算分支路徑與接收信號之距離差值,從接收端接收位元 Data A 、Data B、DataC,分別先計算跟”0”和”1”的漢明距離(Hamming Distance),

再依據編碼器的不同,計算分支計值,如(2, 1, 6)的編碼器就有 4 種可能分支路徑,

而組成4 種分支計值,我們分別計為 bm00、bm10、bm01 和 bm11。同理(3, 2, 8) 的編碼器就會有8 種可能的分支路徑,組成 8 種分支計值,我們就計成 bm000、

bm001、bm010、bm011、bm100、bm101、bm110、bm111,見圖 3.4。不過,(3, 2, 8)編碼器和(2, 1, 6)編碼器有一個很不同的地方,(2, 1, 6)編碼器計算路徑計值的方 式,可以用傳統”互斥或閘” (xor)的方式計算來相加,但是(3, 2, 8)的編碼器卻不 行,因為我們可以由第二章的圖 2.6 來得知,假設當初原先傳送的值是”000”,經 過有雜訊干擾的通道之後,可能會落在比較靠近”111”的地方,解對映之後,也就 可能判斷為”111”的值,尤其”000”和”111”的值相當接近,換句話說,這種誤判的 機率會非常的大。倘若用傳統互斥或閘的方式來計算,原先最有可能是”000”而因 為干擾被解對映時判斷為”111”的值,用互斥或閘計算相加之後,卻是最大,也就 是最不可能為原先值,在解碼之後,也最不可能解回為原來的值,會把”000”解 成”111”的值。這也說明了圖 2.17 中,為什麼並沒有利用 MATLAB 的內建 vitdec 指令來做 8PSK 的效能估計,因為 MATLAB 內建的 vitdec 指令就是用傳統”互斥 或閘”的方式在計算。所以,基於這個原則,我們不能選用互斥或閘來計算,必需 要配合圖2.6,以假設任意一點落在哪一區塊時,經由解對映而判斷為何值之後,

計算到相對 8 個值的距離來設計,所以我們選用減法器,來做為設計路徑計算硬

(47)

圖3.5、圖 3.7 是利用電路合成軟體 Synplify Pro,將兩個編碼器的 BMU 電路 合成的RTL(Register Transistor Level) view。另外,圖 3.6 和圖 3.8 是 VHDL 硬體 描述語言所撰寫BMU 部份,其所需要的 LE(Logic Elements)的數量。我們可以簡 單地比較一下圖3.6,也就是(2, 1, 6)編碼器所用的 LE 是 12,而圖 3.8 的(3, 2, 8) 編碼器所用到的LE 有 19 個,19 /12≒1.58,將近是 1.5 倍左右的 LE,其主要原因,

是因為(3, 2, 8)的編碼器所用到減法器邏輯閘的數量,將近是(2, 1, 6)編碼器加法器 邏輯閘的 2 倍,但是少了互斥或閘的元件,所以差距便不會拉大至 2 倍,下面會 有簡單地說明。

(2, 1, 6)的編碼器主要是由 4 個加法器和多工器所構成。4 個加法器計算 4 種 不同的分支計值,所計算出的值,將一一傳送到下一級的計算單位去。(3, 2, 8)的 編碼器主要就是由8 個減法器和多工器所組成的。8 個減法器分別計算 8 種不同的 分支計值,同樣的,所計算出的值,將一一傳送到下一級的計算單位去。所以由 上述的文章可以看出,(3, 2, 8)編碼器的減法器使用到 8 個,要比(2, 1, 6)編碼器所 使用的 4 個加法器要多出一倍,但是卻少了互斥或閘的邏輯閘元件,也就是會縮 小至不到2 倍的差異。

(48)

圖3.4 (3, 2, 8)編碼器 BMU 電路架構圖

(49)

圖3.6 VHDL 所撰寫的(2, 1, 6)編碼器 BMU 硬體複雜度

(50)

圖3.8 VHDL 所撰寫的(3, 2, 8)編碼器 BMU 硬體複雜度

(51)

3.2.2 ACSU 與 PMMU

在 ACSU 方塊部分主要是由許多的 ACS cell 構成,依照狀態數的不同,ACS cell 的數目也會大大地不同。ACS cell 主要的運算可分成三個部分,如圖 3.9,為 (2, 1, 6)編碼器的 ACS cell 單位。其總共 ACS cell 的數目就有 64 個。

ACS cell 分別計算進入每一狀態點的兩個分支計值與其對應的前一時間之存 活路徑計值相加,然後比較兩個路徑計值大小,最後選擇計值比較小的分支成為 生存路徑計值(survivor path metric),並輸出決策位元(decision bit)給 SMU 方塊。

圖3.9 (2, 1, 6)編碼器中 ACS cell 與正規化電路方塊圖

同理,(3, 2, 8)的編碼器只是有四條分支路徑值和四個加法器,其餘原理和(2, 1,

(52)

圖3.10 (3, 2, 8)編碼器中 ACS cell 與正規化電路方塊圖

電路對於維特比解碼器路徑計值的大小只能以有限位元表示,當計值溢位 時,電路無法正確表示路徑計值的大小,會影響ACS cell 的大小判斷,因此適當 的正規化路徑計值是必要的[15-17]。圖 3.9 中,路徑計值的正規化,我們採用所有 ACS cell 同步正規化,因為在電路設計方面,我們是選擇使用 7 個位元來表示路 徑計值大小,也就是說路徑計值最大只能累加到64,所以當所有 ACS cell 方塊路 徑計值大於64 時,我們必需將全部路徑計值減 64。在硬體電路實現時,則必需將 計值以二進位的位元表示法之最前端的第7 個位元值的’1’改變成’0’,便可實現將 全部計值減64[15-17]。

同樣的,實現(3, 2, 8)的編碼器的電路設計方面,我們是選擇用 9 個位元來表 示路徑計值,為了防止溢位,我們也在以二進位的位元表示法最前端的第 9 個位 元之”1”改成”0”,就同樣可以將全部路徑計值減 256[15-17]。

(53)

圖3.11 路徑計值正規化的(2, 1, 6)編碼器 ACS cell 電路合成圖

圖3.11 為利用 Synplify Pro 合成的(2, 1, 6)編碼器 ACS cell 的電路,由 2 個加 法器、計值大小判斷與正規化電路所構成,輸出決策位元與生存路徑計值。當正 規化訊號致能時,正規化電路對生存路徑計值正規化。正規化訊號不致能時,生 存路徑計值則直接輸出。因為正規化訊號是對前一個時間點所有ACS cell 存活路 徑計值大小的判斷而產生,所以路徑計值的正規化是在ACS cell 完成存活路徑計 值判斷之後,再完成正規化。不過,要注意到溢位的問題。

(54)

圖 3.12 VHDL 所撰寫的(2, 1, 6)編碼器 ACSU 硬體複雜度

圖3.12 便是整個(2, 1, 6)編碼器的 ACS 方塊的硬體電路複雜度,以及所需要 的LE(Logic Elements)的數量。

(55)

圖3.13 利用Synplify Pro合成的(2, 1, 6)編碼器ACSU方塊

圖 3.13 為(2, 1, 6)編碼器中,其整個 ACSU 部份所有 64 個平行的 ACS cell,

(56)

圖3.14 路徑計值正規化的(3, 2, 8)編碼器 ACS cell 電路合成圖

圖3.14 亦為利用 Synplify Pro 合成的(3, 2, 8)編碼器 ACS cell 的電路,也提供 參考。

圖 3.15 VHDL 所撰寫的(3, 2, 8)編碼器 ACSU 硬體複雜度

同樣的,圖3.15 為整個(3, 2, 8)編碼器的 ACS 方塊的硬體電路複雜度,以及

(57)
(58)

相同的,圖3.16 為(3, 2, 8)編碼器總共包括全部 ACSU 部份所有 256 個平行的 ACS cell,每個 ACS cell 對應到柵狀圖上的狀態點。

我們比較圖 3.12 和圖 3.15 兩個編碼器所使用到的邏輯電路(LEs)的部份,可 以簡單地算出 28961/2133≒13.58,這是因為在(2, 1, 6)編碼器的 ACSU 裡面,使 用了64 個比較器,而另外在(3, 2, 8)編碼器的 ACSU 中,本身狀態就多了(2, 1, 6) 編碼器4 倍之多,且在路徑的選擇上,也比(2, 1, 6)編碼器多了 2 個比較器。也就 是說,(2, 1, 6)編碼器的 ACSU 共有 64x1=64 個比較器,(3, 2, 8 )編碼器的 ACSU 共有 256x3=768 個比較器,因此 768/64=12,硬體的實際值比估計值稍多了點。

這其中還包括了一些像是將所判斷出來的 survivor 連結起來的電路,同一個時間 內,256 個狀態的連結電路,就比 64 個狀態的電路多出許多了。

Path Metric Memory Unit(PMMU)電路方塊主要功能是輸出前一個時間之狀態 點的路徑計值給ACS cell 和儲存 ACS cell 計算後的路徑計值,以提供下一個時間 之ACS cell 來運算使用。在 PMMU 方塊的實現方面,針對(2, 1, 6)和(3, 2, 8)維特 比解碼器,分別使用64 x 1 和 256 x 1 的記憶電路,輸出前一個時間點的路徑計值 和儲存目前的路徑計值,便可達成更新和儲存路徑計值的功能。

(59)

3.2.3 SMU

SMU 的電路,可以說是整個維特比解碼法則的核心,包括判斷狀態、追溯解 碼、控制由前一級的ACSU 所產生的存活路徑(survivor) 進入硬體做解碼的動作,

都會在這個部份完成。SMU 電路方塊主要是儲存 ACSU 所決定的最佳生存路徑並 解碼,如我們所熟知的維特比解碼法則的架構,本小節將介紹維特比解碼法則中,

Trace-Back 詳細的實行電路[18-20]。

在實現Trace-Back 電路架構時,我們採用 3-pointer even algorithm 架構,主要 優點是讀取跟寫入資料只需要一個相同的時脈信號,且控制電路較其他架構簡 單,但是缺點是我們需要較多的單元電路[18-20]。單元電路可分成記憶體部分和 邏輯部分。我們可由第二章的截斷長度的效能評估比較得知,在(2, 1, 6)編碼器的 部份,是由寬度64,長度 16 的記憶體方塊和邏輯閘所組成;而(3, 2, 8)編碼器則 是由寬度256,長度 24 的記憶體方塊和邏輯閘所組成。

如圖 3.17 所示。記憶體部分主要是儲存從 ACSU 方塊傳遞過來的決策位元 值。而邏輯部分主要是運算追溯(Trace-Back)的電路,是由暫存器和多工器之所組 成。多工器的輸出是由暫存器內容值控制,而暫存器和多工器輸出構成新的暫存 器之內容值,控制下一個時間點的多工器輸出。

(60)

圖 3.17 SMU 單元電路內的記憶和邏輯架構圖

前文所提到的3-pointer even algorithm 的部份,其主要的硬體執行動作,可 以由圖3.18 來說明。

圖 3.18 回溯架構的方塊圖

在 圖 3.18 中 , 我 們 可 以 看 出 主 要 的 執 行 動 作 , 分 為 Write(WR) 、 Trace-Back(TB)、Decoder(DC)三大部份。以下將一一說明:

Write Block Decode

Block

Write Decision

Vector

Read region Write Region Trace-back

Survivor Path

Merge Block

(61)

一:Write(WR)

WR 主要是將 ACSU 所計算出來而產生的決策位元(survivor),寫入到符合的 儲存區塊位置,也就是圖 3.17 中 RAM 的區塊中,作為回溯時所需讀取決策位元 的來源。此區塊為寫入區塊(Write Region)。

二:Trace-Back(TB)

TB 主要是讀取對應目前狀態點的儲存方塊所儲存的決策位元,作為目前的狀 態追溯回到上一個狀態的指標,之後一直重覆此動作,利用目前狀態與狀態指標 的關係,不斷不斷地追溯找出新的狀態。就在圖3.18 中,Survivor Path Merge 區 塊中做追溯,我們就可以追溯出最佳路徑,那到了夠長的截斷長度之後,所有回 溯路徑便會聚合在一起。

三:Decoder(DC)

經由 Trace-Back 方塊,已經回溯出所有路徑的聚合狀態點,如圖 3.18 中,

Decoder 方塊繼承 Trace-Back 方塊追溯得到的聚合狀態點,繼續地追溯找出聚合 的路徑,而尋找聚合路徑的下一個狀態點時,根據狀態間的前後關係,便會得到 解碼位元的輸出。由 Trace-Back 和 Decoder 兩個區塊所合併起的區塊,稱為讀取 區塊(Read Region)。

(62)

算完的結果。在追溯狀態,則利用邏輯部分不斷地做追溯動作更新暫存器內容值,

並在特定時間點輸出追溯結果給別的單元電路。在解碼狀態時除了不斷地追溯 外,邏輯部分的多工器將同時輸出解碼位元。經過96 個時脈週期時,由第一個單 元電路開始輸出第一筆解碼資料,經過16 個時脈週期後,第一個單元電路完成輸 出16 筆解碼位元,由第二個單元電路輸出解碼位元,如此依序,以 16 x 6 = 96,

以96 個時脈週期為一個週期。另外,(3, 2, 8)編碼器的時脈為 24 x 6=144,以 144 個時脈為一個週期。

(63)

圖3.20 所示為實現 3-pointer even algorithm 的電路架構圖,因為以 3-pointer even algorithm 為架構之 Trace-Back 電路,解碼順序是先由單元電路之後往前輸出 解碼位 元, 跟編 碼器 輸入的 資料 剛好 相反 ,因此 我 們 需 要 一 個 反轉的 電路 (Inverse_Unit),改變解碼位元輸出順序,如此 6 個單元電路,控制電路,回溯輸 出多工器,和反轉電路處理器構成以 3-pointer even algorithm 架構的 Trace-Back 方塊電路。

圖3.20 3-pointer even 架構的元件和電路方塊連接圖

(64)

圖 3.21 (2, 1, 6)編碼器中主要的 tb cell 電路合成圖

圖3.22 (3, 2, 8)編碼器中主要的 tb cell 電路合成圖

圖 3.23 和圖 3.24 是(2, 1, 6)編碼器和(3, 2, 8)編碼器分別的 Trace-Back 的完整 方塊的硬體複雜度,其中包含所用掉的LE(Logic Elements)的數量,和之前 BMU、

ACSU 部份所沒有的記憶體部份 MB(Memory Bits)。

(65)

圖3.23 VHDL 所撰寫的(2, 1, 6)編碼器 SMU 硬體複雜度

圖3.24 VHDL 所撰寫的(3, 2, 8)編碼器 SMU 硬體複雜度

由上面兩個圖比較一下,LE(Logic Elements):2518/536≒4.7,MB(Memory Bits):98112/12288≒7.98,以下我們稍微解釋一下:

(66)

一:在LE 的方面,因為本身(3, 2, 8)編碼器的狀態數便是(2, 1, 6)編碼器的 4 倍,

也因此在做狀態判斷的時候,所需的LE 也會是 4 倍。

二:在MB 方面,不論是哪一個解碼器,在同一個時脈(clock)的當時,(2, 1, 6)編 碼器便在RAM 裡面儲存了 64 筆資料,而(3, 2, 8)編碼器則是儲存了 256 筆資料。

但是,由圖3.22 得知,(3, 2, 8)編碼器在 Trace-Back 的部份,有兩個 RAM,所以 等於是同時儲存了256x2=512 筆數的資料,也因此 512/64=8,和硬體所估計的 7.98 倍很接近。

而圖 3.25 和 3.26 則是兩個編碼器最後整個的解碼架構的硬體邏輯設計電路的 複雜度。其中的LE(Logic Element)和 MB(Memory Bits)的部份,便是之前三大主 要區塊的總合。

圖 3.25 VHDL 所撰寫的(2, 1, 6)編碼器維特比 Viterbi 硬體複雜度

(67)

圖3.26 VHDL 所撰寫的(3, 2, 8)編碼器維特比 Viterbi 硬體複雜度

表 3.3 是(3, 2, 8)編碼器在不同位元時(以三、四位元為例),所設計的維特比解 碼器架構的硬體複雜度,可以由表簡單地看出,大約將近多了3%左右的硬體複雜 度。配合之前第二章的圖 2.20 和表 3.3 可以看出,其實三、四位元的模擬效能和 硬體複雜度相差不多,所以基於成本和設計方面的考量,(3, 2, 8)編碼器以三位元 為主來做設計,實用性便足以適用。

表 3.3 (3, 2, 8)編碼器在三、四位元時的硬體複雜度比較

Viterbi Decoder 3_bits 4_bits Logic Elements 31501 33290

(68)

3.3 維特比解碼器硬體實現驗證

完成維特比解碼器架構後,我們建立如圖3.27 之測試環境對維特比解碼器進 行測試與驗證。維特比解碼器之測試環境,包含了鎖相迴路、隨機數列產生器、

編碼器、位元轉換、訊號延遲、訊號比較和錯誤計數器等電路。鎖相迴路(PLL) 由Altera 公司的 Quaturs Ⅱ軟體之 Mega Function 產生,提供整個測試環境和維特 比解碼器所需的時脈,包括了5.5MHz、11MHz、22MHz、33MHz。

由於有兩個編碼器,而且輸入和輸出的模式不同,故需分別做兩個編碼器的 硬體模擬。訊號比較方面,(2, 1, 6)解碼器的比較是使用一個互斥及閘,互相比較 延遲後的編碼器輸入與維特比解碼器輸出訊號的差異,當有訊號相異時,錯誤位 元比較器加1,所以由累加的錯誤比較計數器便可知位元錯誤的個數。而(3, 2, 8) 解碼器就使用到了兩個互斥或閘,分別是先輸入的訊號(result_x0)和先解碼出來的 訊 號(dc_out_x0) 相 比 較 , 而 後 輸 入 的 訊 號 (result_x1) 和 後 解 碼 出 來 的 訊 號 (dc_out_x1)相比,同樣的,有錯誤位元時,錯誤比較器便會累加,計數加 1。

(69)

圖3.28 (2, 1, 6)編碼器之維特比解碼器測試環境時序圖

圖 3.28 最上面的資料為輸入的 PLL 時脈(clk_pll_in),設定是在 5.5MHz。其 次為經過編碼器之後,編碼出來的資料(data_in_a、data_in_b)。接著便是為解碼出 來的資料(dc_out),那為了和原始資料做比較(result),故必需將原始資料(result)做 同步延遲,而產生了延遲的資料(delay_cpr_data)。而解碼出來的資料,和延遲後 的資料做交互比對之後,所得的誤差值(err)。其餘的資料,例如 enable 是解碼器

(70)

至於原始資料(result)的產生,可參考圖 3.29,其中每一個暫存器(reg)的初始 值都是1,之後再一個一個地向箭頭方向移位。

圖3.29 (2, 1, 6)編碼器的原始資料(result)產生器

(3, 2, 8)編碼器的模擬,可參考圖 3.30。

圖 3.30 (3, 2, 8)編碼器之維特比解碼器測試環境時序圖

(71)

圖3.30 和圖 3.28 相似,只不過輸入訊號由原先的一個變成兩個,前文也提到 過,我們將輸入和解碼出來的訊號分別做比較,先輸入的對比先解出的,後輸入 的對比後解出的。最上面的資料為輸入的PLL 時脈(clk),設定是在 22M。其次為 經過(3, 2, 8)編碼器所編碼出來的資料(data_a、data_b、data_c)。再來便是解碼出來 的資料(dc_out_x0、dc_out_x1),而對照的資料便是將原始資料(result_x0、result_x1) 所延遲得到的資料(delay_cpr_x0、delay_cpr_x1)。而原始資料和解碼資料相對比 較,所得的誤差值,也分別運算(err_x0、err_x1)。其餘的資料,和圖 3.28 相同,

enable 是解碼器的致能啟動訊號和各個 tb_cell 在運算值,所得到的運算值 (tb_o_0~5)。

而原始資料(result_x0、result_x1)的產生,可參考圖 3.31,和圖 3.29 相同,每 一個暫存器(reg)內的初始值都是 1,之後再一個一個地向箭頭方向移位。

(72)

測試環境模擬完成後,下載到使用EP20K1500EBC652-1X 晶片之發展板,驗 證維特比解碼器的功能。我們利用Altera APEX 系列所提供的 SignalTap 功能,以 即 時(real time) 方 式 直 接 將 IC 內 部 或 IC 接 腳 值 直 接 經 由 MasterBlaster Communication Cable 或 ByteBlasterMV Download Cable 讀取到電腦的 QuartusⅡ軟 體中。圖3.32 和圖 3.33,分別為在 SignalTap 介面執行(2, 1, 6)編碼器和(3, 2, 8)編 碼器時,所設定一些參數值的操作畫面。這樣子做,其最大的優點是不需要設計 IC 週邊電路與使用其他儀器來做驗證,即可立即驗證 IC 功能,缺點是在 FPGA 中需要一塊ELA(Embedded Logic Analyzer)電路,暫時存放想要觀察點的資料,也 就是說使用SignalTap 功能會佔用 Altera 一些 LE 與 ESB 資源。當我們所要觀察的 Channel(想要觀察的接腳或內部節點)越多時,其所使用的 LE 將會越多。

圖3.32 (2, 1, 6)編碼器執行維特比解碼器之 SignalTap 的介面

(73)

圖3.33 (3, 2, 8)編碼器執行維特比解碼器 SignalTap 的介面

圖 3.34 和圖 3.35,便是將所撰寫好的程式,下載到 EP20K1500EBC652-1X 晶 片之發展板上,再從發展板上讀取回來的資料圖。

(74)

圖3.34 (2, 1, 6)編碼器從發展板讀取的維特比解碼資料

(75)

第四章 結論

本論文完成無線區域網路 IEEE 802.11g 系統在 ERP-PBCC 的兩個編碼器,(2, 1, 6)和(3, 2, 8)旋積碼之維特比解碼器在 FPGA 上的實現,並以 MATLAB 軟體建構 一模擬環境,針對維特比解碼法則對系統效能進行模擬分析。

在維特比解碼效能的軟體模擬方面,我們可以由第二章的圖 2.15~20 得知,

針對兩個編碼器的截斷長度(Truncation Length)和硬式(Hard_Decision)、軟式決策 (Soft_Decision)的量化位元數做比較,可以整理出一個結論,在考量到硬體複雜度 的原則下,(2, 1, 6)編碼器以截斷長度”32”,和軟式決策三位元的模擬結果,以及 (3, 2, 8)編碼器以截斷長度”48”,和軟式決策三位元的模擬結果,即可獲得不錯的 解碼效能。

在硬體電路實現部份,表4.1 與表 4.2,分別列出(2, 1, 6)和(3, 2, 8)迴旋編積碼 之維特比解碼器的各功能方塊,將其合成後所使用的邏輯單元 (Logic Elements) 以及記憶體位元 (Memory bits),並換算為邏輯閘數量 (Gate Counts)以供比較。表 4.3 則是(3, 2, 8)編碼器在三、四位元分別做維特比解碼器時的硬體複雜度比較。經 由表 4.1~3 的比較,我們可以歸納出兩個結論:一、在量化位元數(Decision Bits) 方面,單就 acsu 而言,三位元和四位元的硬體複雜度,大約只多了 6%左右。也 就是說,我們可以預估每多一個位元,就會多了將近6%左右的硬體複雜度。二、

在截斷長度(Truncation Length)方面,因為這主要是影響到解碼時追溯的記憶體空

(76)

而最後一步,便是將撰寫好的VHDL 的硬體程式下載於 Altera 公司 APEX 系 列 EP20K1500EBC652-1X 可程式化邏輯陣列 (FPGA)晶片之發展板上做檢測,以 完成802.11g 系統中 ERP-PBCC 部份的迴旋碼編碼器 (Convolutional Encoder)傳送 端,和在接收端的維特比解碼器 (Viterbi Decoder)之硬體實現。

表 4.1 (2, 1, 6)編碼器各功能方塊使用之邏輯閘數量

Part Name Logic Elements Memory Bits Gate Counts

source_data 8 0 96

conv_encoder 9 0 108

bmu 12 0 144 acsu 2133 0 25596

tb 536 12288 55584

total 2698 12288 81528

表4.2 (3, 2, 8)編碼器各功能方塊使用之邏輯閘數量

Part Name Logic Elements Memory Bits Gate Counts

source_data 9 0 108

conv_encoder 11 0 132

bmu 19 0 228 acsu 28961 0 347532

tb 2518 98112 422664

total 31518 98112 770664

(77)

表4.3 (3, 2, 8)編碼器的三、四位元維特比解碼器硬體複雜度比較

Soft_Decision 3 4

Part Name LEs MBs GCs LEs MBs GCs bmu 19 0 228 19 0 228 acsu 28961 0 347532 30753 0 369036

tb 2518 98112 422664 2518 98112 422664 total 31498 98112 770424 33290 98112 791928

(LEs:Logic Elements;MBs:Memory Bits;GCs:Gate Counts)

(78)

參 考 文 獻

[1] IEEE 802.11a, IEEE standard for wireless LAN medium access control (MAC) and physical layer (PHY) specifications, supplement to standard 802.11 part II:

wireless LAN, New York, 1999.

[2] IEEE 802.11b, IEEE standard for wireless LAN medium access control (MAC) and physical layer (PHY) specifications, supplement to standard 802.11 part II:

wireless LAN, New York, 1999.

[3] IEEE 802.11g, IEEE standard for wireless LAN medium access control (MAC) and physical layer (PHY) specifications, supplement to standard 802.11 part II:

wireless LAN, New York, 1999.

[4] 連君凱,”正交分頻多工技術介紹”, 國立雲林科技大學專題研究,July 2003

[5] Richard van Nee and Ramjee Prasad, OFDM for wireless multimedia communications, Boston: Artech House, 2000.

[6] G .Fettweis, L. Thiele, and H. Meyr, “Algorithm transformations for unlimited parallelism,” in Proc. 1990 IEEE Int. Symp. In Circuits and System, pp.

1165-1169, May 1990.

[7] Irving S. Reed and Xuemin Chen, Error-control coding for data networks, Boston : Kluwer Academic Publishers, 1999.

[8] J. K. Omura, ”On the Viterbi decoding algorithm,” IEEE Transactions on Information Theory, IT-115, pp. 177-179, Jan. 1969.

[9] H. D. Lin and D. G. Messerschmitt, “High throughput reconstruction of Haffman-coded images,” in Proc IEEE Conf. Computer Design, Oct. 1989.

[10] G. D. Forney, “Convolutional Codes II : Maximum likelihood decoding,” Inf.

Control, 25, pp. 222-226, July 1974.

[11] G. D. Forney, ”The Vitervi algorithm,” Proc. IEEE, vol. 61, pp. 268-278, Mar.

1973.

[12] F. Pollara and O. Collins, “Memory management in traceback Viterbi decoders,”

TAD Progress Report 42-99, Jet propulsion laboratory, Pasadena, California, Nov.

1989.

(79)

[13] R. Cypher and C.B. Shung, “Generalized trace back techniques for survivor memory management in the Viterbi algorithm,” Global Telecommunications Conference, pp. 1378-1322, Dec. 1990.

[14] A. P. Hekstra, “An alternative to metric rescaling in Viterbi decoders,” IEEE Trans. on Commun., Vol. 41, No. 11, pp. 1220-1222, Nov. 1989.

[15] Byonghyo Shim, Sungmin Cho and Jung Chul Suh, “An improved VLSI architecture for Viterbi decoder,” TENCON 99. Proceedings of the IEEE Region 10 Conference, vol. 1, pp. 259-262, Sept. 1999.

[16] A. P. Hekstra, “An alternative to metric rescaling in Viterbi decoders,” IEEE Transactions on Communications, vol. 37, pp. 1220-1222, Nov. 1989.

[17] C. B. Shung, P. H. Siegel, G. Ungerboeck, and H. K. Thapar, “VLSI architectures for metric normalization in the Viterbi algorithm,” IEEE International Conference on SUPERCOMM/ICC '90, pp. 1723-1728, 1990.

[18] C. M. Rader, “Memory management in a Viterbi decoder,” IEEE Trans. on Commun., Vol. COM-29, No. 9,pp. 1399-1401, Sept. 1981.

[19] M. H. Chan, “IC design of an adaptive Viterbi decoder,” IEEE Transactions on Consumer Electronics, vol. 42, pp. 52-61, Feb. 1996.

[20] C. M. Rader, “Memory management in a Viterbi decoder,” IEEE Transactions on Communications, vol. 29, pp. 1399-1401, Sept. 1981.

[21] T.K Truong et al. “A VLSI design for a trace-back Viterbi decoder,” IEEE Transactions on Communications, vol. 40, pp. 616-624, Mar. 1992.

[22] Altera Corporation, “AN 110: gate counting methodology for APEX 20K devices,” Application note 110, ver. 1.01, Sep. 1999.

[23] B. Shim and S. Cho, “A new metric rescaling method for pipelined Viterbi decoder,” in ITCCSCC99, Vol. 1, pp. 122-125, July. 1999.

[24] H. A. Bustamante, et al., ”Stanford telecom VLSI design of a convolutional

(80)

[26] 周良昌,“適合於無線區域網路 802.11a 之 Viterbi 解碼器硬體實現,”中華大學碩 士論文, Jan 2004.

[27] 張建緯,“無線區域網路 802.11a 之交錯/解交錯與子載波調變對映/解對映技術 之研究與實現,”中華大學碩士論文, Jan 2004.

.

參考文獻

Outline

相關文件

著文否認《大乘起信論》為馬鳴所造。在中國,國學大師章太炎最早撰文〈大乘起信論辨〉 [註 4]

本書立足中華文化大背景,較為深入系統地分析研究了回族傳統法文化的形成基礎、發展歷

關於宋代寺院的合法性,日本的高雄義堅先生《宋代教史の研究》第三章的第一節、竺

港大學中文系哲學碩士、博士,現 任香港中文大學人間佛教研究中心

表現令人失望。由此可 見,加強學生對文言常 見字詞的認識,對篇章 旨意的理解,提高其閱 讀文言小品的興趣,擴 闊文言作品的閱面,實

第一階段: 讓學生接觸不同的感官刺激 第二階段: 對感官刺激的改變有察覺反應 第三階段: 對感官刺激有一貫的反應..

第一課節:介紹成本會計和解釋成本概念及詞彙 第二課節:了解用於編製財務報表的不同成本分類

為完成上述研究目的,本文將於第二章依序說明 IPTV 的介紹與現況,以及詳述 e-SERVAUAL