/* ########################################################################### # **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 reset, clk, mmu_en, mmu_bp, mi_en, mi_we, mi_addr, mi_din, emesh_access_in, emesh_packet_in, emesh_wait_in ); 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< This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program (see the file COPYING). If not, see . */