0

我正在为 Breakout Game 的 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 砖也是 int_array 类型的?我还需要在 Verilog 中导入 work.mytypes_pkg.all 吗?

4

1 回答 1

1

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

typedef int [N-1:0] mytype;

这样就可以准确地构建您想要的东西。在包中定义您的类型,然后将其导入:

import pkg_keccak::mytype;
...
mytype int_table;
于 2013-07-18T07:01:24.433 回答