summaryrefslogtreecommitdiff
path: root/rtl/cache/routing.sv
diff options
context:
space:
mode:
authorFabian Montero <fabian@posixlycorrect.com>2023-10-04 17:57:21 -0600
committerFabian Montero <fabian@posixlycorrect.com>2023-10-04 17:57:21 -0600
commit84ac4c10f1e3ca4f779a19a1b0a2c43c5e18e37d (patch)
treeec0a01f5b3cdb6e840471a0ba6f82761a9fd49e0 /rtl/cache/routing.sv
parent29832876ad224b7668ee1c2ba750e898fee347c3 (diff)
explica mejor las transiciones de routing
Diffstat (limited to 'rtl/cache/routing.sv')
-rw-r--r--rtl/cache/routing.sv7
1 files changed, 5 insertions, 2 deletions
diff --git a/rtl/cache/routing.sv b/rtl/cache/routing.sv
index ea30e95..78f1be0 100644
--- a/rtl/cache/routing.sv
+++ b/rtl/cache/routing.sv
@@ -82,7 +82,7 @@ module cache_routing
// IDLE/CACHE/BYPASS
// Bypass: el request evita pasar por caché, para que no quede escrito el
// el dato. Esto sirve para periféricos, por ejemplo.
- // Cache: el request sí pasa por caché (esto sucede para todo lo que va
+ // Cache: el request sí pasa por caché, esto sucede para todo lo que va
// para RAM.
always_comb begin
transition = 0;
@@ -117,7 +117,10 @@ module cache_routing
IDLE:
if (transition) begin
// Si cache quiere hacer una operación con memoria, se pasa
- // a CACHE, sino hay que hacer BYPASS
+ // a CACHE, sino hay que hacer BYPASS. Si la operación
+ // no es directo a memoria, se hace bypasss porque esto
+ // implica que el dato no tiene que quedar cacheado. (Talvez
+ // es algo de un periférico, etc.)
state <= cache_mem ? CACHE : BYPASS;
mem_read <= cache_mem ? cache_mem_read : core_read;
mem_write <= cache_mem ? cache_mem_write : core_write;