Abstract
在特殊應用晶片設計上,我們提出一種快速雛型設計的方法。從設計的規格到模擬、驗證,提供一個完整設計流程。這個流程是由上到下的設計規格,整個設計流程是由硬體描述語言做描述,做合成的工作,規劃FPGA等等。我們舉斐特比演算法的解碼過程來做這個設計流程研究。 剛開始我們先探討斐特比演算法的解碼過程,並且實際製作一含有迴旋碼錯誤更正的通訊系統和開發出一個使用現場可程化陣列的婓特比解碼器快速雛型。我們將從演算法的瞭解開始,進而以硬體描述語言來模擬其行為,最後設計出它的結構化模型,以硬體描述語言來模擬其結構,再做合成。 我們希望以個人電腦作為資料傳輸端以及接收顯示端,一方面可實際測試我們的編碼器、解碼器,在不同資料流下的運作情形,另一方面則是要將錯誤更正的概念以及實際應用於個人電腦通訊。因此我們設計了(1)個人電腦至通訊管道的界面電路,並 (2)撰寫傳送和接收資料的驅動程式。 近幾年來,隨著半導體製程技術進步,ASIC效率提升,成本卻較以前下降。通訊科技因此日新月異,相關產業也蓬勃發展。數位通訊更是通訊科技發展的趨勢,其中的重要原因之一是在數位通訊中可以引入錯誤偵測和錯誤更正的功能,進而來提升通訊系統的傳輸品質。因為我們知道,在傳輸訊號時,雜訊是無法避免的,然而其對通訊品質影響甚至,我們可以把整個通訊系統史視為一部與傳輸雜訊的對抗歷史。錯誤偵測碼和錯誤更正碼的基本概念是在欲傳輸的資料加入額外的資料位元,使得傳輸端輸出的資料流有一定的數學結構。如此一來,我們在接收端就可以對收到的資料流加以分析是否有受到雜訊的干擾,並對其做錯誤更正的工作[1]。 傳統的錯誤更正碼,主要可分為兩大類。第一類是以固定長度區塊為單元,稱為區段碼(block codes),另一類的編碼過程為連續不間斷的資料位元輸入,稱為迴旋碼(convolutional codes)。迴旋碼的解碼過程可以視為圖形理論中尋找最短路徑的問題。而斐特比演算法則是一般用來解迴旋碼的演算法。 當今電子系統(譬如筆記型電腦、通訊系統等)相繼採用特定用途積體電路(Application-Specific Integrated Circuit,簡稱ASIC)以提高其產品功能及降低成本。然而ASIC開發時間很長,要投入的人力及物力太高,整個系統的雛型(prototype)只有在ASIC開發完成後才能進行驗證及除錯。 如果在除錯時發現所設計的ASIC有問題,則必須回頭做進一步的修改,這樣就會使產品上市的時間延遲,喪失先機,會使公司蒙受極大的損失。因此如何在短時間內製造出系統雛型,加以驗證及除錯?然後在確定系統功能運作一切正常才進行系統的開發,便成為主要問題。為了解決上述的問題,一種新的設計方法因應而生,就是硬體模擬器(hardwareemulation)。這種方法可快速地將一顆ASIC以一組現場可程化陣列(Field-Programmable Gate Arrays,簡稱FPGAs)和可程式連結元件(Field-Programmable Interconnect Chips)的雛型作出來,這種方法稱為快速雛型系統(Rapid Prototyping System)而加以模擬,驗證,以及除錯 在本論文中,我們主要目的是在於探討斐特比演算法的解碼過程,並且實際製作具有迴旋碼錯誤更正的通訊系統,另外也開發出一個使用現場可程化陣列的婓特比解碼器快速雛型。我們將從瞭解演算法開始,進而以硬體描述語言來模擬其行為,最後設計出它的結構化模型,以硬體描述語言來模擬其結構,最後再做合成。 我們希望以個人電腦作為資料傳輸端以及接收顯示端,一方面可實際測試我們的編碼器與解碼器,在不同資料流下的運作情形,另一方面則是要將錯誤更正碼的概念實際應用於個人電腦通訊。因此我們設計了個人電腦至通訊管道的界面電路並撰寫傳送和接收資料的驅動程式。