summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_defs.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-11-21 01:17:26 -0600
committerAlejandro Soto <alejandro@34project.org>2023-11-21 18:00:48 -0600
commit7f20f4493ef1938f0ea8e86dc16f5c058fe7e4f3 (patch)
tree8068225a7068da4702e144e4ff588573c16e2b36 /rtl/gfx/gfx_defs.sv
parentde9a1bf57f6a6c70aef36da4eea024b44fe87470 (diff)
rtl/gfx: implement shuffler
Diffstat (limited to 'rtl/gfx/gfx_defs.sv')
-rw-r--r--rtl/gfx/gfx_defs.sv16
1 files changed, 11 insertions, 5 deletions
diff --git a/rtl/gfx/gfx_defs.sv b/rtl/gfx/gfx_defs.sv
index b65d74e..0a4a5da 100644
--- a/rtl/gfx/gfx_defs.sv
+++ b/rtl/gfx/gfx_defs.sv
@@ -12,9 +12,9 @@
`define FP_INV_STAGES 3 // ~178 LUTs ~1 bloque DSP
typedef logic[`FLOAT_BITS - 1:0] fp;
-typedef fp vec2[2];
-typedef fp vec4[`FLOATS_PER_VEC];
-typedef vec4 mat4[`VECS_PER_MAT];
+typedef fp[1:0] vec2;
+typedef fp[`FLOATS_PER_VEC - 1:0] vec4;
+typedef vec4[`VECS_PER_MAT - 1:0] mat4;
`define FP_UNIT 16'h3c00
@@ -229,8 +229,8 @@ typedef struct packed
typedef struct packed
{
- logic is_imm,
- is_swizzle;
+ logic is_swizzle,
+ is_broadcast;
fp imm;
vec_mask select_mask;
swizzle_lanes swizzle_op;
@@ -249,4 +249,10 @@ typedef struct packed
shuffler_deco shuffler;
} insn_deco; // "insn_decode" ya existe en core, esto es confuso pero lo hice por tiempo
+typedef struct packed
+{
+ vreg_num dst;
+ mat4 data;
+} wb_op;
+
`endif