資料介紹
數字電路設計工程師一般都學習過編程語言、數字邏輯基礎、各種EDA軟件工具的使用。就編程語言而言,國內外大多數學校都以C語言為標準,只有少部分學校使用Pascal和Fortran.
算法的描述和驗證常用C語言來做。例如要設計Reed-Solomen編碼/解碼器,可以分為下面幾個步驟。
先深入了解Reed-Solomen編碼/解碼的算法。
編寫C語言的程序來驗證算法的正確性。
運行描述編碼器的C語言程序,把在數據文件中的多組待編碼的數據轉換為相應的編碼后數據,并存入文件。
編寫一個加干擾用的C語言程序,用于模擬信道。它能產生隨機誤碼位(并把誤碼位個數控制在糾錯能力范圍內),將其加入編碼后的數據文件中。運行該加干擾程序,產生帶誤碼位的編碼后的數據文件。
編寫一個解碼器的C語言程序,運行該程序把帶誤碼位的編碼文件解碼為另一個數據文件。
比較原始數據文件和生成的文件,便可知道編碼和解碼的程序是否正確(能否自動糾正糾錯能力范圍內的錯碼位),用這種方法我們就可以來驗證算法的正確性。但這樣的數據處理其運行速度只與程序的大小和計算機的運行速度有關,也不能獨立于計算機而存在。
如果要設計一個專門的電路來進行這種對速度有要求的實時數據處理,除了以上介紹的C程序外,還需編寫硬件描述語言(如Verilog HDL或VHDL)的程序。然后進行仿真以便從電路結構上保證算法能在規定的時間內完成,并能與前端和后端的設備或器件正確無誤地交換數據。
用硬件描述語言(HDL)的程序設計硬件的好處在于易于理解、易于維護,調試電路速度快,有許多的易于掌握的仿真、綜合和布局布線工具,還可以用C語言配合HDL來做邏輯設計的前后仿真,驗證功能是否正確。
在算法硬件電路的研制過程中,計算電路的結構和芯片的工藝對運行速度有很大的影響。所以在電路結構確定之前,必須經過多次仿真。
C語言的功能仿真。
C語言的并行結構仿真。
Verilog HDL的行為仿真。
Verilog HDL RTL級仿真。
綜合后門級結構仿真。
布局布線后仿真。
電路實現驗證。
下面介紹用C語言配合Verilog HDL來設計算法的硬件電路塊時考慮的三個主要問題:
1.為什么選擇C語言與Verilog配合使用
首先,C語言很靈活,查錯功能強,還可以通過PLI(編程語言接口)編寫自己的系統任務直接與硬件仿真器(如Verilog-XL)結合使用。C語言是目前世界上應用最為廣泛的一種編程語言,因而C程序的設計環境比Verilog HDL更完整。此外,C語言可應用于許多領域,有可靠的編譯環境,語法完備,缺陷較少。
比較起來,Verilog語言只是針對硬件描述的,在別處使用(如用于算法表達等)并不方便。而且Verilog的仿真、綜合、查錯工具等大部分軟件都是商業軟件,與C語言相比缺乏長期大量的使用,可靠性較差,亦有很多缺陷。所以,只有在C語言的配合使用下,Verilog才能更好地發揮作用。
面對上述問題,最好的方法是C語言與Verilog語言相輔相成,互相配合使用。這就是既要利用C語言的完整性,又要結合Verilog對硬件描述的精確性,來更快、更好地設計出符合性能要求的硬件電路系統。
利用C語言完善的查錯和編譯環境,設計者可以先設計出一個功能正確的設計單元,以此作為設計比較的標準。然后,把C程序一段一段地改寫成用并型結構(類似于Verilog)描述的C程序,此時還是在C的環境里,使用的依然是C語言。
如果運行結果都正確,就將C語言關鍵字用Verilog相應的關鍵字替換,進入Verilog的環境。將測試輸入同時加到C與Verilog兩個單元,將其輸出做比較。這樣很容易發現問題的所在,更正后再做測試,直至正確無誤。
2.C語言與Verilog語言互相轉換中存在的問題
混合語言設計流程往往會在兩種語言的轉換中會遇到許多難題,如下所示。
怎樣把C程序轉換成類似Verilog結構的C程序。
如何增加并行度,以保證用硬件實現時運行速度達到設計要求。
怎樣不使用C中較抽象的語法(例如迭代、指針、不確定次數的循環等)。也能來表示算法(因為轉換的目的是用可綜合的Verilog語句來代替C程序中的語句,而可用于綜合的Verilog語法是相當有限的,往往找不到相應的關鍵字來替換)。
C程序是按行依次執行的,屬于順序結構。而Verilog描述的硬件是可以在同一時間同時運行的,屬于并行結構。這兩者之間有很大的沖突。另外,Verilog的仿真軟件也是順序執行的,在時間關系上同實際的硬件是有差異的,可能會出現一些無法發現的問題。
C語言的函數調用與Verilog中模塊的調用也有區別。C程序調用函數是沒有延時特性的,一個函數是惟一確定的,對同一個函數的不同調用是一樣的。而Verilog中對模塊的不同調用是不同的,即使調用的是同一個模塊,必須用不同的名字來指定。
Verilog的語法規則很死,限制很多,能用的判斷語句有限,仿真速度較慢,查錯功能差,錯誤信息不完整。仿真軟件通常也很昂貴,而且不一定可靠。C語言的花樣則很多,轉換過程中會遇到一些困難。
C語言沒有時間關系,轉換后的Verilog程序必須要能做到沒有任何外加的人工延時信號,否則將無法使用綜合工具把Verilog源代碼轉化為門級邏輯。
3.如何利用C語言來加快硬件的設計和查錯
如表1所示為常用的C語言與Verilog相對應的關鍵字與控制結構。
表1 C語言與Verilog相對應的關鍵字與控制結構表
算法的描述和驗證常用C語言來做。例如要設計Reed-Solomen編碼/解碼器,可以分為下面幾個步驟。
先深入了解Reed-Solomen編碼/解碼的算法。
編寫C語言的程序來驗證算法的正確性。
運行描述編碼器的C語言程序,把在數據文件中的多組待編碼的數據轉換為相應的編碼后數據,并存入文件。
編寫一個加干擾用的C語言程序,用于模擬信道。它能產生隨機誤碼位(并把誤碼位個數控制在糾錯能力范圍內),將其加入編碼后的數據文件中。運行該加干擾程序,產生帶誤碼位的編碼后的數據文件。
編寫一個解碼器的C語言程序,運行該程序把帶誤碼位的編碼文件解碼為另一個數據文件。
比較原始數據文件和生成的文件,便可知道編碼和解碼的程序是否正確(能否自動糾正糾錯能力范圍內的錯碼位),用這種方法我們就可以來驗證算法的正確性。但這樣的數據處理其運行速度只與程序的大小和計算機的運行速度有關,也不能獨立于計算機而存在。
如果要設計一個專門的電路來進行這種對速度有要求的實時數據處理,除了以上介紹的C程序外,還需編寫硬件描述語言(如Verilog HDL或VHDL)的程序。然后進行仿真以便從電路結構上保證算法能在規定的時間內完成,并能與前端和后端的設備或器件正確無誤地交換數據。
用硬件描述語言(HDL)的程序設計硬件的好處在于易于理解、易于維護,調試電路速度快,有許多的易于掌握的仿真、綜合和布局布線工具,還可以用C語言配合HDL來做邏輯設計的前后仿真,驗證功能是否正確。
在算法硬件電路的研制過程中,計算電路的結構和芯片的工藝對運行速度有很大的影響。所以在電路結構確定之前,必須經過多次仿真。
C語言的功能仿真。
C語言的并行結構仿真。
Verilog HDL的行為仿真。
Verilog HDL RTL級仿真。
綜合后門級結構仿真。
布局布線后仿真。
電路實現驗證。
下面介紹用C語言配合Verilog HDL來設計算法的硬件電路塊時考慮的三個主要問題:
1.為什么選擇C語言與Verilog配合使用
首先,C語言很靈活,查錯功能強,還可以通過PLI(編程語言接口)編寫自己的系統任務直接與硬件仿真器(如Verilog-XL)結合使用。C語言是目前世界上應用最為廣泛的一種編程語言,因而C程序的設計環境比Verilog HDL更完整。此外,C語言可應用于許多領域,有可靠的編譯環境,語法完備,缺陷較少。
比較起來,Verilog語言只是針對硬件描述的,在別處使用(如用于算法表達等)并不方便。而且Verilog的仿真、綜合、查錯工具等大部分軟件都是商業軟件,與C語言相比缺乏長期大量的使用,可靠性較差,亦有很多缺陷。所以,只有在C語言的配合使用下,Verilog才能更好地發揮作用。
面對上述問題,最好的方法是C語言與Verilog語言相輔相成,互相配合使用。這就是既要利用C語言的完整性,又要結合Verilog對硬件描述的精確性,來更快、更好地設計出符合性能要求的硬件電路系統。
利用C語言完善的查錯和編譯環境,設計者可以先設計出一個功能正確的設計單元,以此作為設計比較的標準。然后,把C程序一段一段地改寫成用并型結構(類似于Verilog)描述的C程序,此時還是在C的環境里,使用的依然是C語言。
如果運行結果都正確,就將C語言關鍵字用Verilog相應的關鍵字替換,進入Verilog的環境。將測試輸入同時加到C與Verilog兩個單元,將其輸出做比較。這樣很容易發現問題的所在,更正后再做測試,直至正確無誤。
2.C語言與Verilog語言互相轉換中存在的問題
混合語言設計流程往往會在兩種語言的轉換中會遇到許多難題,如下所示。
怎樣把C程序轉換成類似Verilog結構的C程序。
如何增加并行度,以保證用硬件實現時運行速度達到設計要求。
怎樣不使用C中較抽象的語法(例如迭代、指針、不確定次數的循環等)。也能來表示算法(因為轉換的目的是用可綜合的Verilog語句來代替C程序中的語句,而可用于綜合的Verilog語法是相當有限的,往往找不到相應的關鍵字來替換)。
C程序是按行依次執行的,屬于順序結構。而Verilog描述的硬件是可以在同一時間同時運行的,屬于并行結構。這兩者之間有很大的沖突。另外,Verilog的仿真軟件也是順序執行的,在時間關系上同實際的硬件是有差異的,可能會出現一些無法發現的問題。
C語言的函數調用與Verilog中模塊的調用也有區別。C程序調用函數是沒有延時特性的,一個函數是惟一確定的,對同一個函數的不同調用是一樣的。而Verilog中對模塊的不同調用是不同的,即使調用的是同一個模塊,必須用不同的名字來指定。
Verilog的語法規則很死,限制很多,能用的判斷語句有限,仿真速度較慢,查錯功能差,錯誤信息不完整。仿真軟件通常也很昂貴,而且不一定可靠。C語言的花樣則很多,轉換過程中會遇到一些困難。
C語言沒有時間關系,轉換后的Verilog程序必須要能做到沒有任何外加的人工延時信號,否則將無法使用綜合工具把Verilog源代碼轉化為門級邏輯。
3.如何利用C語言來加快硬件的設計和查錯
如表1所示為常用的C語言與Verilog相對應的關鍵字與控制結構。
表1 C語言與Verilog相對應的關鍵字與控制結構表
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- Verilog HDL入門教程.pdf 117次下載
- Verilog HDL的禮物-Verilog HDL掃盲文下載 28次下載
- Verilog HDL的基礎知識詳細說明 54次下載
- Verilog HDL入門教程 99次下載
- Verilog HDL入門教程之Verilog HDL數字系統設計教程 83次下載
- 基于FPGA Verilog-HDL語言的串口設計 35次下載
- Verilog HDL硬件描述語言 11次下載
- Verilog HDL入門教程 0次下載
- _Verilog_HDL的基本語法 12次下載
- Verilog HDL硬件描述語言簡介 14次下載
- Verilog HDL硬件描述語言 0次下載
- Verilog HDL程序設計與實踐 21次下載
- Verilog HDL入門教程(華為絕密資料) 0次下載
- Verilog HDL華為入門教程
- 基于Verilog HDL語言的FPGA設計
- Verilog與VHDL的比較 Verilog HDL編程技巧 259次閱讀
- Verilog HDL的基礎知識 527次閱讀
- fpga是用c語言還是verilog 2106次閱讀
- plc編程語言與c語言的聯系 c語言和PLC有什么區別 4302次閱讀
- 例說Verilog HDL和VHDL區別 3950次閱讀
- 二十進制編碼器及Verilog HDL描述 Verilog HDL程序的基本結構及特點 3054次閱讀
- Verilog的程序框架案例 1410次閱讀
- 使用Verilog/SystemVerilog硬件描述語言練習數字硬件設計 1743次閱讀
- Verilog HDL指定用戶定義原語UDP的能力 1026次閱讀
- 詳談C語言和C++的區別和聯系 5830次閱讀
- Verilog HDL和VHDL的區別 1.3w次閱讀
- verilog語言基本語句_verilog語言詞匯大全 9.5w次閱讀
- verilog語言與c語言的區別 1.2w次閱讀
- 初學者學習Verilog HDL的步驟和經驗技巧 3.6w次閱讀
- Verilog HDL語言的文件調用問題:include使用方法介紹 6901次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1497次下載 | 免費
- 2TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 3單片機典型實例介紹
- 18.19 MB | 103次下載 | 1 積分
- 4S7-200PLC編程實例詳細資料
- 1.17 MB | 28次下載 | 1 積分
- 5筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 6開關電源原理及各功能電路詳解
- 0.38 MB | 15次下載 | 免費
- 79天練會電子電路識圖
- 5.91 MB | 6次下載 | 免費
- 8100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234314次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 6接口電路圖大全
- 未知 | 30321次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21540次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537794次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234314次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多