/
SberBigyin13
/
matrixMul
Обзор
Документация
Войти
/
SberBigyin13
/
matrixMul
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/array.sv
71 строка
1 KB
Bigyin1
weights setup
19 мар 2025, 15:00
19 мар 2025, 15:00
59f0647
Код
Авторство
О чём код?
module array #( ROWS = 3, COLUMNS = 3 ) ( input clk, input n_rst, input logic [7:0] weights[COLUMNS], input logic weights_en, input logic [7:0] flow_in [COLUMNS], output logic [7:0] flow_out[ ROWS] ); logic [7:0] inputs[ROWS+1][COLUMNS]; genvar i; generate for (i = 0; i < COLUMNS; ++i) begin assign inputs[0][i] = flow_in[i]; end endgenerate logic [7:0] results[ROWS][COLUMNS+1]; generate for (i = 0; i < ROWS; ++i) begin assign flow_out[i] = results[i][COLUMNS]; assign results[i][0] = 0; end endgenerate /* verilator lint_off UNOPTFLAT */ logic [7:0] weights_arr[ROWS+1][COLUMNS]; logic weights_en_arr[ROWS+1][COLUMNS]; generate for (i = 0; i < COLUMNS; ++i) begin assign weights_arr[0][i] = weights[i]; assign weights_en_arr[0][i] = weights_en; end endgenerate genvar j; generate for (i = 0; i < ROWS; ++i) begin for (j = 0; j < COLUMNS; ++j) begin array_cell #() u_array_cell ( .clk (clk), .nrst_in (n_rst), .weight_in(weights_arr[i][j]), .weight_en_in(weights_en_arr[i][j]), .weight_out(weights_arr[i+1][j]), .weight_en_out(weights_en_arr[i+1][j]), .elem_in (inputs[i][j]), .res_in (results[i][j]), .elem_out(inputs[i+1][j]), .res_out (results[i][j+1]) ); end end endgenerate endmodule