如何将c函数转换为verilog模块?
下面是用于模糊化输入的C代码。我一直在尝试将其转换为verilog语法,但在数据类型等方面我遇到了很多问题。错误不断堆积如何将c函数转换为verilog模块?,c,verilog,C,Verilog,下面是用于模糊化输入的C代码。我一直在尝试将其转换为verilog语法,但在数据类型等方面我遇到了很多问题。错误不断堆积 float fuzzify_MF(float x,a,b,c,d) //x=crisp input { float dom; if ( x >a && x <b) { dom=(x-a)/(b – a); } else if (x>c && x<d) { dom=(d-x)/(d-c); } else if
float fuzzify_MF(float x,a,b,c,d) //x=crisp input
{
float dom;
if ( x >a && x <b)
{ dom=(x-a)/(b – a); }
else if (x>c && x<d)
{ dom=(d-x)/(d-c); }
else if (x>=b && x<=c)
{dom=1.0; }
else
{ dom=0; }
return dom;
}
float fuzzify\u MF(float x,a,b,c,d)//x=crip输入
{
浮动dom;
如果(x>a&&xc&&x=b&&x为什么不尝试使用PLI呢。
尝试此链接:为什么不尝试使用PLI。
尝试此链接:您可以使用PLI来解决此问题,但如果您希望看起来很酷,并且仍然可以解决此问题,请使用SystemVerilog的DPI
您可以使用PLI来解决此问题,但如果您希望看起来很酷,并且仍然能够解决此问题,请使用SystemVerilog的DPI
您可以使用PLIs在Verilog中导入“C”函数
使用C函数包括以下头文件:
#include <svdip.h>
#包括
现在在Verilog模块中:
module top;
import "DPI-C" context function shortreal fuzzify_MF(shortreal x, shortreal a, shortreal b, shortreal c, shortreal d);
shortreal t;
initial
begin
t = fuzzify_MF(<Arguments>);
end
endmodule
模块顶部;
导入“DPI-C”上下文函数shortreal fuzzify_MF(shortreal x、shortreal a、shortreal b、shortreal C、shortreal d);
短实t;
最初的
开始
t=fuzzify\u MF(您可以使用PLIs在Verilog中导入一个“C”函数
使用C函数包括以下头文件:
#include <svdip.h>
#包括
现在在Verilog模块中:
module top;
import "DPI-C" context function shortreal fuzzify_MF(shortreal x, shortreal a, shortreal b, shortreal c, shortreal d);
shortreal t;
initial
begin
t = fuzzify_MF(<Arguments>);
end
endmodule
模块顶部;
导入“DPI-C”上下文函数shortreal fuzzify_MF(shortreal x、shortreal a、shortreal b、shortreal C、shortreal d);
短实t;
最初的
开始
t=fuzzify_MF(哪部分给你带来麻烦?VHDL |哪部分给你带来麻烦?VHDL|