名称:矩阵乘法器设计Verilog代码VIVADO仿真(文末获取)
软件:VIVADO
语言:Verilog
代码功能:
矩阵乘法器
设计矩阵乘法器,为2x2矩阵,每个元素为16位
乘法器使用IP核
工程文件
程序文件
程序编译
Testbench
仿真图
部分代码展示:
`timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2020/04/04 12:42:42 // Design Name: // Module Name: matrix_mul // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // // module matrix_mul( input clk, input [15:0] matrixA_0,//输入矩阵A元素1 input [15:0] matrixA_1,//输入矩阵A元素2 input [15:0] matrixA_2,//输入矩阵A元素3 input [15:0] matrixA_3,//输入矩阵A元素4 input [15:0] matrixB_0,//输入矩阵B元素1 input [15:0] matrixB_1,//输入矩阵B元素2 input [15:0] matrixB_2,//输入矩阵B元素3 input [15:0] matrixB_3,//输入矩阵B元素4 output [31:0] convolutAB_0,//输出结果元素1 output [31:0] convolutAB_1,//输出结果元素2 output [31:0] convolutAB_2,//输出结果元素3 output [31:0] convolutAB_3//输出结果元素4 ); wire [31:0] matrixA_0XmatrixB_0; wire [31:0] matrixA_1XmatrixB_2; wire [31:0] matrixA_0XmatrixB_1; wire [31:0] matrixA_1XmatrixB_3; wire [31:0]matrixA_2XmatrixB_0; wire [31:0]matrixA_3XmatrixB_2; wire [31:0]matrixA_2XmatrixB_1; wire [31:0]matrixA_3XmatrixB_3; //计算结果 assign convolutAB_0=matrixA_0XmatrixB_0+matrixA_1XmatrixB_2; assign convolutAB_1=matrixA_0XmatrixB_1+matrixA_1XmatrixB_3; assign convolutAB_2=matrixA_2XmatrixB_0+matrixA_3XmatrixB_2; assign convolutAB_3=matrixA_2XmatrixB_1+matrixA_3XmatrixB_3; mult_IP I0 ( .CLK(clk), // input wire CLK .A(matrixA_0), // input wire [15 : 0] A .B(matrixB_0), // input wire [15 : 0] B .P(matrixA_0XmatrixB_0) // output wire [31 : 0] P ); mult_IP I1 ( .CLK(clk), // input wire CLK .A(matrixA_1), // input wire [15 : 0] A .B(matrixB_2), // input wire [15 : 0] B .P(matrixA_1XmatrixB_2) // output wire [31 : 0] P ); mult_IP I2 ( .CLK(clk), // input wire CLK .A(matrixA_0), // input wire [15 : 0] A .B(matrixB_1), // input wire [15 : 0] B .P(matrixA_0XmatrixB_1) // output wire [31 : 0] P ); mult_IP I3 ( .CLK(clk), // input wire CLK .A(matrixA_1),
源代码
点击下方的公众号卡片获取