/* ########################################################################### # **EMMU** # # This block uses the upper 12 bits [31:20] of a memory address as an index # to read an entry from a table. # # The table is written from the mi_* configuration interface. # # The table can be configured as 12 bits wide or 44 bits wide. # # 32bit address output = {table_data[11:0],dstaddr[19:0]} # 64bit address output = {table_data[43:0],dstaddr[19:0]} # ############################################################################ */ module emmu (/*AUTOARG*/ // Outputs mi_dout, emesh_access_out, emesh_packet_out, emesh_packet_hi_out, // Inputs rd_clk, wr_clk, mmu_en, mmu_bp, mi_en, mi_we, mi_addr, mi_din, emesh_access_in, emesh_packet_in, emesh_rd_wait, emesh_wr_wait ); parameter DW = 32; //data width parameter AW = 32; //address width parameter PW = 104; parameter EPW = 136; //extended by 32 bits parameter MW = 48; //width of table parameter MAW = 12; //memory addres width (entries = 1<