/* Copyright (C) 2014 Adapteva, Inc. Contributed by Andreas Olofsson 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 . */ /* ########################################################################### # Function: A address translator for the eMesh/eLink protocol # Table writeable and readable from external interface. # Index into 12 bits used for table lookup (bits 31:20 of addr) # Assumes that output is always ready to receive. # # 32bit address output = {table[11:0],dstaddr[19:0]} # 64bit address output = {table[43:0],dstaddr[19:0]} # ############################################################################ */ module emmu (/*AUTOARG*/ // Outputs mi_dout, emesh_access_out, emesh_write_out, emesh_datamode_out, emesh_ctrlmode_out, emesh_dstaddr_out, emesh_srcaddr_out, emesh_data_out, // Inputs clk, mi_en, mi_we, mi_addr, mi_din, mmu_en, emesh_access_in, emesh_write_in, emesh_datamode_in, emesh_ctrlmode_in, emesh_dstaddr_in, emesh_srcaddr_in, emesh_data_in ); parameter DW = 32; //data width of parameter AW = 32; //data width of parameter IW = 12; //index size of table parameter PAW = 64; //physical address width of output parameter MW = PAW-AW+IW; //table data width parameter MD = 1<