(筆記) 如何在Linux上使用Verilog PLI? (SOC) (Verilog PLI) (NC-Verilog) (Linux)
2009-08-19 23:46
856 查看
Abstract
之前討論的都是在Windows版的NC-Verilog執行Verilog PLI,若要在Linux版的NC-Verilog執行PLI,有些地方不太一樣‧
Introduction
Windows版與Linux版的NC-Verilog有兩點不一樣,第一:Windows版使用Visual C++ 6.0編譯,Linux版使用gcc編譯;第二:Windows與Linux設定路徑方面不太一樣,不過很慶幸的是,若你是用標準的C語言去寫PLI,則可一行code都不改從Windows porting到Linux‧
編譯器方面:Visual C++編譯成*.dll,gcc編譯成*.so,所幸Cadence在Windows與Linux提供了相同GUI的PLI Wizard,讓我們只要下一步下一步的設定,就可以自動呼叫Visual C++或gcc產生*.dll或*.so‧
設定路徑方面:Windows版只要將*.dll放在目前的路徑,或者放在C:\Program Files\Cadence Design Systems\IUS\tools\bin\,NC-Verilog就可以自動抓的到;但Linux版不能如此,必須透過設定環境變數的方式,若希望*.so放在目前的目錄下,則必須以下設定:
setenv LD_LIBRARY_PATH .:$LD_LIBRARY_PATH
Cadence的tool都會依賴LD_LIBRARY_PATH這個環境變數,所以加上 . 表示目前目錄,後面加上:$LD_LIBRARY_PATH表示接上原來LD_LIBRARY_PATH的設定,這樣NC-Verilog就是順利的抓到自己寫的*.so‧
之前討論的都是在Windows版的NC-Verilog執行Verilog PLI,若要在Linux版的NC-Verilog執行PLI,有些地方不太一樣‧
Introduction
Windows版與Linux版的NC-Verilog有兩點不一樣,第一:Windows版使用Visual C++ 6.0編譯,Linux版使用gcc編譯;第二:Windows與Linux設定路徑方面不太一樣,不過很慶幸的是,若你是用標準的C語言去寫PLI,則可一行code都不改從Windows porting到Linux‧
編譯器方面:Visual C++編譯成*.dll,gcc編譯成*.so,所幸Cadence在Windows與Linux提供了相同GUI的PLI Wizard,讓我們只要下一步下一步的設定,就可以自動呼叫Visual C++或gcc產生*.dll或*.so‧
設定路徑方面:Windows版只要將*.dll放在目前的路徑,或者放在C:\Program Files\Cadence Design Systems\IUS\tools\bin\,NC-Verilog就可以自動抓的到;但Linux版不能如此,必須透過設定環境變數的方式,若希望*.so放在目前的目錄下,則必須以下設定:
setenv LD_LIBRARY_PATH .:$LD_LIBRARY_PATH
Cadence的tool都會依賴LD_LIBRARY_PATH這個環境變數,所以加上 . 表示目前目錄,後面加上:$LD_LIBRARY_PATH表示接上原來LD_LIBRARY_PATH的設定,這樣NC-Verilog就是順利的抓到自己寫的*.so‧
相关文章推荐
- (筆記) 如何使用blocking與nonblocking assignment? (SOC) (Verilog)
- (筆記) 如何讓所有project共用Verilog PLI的dll? (SOC) (Verilog PLI)
- (原創) 如何使用C開發Verilog System Task/Function? (SOC) (Verilog) (Verilog PLI)
- (筆記) 如何將參數從Verilog傳到C? (SOC) (Verilog) (Verilog PLI)
- (筆記) 如何使用Debussy與ModelSim做Co-Simulation? (SOC) (Verilog) (VHDL) (Debussy) (ModelSim)
- (筆記) 如何使用$skew? (SOC) (Verilog)
- (筆記 ) 如何連結NC-Verilog與Debussy? (SOC) (NC-Verilog) (Debussy)
- (筆記) 如何比較Windows與Liunx下所產生的文字檔? (SOC) (NC-Verilog) (VCS) (UltraEdit)
- (原創) 如何使用Verilog實現split()? (SOC) (Verilog PLI)
- (筆記) 如何使用blocking與nonblocking assignment? (SOC) (Verilog)
- (筆記) 如何使用$width? (SOC) (Verilog)
- (筆記) 如何安裝NC-Verilog? (SOC) (NC-Verilog)
- 【转】如何使用SignalTap II觀察reg與wire值? (SOC) (Verilog) (Quartus II) (SignalTap II)
- (筆記) 如何對一變數指定某一個bit的值? (SOC) (C/C++) (Verilog)
- (筆記) 如何設計D Latch與D Flip-Flop? (SOC) (Verilog)
- (筆記) 如何設計邊緣檢測電路? (SOC) (Verilog)
- 如何使用SignalTap II觀察reg與wire值? (SOC) (Verilog) (Quartus II) (SignalTap II)
- (筆記) 什麼是handle? (SOC) (Verilog) (Verilog PLI)
- (原創) 如何使用SignalTap II觀察reg與wire值? (SOC) (Verilog) (Quartus II) (SignalTap II)
- (原創) 如何將string轉成integer? (SOC) (Verilog PLI)