您当前的位置: 首页 >  矩阵

FPGA硅农

暂无认证

  • 3浏览

    0关注

    282博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

基于FPGA的脉动阵列矩阵乘法

FPGA硅农 发布时间:2021-02-05 00:49:59 ,浏览量:3

部分信号的时序图: 在这里插入图片描述

模块代码:

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2021/02/04 10:29:57
// Design Name: 
// Module Name: systolic
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module systolic(        //NxN脉动阵列,可用于计算NxK矩阵A和KxN矩阵B相乘的结果
input logic clk,
input logic rst,
input logic [15:0] k,
input logic [15:0] data_a [0:N-1],
output logic [15:0] addr_a [0:N-1],
input logic [15:0] data_b [0:N-1],
output logic [15:0] addr_b [0:N-1],
input logic start,
output logic done,
output  logic [31:0] Out[0:N-1][0:N-1]
    );
parameter N = 4;

integer i;

logic busy;
logic busy_ff1;
logic busy_for_shift;
logic busy_for_calc;
logic busy_for_calc_ff;

logic [9:0]count;
logic [9:0]count_ff1;
logic [9:0]count_for_calc;
logic [9:0]count_for_shift;

typedef struct { //结构体定义,不分配存储器
  logic [15:0]a;
  logic [15:0]b;
  logic [31:0]psum;
} PE;

PE pe_array[0:N-1][0:N-1]; // 结构体实例化时分配存储区
//addr_a
always@(*)
begin
    for(int i=0;i=i&&count            
关注
打赏
1658642721
查看更多评论
0.0944s