曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SaberRD調用外部C程序仿真步驟

冬至子 ? 來源:KINGBOL ? 作者:Nano ? 2023-12-06 14:17 ? 次閱讀

Saber不僅支持MAST語言和VHDL-AMS語言建立模型,也支持C語言建立器件模型,這對熟悉C語言編程的用戶帶來了很大的方便和實用。采用C語言建立的模型可以像用硬件語言建立的模型一樣保存和使用。

使用C編譯器,能夠將源代碼編譯為Windows的動態(tài)鏈接庫.dll文件或Linux的.so文件。Saber支持最新的C編譯器,Windows10平臺可支持Microsoft Visual Studio 2019 v16.4.5;Linux平臺支持GUN GCC 9.2.0。

01

建模步驟

建模步驟

  1. ?用MAST語言編寫一個template,其實就是一個saber和外部程序的接口??梢杂糜浭卤揪帉懀4娉?.sin文件。
  2. 采用C語言描述模型的行為特征,包括模型的端口及內部邏輯,該步驟建立了模型的源文件,后綴為.c的文件;
  3. 采用編譯指令對C源文件進行編譯,生成動態(tài)鏈接庫文件,后綴為.dll。該步驟之前需要安裝C編譯器,如VS2019等;
  4. 在saber中新建一個symbol,跟上面的template建立連接,仿真的時候用的就是這個symbol,保存成*.ai_sym文件,對模型進行保存使用,也可以將模型添加到模型庫中。

上述步驟的關鍵是動態(tài)鏈接庫文件的生成,動態(tài)鏈接庫文件是生成Saber模型的基礎,是從C文件到Saber模型的橋梁。

02

具體操作:加法器ADD案例

1.MAST語言編寫template

  • 聲明該template 類型:element,電氣型,并定義管腳名稱
  • 聲明管腳類型:electrical,并用逗號分隔
  • 花括號進入程序內容
  • foreign為外部程序引入
  • val定義全局變量
  • var定義局部變量
  • values定義vi1,vi2的值
  • vosum定義add和
  • equation為固定的方程格式
  • 電流i 從sum流向gnd ,每個模型對節(jié)點電流的作用應該是使其增加相應值,+=是賦值符號
  • 固定格式,表示i1的值由隨后的關系式確定。

*.sin 文本:

template ADDER_1 in1 in2 out1 out2 = k

input nu in1,in2

output nu out1,out2

number k=1

{

foreign PWM

val nu a,b

a=PWM(k*in1,in2)

b=PWM(in1,k*in2)

out1=a

out2=b

}

注:文件名稱和程序名稱一致,否則無法識別;

并將記事本的*.txt格式改為*.sin。

圖片

2.外部程序.c文件

  • 灰色字體為頭文件固定格式
  • 花括號進入c語言程序,依照c語言邏輯編寫程序

*.c 文本:

_declspec(dllexport) void PWM

(in,nin,ifl,nifl,out,nout,ofl,nofl,undef,ier)

double in; / pointer to input parameter */

int nin; / number of input parameter */

int ifl; / not used here */

int nifl; / not used here */

double out; / pointer to output parameter */

int nout; / number of output parameter */

int ofl; / not used here */

int nofl; / not used here */

double undef; / not used here */

int ier; / not used here */

/* End of Saber header information */

{

double in1,in2,out1,out2;

in1=in[0];

in2=in[1];

out1=in1+in2;

out2=in1+in2;

out[0]=out1;

out[1]=out2;

}

注:文件名稱和程序名稱一致,否則無法識別;

并將記事本的*.txt格式改為*.c。

圖片

3.生成.dll文件***

  • 確保你可以從命令行訪問C編譯器。編譯器的版本位數(shù)需要和使用的Saber版本位數(shù)一致,使用的SaberRD64-T-2022.03版本,所以對應使用64位的編譯器。

圖片

  • 在命令提示符處鍵入編譯命令“cd”,緊接輸入*.c文件所在的文件夾路徑
  • 進入文件夾之后鍵入>cl /LD 文件名稱.c
  • 程序會自動進行編譯生成*.dll文件

圖片

  • 將輸出一個名為ADD.dll 的文件,位于當前目錄中

圖片

4.生成模型

  • 將ADDER文件夾的所有文件復制到電路模型design的根目錄下
  • 在saber中新建一個symbol,跟步驟一的template建立連接,仿真的時候用的就是這個symbol,保存成*.ai_sym文件,對模型進行保存、使用,也可以將模型添加到模型庫中

圖片

圖片

5.仿真及結果

圖片

  • 設置k為2.0

圖片

  • 仿真可得與預想一致結果

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 仿真器
    +關注

    關注

    14

    文章

    1031

    瀏覽量

    84765
  • VHDL語言
    +關注

    關注

    1

    文章

    113

    瀏覽量

    18453
  • C語言
    +關注

    關注

    180

    文章

    7628

    瀏覽量

    139945
  • 加法器
    +關注

    關注

    6

    文章

    183

    瀏覽量

    30543
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    SaberRD示例設計:三相230V交流轉28V直流變換器

    隨著對產品質量和可靠性要求的不斷提高,仿真已成為產品開發(fā)過程中的關鍵步驟。SaberRD 一直有助于為設計人員提供所有必要的功能,以最大限度地減少電路仿真工作。
    的頭像 發(fā)表于 12-06 11:20 ?2120次閱讀
    <b class='flag-5'>SaberRD</b>示例設計:三相230V交流轉28V直流變換器

    SaberRD外部模型導入功能—IBIS TOOL

    SaberRD為工程師提供強有力的庫支持,包含超過30000個模型
    的頭像 發(fā)表于 12-06 17:15 ?1881次閱讀
    <b class='flag-5'>SaberRD</b><b class='flag-5'>外部</b>模型導入功能—IBIS TOOL

    怎么用LabVIEW調用C語言程序

    本帖最后由 eehome 于 2013-1-5 10:10 編輯 小生有C語言程序,想用LabVIEW調用,但是不知道怎么調用,操作步驟
    發(fā)表于 12-25 21:07

    labview應用程序調用外部vi的問題

    說一下流程,就是一個主VI,使用“打開VI引用”來根據路徑調用外部VI,執(zhí)行外部VI的某些功能作用。1、在未生成應用程序時,不會報錯。2、生成應用
    發(fā)表于 09-16 14:17

    兩種數(shù)控仿真軟件外部程序輸入技巧淺析

    兩種數(shù)控仿真軟件外部程序輸入技巧淺析
    發(fā)表于 02-25 08:38 ?1215次閱讀
    兩種數(shù)控<b class='flag-5'>仿真</b>軟件<b class='flag-5'>外部</b><b class='flag-5'>程序</b>輸入技巧淺析

    PID算法Matlab仿真程序C程序

    PID算法Matlab仿真程序C程序 有需要的看一看,不收積分。
    發(fā)表于 11-20 17:06 ?76次下載

    C#_調用外部dll

    自己感覺不錯的一個調用動態(tài)鏈接庫的教程。
    發(fā)表于 11-24 14:52 ?0次下載

    LabVIEW外部程序(C和matlab)接口相關資料

    LabVIEW外部程序(C和matlab)接口相關資料LabVIEW外部程序(C和matlab)
    發(fā)表于 08-22 15:24 ?0次下載

    如何在Quartus13.0中調用Modelsim詳細的步驟說明

    本文檔的主要內容詳細介紹的是結合實例,通過圖片及配套文字解說,分步驟詳細介紹了Quartus13.0環(huán)境中調用Modelsim進行功能仿真。
    發(fā)表于 07-01 08:00 ?10次下載
    如何在Quartus13.0中<b class='flag-5'>調用</b>Modelsim詳細的<b class='flag-5'>步驟</b>說明

    Oracle外部例程-plsql調用com對象講解

    Oracle外部例程-plsql調用com對象講解(現(xiàn)代電源技術試卷西建大)-該文檔為Oracle外部例程-plsql調用com對象講解文檔,是一份不錯的參考文檔,感興趣的可以看看,,
    發(fā)表于 09-28 13:36 ?14次下載
    Oracle<b class='flag-5'>外部</b>例程-plsql<b class='flag-5'>調用</b>com對象講解

    Oracle如何實現(xiàn)外部調用功能講解

    Oracle如何實現(xiàn)外部調用功能講解(直流穩(wěn)壓電源技術參數(shù))-該文檔為Oracle如何實現(xiàn)外部調用功能講解文檔,是一份不錯的參考文檔,感興趣的可以看看,,,,,,,,,
    發(fā)表于 09-28 13:46 ?10次下載
    Oracle如何實現(xiàn)<b class='flag-5'>外部</b><b class='flag-5'>調用</b>功能講解

    Oracle調用外部動態(tài)庫的設置方法

    Oracle調用外部動態(tài)庫的設置方法(電源技術及應用總結)-該文檔為Oracle調用外部動態(tài)庫的設置講解文檔,是一份不錯的參考資料,感興趣的可以先下載看看,,,,,,,,,,,,,
    發(fā)表于 09-28 13:57 ?12次下載
    Oracle<b class='flag-5'>調用</b><b class='flag-5'>外部</b>動態(tài)庫的設置方法

    如何使用TSMaster調用外部DLL/LIB程序

    調用外部DLL/LIB程序在用戶自定義開發(fā)過程中,常常會遇到需要調用外部DLL/LIB程序文件的
    的頭像 發(fā)表于 08-16 09:36 ?1686次閱讀
    如何使用TSMaster<b class='flag-5'>調用</b><b class='flag-5'>外部</b>DLL/LIB<b class='flag-5'>程序</b>

    Vivado調用Modelsim仿真

    Modelsim是十分常用的外部仿真工具,在Vivado中也可以調用Modelsim進行仿真,下面將介紹如何對vivado進行配置并調用Mo
    的頭像 發(fā)表于 07-24 09:04 ?4361次閱讀
    Vivado<b class='flag-5'>調用</b>Modelsim<b class='flag-5'>仿真</b>

    運行c程序的基本步驟

    運行C程序的基本步驟可以分為以下四個主要步驟:編寫程序、編譯程序、鏈接
    的頭像 發(fā)表于 11-27 16:21 ?7049次閱讀