名称:矩阵乘法器设计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
阅读全文
510