From 8c5a91578ca929f3a94b54628f6431c136dc417d Mon Sep 17 00:00:00 2001 From: JulianCamacho Date: Tue, 3 Oct 2023 01:39:00 -0600 Subject: comentarios --- rtl/cache/cache_control.sv | 1 + rtl/cache/offsets.sv | 2 +- rtl/cache/routing.sv | 2 ++ rtl/cache/sram.sv | 5 +++++ 4 files changed, 9 insertions(+), 1 deletion(-) (limited to 'rtl/cache') diff --git a/rtl/cache/cache_control.sv b/rtl/cache/cache_control.sv index 7186e95..85378d5 100644 --- a/rtl/cache/cache_control.sv +++ b/rtl/cache/cache_control.sv @@ -29,6 +29,7 @@ module cache_control output ring_token out_token, output logic out_token_valid, + // Señales para la SRAM input addr_tag tag_rd, input line data_rd, input line_state state_rd, diff --git a/rtl/cache/offsets.sv b/rtl/cache/offsets.sv index a933d1c..f9ad2ff 100644 --- a/rtl/cache/offsets.sv +++ b/rtl/cache/offsets.sv @@ -13,7 +13,7 @@ module cache_offsets output word core_readdata, output line_be core_byteenable_line ); - + //Simplificar offsets line line_mask; word be_extend, mask3, mask2, mask1, mask0; word_be be3, be2, be1, be0; diff --git a/rtl/cache/routing.sv b/rtl/cache/routing.sv index c72d9b5..8f744dd 100644 --- a/rtl/cache/routing.sv +++ b/rtl/cache/routing.sv @@ -48,6 +48,7 @@ module cache_routing BYPASS } state; + //Arbitrar el bus del lado de la cache assign cached = io == 3'b000; assign cache_mem = cache_mem_read || cache_mem_write; @@ -61,6 +62,7 @@ module cache_routing always_comb begin transition = 0; core_waitrequest = cache_core_waitrequest; + // Desde el punto de vista de cache, mem le hace waitreq a cache cache_mem_waitrequest = 1; unique case (state) diff --git a/rtl/cache/sram.sv b/rtl/cache/sram.sv index 986c09b..8d68b7e 100644 --- a/rtl/cache/sram.sv +++ b/rtl/cache/sram.sv @@ -27,6 +27,10 @@ module cache_sram addr_tag tag_file[DEPTH] /*verilator public*/; line_state state_file[DEPTH] /*verilator public*/; + // Hace 3 cosas: + // 1. Si se necesita escribir un dato: escribe en los tag y data files en la posición del index de escritura + // 2. Si se necesita escribir un estado: escribe en el state file en la posición del index de escritura + // 3. Cada ciclo retorna siempre lo que esté en todos los files en la posición de index de lectura always_ff @(posedge clk) begin if (write_data) begin tag_file[index_wr] <= tag_wr; @@ -41,6 +45,7 @@ module cache_sram state_rd <= state_file[index_rd]; end + // Se inicializan todas las líneas del state file como INVALID //FIXME: rst_n para state_file? initial for (int i = 0; i < DEPTH; ++i) -- cgit v1.2.3