mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-06-28 01:28:42 -04:00
bram reset bug fix
This commit is contained in:
parent
fce24b9535
commit
001a107395
4 changed files with 34 additions and 32 deletions
|
@ -26,21 +26,25 @@
|
||||||
end \
|
end \
|
||||||
end
|
end
|
||||||
|
|
||||||
`define RAM_WRITE_ALL if (RESET_RAM && reset) begin \
|
`ifdef SIMULATION
|
||||||
|
`define RAM_RESET_BLOCK if (RESET_RAM && reset) begin \
|
||||||
for (integer i = 0; i < SIZE; ++i) begin \
|
for (integer i = 0; i < SIZE; ++i) begin \
|
||||||
ram[i] <= DATAW'(INIT_VALUE); \
|
ram[i] <= DATAW'(INIT_VALUE); \
|
||||||
end \
|
end \
|
||||||
end else if (write) begin \
|
end else
|
||||||
|
`endif
|
||||||
|
`define RAM_RESET_BLOCK
|
||||||
|
`endif
|
||||||
|
|
||||||
|
`define RAM_WRITE_ALL `RAM_RESET_BLOCK \
|
||||||
|
if (write) begin \
|
||||||
ram[waddr] <= wdata; \
|
ram[waddr] <= wdata; \
|
||||||
end
|
end
|
||||||
|
|
||||||
`ifdef QUARTUS
|
`ifdef QUARTUS
|
||||||
`define RAM_ARRAY_WREN reg [WRENW-1:0][WSELW-1:0] ram [0:SIZE-1];
|
`define RAM_ARRAY_WREN reg [WRENW-1:0][WSELW-1:0] ram [0:SIZE-1];
|
||||||
`define RAM_WRITE_WREN if (RESET_RAM && reset) begin \
|
`define RAM_WRITE_WREN `RAM_RESET_BLOCK \
|
||||||
for (integer i = 0; i < SIZE; ++i) begin \
|
if (write) begin \
|
||||||
ram[i] <= DATAW'(INIT_VALUE); \
|
|
||||||
end \
|
|
||||||
end else if (write) begin \
|
|
||||||
for (integer i = 0; i < WRENW; ++i) begin \
|
for (integer i = 0; i < WRENW; ++i) begin \
|
||||||
if (wren[i]) begin \
|
if (wren[i]) begin \
|
||||||
ram[waddr][i] <= wdata[i * WSELW +: WSELW]; \
|
ram[waddr][i] <= wdata[i * WSELW +: WSELW]; \
|
||||||
|
@ -49,11 +53,8 @@
|
||||||
end
|
end
|
||||||
`else
|
`else
|
||||||
`define RAM_ARRAY_WREN reg [DATAW-1:0] ram [0:SIZE-1];
|
`define RAM_ARRAY_WREN reg [DATAW-1:0] ram [0:SIZE-1];
|
||||||
`define RAM_WRITE_WREN if (RESET_RAM && reset) begin \
|
`define RAM_WRITE_WREN `RAM_RESET_BLOCK \
|
||||||
for (integer i = 0; i < SIZE; ++i) begin \
|
if (write) begin \
|
||||||
ram[i] <= DATAW'(INIT_VALUE); \
|
|
||||||
end \
|
|
||||||
end else if (write) begin \
|
|
||||||
for (integer i = 0; i < WRENW; ++i) begin \
|
for (integer i = 0; i < WRENW; ++i) begin \
|
||||||
if (wren[i]) begin \
|
if (wren[i]) begin \
|
||||||
ram[waddr][i * WSELW +: WSELW] <= wdata[i * WSELW +: WSELW]; \
|
ram[waddr][i * WSELW +: WSELW] <= wdata[i * WSELW +: WSELW]; \
|
||||||
|
|
|
@ -26,21 +26,25 @@
|
||||||
end \
|
end \
|
||||||
end
|
end
|
||||||
|
|
||||||
`define RAM_WRITE_ALL if (RESET_RAM && reset) begin \
|
`ifdef SIMULATION
|
||||||
|
`define RAM_RESET_BLOCK if (RESET_RAM && reset) begin \
|
||||||
for (integer i = 0; i < SIZE; ++i) begin \
|
for (integer i = 0; i < SIZE; ++i) begin \
|
||||||
ram[i] <= DATAW'(INIT_VALUE); \
|
ram[i] <= DATAW'(INIT_VALUE); \
|
||||||
end \
|
end \
|
||||||
end else if (write) begin \
|
end else
|
||||||
|
`endif
|
||||||
|
`define RAM_RESET_BLOCK
|
||||||
|
`endif
|
||||||
|
|
||||||
|
`define RAM_WRITE_ALL `RAM_RESET_BLOCK \
|
||||||
|
if (write) begin \
|
||||||
ram[addr] <= wdata; \
|
ram[addr] <= wdata; \
|
||||||
end
|
end
|
||||||
|
|
||||||
`ifdef QUARTUS
|
`ifdef QUARTUS
|
||||||
`define RAM_ARRAY_WREN reg [WRENW-1:0][WSELW-1:0] ram [0:SIZE-1];
|
`define RAM_ARRAY_WREN reg [WRENW-1:0][WSELW-1:0] ram [0:SIZE-1];
|
||||||
`define RAM_WRITE_WREN if (RESET_RAM && reset) begin \
|
`define RAM_WRITE_WREN `RAM_RESET_BLOCK \
|
||||||
for (integer i = 0; i < SIZE; ++i) begin \
|
if (write) begin \
|
||||||
ram[i] <= DATAW'(INIT_VALUE); \
|
|
||||||
end \
|
|
||||||
end else if (write) begin \
|
|
||||||
for (integer i = 0; i < WRENW; ++i) begin \
|
for (integer i = 0; i < WRENW; ++i) begin \
|
||||||
if (wren[i]) begin \
|
if (wren[i]) begin \
|
||||||
ram[addr][i] <= wdata[i * WSELW +: WSELW]; \
|
ram[addr][i] <= wdata[i * WSELW +: WSELW]; \
|
||||||
|
@ -49,11 +53,8 @@
|
||||||
end
|
end
|
||||||
`else
|
`else
|
||||||
`define RAM_ARRAY_WREN reg [DATAW-1:0] ram [0:SIZE-1];
|
`define RAM_ARRAY_WREN reg [DATAW-1:0] ram [0:SIZE-1];
|
||||||
`define RAM_WRITE_WREN if (RESET_RAM && reset) begin \
|
`define RAM_WRITE_WREN `RAM_RESET_BLOCK \
|
||||||
for (integer i = 0; i < SIZE; ++i) begin \
|
if (write) begin \
|
||||||
ram[i] <= DATAW'(INIT_VALUE); \
|
|
||||||
end \
|
|
||||||
end else if (write) begin \
|
|
||||||
for (integer i = 0; i < WRENW; ++i) begin \
|
for (integer i = 0; i < WRENW; ++i) begin \
|
||||||
if (wren[i]) begin \
|
if (wren[i]) begin \
|
||||||
ram[addr][i * WSELW +: WSELW] <= wdata[i * WSELW +: WSELW]; \
|
ram[addr][i * WSELW +: WSELW] <= wdata[i * WSELW +: WSELW]; \
|
||||||
|
|
|
@ -508,7 +508,7 @@ proc replace_net_source {net source_pin} {
|
||||||
exit -1
|
exit -1
|
||||||
}
|
}
|
||||||
|
|
||||||
set external_net [get_nets -of_objects $pin]
|
set external_net [get_nets -quiet -of_objects $pin]
|
||||||
if {[llength $external_net] == 0} {
|
if {[llength $external_net] == 0} {
|
||||||
# Connect pin to source net
|
# Connect pin to source net
|
||||||
connect_net -net $source_net -objects $pin -hierarchical
|
connect_net -net $source_net -objects $pin -hierarchical
|
||||||
|
|
|
@ -92,7 +92,7 @@ proc run_setup {} {
|
||||||
set_property top $top_module [current_fileset]
|
set_property top $top_module [current_fileset]
|
||||||
set_property \
|
set_property \
|
||||||
-name {STEPS.SYNTH_DESIGN.ARGS.MORE OPTIONS} \
|
-name {STEPS.SYNTH_DESIGN.ARGS.MORE OPTIONS} \
|
||||||
-value {-mode out_of_context -flatten_hierarchy "rebuilt"} \
|
-value {-mode out_of_context} \
|
||||||
-objects [get_runs synth_1]
|
-objects [get_runs synth_1]
|
||||||
|
|
||||||
# register compilation hooks
|
# register compilation hooks
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue