Verilog重用模块来处理矩阵乘法

时间:2016-03-04 10:38:25

标签: verilog xilinx hdl

我已经编写了我的Verilog项目并且它正确地进行了系统化,但由于设计太大而无法适应FPGA,因此它不会生成编程文件。我有几个地方可以进行矩阵乘法运算。我写了一个模块来做矩阵乘法。在矩阵乘法中我生成了'rowBycol'它乘以矩阵的行和列。为了乘以N * N矩阵,我生成N' rowBycol'模块。我想要做的就是生成一个' rowBycol'并重复使用N次。你能给出一个如何做到这一点的简单例子。

我在' rowBycol'中使用了32位乘法器。模块。矩阵乘数使用参数来指定矩阵的大小。

接头:

module matrixMult(CLK, y, A, B);
    input CLK;
    input [width*rowA*colA-1 : 0] A;        // wordlength
    input [width*rowB*colB-1 : 0] B;        // size of vector
    output [width*rowA*colB-1 : 0] y;
    ....

module rowBycol(CLK, y, a, b);
    parameter width = 32;                   // wordlength
    parameter size = 2;                     // size of vector
    input CLK;
    input [width*size-1:0] a, b;            // Arow Bcol
    output [width-1:0] y;                   //sum([A1*B1, A2*B2,...A32*B32])
    ...

0 个答案:

没有答案