首页 文章

VHDL Verilog整数数组端口

提问于
浏览
0

我正在开发一个用于突破游戏的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 回答

  • 1

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

    typedef int [N-1:0] mytype;
    

    这样就可以构建你想要的东西 . 在包中定义类型,然后导入它:

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

相关问题