summaryrefslogtreecommitdiff
path: root/rtl/mp.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2023-09-26 02:03:05 -0600
committerAlejandro Soto <alejandro@34project.org>2023-09-26 02:03:05 -0600
commita2f0c253384ec747735b102ccedfae5c96626fbc (patch)
tree5462240fc69264ea2fccfe5cfd398bb2b969ca95 /rtl/mp.sv
parent39ec176b839c7c2ae51fdba8d49d0110b91e953e (diff)
rtl/mp: fix design
Diffstat (limited to 'rtl/mp.sv')
-rw-r--r--rtl/mp.sv83
1 files changed, 0 insertions, 83 deletions
diff --git a/rtl/mp.sv b/rtl/mp.sv
deleted file mode 100644
index a8ffee4..0000000
--- a/rtl/mp.sv
+++ /dev/null
@@ -1,83 +0,0 @@
-module mp
-(
- input logic clk,
- rst_n,
-
- // todas las señales de shutdown_request de otros procesadores
- input logic [1:0] avl_address,
- input logic avl_read,
- avl_write,
- input logic[31:0] avl_writedata,
- output logic[31:0] avl_readdata,
-
- input logic cpu_halted_pe_0,
- cpu_halted_pe_1,
- cpu_halted_pe_2,
- cpu_halted_pe_3,
- input logic breakpoint_pe_0,
- breakpoint_pe_1,
- breakpoint_pe_2,
- breakpoint_pe_3,
-
- // señales de halt
- output logic halt_pe_0,
- halt_pe_1,
- halt_pe_2,
- halt_pe_3,
- step_pe_0,
- step_pe_1,
- step_pe_2,
- step_pe_3
-);
-
- logic[7:0] pe_status;
- logic halt, step, run;
-
- assign {step, run, halt} = avl_writedata[2:0];
- assign avl_readdata = {24'b0, pe_status};
-
- always @(posedge clk or negedge rst_n)
- if(!rst_n) begin
- halt_pe_0 <= 0; //Encender solo el PE0
- halt_pe_1 <= 1;
- halt_pe_2 <= 1;
- halt_pe_3 <= 1;
- step_pe_1 <= 0;
- step_pe_2 <= 0;
- step_pe_3 <= 0;
- step_pe_4 <= 0;
- pe_status <= {($bits(pe_status)){1'b0}};
- end else begin
-
- pe_status <= { cpu_halted_pe_0,
- breakpoint_pe_0,
- cpu_halted_pe_1,
- breakpoint_pe_1,
- cpu_halted_pe_2,
- breakpoint_pe_2,
- cpu_halted_pe_3,
- breakpoint_pe_3 };
-
- unique case(avl_address)
- 2'b00: begin
- //Se hace halt hasta el siguiente ciclo después de que se
- //solicita el breakpoint
- halt_pe_0 <= (halt_pe_0 || halt || breakpoint_pe_0) && !run && !step;
- step_pe_0 <= !breakpoint_pe_0 || step;
- end
- 2'b01: begin
- halt_pe_1 <= ((halt_pe_1 || halt) && !run) || breakpoint_pe_1 || !step;
- step_pe_1 <= !breakpoint_pe_1 || step;
- end
- 2'b10: begin
- halt_pe_2 <= ((halt_pe_2 || halt) && !run) || breakpoint_pe_2 || !step;
- step_pe_2 <= !breakpoint_pe_2 || step;
- end
- 2'b11: begin
- halt_pe_3 <= ((halt_pe_3 || halt) && !run) || breakpoint_pe_3 || !step;
- step_pe_3 <= !breakpoint_pe_3 || step;
- end
- endcase
- end
-
-endmodule \ No newline at end of file