如何将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

下面是用于模糊化输入的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 (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|