From bc466f0511d8b3029c0822f415ebc9ae152b9d09 Mon Sep 17 00:00:00 2001 From: JulianCamacho Date: Tue, 3 Oct 2023 16:55:27 -0600 Subject: sram, offset and routing comments --- rtl/cache/routing.sv | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'rtl/cache/routing.sv') diff --git a/rtl/cache/routing.sv b/rtl/cache/routing.sv index 8f744dd..aae6f51 100644 --- a/rtl/cache/routing.sv +++ b/rtl/cache/routing.sv @@ -49,9 +49,18 @@ module cache_routing } state; //Arbitrar el bus del lado de la cache + + /* Se sabe si el address es cache o no evaluando los bits de IO. + * Esto es posible porque se cumple lo siguiente: + * - La memoria tiene un tamaño que es una potencia de 2 + * - Sus direcciones inician en 0 + * Entonces si los bits de IO son distintos de 0, se sabe que no es + * una dirección cached + */ assign cached = io == 3'b000; assign cache_mem = cache_mem_read || cache_mem_write; + // Acá se divide el core_address para analizarse por separado assign {io, core_tag, core_index, core_offset} = core_address; assign core_address_line = {io, core_tag, core_index, 4'b0000}; assign core_readdata_line = cached ? data_rd : mem_readdata; -- cgit v1.2.3