`include "defs.svh" module mem_cache #( SET_BITS = 8 ) ( input bit clock , input bit reset , input bit clear , output bit core_command_ready , input bit core_command_valid , input pdp_command_t core_command_data , input bit ram_command_ready , output bit ram_command_valid , output pdp_command_t ram_command_data , output bit ram_response_ready , input bit ram_response_valid , input pdp_read_response_t ram_response_data , input bit core_response_ready , output bit core_response_valid , output pdp_read_response_t core_response_data ); localparam ADDRESS_TAG_LO = $clog2(`RAM_LINE_WORDS)+SET_BITS; typedef bit [`PDP_ADDRESS_BITS-1:ADDRESS_TAG_LO] address_tag_t; typedef bit [ADDRESS_TAG_LO-1:$clog2(`RAM_LINE_WORDS)] set_t; typedef struct packed { bit valid; address_tag_t address; } tag_t; typedef struct packed { tag_t tag; ram_line_t data; } cache_entry_t; (* ramstyle = "no_rw_check, M9K" *) cache_entry_t cache [(1<