名称:矩阵乘法器设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
矩阵乘法器
设计矩阵乘法器,为2x2矩阵,每个元素为16位,乘法器使用IP核。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
工程文件
程序文件
程序编译
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),
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=963
阅读全文
650