Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

在Handel-C語言環境快速開發音頻硬體處理器

上網時間: 2002年04月13日     打印版  Bookmark and Share  字型大小:  

關鍵字:Handel-C  RTL  Verilog  VHDL  FPGA 

在較短時間內開發出高性能的硬體產品是硬體設計工程師面臨的設計挑戰之一,本文介紹的Handel-C語言設計方法能提供功能強大的設計環境。採用新的方法,軟體工程師就能設計、建立和最佳化硬體,並在具有完整功能的硬體原型中看到設計結果,所需的時間比傳統方法大為縮短,因而Handel-C具備替代傳統複雜IC設計方法的潛力。

創新科技公司(Creative Labs Inc.)發明了一種新的採用Celoxica Handel-C語言(一種類似於C語言的高級設計語言)的設計方法,它能提供功能強大的設計環境,在這種環境下設計人員能以最快的速度設計出符合要求的硬體產品。對於創新科技的開發人員來說,Handel-C是一種非常值得開發的語言。由於還沒有實際數據能顯示這種新設計環境與設計方法的優越性,創新的兩位軟體工程師在沒有硬體設計和Handel-C使用經驗的情況下,仍接受了開發音頻硬體處理器以驗証這種語言功能的任務。

這項任務的最初階段是為期兩天的理論學習,即對Handel-C語言的技術文檔及相關環境(Celoxica DK1設計套件的開發版本)的深入學習。這兩位工程師從中發現相對於傳統的RTL設計語言如Verilog或VHDL來說,Handel-C語言能使設計人員用更高層次的抽取來描述硬體。

對Handel-C語言有了一定的了解後,這兩位工程師制定了能滿足關鍵目標要求(即音頻流的即時性與高解析度處理要求)的基本功能框圖。通常音頻處理適合採用管線結構以及硬體的平行處理方式,具體到這個實際項目,兩位工程師把設計分成了以下幾個階段:

1. 數位音頻提取和PCM樣值格式化。這一階段主要是從ATAPI CD-ROM中提取音頻數據,並對立體聲樣值進行編碼前的去交織處理。

2. 濾波。在這一階段數據將從時域變換到頻域,並被分成32個子波段。

3. 編碼。這是數據壓縮與編碼階段,將對前面處理過的數據進行高壓縮率處理。

4. 輸出階段。該階段將編碼過的數據進行交織成訊框處理,然後輸出最終的數據位元流。

在本次設計中,設計人員採用了多個表來實現對管線處理的支援。由於Handel-C非常方便設計的分割,因此設計人員能嘗試用多種方法實現片上ROM和RAM以及片外RAM之間的分割表。為了支援繁重的乘法任務,設計人員平行配置了二個乘法器來提升性能。最終設計採用了四級平行管線結構,允許高度共享各種資源,如乘法器、查詢表和共享RAM庫。

這兩位工程師在設計的最初階段採用了具有一萬行代碼的現成音頻處理器軟體實現方案。他們利用軟體工程師所熟知的增量微調技術先將內核代碼組件轉換為硬體,在模組級工作一段時間後他們就進入了詳細編碼階段。Handel-C變換一般是先將浮點變量和公式轉換成整數代碼,這種轉換根據現成算法,並且非常容易進行線上測試。在本例中,設計人員對整數長度進行了修改,然後測試硬體結果,並透過重新編譯代碼和重新配置硬體實現來分析辨別音頻品質的細微變化。

透過重新編譯與重新配置後,設計人員能藉由編寫一段快速測試基本功能的程式來評估對Handel-C的理解程度,比如用於實現直接儲存存取數據傳送的簡單代碼模組程式。事實上,Handel-C能使設計人員透過分析實際的硬體實現來方便地進行功能驗証,而VLSI設計方法的驗証要求相對來說要複雜得多。

工程師採用了基於現有音頻處理器軟體算法的簡單有效的開發策略。由於設計是一個模組一個模組進行的,設計人員只需簡單地用實際硬體替代各個軟體管線級。現有的軟體版本可以作為硬體管線功能的驗証平台。硬體管線級可以被饋入相同的輸入以測試軟體版本功能,然後越來越多的硬體管線成品又可以被輸入剩餘的軟體管線以測試總體性能。因此這種方案下設計人員只需簡單地將部份硬體管線的測試結果插入到軟體版本中就能得到總的驗証結果。

從這個意義上講,主要的開發工作就是軟體。硬體開發的主要挑戰性在於要了解哪?的資源能得到高效利用,並開發最有效的管線技術來達到較高的時脈速率,因為這要比非管線設計需要更多的邏輯電路。

開發人員每周都會在管線方面有所進步,他們必須將軟體版本的每個模組一行一行地轉換成Handel-C語句。開發人員的工作重心是如何將每個值提升到分數冪,因為用硬體實現指數運算的成本是非常高的,因此他們採用了一個大型的查詢表(128k位元組),透過該表能取得量化功能中分段線性的近似值,對於指數運算來說所達到的精度已經足夠了。

在對每個模組的轉換過程中,開發人員要麼去模擬新的Handel-C程式,要麼將它們直接轉換成硬體,並在硬體環境中對它們進行測試。在轉換工作結束後,再開發和測試I/O模組,最後將整個音頻處理器設計整合到單個FPGA中。工作原型機設計花費了兩位工程師六個星期的時間,其中包括最初的學習階段。

由於本方案非常靈活易用,設計小組決定再花一周時間來最佳化硬體設計,並開發出不同的查詢表共享片上或片外儲存區間分割的方案。最終設計人員發現能將多個表合併以減少表的數量,並能被管線的不同級共享。他們還在內部環中增加了更多的精確平行過程,這樣可以提高每個時脈周期的運算量。

快速的設計過程

工程師僅用了七周的時間就設計出了性能比即時系統還要好的音頻處理器,而且時脈速度只有6MHz,據說處理器的性能仍有提升的餘地。最終設計佔用了93%的FPGA資源,如果採用模組RAM還能進一步減少資源佔用率,但在所用的開發版的DK1編譯器中還沒有提供這一可選功能。

與軟體實現相比,硬體音頻處理器的最大好處是單個時脈周期內的性能。工作於6MHz時脈的硬體性能要比工作於Pentium 166MHz的軟體版本的即時性能好得多,這主要得益於可從算法中提取的平行機制。例如設計中的許多DSP類作業能在單個時脈周期內獲得多個乘法器資源。

另外,Celoxica公司的設計服務諮詢人員能提供空間與時延最佳化方面的建議,有助於創新科技工作小組決定何處並如何共享資源與管線。濾波器級透過一名Celoxica公司設計服務工程師的最佳化後,速度一下提高了近兩倍。

對於創新科技來說,Handel-C以及相關的開發環境的功能非常強大,能使設計人員在較短的時間內開發出高性能的硬體產品。採用這種類似C語言的高級語言後,軟體工程師就能設計、建立和最佳化硬體,並在具有完整功能的硬體原型中看到結果,而所需的時間只是傳統方法所需時間的一小部份。對於今天的電子企業來說,Handel-C能提供替代傳統複雜IC設計方法的快速開發方式。

算法化的硬體設計

採用Handel-C硬體設計方法的熟悉C語言工程師只需要專注於滿足目標應用的算術要求。事實上,這些工程師在進行硬體設計時無需過多地考慮實現細節問題,因為依靠Handel-C編譯器內部的Celoxica技術就能產生XNF或EDIF網表文件。

基於ISO-ANSI C的Handel-C語言是一種同步編程語言,其中最基本的概念就是時序。Handel-C編譯器採用一個或多個連續運轉的全局時脈來構建同步電路,這些時脈再用來啟動控制或數據信號。程式中的每個控制指令映射為硬體中的一對控制信號(開始與結束),所有用戶程式中的變量都映射為構建於觸發器組的硬體暫存器,而這些觸發器組專屬於特定的目標元件。全局時脈用來觸發每個同時與時脈連接的觸發器,並將其作為一種原始活動形式。

結果如圖1所示,用於語句‘R=Exp;’的控制電路將開始信號作為時脈,因此觸發了目標暫存器所用的信號。在周期的最後階段,表達式硬體會計算出新的值,然後裝載入目標暫存器中。開始信號需要延遲一個時脈周期以便為結束信號提供這樣的控制流程。這樣的安排主要源於以下事實:賦值過程通常在一個時脈周期內完成,速度很快。而Handel-C語言擁有足夠的組合邏輯,即使是很複雜的表達式也能在一個時脈周期完成所有的賦值作業。

Handel-C編譯器可以簡單地將位元轉換作業翻譯成組合硬體電路,如‘&’作業符翻譯為‘n AND’閘,此處n是作業數的位寬;‘|’和‘^’作業符同樣如此。‘~’作業符則代表n反相器。同樣,其它基本的作業也被映射為組合邏輯,或用來開發目標元件的其它一些功能。

為了定義硬體中的平行結構,Handel-C提供了語句平行執行的par指令:par{S1, S2, ... Sn}。該語句將控制同時送給所有的平行語句S1,S2. . . Sn以初始化平行執行作業(圖2)。只有當所有組件結束時,Par{}指令才結束。這樣,平行控制電路將各個獨立的結束信號收集到一組觸發器中,並在最終結束信號一產生就產生它自己的結束信號。另外,該結束信號還能復位同步觸發器,使它們作好使用準備。

Handel-C編譯器吸取了傳統軟體編譯技術以及邏輯最佳化技術的精華,在編譯過程中,編譯器先將輸入代碼變換成抽象語法樹。在這一變換過程中,編譯器將執行寬度推斷、常量堆疊和其它語法方面的擴展工作,如巨集表達、再生器擴展等等。接著編譯器會將抽象語法樹變換為包含粗略功能模組的高層網表。該網表最佳化後才擴展為專業技術性低級網表,這種低級網表能充分利用目標元件的特定結構特點,如快速運載鏈、片上RAM、專用乘法電路等等。編譯器最後還會在低級網表級進一步最佳化。

Michael P.Songy

設計工程服務部總監

Celoxica公司

Mat Newman

技術部高級副總裁

Celoxica公司




投票數:   加入我的最愛
我來評論 - 在Handel-C語言環境快速開發音頻硬體處...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首