VHDL Verilog整数数组端口

时间:2013-04-18 06:54:55

标签: vhdl verilog fpga virtex

我正在开发一个用于突破游戏的FPGA实现的项目。在这个游戏中,我们必须使用球和桨来打破砖块。一些砖块可能在与球的多个接触处断裂。为此,我使用整数数组来表示打破特定砖块所需的命中数。例如(2,0,1,2)代表一个砖块,需要打破2个点击,然后是碎砖,然后是砖块,需要单击才能打破等等。

另外,我在VHDL中完成了所有编码,但为了将结果输出到VGA屏幕,我使用的是Verilog。

在VHDL中,我已经在包中声明了一个整数数组的类型,如下所示:

package mytypes_pkg is
    type int_array is array (0 to 39) of integer;
end mytypes_pkg;

然后在我的球运动控制文件中,我导入了work.mytypes_pkg.all然后有:

brickout:out int_array;

包含游戏中所有砖块的当前状态。必须将此数组传递给我的Verilog文件,其中必须进行所有VGA显示生成。在那里,我试过

input [39:0]    bricki;

但它给了我错误

“'mainc'的实体和组件上的端口'brickout'的不同类型”

如何纠正此错误并执行我想要执行的操作?有没有办法告诉Verilog bricki也是int_array类型?我是否还需要在Verilog中导入work.mytypes_pkg.all?

1 个答案:

答案 0 :(得分:1)

在SystemVerilog中,您可以使用typedef来定义自己的类型,例如

typedef int [N-1:0] mytype;

这种方式可以构建您想要的内容。在包中定义类型,然后导入它:

import pkg_keccak::mytype;
...
mytype int_table;