added reset to ws
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
module VX_fetch (
|
module VX_fetch (
|
||||||
input wire clk,
|
input wire clk,
|
||||||
|
input wire reset,
|
||||||
VX_wstall_inter VX_wstall,
|
VX_wstall_inter VX_wstall,
|
||||||
VX_join_inter VX_join,
|
VX_join_inter VX_join,
|
||||||
input wire schedule_delay,
|
input wire schedule_delay,
|
||||||
@@ -27,6 +28,7 @@ module VX_fetch (
|
|||||||
wire[31:0] warp_pc;
|
wire[31:0] warp_pc;
|
||||||
VX_warp_scheduler warp_scheduler(
|
VX_warp_scheduler warp_scheduler(
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
|
.reset (reset),
|
||||||
.stall (pipe_stall),
|
.stall (pipe_stall),
|
||||||
// Wspawn
|
// Wspawn
|
||||||
.wspawn (VX_warp_ctl.wspawn),
|
.wspawn (VX_warp_ctl.wspawn),
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ VX_join_inter VX_join();
|
|||||||
|
|
||||||
VX_fetch vx_fetch(
|
VX_fetch vx_fetch(
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
|
.reset (reset),
|
||||||
.VX_wstall (VX_wstall),
|
.VX_wstall (VX_wstall),
|
||||||
.VX_join (VX_join),
|
.VX_join (VX_join),
|
||||||
.schedule_delay (schedule_delay),
|
.schedule_delay (schedule_delay),
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
module VX_warp_scheduler (
|
module VX_warp_scheduler (
|
||||||
input wire clk, // Clock
|
input wire clk, // Clock
|
||||||
|
input wire reset,
|
||||||
input wire stall,
|
input wire stall,
|
||||||
// Wspawn
|
// Wspawn
|
||||||
input wire wspawn,
|
input wire wspawn,
|
||||||
@@ -90,16 +91,24 @@ module VX_warp_scheduler (
|
|||||||
/* verilator lint_on UNUSED */
|
/* verilator lint_on UNUSED */
|
||||||
|
|
||||||
reg[1:0] start;
|
reg[1:0] start;
|
||||||
initial begin
|
// initial begin
|
||||||
warp_pcs[0] = (32'h80000000 - 4);
|
// warp_pcs[0] = (32'h80000000 - 4);
|
||||||
start = 0;
|
// start = 0;
|
||||||
warp_active[0] = 1; // Activating first warp
|
// warp_active[0] = 1; // Activating first warp
|
||||||
visible_active[0] = 1; // Activating first warp
|
// visible_active[0] = 1; // Activating first warp
|
||||||
thread_masks[0][0] = 1; // Activating first thread in first warp
|
// thread_masks[0][0] = 1; // Activating first thread in first warp
|
||||||
end
|
// end
|
||||||
|
|
||||||
|
|
||||||
always @(posedge clk) begin
|
always @(posedge clk or posedge reset) begin
|
||||||
|
if (reset) begin
|
||||||
|
warp_pcs[0] = (32'h80000000 - 4);
|
||||||
|
start = 0;
|
||||||
|
warp_active[0] = 1; // Activating first warp
|
||||||
|
visible_active[0] = 1; // Activating first warp
|
||||||
|
thread_masks[0][0] = 1; // Activating first thread in first warp
|
||||||
|
end
|
||||||
|
|
||||||
// Wsapwning warps
|
// Wsapwning warps
|
||||||
if (wspawn && found_wspawn) begin
|
if (wspawn && found_wspawn) begin
|
||||||
warp_pcs[warp_to_wsapwn] <= wsapwn_pc;
|
warp_pcs[warp_to_wsapwn] <= wsapwn_pc;
|
||||||
@@ -183,6 +192,7 @@ module VX_warp_scheduler (
|
|||||||
wire pop = is_join && correct_warp_j;
|
wire pop = is_join && correct_warp_j;
|
||||||
VX_generic_stack #(.WIDTH(1+32+`NT), .DEPTH($clog2(`NT))) ipdom_stack(
|
VX_generic_stack #(.WIDTH(1+32+`NT), .DEPTH($clog2(`NT))) ipdom_stack(
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
|
.reset(reset),
|
||||||
.push (push),
|
.push (push),
|
||||||
.pop (pop),
|
.pop (pop),
|
||||||
.d (d),
|
.d (d),
|
||||||
|
|||||||
Reference in New Issue
Block a user