Entity: emmu
- File: emmu.v
 
Diagram
Description
###########################################################################
MEMORY TRANSACTION TRANSLATOR
#
This block uses the upper 12 bits [31:20] of a memory address as an index
to read an entry from a table.
#
Writes are done from the register config 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]}
# ############################################################################
Generics
| Generic name | Type | Value | Description | 
|---|---|---|---|
| AW | 32 | address width | |
| MW | 48 | width of table | |
| MAW | 12 | memory addres width (entries = 1<<MAW) | 
Ports
| Port name | Direction | Type | Description | 
|---|---|---|---|
| nreset | input | async active low reset | |
| mmu_en | input | enables mmu (by config register) | |
| wr_clk | input | single clock | |
| reg_access | input | valid packet | |
| reg_packet | input | [PW-1:0] | packet | 
| reg_rdata | output | [31:0] | readback data | 
| rd_clk | input | single clock | |
| emesh_access_in | input | valid packet | |
| emesh_packet_in | input | [PW-1:0] | input packet | 
| emesh_wait_in | input | pushback | |
| emesh_access_out | output | valid packet | |
| emesh_packet_out | output | [PW-1:0] | output packet | 
Signals
| Name | Type | Description | 
|---|---|---|
| emesh_access_out | reg | ##################################################################### # BODY ##################################################################### wires + regs | 
| emesh_packet_reg | reg [PW-1:0] | |
| emesh_dstaddr_out | wire [63:0] | |
| emmu_lookup_data | wire [MW-1:0] | |
| mem_wem | wire [MW-1:0] | |
| mem_data | wire [MW-1:0] | |
| emesh_dstaddr_in | wire [AW-1:0] | |
| reg_ctrlmode | wire [4:0] | From pe2 of packet2emesh.v | 
| reg_data | wire [AW-1:0] | From pe2 of packet2emesh.v | 
| reg_datamode | wire [1:0] | From pe2 of packet2emesh.v | 
| reg_dstaddr | wire [AW-1:0] | From pe2 of packet2emesh.v | 
| reg_srcaddr | wire [AW-1:0] | From pe2 of packet2emesh.v | 
| reg_write | wire | From pe2 of packet2emesh.v | 
Constants
| Name | Type | Value | Description | 
|---|---|---|---|
| PW | 2*AW+40 | packet width | 
Processes
- unnamed: ( @ (posedge rd_clk) )
 
Type: always
Description
########################### # OUTPUT PACKET ###########################          pipeline (compensates for 1 cycle memory access) 
- unnamed: ( @ (posedge rd_clk) )
 
Type: always