国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Verilator的DPI-C機(jī)制:實(shí)現(xiàn)跨平臺(tái)的函數(shù)調(diào)用

這篇具有很好參考價(jià)值的文章主要介紹了Verilator的DPI-C機(jī)制:實(shí)現(xiàn)跨平臺(tái)的函數(shù)調(diào)用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

筆者正在搞ysyx,需要用到Verilator的DPI-C機(jī)制。雖然STFM比較容易學(xué)會(huì),但本著學(xué)習(xí)和記錄的目的,還是寫一篇文章出來(lái)。

DPI-C機(jī)制,簡(jiǎn)單來(lái)說(shuō)就是你可以在C語(yǔ)言中實(shí)現(xiàn)一個(gè)函數(shù),卻在Verilog中調(diào)用!在驗(yàn)證的過(guò)程中無(wú)疑會(huì)有很大的助力!

?

下面來(lái)個(gè)例子吧:

import "DPI-C" function int add (input int a, input int b);
module our(
	input wire [31:0] a,
	input wire [31:0] b,
	output reg [31:0] ans
);
always@(*) begin
	ans = add(a, b);
end
endmodule

比如我需要在.v中調(diào)用一個(gè)add函數(shù),那就把import那句話添加進(jìn)來(lái)。然后,就可以在你需要的地方直接使用這個(gè)函數(shù)。

在這個(gè)例子中,我對(duì)引出的信號(hào)ans賦值為add(a, b),也就相當(dāng)于ans = a + b了。

#include "Vour__Dpi.h"
#include "svdpi.h"
#include "Vour.h"

Vour *top = new Vour;
int add(int a, int b) {return a + b;}
int main() {
	top->a = 1;
	top->b = 1;
	top->eval();
	printf("The value is %d\n", top->ans);
	delete top;
	exit(0);
	return 0;
}

這是驗(yàn)證所需要的.cpp,需要自己進(jìn)行設(shè)計(jì)和編寫。這里對(duì)上面的.v中的add函數(shù)進(jìn)行了定義,并在main函數(shù)中進(jìn)行了驗(yàn)證的操作。

當(dāng)然,DPI-C機(jī)制可以有很多妙用。不過(guò)也不要太過(guò)依賴,不要本末倒置。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-738785.html

到了這里,關(guān)于Verilator的DPI-C機(jī)制:實(shí)現(xiàn)跨平臺(tái)的函數(shù)調(diào)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包