mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-24 13:57:17 -04:00
sp_ram byteen fix
This commit is contained in:
parent
7ae936c25f
commit
ad6e0b4e77
2 changed files with 21 additions and 33 deletions
|
@ -96,6 +96,7 @@ gtkwave ./build_ase_1c/work/vortex.vcd &
|
|||
# kill process by Users
|
||||
ps -u tinebp
|
||||
kill -9 <pid>
|
||||
ps -u tinebp | grep "blackbox" | awk '{print $1}' | xargs kill -9
|
||||
|
||||
# fixing device resource busy issue when deleting /build_ase_1c/
|
||||
lsof +D build_ase_1c
|
||||
|
|
|
@ -22,23 +22,18 @@ module VX_sp_ram #(
|
|||
|
||||
`STATIC_ASSERT((1 == BYTEENW) || ((BYTEENW > 1) && 0 == (BYTEENW % 4)), ("invalid parameter"))
|
||||
|
||||
localparam DATA32W = DATAW / 32;
|
||||
localparam BYTEEN32W = BYTEENW / 4;
|
||||
|
||||
if (FASTRAM) begin
|
||||
if (BUFFERED) begin
|
||||
reg [DATAW-1:0] dout_r;
|
||||
|
||||
if (BYTEENW > 1) begin
|
||||
`USE_FAST_BRAM reg [DATA32W-1:0][3:0][7:0] mem [SIZE-1:0];
|
||||
`USE_FAST_BRAM reg [BYTEENW-1:0][7:0] mem [SIZE-1:0];
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (wren) begin
|
||||
for (integer j = 0; j < BYTEEN32W; j++) begin
|
||||
for (integer i = 0; i < 4; i++) begin
|
||||
if (byteen[j * 4 + i])
|
||||
mem[addr][j][i] <= din[j * 32 + i * 8 +: 8];
|
||||
end
|
||||
for (integer i = 0; i < BYTEENW; i++) begin
|
||||
if (byteen[i])
|
||||
mem[addr][i] <= din[i * 8 +: 8];
|
||||
end
|
||||
end
|
||||
if (rden)
|
||||
|
@ -58,15 +53,13 @@ module VX_sp_ram #(
|
|||
end else begin
|
||||
`UNUSED_VAR (rden)
|
||||
if (BYTEENW > 1) begin
|
||||
`USE_FAST_BRAM reg [DATA32W-1:0][3:0][7:0] mem [SIZE-1:0];
|
||||
`USE_FAST_BRAM reg [BYTEENW-1:0][7:0] mem [SIZE-1:0];
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (wren) begin
|
||||
for (integer j = 0; j < BYTEEN32W; j++) begin
|
||||
for (integer i = 0; i < 4; i++) begin
|
||||
if (byteen[j * 4 + i])
|
||||
mem[addr][j][i] <= din[j * 32 + i * 8 +: 8];
|
||||
end
|
||||
for (integer i = 0; i < BYTEENW; i++) begin
|
||||
if (byteen[i])
|
||||
mem[addr][i] <= din[i * 8 +: 8];
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -86,15 +79,13 @@ module VX_sp_ram #(
|
|||
reg [DATAW-1:0] dout_r;
|
||||
|
||||
if (BYTEENW > 1) begin
|
||||
reg [DATA32W-1:0][3:0][7:0] mem [SIZE-1:0];
|
||||
reg [BYTEENW-1:0][7:0] mem [SIZE-1:0];
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (wren) begin
|
||||
for (integer j = 0; j < BYTEEN32W; j++) begin
|
||||
for (integer i = 0; i < 4; i++) begin
|
||||
if (byteen[j * 4 + i])
|
||||
mem[addr][j][i] <= din[j * 32 + i * 8 +: 8];
|
||||
end
|
||||
for (integer i = 0; i < BYTEENW; i++) begin
|
||||
if (byteen[i])
|
||||
mem[addr][i] <= din[i * 8 +: 8];
|
||||
end
|
||||
end
|
||||
if (rden)
|
||||
|
@ -115,15 +106,13 @@ module VX_sp_ram #(
|
|||
`UNUSED_VAR (rden)
|
||||
if (RWCHECK) begin
|
||||
if (BYTEENW > 1) begin
|
||||
reg [DATA32W-1:0][3:0][7:0] mem [SIZE-1:0];
|
||||
reg [BYTEENW-1:0][7:0] mem [SIZE-1:0];
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (wren) begin
|
||||
for (integer j = 0; j < BYTEEN32W; j++) begin
|
||||
for (integer i = 0; i < 4; i++) begin
|
||||
if (byteen[j * 4 + i])
|
||||
mem[addr][j][i] <= din[j * 32 + i * 8 +: 8];
|
||||
end
|
||||
for (integer i = 0; i < BYTEENW; i++) begin
|
||||
if (byteen[i])
|
||||
mem[addr][i] <= din[i * 8 +: 8];
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -139,15 +128,13 @@ module VX_sp_ram #(
|
|||
end
|
||||
end else begin
|
||||
if (BYTEENW > 1) begin
|
||||
`NO_RW_RAM_CHECK reg [DATA32W-1:0][3:0][7:0] mem [SIZE-1:0];
|
||||
`NO_RW_RAM_CHECK reg [BYTEENW-1:0][7:0] mem [SIZE-1:0];
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (wren) begin
|
||||
for (integer j = 0; j < BYTEEN32W; j++) begin
|
||||
for (integer i = 0; i < 4; i++) begin
|
||||
if (byteen[j * 4 + i])
|
||||
mem[addr][j][i] <= din[j * 32 + i * 8 +: 8];
|
||||
end
|
||||
for (integer i = 0; i < BYTEENW; i++) begin
|
||||
if (byteen[i])
|
||||
mem[addr][i] <= din[i * 8 +: 8];
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue