Arrays 将数组从系统verilog传递到VHDL

Arrays 将数组从系统verilog传递到VHDL,arrays,generics,parameter-passing,vhdl,system-verilog,Arrays,Generics,Parameter Passing,Vhdl,System Verilog,我有一个VHDL代码,它需要一个元素数组作为泛型。 COEF_列表:COEF:=(0,0,1,1,2,-2,1,-2,1) 如何将新的COEF_列表集从系统verilog测试台发送到VHDL实体 VHDL中的泛型与verilog中的参数相同 我宣布科夫为 parameter real COEFF[8:0] = '{0,0,1,1,2,-2,1,-2,1}; 在系统verilog中 我尝试通过使用(在我的verilog测试台上) 我得到以下错误 **.C

我有一个VHDL代码,它需要一个元素数组作为泛型。 COEF_列表:COEF:=(0,0,1,1,2,-2,1,-2,1)

如何将新的COEF_列表集从系统verilog测试台发送到VHDL实体

VHDL中的泛型与verilog中的参数相同

我宣布科夫为

  parameter  real COEFF[8:0] = '{0,0,1,1,2,-2,1,-2,1}; 
在系统verilog中

我尝试通过使用(在我的verilog测试台上)

我得到以下错误

                 **.COEF_LIST(COEFF)
                                |
ncelab:*E,CFIGTC(./vhdl_entity_tb.vams,41|36):vhdl通用vhdl_entity.COEF_列表(../views/rtl/vhdl_entity.vhd:第34行,位置14)类型与Verilog不兼容。 irun:E,ELBERR:精化过程中出错(状态1),正在退出*

这不管用。如何使其与VHDL兼容? 我使用的是incisiv 13.20.008版本


有人能建议怎么做吗?

似乎您在VHDL中将COEF_列表声明为一个整数数组,而您正试图从SystemVerilog传递一个real数组。尝试更改为:

parameter int COEFF[8:0] = '{0,0,1,1,2,-2,1,-2,1};

你能详细说明出了什么问题吗?(最好通过编辑文章)尝试通过在VHDL实体上设置默认参数来简化问题,看看这是否有效。您已声明为实数数组,但VHDL解释程序可能将数组视为整数列表。查看将小数点添加到数字时发生的情况。发布VHDL实体的声明(仅通用就足够了,没有端口)以更好地显示发生的情况。假设
COEF\u列表:COEF:=(0,0,1,1,2,-2,1,-2,1)
是通用接口列表中的通用声明,
coef
的类型声明无法从现有信息中得知。只有当数组类型
coef
的基类型为整数且incisiv提供隐式类型转换时,您的答案才有效。这似乎是两个语言域之间的类型不兼容问题,需要在这两个域中进行修复。@DavidKoontz因此答案中的“看起来像”,而不是“因为”。
parameter int COEFF[8:0] = '{0,0,1,1,2,-2,1,-2,1};