URL
https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk
Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc
Compare Revisions
- This comparison shows the changes necessary to convert path
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/mpsoc/perl_gui/lib/ip/NoC
- from Rev 34 to Rev 38
- ↔ Reverse comparison
Rev 34 → Rev 38
/ni_master.IP
3,554 → 3,551
## |
## Copyright (C) 2014-2016 Alireza Monemi |
## |
## This file is part of ProNoC 1.6.0 |
## This file is part of ProNoC 1.8.0 |
## |
## WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT |
## MAY CAUSE UNEXPECTED BEHAIVOR. |
################################################################################ |
|
$ni_master = bless( { |
'plugs' => { |
'interrupt_peripheral' => { |
'type' => 'num', |
'value' => 1, |
'0' => { |
'name' => 'interrupt' |
}, |
'interrupt_peripheral' => {} |
}, |
'wb_slave' => { |
'wb_slave' => {}, |
'type' => 'num', |
'value' => 1, |
'0' => { |
'addr' => '0xb800_0000 0xbfff_ffff custom devices', |
'name' => 'wb_slave', |
'width' => 10 |
} |
}, |
'reset' => { |
'reset' => {}, |
$ipgen = bless( { |
'description' => '', |
'file_name' => '/home/alireza/mywork/mpsoc/src_peripheral/ni/ni_master.v', |
'plugs' => { |
'wb_master' => { |
'value' => 2, |
'1' => { |
'name' => 'wb_receive' |
}, |
'wb_master' => {}, |
'0' => { |
'name' => 'reset' |
'name' => 'wb_send' |
}, |
'type' => 'num', |
'value' => 1 |
'type' => 'num' |
}, |
'clk' => { |
'clk' => {}, |
'0' => { |
'name' => 'clk' |
}, |
'value' => 1, |
'type' => 'num' |
}, |
'wb_master' => { |
'1' => { |
'name' => 'wb_receive' |
}, |
'type' => 'num', |
'wb_master' => {}, |
'value' => 2, |
'0' => { |
'name' => 'wb_send' |
} |
} |
}, |
'sockets' => { |
'ni' => { |
'connection_num' => 'single connection', |
'interrupt_peripheral' => { |
'value' => 1, |
'interrupt_peripheral' => {}, |
'type' => 'num', |
'0' => { |
'name' => 'interrupt' |
} |
}, |
'wb_slave' => { |
'wb_slave' => {}, |
'value' => 1, |
'type' => 'num', |
'ni' => {}, |
'0' => { |
'name' => 'ni' |
} |
} |
}, |
'unused' => { |
'plug:wb_master[1]' => [ |
'bte_o', |
'dat_i', |
'err_i', |
'tag_o', |
'rty_i' |
], |
'plug:wb_slave[0]' => [ |
'tag_i', |
'err_o', |
'rty_o', |
'bte_i' |
], |
'plug:wb_master[0]' => [ |
'bte_o', |
'err_i', |
'tag_o', |
'dat_o', |
'rty_i' |
] |
}, |
'ip_name' => 'ni_master', |
'description' => '', |
'hdl_files' => [ |
'/mpsoc/src_noc/arbiter.v', |
'/mpsoc/src_noc/flit_buffer.v', |
'/mpsoc/src_noc/input_ports.v', |
'/mpsoc/src_noc/main_comp.v', |
'/mpsoc/src_noc/route_mesh.v', |
'/mpsoc/src_noc/route_torus.v', |
'/mpsoc/src_noc/routing.v', |
'/mpsoc/src_peripheral/ni/ni_vc_dma.v', |
'/mpsoc/src_peripheral/ni/ni_vc_wb_slave_regs.v', |
'/mpsoc/src_peripheral/ni/ni_master.v', |
'/mpsoc/src_peripheral/ni/ni_crc32.v' |
], |
'parameters' => { |
'B' => { |
'global_param' => 'Parameter', |
'type' => 'Fixed', |
'content' => '', |
'deafult' => ' 4', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'CRC_EN' => { |
'redefine_param' => 1, |
'deafult' => '"NO"', |
'content' => '"YES","NO"', |
'info' => 'The parameter can be selected as "YES" or "NO". |
If CRC is enabled, then two CRC32 generator modules will be added to the NI. One CRC generator for calculating CRC of sending packets and another for receiving packets. The CRC32 value of each packet is send via tail flit and at destination NI, is will be compared with received packet generated CRC32. The matching results can be used for error-detection and can be read via NI slave interface. ', |
'global_param' => 'Localparam', |
'type' => 'Combo-box' |
}, |
'DEBUG_EN' => { |
'type' => 'Fixed', |
'global_param' => 'Parameter', |
'info' => 'Parameter', |
'deafult' => ' 1', |
'content' => '', |
'redefine_param' => 1 |
'name' => 'wb_slave', |
'width' => 10, |
'addr' => '0xb800_0000 0xbfff_ffff custom devices' |
}, |
'Yw' => { |
'info' => undef, |
'redefine_param' => 0, |
'content' => '', |
'deafult' => 'log2(NY)', |
'type' => 'Fixed', |
'global_param' => 'Localparam' |
}, |
'NY' => { |
'info' => 'Parameter', |
'redefine_param' => 1, |
'deafult' => ' 4', |
'content' => '', |
'type' => 'Fixed', |
'global_param' => 'Parameter' |
}, |
'C' => { |
'type' => 'Fixed', |
'global_param' => 'Parameter', |
'info' => 'Parameter', |
'content' => '', |
'deafult' => ' 4', |
'redefine_param' => 1 |
}, |
'SELw' => { |
'global_param' => 'Localparam', |
'type' => 'Fixed', |
'type' => 'num' |
}, |
'clk' => { |
'value' => 1, |
'0' => { |
'name' => 'clk' |
}, |
'type' => 'num', |
'clk' => {} |
}, |
'reset' => { |
'type' => 'num', |
'0' => { |
'name' => 'reset' |
}, |
'reset' => {}, |
'value' => 1 |
} |
}, |
'ports_order' => [ |
'reset', |
'clk', |
'current_x', |
'current_y', |
'flit_out', |
'flit_out_wr', |
'credit_in', |
'flit_in', |
'flit_in_wr', |
'credit_out', |
's_dat_i', |
's_sel_i', |
's_addr_i', |
's_cti_i', |
's_stb_i', |
's_cyc_i', |
's_we_i', |
's_dat_o', |
's_ack_o', |
'm_send_sel_o', |
'm_send_addr_o', |
'm_send_cti_o', |
'm_send_stb_o', |
'm_send_cyc_o', |
'm_send_we_o', |
'm_send_dat_i', |
'm_send_ack_i', |
'm_receive_sel_o', |
'm_receive_dat_o', |
'm_receive_addr_o', |
'm_receive_cti_o', |
'm_receive_stb_o', |
'm_receive_cyc_o', |
'm_receive_we_o', |
'm_receive_ack_i', |
'irq' |
], |
'hdl_files' => [ |
'/mpsoc/src_noc/arbiter.v', |
'/mpsoc/src_noc/flit_buffer.v', |
'/mpsoc/src_noc/input_ports.v', |
'/mpsoc/src_noc/main_comp.v', |
'/mpsoc/src_noc/route_mesh.v', |
'/mpsoc/src_noc/route_torus.v', |
'/mpsoc/src_noc/routing.v', |
'/mpsoc/src_peripheral/ni/ni_vc_dma.v', |
'/mpsoc/src_peripheral/ni/ni_vc_wb_slave_regs.v', |
'/mpsoc/src_peripheral/ni/ni_master.v', |
'/mpsoc/src_peripheral/ni/ni_crc32.v' |
], |
'parameters' => { |
'TOPOLOGY' => { |
'default' => '"MESH"', |
'redefine_param' => 1, |
'content' => '', |
'deafult' => '4', |
'info' => 'Parameter' |
}, |
'Fpay' => { |
'redefine_param' => 1, |
'deafult' => ' 32', |
'content' => '', |
'info' => 'Parameter', |
'global_param' => 'Parameter', |
'type' => 'Fixed' |
'type' => 'Fixed', |
'content' => '' |
}, |
'MAX_TRANSACTION_WIDTH' => { |
'info' => 'maximum packet size width in words. |
The maximum data that can be sent via one packet will be 2 power of MAX_DMA_TRANSACTION_WIDTH in words.', |
'content' => '4,32,1', |
'deafult' => '13', |
'redefine_param' => 1, |
'type' => 'Spin-button', |
'global_param' => 'Localparam' |
}, |
'SRC_ADR_HDR_WIDTH' => { |
'redefine_param' => 1, |
'content' => '', |
'deafult' => '8', |
'info' => 'Parameter', |
'global_param' => 'Localparam', |
'type' => 'Fixed' |
}, |
'ROUTING_HDR_WIDTH' => { |
'type' => 'Fixed', |
'global_param' => 'Localparam', |
'info' => 'Parameter', |
'content' => '', |
'deafult' => '8', |
'redefine_param' => 1 |
}, |
'Fw' => { |
'global_param' => 'Localparam', |
'type' => 'Fixed', |
'redefine_param' => 0, |
'deafult' => '2+V+Fpay', |
'content' => '', |
'info' => undef |
}, |
'DST_ADR_HDR_WIDTH' => { |
'global_param' => 'Localparam', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'deafult' => '8', |
'content' => '', |
'info' => 'Parameter' |
}, |
'Xw' => { |
'global_param' => 'Localparam', |
'type' => 'Fixed', |
'deafult' => 'log2(NX)', |
'content' => '', |
'redefine_param' => 0, |
'info' => undef |
}, |
'M_Aw' => { |
'redefine_param' => 1, |
'deafult' => '32', |
'content' => 'Dw', |
'info' => 'Parameter', |
'global_param' => 'Localparam', |
'type' => 'Fixed' |
}, |
'P' => { |
'global_param' => 'Parameter', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'deafult' => '5', |
'content' => '', |
'info' => 'Parameter' |
}, |
'ROUTE_TYPE' => { |
'info' => 'Parameter', |
'redefine_param' => 1, |
'deafult' => ' ', |
'content' => '', |
'type' => 'Fixed', |
'global_param' => 'Parameter' |
}, |
'MAX_BURST_SIZE' => { |
'type' => 'Combo-box', |
'global_param' => 'Localparam', |
'info' => 'Maximum burst size in words. |
'MAX_BURST_SIZE' => { |
'content' => '2,4,8,16,32,64,128,256,512,1024,2048', |
'type' => 'Combo-box', |
'info' => 'Maximum burst size in words. |
The NI release wishbone bus each time one burst is completed or when the VC\'s internal FIFO becomes full. The bus will be released for one clock cycle. Then in case, there are other active VCs, another active VC will get access to the bus using round robin arbiter. This process will be continued until all desired data is transferred. ', |
'redefine_param' => 1, |
'content' => '2,4,8,16,32,64,128,256,512,1024,2048', |
'deafult' => '16' |
}, |
'Dw' => { |
'type' => 'Spin-button', |
'global_param' => 'Localparam', |
'info' => 'wishbone_bus data width in bits.', |
'redefine_param' => 1, |
'content' => '32,256,8', |
'deafult' => '32' |
}, |
'ROUTE_NAME' => { |
'deafult' => '"XY" ', |
'content' => '', |
'global_param' => 'Localparam', |
'redefine_param' => 1, |
'info' => 'Parameter', |
'global_param' => 'Parameter', |
'type' => 'Fixed' |
'default' => '16' |
}, |
'NX' => { |
'content' => '', |
'deafult' => ' 4', |
'redefine_param' => 1, |
'info' => 'Parameter', |
'global_param' => 'Parameter', |
'type' => 'Fixed' |
}, |
'CLASS_HDR_WIDTH' => { |
'global_param' => 'Localparam', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'deafult' => '8', |
'content' => '', |
'info' => 'Parameter' |
}, |
'TOPOLOGY' => { |
'info' => 'Parameter', |
'redefine_param' => 1, |
'content' => '', |
'deafult' => '"MESH"', |
'type' => 'Fixed', |
'global_param' => 'Parameter' |
}, |
'S_Aw' => { |
'global_param' => 'Localparam', |
'ROUTING_HDR_WIDTH' => { |
'content' => '', |
'info' => 'Parameter', |
'type' => 'Fixed', |
'global_param' => 'Localparam', |
'redefine_param' => 1, |
'default' => '8' |
}, |
'CLASS_HDR_WIDTH' => { |
'redefine_param' => 1, |
'default' => '8', |
'content' => '', |
'type' => 'Fixed', |
'info' => 'Parameter', |
'global_param' => 'Localparam' |
}, |
'S_Aw' => { |
'content' => '', |
'global_param' => 'Localparam', |
'info' => 'Parameter', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'default' => '8' |
}, |
'ROUTE_TYPE' => { |
'redefine_param' => 1, |
'default' => ' ', |
'content' => '', |
'info' => 'Parameter', |
'global_param' => 'Parameter', |
'type' => 'Fixed' |
}, |
'DST_ADR_HDR_WIDTH' => { |
'content' => '', |
'type' => 'Fixed', |
'info' => 'Parameter', |
'global_param' => 'Localparam', |
'redefine_param' => 1, |
'default' => '8' |
}, |
'NX' => { |
'default' => ' 4', |
'redefine_param' => 1, |
'type' => 'Fixed', |
'info' => 'Parameter', |
'global_param' => 'Parameter', |
'content' => '' |
}, |
'SRC_ADR_HDR_WIDTH' => { |
'default' => '8', |
'redefine_param' => 1, |
'type' => 'Fixed', |
'info' => 'Parameter', |
'global_param' => 'Localparam', |
'content' => '' |
}, |
'ROUTE_NAME' => { |
'global_param' => 'Parameter', |
'type' => 'Fixed', |
'info' => 'Parameter', |
'content' => '', |
'default' => '"XY" ', |
'redefine_param' => 1 |
}, |
'Xw' => { |
'redefine_param' => 0, |
'default' => 'log2(NX)', |
'content' => '', |
'info' => undef, |
'type' => 'Fixed', |
'global_param' => 'Localparam' |
}, |
'TAGw' => { |
'type' => 'Fixed', |
'info' => 'Parameter', |
'global_param' => 'Localparam', |
'content' => '', |
'default' => '3', |
'redefine_param' => 1 |
}, |
'DEBUG_EN' => { |
'content' => '', |
'info' => 'Parameter', |
'global_param' => 'Parameter', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'content' => '', |
'deafult' => '8', |
'info' => 'Parameter' |
'default' => ' 1' |
}, |
'V' => { |
'global_param' => 'Parameter', |
'type' => 'Fixed', |
'content' => '', |
'deafult' => '4', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'TAGw' => { |
'global_param' => 'Localparam', |
'type' => 'Fixed', |
'deafult' => '3', |
'content' => '', |
'redefine_param' => 1, |
'info' => 'Parameter' |
} |
}, |
'version' => 37, |
'category' => 'NoC', |
'description_pdf' => '/mpsoc/src_peripheral/ni/NI_master.pdf', |
'ports' => { |
's_addr_i' => { |
'range' => 'S_Aw-1 : 0', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'adr_i' |
}, |
'm_send_cti_o' => { |
'intfc_port' => 'cti_o', |
'intfc_name' => 'plug:wb_master[0]', |
'type' => 'output', |
'range' => 'TAGw-1 : 0' |
}, |
'm_send_sel_o' => { |
'type' => 'output', |
'intfc_port' => 'sel_o', |
'intfc_name' => 'plug:wb_master[0]', |
'range' => 'SELw-1 : 0' |
}, |
'm_receive_ack_i' => { |
'range' => '', |
'type' => 'input', |
'intfc_name' => 'plug:wb_master[1]', |
'intfc_port' => 'ack_i' |
}, |
'm_send_cyc_o' => { |
'range' => '', |
'type' => 'output', |
'intfc_port' => 'cyc_o', |
'intfc_name' => 'plug:wb_master[0]' |
}, |
'm_receive_sel_o' => { |
'range' => 'SELw-1 : 0', |
'type' => 'output', |
'intfc_port' => 'sel_o', |
'intfc_name' => 'plug:wb_master[1]' |
}, |
's_dat_i' => { |
'type' => 'input', |
'intfc_port' => 'dat_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => 'Dw-1 : 0' |
'B' => { |
'redefine_param' => 1, |
'default' => ' 4', |
'content' => '', |
'info' => 'Parameter', |
'global_param' => 'Parameter', |
'type' => 'Fixed' |
}, |
'Dw' => { |
'redefine_param' => 1, |
'default' => '32', |
'content' => '32,256,8', |
'info' => 'wishbone_bus data width in bits.', |
'global_param' => 'Localparam', |
'type' => 'Spin-button' |
}, |
'Fpay' => { |
'default' => ' 32', |
'redefine_param' => 1, |
'info' => 'Parameter', |
'type' => 'Fixed', |
'global_param' => 'Parameter', |
'content' => '' |
}, |
'NY' => { |
'redefine_param' => 1, |
'default' => ' 4', |
'content' => '', |
'global_param' => 'Parameter', |
'info' => 'Parameter', |
'type' => 'Fixed' |
}, |
'P' => { |
'global_param' => 'Parameter', |
'info' => 'Parameter', |
'type' => 'Fixed', |
'content' => '', |
'default' => '5', |
'redefine_param' => 1 |
}, |
'SELw' => { |
'redefine_param' => 1, |
'default' => '4', |
'content' => '', |
'info' => 'Parameter', |
'type' => 'Fixed', |
'global_param' => 'Localparam' |
}, |
'V' => { |
'redefine_param' => 1, |
'default' => '4', |
'content' => '', |
'info' => 'Parameter', |
'global_param' => 'Parameter', |
'type' => 'Fixed' |
}, |
'CRC_EN' => { |
'type' => 'Combo-box', |
'global_param' => 'Localparam', |
'info' => 'The parameter can be selected as "YES" or "NO". |
If CRC is enabled, then two CRC32 generator modules will be added to the NI. One CRC generator for calculating CRC of sending packets and another for receiving packets. The CRC32 value of each packet is send via tail flit and at destination NI, is will be compared with received packet generated CRC32. The matching results can be used for error-detection and can be read via NI slave interface. ', |
'content' => '"YES","NO"', |
'default' => '"NO"', |
'redefine_param' => 1 |
}, |
'flit_out' => { |
'range' => 'Fw-1 : 0', |
'type' => 'output', |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_out' |
}, |
'm_receive_cyc_o' => { |
'intfc_name' => 'plug:wb_master[1]', |
'intfc_port' => 'cyc_o', |
'type' => 'output', |
'range' => '' |
}, |
'current_x' => { |
'range' => 'Xw-1 : 0', |
'type' => 'input', |
'intfc_port' => 'current_x', |
'intfc_name' => 'socket:ni[0]' |
}, |
'm_receive_we_o' => { |
'intfc_port' => 'we_o', |
'intfc_name' => 'plug:wb_master[1]', |
'type' => 'output', |
'range' => '' |
}, |
'flit_out_wr' => { |
'Yw' => { |
'default' => 'log2(NY)', |
'redefine_param' => 0, |
'global_param' => 'Localparam', |
'type' => 'Fixed', |
'info' => undef, |
'content' => '' |
}, |
'M_Aw' => { |
'redefine_param' => 1, |
'default' => '32', |
'content' => 'Dw', |
'info' => 'Parameter', |
'type' => 'Fixed', |
'global_param' => 'Localparam' |
}, |
'Fw' => { |
'type' => 'Fixed', |
'info' => undef, |
'global_param' => 'Localparam', |
'content' => '', |
'default' => '2+V+Fpay', |
'redefine_param' => 0 |
}, |
'MAX_TRANSACTION_WIDTH' => { |
'global_param' => 'Localparam', |
'type' => 'Spin-button', |
'info' => 'maximum packet size width in words. |
The maximum data that can be sent via one packet will be 2 power of MAX_DMA_TRANSACTION_WIDTH in words.', |
'content' => '4,32,1', |
'default' => '13', |
'redefine_param' => 1 |
}, |
'C' => { |
'default' => ' 4', |
'redefine_param' => 1, |
'info' => 'Parameter', |
'global_param' => 'Parameter', |
'type' => 'Fixed', |
'content' => '' |
} |
}, |
'ports' => { |
's_dat_o' => { |
'intfc_port' => 'dat_o', |
'range' => 'Dw-1 : 0', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'output' |
}, |
's_stb_i' => { |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '', |
'intfc_port' => 'stb_i' |
}, |
'm_receive_sel_o' => { |
'range' => 'SELw-1 : 0', |
'intfc_name' => 'plug:wb_master[1]', |
'type' => 'output', |
'intfc_port' => 'sel_o' |
}, |
'm_receive_ack_i' => { |
'intfc_port' => 'ack_i', |
'range' => '', |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_out_wr', |
'type' => 'output' |
'intfc_name' => 'plug:wb_master[1]', |
'type' => 'input' |
}, |
's_cyc_i' => { |
'intfc_port' => 'cyc_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'input', |
'range' => '' |
's_cyc_i' => { |
'intfc_port' => 'cyc_i', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '' |
}, |
'm_send_addr_o' => { |
'intfc_port' => 'adr_o', |
'range' => 'M_Aw-1 : 0', |
'type' => 'output', |
'intfc_name' => 'plug:wb_master[0]' |
}, |
'm_send_we_o' => { |
'range' => '', |
'intfc_name' => 'plug:wb_master[0]', |
'type' => 'output', |
'intfc_port' => 'we_o' |
}, |
'm_receive_addr_o' => { |
'range' => 'M_Aw-1 : 0', |
'type' => 'output', |
'intfc_name' => 'plug:wb_master[1]', |
'intfc_port' => 'adr_o' |
}, |
's_sel_i' => { |
'range' => 'SELw-1 : 0', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'sel_i' |
}, |
'm_send_ack_i' => { |
'type' => 'input', |
'intfc_port' => 'ack_i', |
'intfc_name' => 'plug:wb_master[0]', |
'range' => '' |
}, |
'reset' => { |
'type' => 'input', |
'intfc_name' => 'plug:reset[0]', |
'intfc_port' => 'reset_i', |
'range' => '' |
'current_x' => { |
'intfc_port' => 'current_x', |
'range' => 'Xw-1 : 0', |
'intfc_name' => 'socket:ni[0]', |
'type' => 'input' |
}, |
'm_send_stb_o' => { |
'range' => '', |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'stb_o', |
'type' => 'output' |
'clk' => { |
'type' => 'input', |
'intfc_name' => 'plug:clk[0]', |
'range' => '', |
'intfc_port' => 'clk_i' |
}, |
'm_receive_addr_o' => { |
'type' => 'output', |
'intfc_name' => 'plug:wb_master[1]', |
'range' => 'M_Aw-1 : 0', |
'intfc_port' => 'adr_o' |
}, |
'm_send_dat_i' => { |
'intfc_port' => 'dat_i', |
'intfc_name' => 'plug:wb_master[0]', |
'type' => 'input', |
'range' => 'Dw-1 : 0' |
}, |
'credit_in' => { |
'type' => 'input', |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'credit_in', |
'range' => 'V-1 : 0' |
}, |
'irq' => { |
's_dat_i' => { |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => 'Dw-1 : 0', |
'intfc_port' => 'dat_i' |
}, |
'm_receive_dat_o' => { |
'intfc_port' => 'dat_o', |
'range' => 'Dw-1 : 0', |
'type' => 'output', |
'intfc_name' => 'plug:wb_master[1]' |
}, |
's_sel_i' => { |
'intfc_port' => 'sel_i', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => 'SELw-1 : 0' |
}, |
's_ack_o' => { |
'intfc_port' => 'ack_o', |
'range' => '', |
'type' => 'output', |
'intfc_port' => 'int_o', |
'intfc_name' => 'plug:interrupt_peripheral[0]' |
'intfc_name' => 'plug:wb_slave[0]' |
}, |
's_stb_i' => { |
'range' => '', |
'type' => 'input', |
'intfc_port' => 'stb_i', |
'intfc_name' => 'plug:wb_slave[0]' |
}, |
'm_send_we_o' => { |
'm_receive_stb_o' => { |
'type' => 'output', |
'intfc_name' => 'plug:wb_master[1]', |
'range' => '', |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'we_o', |
'type' => 'output' |
'intfc_port' => 'stb_o' |
}, |
'flit_in' => { |
'range' => 'Fw-1 : 0', |
'type' => 'input', |
'flit_out_wr' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_in' |
'type' => 'output', |
'range' => '', |
'intfc_port' => 'flit_out_wr' |
}, |
'm_send_addr_o' => { |
'intfc_port' => 'adr_o', |
'intfc_name' => 'plug:wb_master[0]', |
'type' => 'output', |
'range' => 'M_Aw-1 : 0' |
}, |
'credit_out' => { |
'range' => 'V-1 : 0', |
'current_y' => { |
'intfc_port' => 'current_y', |
'intfc_name' => 'socket:ni[0]', |
'type' => 'input', |
'range' => 'Yw-1 : 0' |
}, |
'm_send_cti_o' => { |
'range' => 'TAGw-1 : 0', |
'type' => 'output', |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'cti_o' |
}, |
'm_receive_we_o' => { |
'range' => '', |
'type' => 'output', |
'intfc_port' => 'credit_out', |
'intfc_name' => 'socket:ni[0]' |
'intfc_name' => 'plug:wb_master[1]', |
'intfc_port' => 'we_o' |
}, |
'm_receive_stb_o' => { |
'intfc_name' => 'plug:wb_master[1]', |
'intfc_port' => 'stb_o', |
'type' => 'output', |
'range' => '' |
}, |
'clk' => { |
'range' => '', |
'intfc_name' => 'plug:clk[0]', |
'intfc_port' => 'clk_i', |
'flit_in' => { |
'range' => 'Fw-1 : 0', |
'type' => 'input', |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_in' |
}, |
'flit_out' => { |
'range' => 'Fw-1 : 0', |
'type' => 'output', |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_out' |
}, |
's_addr_i' => { |
'intfc_port' => 'adr_i', |
'range' => 'S_Aw-1 : 0', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'input' |
}, |
'm_send_stb_o' => { |
'type' => 'output', |
'intfc_name' => 'plug:wb_master[0]', |
'range' => '', |
'intfc_port' => 'stb_o' |
}, |
's_we_i' => { |
'intfc_port' => 'we_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'input', |
'range' => '' |
}, |
'm_receive_cti_o' => { |
'intfc_port' => 'cti_o', |
'range' => 'TAGw-1 : 0', |
'intfc_name' => 'plug:wb_master[1]', |
'type' => 'output' |
}, |
's_cti_i' => { |
'intfc_port' => 'cti_i', |
'range' => 'TAGw-1 : 0', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'input' |
}, |
's_we_i' => { |
'intfc_port' => 'we_i', |
'intfc_name' => 'plug:wb_slave[0]', |
'm_send_cyc_o' => { |
'type' => 'output', |
'intfc_name' => 'plug:wb_master[0]', |
'range' => '', |
'intfc_port' => 'cyc_o' |
}, |
'm_send_sel_o' => { |
'intfc_port' => 'sel_o', |
'range' => 'SELw-1 : 0', |
'type' => 'output', |
'intfc_name' => 'plug:wb_master[0]' |
}, |
'reset' => { |
'range' => '', |
'type' => 'input', |
'intfc_name' => 'plug:reset[0]', |
'intfc_port' => 'reset_i' |
}, |
'credit_in' => { |
'type' => 'input', |
'intfc_name' => 'socket:ni[0]', |
'range' => 'V-1 : 0', |
'intfc_port' => 'credit_in' |
}, |
'm_send_dat_i' => { |
'intfc_port' => 'dat_i', |
'type' => 'input', |
'intfc_name' => 'plug:wb_master[0]', |
'range' => 'Dw-1 : 0' |
}, |
'credit_out' => { |
'range' => 'V-1 : 0', |
'intfc_name' => 'socket:ni[0]', |
'type' => 'output', |
'intfc_port' => 'credit_out' |
}, |
'm_receive_cyc_o' => { |
'intfc_name' => 'plug:wb_master[1]', |
'type' => 'output', |
'range' => '', |
'intfc_port' => 'cyc_o' |
}, |
'm_send_ack_i' => { |
'intfc_port' => 'ack_i', |
'intfc_name' => 'plug:wb_master[0]', |
'type' => 'input', |
'range' => '' |
}, |
'irq' => { |
'range' => '', |
'type' => 'output', |
'intfc_name' => 'plug:interrupt_peripheral[0]', |
'intfc_port' => 'int_o' |
}, |
'flit_in_wr' => { |
'range' => '', |
'type' => 'input', |
'range' => '' |
}, |
's_ack_o' => { |
'intfc_port' => 'ack_o', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'output', |
'range' => '' |
}, |
'm_receive_cti_o' => { |
'range' => 'TAGw-1 : 0', |
'type' => 'output', |
'intfc_port' => 'cti_o', |
'intfc_name' => 'plug:wb_master[1]' |
}, |
's_cti_i' => { |
'range' => 'TAGw-1 : 0', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'cti_i' |
}, |
'current_y' => { |
'range' => 'Yw-1 : 0', |
'type' => 'input', |
'intfc_port' => 'current_y', |
'intfc_name' => 'socket:ni[0]' |
}, |
's_dat_o' => { |
'range' => 'Dw-1 : 0', |
'intfc_port' => 'dat_o', |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'output' |
}, |
'flit_in_wr' => { |
'type' => 'input', |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_in_wr', |
'range' => '' |
}, |
'm_receive_dat_o' => { |
'range' => 'Dw-1 : 0', |
'intfc_port' => 'dat_o', |
'intfc_name' => 'plug:wb_master[1]', |
'type' => 'output' |
} |
}, |
'modules' => { |
'ni_vc_dma' => {}, |
'header_flit_generator' => {}, |
'ni_master' => {}, |
'ovc_status' => {}, |
'vc_wb_slave_registers' => {} |
}, |
'gui_status' => { |
'timeout' => 0, |
'status' => 'ideal' |
}, |
'system_h' => ' /* NI wb registers addresses |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_in_wr' |
} |
}, |
'description_pdf' => '/mpsoc/src_peripheral/ni/NI.pdf', |
'category' => 'NoC', |
'gui_status' => { |
'timeout' => 0, |
'status' => 'ideal' |
}, |
'system_h' => ' /* NI wb registers addresses |
0 : STATUS1_WB_ADDR // status1: {send_enable_binarry,receive_enable_binarry,send_vc_is_busy,receive_vc_is_busy,receive_vc_got_packet} |
1 : STATUS2_WB_ADDR // status2: |
2 : BURST_SIZE_WB_ADDR // The busrt size in words |
624,70 → 621,73
|
|
}', |
'ports_order' => [ |
'reset', |
'clk', |
'current_x', |
'current_y', |
'flit_out', |
'flit_out_wr', |
'credit_in', |
'flit_in', |
'flit_in_wr', |
'credit_out', |
's_dat_i', |
's_sel_i', |
's_addr_i', |
's_cti_i', |
's_stb_i', |
's_cyc_i', |
's_we_i', |
's_dat_o', |
's_ack_o', |
'm_send_sel_o', |
'm_send_addr_o', |
'm_send_cti_o', |
'm_send_stb_o', |
'm_send_cyc_o', |
'm_send_we_o', |
'm_send_dat_i', |
'm_send_ack_i', |
'm_receive_sel_o', |
'm_receive_dat_o', |
'm_receive_addr_o', |
'm_receive_cti_o', |
'm_receive_stb_o', |
'm_receive_cyc_o', |
'm_receive_we_o', |
'm_receive_ack_i', |
'irq' |
], |
'module_name' => 'ni_master', |
'file_name' => '/home/alireza/mywork/mpsoc/src_peripheral/ni/ni_master.v', |
'parameters_order' => [ |
'CLASS_HDR_WIDTH', |
'ROUTING_HDR_WIDTH', |
'DST_ADR_HDR_WIDTH', |
'SRC_ADR_HDR_WIDTH', |
'TOPOLOGY', |
'ROUTE_NAME', |
'NX', |
'NY', |
'C', |
'V', |
'B', |
'Fpay', |
'MAX_TRANSACTION_WIDTH', |
'MAX_BURST_SIZE', |
'DEBUG_EN', |
'Dw', |
'S_Aw', |
'M_Aw', |
'TAGw', |
'SELw', |
'Xw', |
'Yw', |
'Fw', |
'CRC_EN' |
] |
}, 'ip_gen' ); |
'modules' => { |
'header_flit_generator' => {}, |
'vc_wb_slave_registers' => {}, |
'ni_vc_dma' => {}, |
'ovc_status' => {}, |
'ni_master' => {} |
}, |
'version' => 38, |
'parameters_order' => [ |
'CLASS_HDR_WIDTH', |
'ROUTING_HDR_WIDTH', |
'DST_ADR_HDR_WIDTH', |
'SRC_ADR_HDR_WIDTH', |
'TOPOLOGY', |
'ROUTE_NAME', |
'NX', |
'NY', |
'C', |
'V', |
'B', |
'Fpay', |
'MAX_TRANSACTION_WIDTH', |
'MAX_BURST_SIZE', |
'DEBUG_EN', |
'Dw', |
'S_Aw', |
'M_Aw', |
'TAGw', |
'SELw', |
'Xw', |
'Yw', |
'Fw', |
'CRC_EN' |
], |
'unused' => { |
'plug:wb_master[0]' => [ |
'dat_o', |
'err_i', |
'bte_o', |
'rty_i', |
'tag_o' |
], |
'plug:wb_slave[0]' => [ |
'rty_o', |
'bte_i', |
'err_o', |
'tag_i' |
], |
'plug:wb_master[1]' => [ |
'err_i', |
'bte_o', |
'rty_i', |
'dat_i', |
'tag_o' |
] |
}, |
'sockets' => { |
'ni' => { |
'value' => 1, |
'ni' => {}, |
'type' => 'num', |
'connection_num' => 'single connection', |
'0' => { |
'name' => 'ni' |
} |
} |
}, |
'module_name' => 'ni_master', |
'ip_name' => 'ni_master' |
}, 'ip_gen' ); |
/ni_slave.IP
0,0 → 1,756
####################################################################### |
## File: ni_slave.IP |
## |
## Copyright (C) 2014-2016 Alireza Monemi |
## |
## This file is part of ProNoC 1.8.0 |
## |
## WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT |
## MAY CAUSE UNEXPECTED BEHAIVOR. |
################################################################################ |
|
$ipgen = bless( { |
'category' => 'NoC', |
'plugs' => { |
'wb_slave' => { |
'0' => { |
'width' => 10, |
'addr' => '0xb800_0000 0xbfff_ffff custom devices', |
'name' => 'wb_ctrl' |
}, |
'type' => 'num', |
'1' => { |
'width' => 'IN_MEM_BYTEw', |
'addr' => '0xb800_0000 0xbfff_ffff custom devices', |
'name' => 'wb_in' |
}, |
'wb_slave' => {}, |
'value' => 3, |
'2' => { |
'name' => 'wb_out', |
'addr' => '0xb800_0000 0xbfff_ffff custom devices', |
'width' => 'OUT_MEM_BYTEw' |
} |
}, |
'reset' => { |
'reset' => {}, |
'type' => 'num', |
'0' => { |
'name' => 'reset' |
}, |
'value' => 1 |
}, |
'interrupt_peripheral' => { |
'0' => { |
'name' => 'interrupt' |
}, |
'type' => 'num', |
'interrupt_peripheral' => {}, |
'value' => 1 |
}, |
'clk' => { |
'0' => { |
'name' => 'clk' |
}, |
'type' => 'num', |
'clk' => {}, |
'value' => 1 |
} |
}, |
'parameters_order' => [ |
'INPUT_MEM_Aw', |
'OUTPUT_MEM_Aw', |
'MAX_TRANSACTION_WIDTH', |
'MAX_BURST_SIZE', |
'DEBUG_EN', |
'CLASS_HDR_WIDTH', |
'ROUTING_HDR_WIDTH', |
'DST_ADR_HDR_WIDTH', |
'SRC_ADR_HDR_WIDTH', |
'TOPOLOGY', |
'ROUTE_NAME', |
'NX', |
'NY', |
'C', |
'V', |
'B', |
'Fpay', |
'CRC_EN', |
'SWA_ARBITER_TYPE', |
'WEIGHTw', |
'Dw', |
'S_Aw', |
'M_Aw', |
'TAGw', |
'SELw', |
'IN_MEM_BYTEw', |
'OUT_MEM_BYTEw' |
], |
'description_pdf' => '/mpsoc/src_peripheral/ni/NI.pdf', |
'ports' => { |
'ctrl_cti_i' => { |
'range' => 'TAGw-1 : 0', |
'intfc_port' => 'cti_i', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]' |
}, |
'ctrl_dat_o' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'output', |
'intfc_port' => 'dat_o', |
'range' => 'Dw-1 : 0' |
}, |
'ctrl_addr_i' => { |
'intfc_port' => 'adr_i', |
'range' => 'S_Aw-1 : 0', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]' |
}, |
'current_x' => { |
'type' => 'input', |
'intfc_port' => 'current_x', |
'range' => 'Xw-1 : 0', |
'intfc_name' => 'socket:ni[0]' |
}, |
'out_cyc_i' => { |
'intfc_port' => 'cyc_i', |
'range' => '', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[2]' |
}, |
'in_sel_i' => { |
'intfc_name' => 'plug:wb_slave[1]', |
'intfc_port' => 'sel_i', |
'range' => 'SELw-1 : 0', |
'type' => 'input' |
}, |
'in_cti_i' => { |
'intfc_port' => 'cti_i', |
'range' => 'TAGw-1 : 0', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[1]' |
}, |
'flit_in_wr' => { |
'intfc_name' => 'socket:ni[0]', |
'range' => '', |
'intfc_port' => 'flit_in_wr', |
'type' => 'input' |
}, |
'in_dat_i' => { |
'intfc_name' => 'plug:wb_slave[1]', |
'type' => 'input', |
'range' => 'Dw-1 : 0', |
'intfc_port' => 'dat_i' |
}, |
'out_we_i' => { |
'type' => 'input', |
'intfc_port' => 'we_i', |
'range' => '', |
'intfc_name' => 'plug:wb_slave[2]' |
}, |
'clk' => { |
'intfc_name' => 'plug:clk[0]', |
'range' => '', |
'intfc_port' => 'clk_i', |
'type' => 'input' |
}, |
'in_dat_o' => { |
'type' => 'output', |
'range' => 'Dw-1 : 0', |
'intfc_port' => 'dat_o', |
'intfc_name' => 'plug:wb_slave[1]' |
}, |
'out_sel_i' => { |
'intfc_port' => 'sel_i', |
'range' => 'SELw-1 : 0', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[2]' |
}, |
'out_dat_i' => { |
'intfc_name' => 'plug:wb_slave[2]', |
'type' => 'input', |
'range' => 'Dw-1 : 0', |
'intfc_port' => 'dat_i' |
}, |
'flit_out_wr' => { |
'intfc_name' => 'socket:ni[0]', |
'range' => '', |
'intfc_port' => 'flit_out_wr', |
'type' => 'output' |
}, |
'ctrl_ack_o' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'range' => '', |
'intfc_port' => 'ack_o', |
'type' => 'output' |
}, |
'ctrl_dat_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'type' => 'input', |
'intfc_port' => 'dat_i', |
'range' => 'Dw-1 : 0' |
}, |
'ctrl_sel_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'sel_i', |
'range' => 'SELw-1 : 0', |
'type' => 'input' |
}, |
'out_cti_i' => { |
'intfc_name' => 'plug:wb_slave[2]', |
'range' => 'TAGw-1 : 0', |
'intfc_port' => 'cti_i', |
'type' => 'input' |
}, |
'credit_out' => { |
'intfc_name' => 'socket:ni[0]', |
'range' => 'V-1 : 0', |
'intfc_port' => 'credit_out', |
'type' => 'output' |
}, |
'out_stb_i' => { |
'intfc_name' => 'plug:wb_slave[2]', |
'type' => 'input', |
'intfc_port' => 'stb_i', |
'range' => '' |
}, |
'in_addr_i' => { |
'intfc_port' => 'adr_i', |
'range' => 'S_Aw-1 : 0', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[1]' |
}, |
'in_cyc_i' => { |
'intfc_name' => 'plug:wb_slave[1]', |
'type' => 'input', |
'intfc_port' => 'cyc_i', |
'range' => '' |
}, |
'flit_out' => { |
'range' => 'Fw-1 : 0', |
'intfc_port' => 'flit_out', |
'type' => 'output', |
'intfc_name' => 'socket:ni[0]' |
}, |
'ctrl_cyc_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'cyc_i', |
'range' => '', |
'type' => 'input' |
}, |
'in_ack_o' => { |
'intfc_name' => 'plug:wb_slave[1]', |
'type' => 'output', |
'intfc_port' => 'ack_o', |
'range' => '' |
}, |
'out_dat_o' => { |
'intfc_name' => 'plug:wb_slave[2]', |
'type' => 'output', |
'range' => 'Dw-1 : 0', |
'intfc_port' => 'dat_o' |
}, |
'in_stb_i' => { |
'intfc_name' => 'plug:wb_slave[1]', |
'range' => '', |
'intfc_port' => 'stb_i', |
'type' => 'input' |
}, |
'out_addr_i' => { |
'type' => 'input', |
'range' => 'S_Aw-1 : 0', |
'intfc_port' => 'adr_i', |
'intfc_name' => 'plug:wb_slave[2]' |
}, |
'in_we_i' => { |
'intfc_name' => 'plug:wb_slave[1]', |
'range' => '', |
'intfc_port' => 'we_i', |
'type' => 'input' |
}, |
'flit_in' => { |
'intfc_name' => 'socket:ni[0]', |
'type' => 'input', |
'range' => 'Fw-1 : 0', |
'intfc_port' => 'flit_in' |
}, |
'credit_in' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'credit_in', |
'range' => 'V-1 : 0', |
'type' => 'input' |
}, |
'current_y' => { |
'intfc_name' => 'socket:ni[0]', |
'range' => 'Yw-1 : 0', |
'intfc_port' => 'current_y', |
'type' => 'input' |
}, |
'ctrl_we_i' => { |
'type' => 'input', |
'intfc_port' => 'we_i', |
'range' => '', |
'intfc_name' => 'plug:wb_slave[0]' |
}, |
'reset' => { |
'type' => 'input', |
'intfc_port' => 'reset_i', |
'range' => '', |
'intfc_name' => 'plug:reset[0]' |
}, |
'out_ack_o' => { |
'intfc_name' => 'plug:wb_slave[2]', |
'type' => 'output', |
'intfc_port' => 'ack_o', |
'range' => '' |
}, |
'ctrl_stb_i' => { |
'range' => '', |
'intfc_port' => 'stb_i', |
'type' => 'input', |
'intfc_name' => 'plug:wb_slave[0]' |
}, |
'irq' => { |
'intfc_name' => 'plug:interrupt_peripheral[0]', |
'intfc_port' => 'int_o', |
'range' => '', |
'type' => 'output' |
} |
}, |
'module_name' => 'ni_slave', |
'file_name' => '/home/alireza/mywork/mpsoc/src_peripheral/ni/ni_slave.v', |
'system_h' => ' /* NI wb registers addresses |
0 : STATUS1_WB_ADDR // status1: {send_enable_binarry,receive_enable_binarry,send_vc_is_busy,receive_vc_is_busy,receive_vc_got_packet} |
1 : STATUS2_WB_ADDR // status2: |
2 : BURST_SIZE_WB_ADDR // The busrt size in words |
|
3 : SEND_DATA_SIZE_WB_ADDR, // The size of data to be sent in byte |
4 : SEND_STRT_WB_ADDR, // The address of data to be sent in byte |
5 : SEND_DEST_WB_ADDR // The destination router address |
6 : SEND_CTRL_WB_ADDR |
|
7 : RECEIVE_DATA_SIZE_WB_ADDR // The size of recieved data in byte |
8 : RECEIVE_STRT_WB_ADDR // The address pointer of reciever memory in byte |
9 : RECEIVE_SRC_WB_ADDR // The source router (the router which is sent this packet). |
10 : RECEIVE_CTRL_WB_ADDR // The NI reciever control register |
11 : RECEIVE_MAX_BUFF_SIZ // The receiver\'s allocated buffer size in words. If the packet size is bigger tha the buffer size the rest of will be discarred |
|
*/ |
|
|
|
#define ${IP}_STATUS1_REG (*((volatile unsigned int *) ($BASE))) //0 |
#define ${IP}_STATUS2_REG (*((volatile unsigned int *) ($BASE+4))) //1 |
#define ${IP}_BURST_SIZE_REG (*((volatile unsigned int *) ($BASE+8))) //2 |
|
|
#define ${IP}_NUM_VCs ${V} |
|
#define ${IP}_SEND_DATA_SIZE_REG(v) (*((volatile unsigned int *) ($BASE+12+(v<<6)))) //3 |
#define ${IP}_SEND_START_ADDR_REG(v) (*((volatile unsigned int *) ($BASE+16+(v<<6)))) //4 |
#define ${IP}_SEND_DEST_REG(v) (*((volatile unsigned int *) ($BASE+20+(v<<6)))) //5 |
#define ${IP}_SEND_CTRL_REG(v) (*((volatile unsigned int *) ($BASE+24+(v<<6)))) //6 |
|
#define ${IP}_RECEIVE_DATA_SIZE_REG(v) (*((volatile unsigned int *) ($BASE+28+(v<<6)))) //7 |
#define ${IP}_RECEIVE_STRT_ADDR_REG(v) (*((volatile unsigned int *) ($BASE+32+(v<<6)))) //8 |
#define ${IP}_RECEIVE_CTRL_REG(v) (*((volatile unsigned int *) ($BASE+36+(v<<6)))) //9 |
#define ${IP}_RECEIVE_MAX_BUFF_SIZ_REG(v) (*((volatile unsigned int *) ($BASE+40+(v<<6)))) //10 |
#define ${IP}_RECEIVE_CRC_MATCH_REG(v) (*((volatile unsigned int *) ($BASE+44+(v<<6)))) //11 |
|
|
|
// assign status1= {send_vc_is_busy,receive_vc_is_busy,receive_vc_packet_is_saved,receive_vc_got_packet}; |
// assign status2= {send_enable_binarry,receive_enable_binarry,crc_miss_match,got_pck_isr, save_done_isr,send_done_isr,got_pck_int_en, save_done_int_en,send_done_int_en}; |
|
|
#define ${IP}_got_packet(v) ((${IP}_STATUS1_REG >> (v)) & 0x1) |
#define ${IP}_packet_is_saved(v) ((${IP}_STATUS1_REG >> (${V}+v)) & 0x1) |
#define ${IP}_receive_is_busy(v) ((${IP}_STATUS1_REG >> (2*${V}+v)) & 0x1) |
#define ${IP}_send_is_busy(v) ((${IP}_STATUS1_REG >> (3*${V}+v)) & 0x1) |
|
|
|
void ${IP}_initial (unsigned int burst_size) { |
${IP}_BURST_SIZE_REG = burst_size; |
} |
|
|
void ${IP}_transfer (unsigned int v, unsigned int class_num, unsigned int data_start_addr, unsigned int data_size, unsigned int dest_x,unsigned int dest_y){ |
while (${IP}_send_is_busy(v)); // wait until VC is busy sending previous packet |
|
${IP}_SEND_DATA_SIZE_REG(v) = data_size; |
${IP}_SEND_START_ADDR_REG(v) = data_start_addr; |
${IP}_SEND_DEST_REG(v) = dest_x | (dest_y<<4)| (class_num<<8) ; |
|
} |
|
void ${IP}_receive (unsigned int v, unsigned int data_start_addr, unsigned int max_buffer_size){ |
while (${IP}_receive_is_busy(v)); // wait until VC is busy saving previous packet |
|
${IP}_RECEIVE_STRT_ADDR_REG(v) = data_start_addr; |
${IP}_RECEIVE_MAX_BUFF_SIZ_REG(v) = max_buffer_size; |
${IP}_RECEIVE_CTRL_REG(v) = 1; |
|
|
}', |
'ip_name' => 'ni_slave', |
'description' => '', |
'sockets' => { |
'ni' => { |
'connection_num' => 'single connection', |
'ni' => {}, |
'value' => 1, |
'type' => 'num', |
'0' => { |
'name' => 'ni' |
} |
} |
}, |
'gui_status' => { |
'status' => 'ideal', |
'timeout' => 0 |
}, |
'version' => 45, |
'ports_order' => [ |
'reset', |
'clk', |
'current_x', |
'current_y', |
'flit_out', |
'flit_out_wr', |
'credit_in', |
'flit_in', |
'flit_in_wr', |
'credit_out', |
'ctrl_dat_i', |
'ctrl_sel_i', |
'ctrl_addr_i', |
'ctrl_cti_i', |
'ctrl_stb_i', |
'ctrl_cyc_i', |
'ctrl_we_i', |
'ctrl_dat_o', |
'ctrl_ack_o', |
'in_dat_i', |
'in_sel_i', |
'in_addr_i', |
'in_cti_i', |
'in_stb_i', |
'in_cyc_i', |
'in_we_i', |
'in_dat_o', |
'in_ack_o', |
'out_dat_i', |
'out_sel_i', |
'out_addr_i', |
'out_cti_i', |
'out_stb_i', |
'out_cyc_i', |
'out_we_i', |
'out_dat_o', |
'out_ack_o', |
'irq' |
], |
'hdl_files' => [ |
'/mpsoc/src_noc/arbiter.v', |
'/mpsoc/src_noc/flit_buffer.v', |
'/mpsoc/src_noc/input_ports.v', |
'/mpsoc/src_noc/main_comp.v', |
'/mpsoc/src_noc/route_mesh.v', |
'/mpsoc/src_noc/route_torus.v', |
'/mpsoc/src_noc/routing.v', |
'/mpsoc/src_peripheral/ni/ni_vc_dma.v', |
'/mpsoc/src_peripheral/ni/ni_vc_wb_slave_regs.v', |
'/mpsoc/src_peripheral/ni/ni_slave.v', |
'/mpsoc/src_peripheral/ni/ni_crc32.v', |
'/mpsoc/src_peripheral/ram/byte_enabled_generic_ram.sv', |
'/mpsoc/src_peripheral/ram/generic_ram.v', |
'/mpsoc/src_peripheral/ram/wb_bram_ctrl.v', |
'/mpsoc/src_peripheral/ram/wb_dual_port_ram.v', |
'/mpsoc/src_peripheral/ram/wb_single_port_ram.v' |
], |
'unused' => { |
'plug:wb_slave[0]' => [ |
'rty_o', |
'tag_i', |
'bte_i', |
'err_o' |
], |
'plug:wb_slave[1]' => [ |
'rty_o', |
'tag_i', |
'bte_i', |
'err_o' |
], |
'plug:wb_slave[2]' => [ |
'rty_o', |
'tag_i', |
'bte_i', |
'err_o' |
] |
}, |
'parameters' => { |
'S_Aw' => { |
'type' => 'Fixed', |
'global_param' => 'Localparam', |
'content' => '', |
'default' => '8', |
'info' => 'Parameter', |
'redefine_param' => 1 |
}, |
'SELw' => { |
'type' => 'Fixed', |
'default' => '4', |
'content' => '', |
'global_param' => 'Localparam', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'Fw' => { |
'info' => undef, |
'redefine_param' => 0, |
'global_param' => 'Localparam', |
'content' => '', |
'default' => '2+V+Fpay', |
'type' => 'Fixed' |
}, |
'V' => { |
'info' => 'Parameter', |
'redefine_param' => 1, |
'global_param' => 'Parameter', |
'content' => '', |
'default' => '4', |
'type' => 'Fixed' |
}, |
'INPUT_MEM_Aw' => { |
'redefine_param' => 1, |
'info' => 'Parameter', |
'default' => ' 10', |
'content' => '4,32,1', |
'global_param' => 'Parameter', |
'type' => 'Spin-button' |
}, |
'B' => { |
'global_param' => 'Parameter', |
'content' => '', |
'default' => ' 4', |
'type' => 'Fixed', |
'info' => 'Parameter', |
'redefine_param' => 1 |
}, |
'MAX_TRANSACTION_WIDTH' => { |
'type' => 'Spin-button', |
'content' => '4,32,1', |
'global_param' => 'Localparam', |
'default' => '13', |
'info' => 'maximum packet size width in words. |
The maximum data that can be sent via one packet will be 2 power of MAX_DMA_TRANSACTION_WIDTH in words.', |
'redefine_param' => 1 |
}, |
'Xw' => { |
'redefine_param' => 0, |
'info' => undef, |
'default' => 'log2(NX)', |
'content' => '', |
'global_param' => 'Localparam', |
'type' => 'Fixed' |
}, |
'ROUTE_NAME' => { |
'type' => 'Fixed', |
'default' => '"XY" ', |
'global_param' => 'Parameter', |
'content' => '', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'OUT_MEM_BYTEw' => { |
'type' => 'Fixed', |
'default' => 'OUTPUT_MEM_Aw+(Dw/8)', |
'content' => '', |
'global_param' => 'Don\'t include', |
'redefine_param' => 1, |
'info' => undef |
}, |
'Dw' => { |
'global_param' => 'Localparam', |
'content' => '32,256,8', |
'default' => '32', |
'type' => 'Spin-button', |
'info' => 'wishbone_bus data width in bits.', |
'redefine_param' => 1 |
}, |
'SRC_ADR_HDR_WIDTH' => { |
'redefine_param' => 1, |
'info' => 'Parameter', |
'type' => 'Fixed', |
'default' => '8', |
'content' => '', |
'global_param' => 'Localparam' |
}, |
'M_Aw' => { |
'global_param' => 'Localparam', |
'content' => 'Dw', |
'default' => '32', |
'type' => 'Fixed', |
'info' => 'Parameter', |
'redefine_param' => 1 |
}, |
'C' => { |
'info' => 'Parameter', |
'redefine_param' => 1, |
'type' => 'Fixed', |
'content' => '', |
'global_param' => 'Parameter', |
'default' => ' 4' |
}, |
'CRC_EN' => { |
'info' => 'The parameter can be selected as "YES" or "NO". |
If CRC is enabled, then two CRC32 generator modules will be added to the NI. One CRC generator for calculating CRC of sending packets and another for receiving packets. The CRC32 value of each packet is send via tail flit and at destination NI, is will be compared with received packet generated CRC32. The matching results can be used for error-detection and can be read via NI slave interface. ', |
'redefine_param' => 1, |
'type' => 'Combo-box', |
'content' => '"YES","NO"', |
'global_param' => 'Localparam', |
'default' => '"NO"' |
}, |
'NX' => { |
'info' => 'Parameter', |
'redefine_param' => 1, |
'global_param' => 'Parameter', |
'content' => '', |
'default' => ' 4', |
'type' => 'Fixed' |
}, |
'MAX_BURST_SIZE' => { |
'type' => 'Combo-box', |
'content' => '2,4,8,16,32,64,128,256,512,1024,2048', |
'global_param' => 'Localparam', |
'default' => '16', |
'info' => 'Maximum burst size in words. |
The NI release wishbone bus each time one burst is completed or when the VC\'s internal FIFO becomes full. The bus will be released for one clock cycle. Then in case, there are other active VCs, another active VC will get access to the bus using round robin arbiter. This process will be continued until all desired data is transferred. ', |
'redefine_param' => 1 |
}, |
'CLASS_HDR_WIDTH' => { |
'default' => '8', |
'content' => '', |
'global_param' => 'Localparam', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'Fpay' => { |
'default' => ' 32', |
'global_param' => 'Parameter', |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'ROUTE_TYPE' => { |
'type' => 'Fixed', |
'default' => ' ', |
'content' => '', |
'global_param' => 'Parameter', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'IN_MEM_BYTEw' => { |
'redefine_param' => 1, |
'info' => undef, |
'type' => 'Fixed', |
'default' => 'INPUT_MEM_Aw+(Dw/8)', |
'global_param' => 'Don\'t include', |
'content' => '' |
}, |
'SWA_ARBITER_TYPE' => { |
'redefine_param' => 1, |
'info' => undef, |
'type' => 'Fixed', |
'default' => '"RRA"', |
'content' => '', |
'global_param' => 'Parameter' |
}, |
'WEIGHTw' => { |
'default' => '4', |
'global_param' => 'Parameter', |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'info' => undef |
}, |
'OUTPUT_MEM_Aw' => { |
'type' => 'Spin-button', |
'default' => ' 10', |
'content' => '4,32,1', |
'global_param' => 'Parameter', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'DEBUG_EN' => { |
'redefine_param' => 1, |
'info' => 'Parameter', |
'default' => ' 1', |
'content' => '', |
'global_param' => 'Parameter', |
'type' => 'Fixed' |
}, |
'TOPOLOGY' => { |
'info' => 'Parameter', |
'redefine_param' => 1, |
'type' => 'Fixed', |
'global_param' => 'Parameter', |
'content' => '', |
'default' => '"MESH"' |
}, |
'DST_ADR_HDR_WIDTH' => { |
'type' => 'Fixed', |
'default' => '8', |
'content' => '', |
'global_param' => 'Localparam', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'ROUTING_HDR_WIDTH' => { |
'redefine_param' => 1, |
'info' => 'Parameter', |
'default' => '8', |
'global_param' => 'Localparam', |
'content' => '', |
'type' => 'Fixed' |
}, |
'P' => { |
'default' => '5', |
'content' => '', |
'global_param' => 'Parameter', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'TAGw' => { |
'default' => '3', |
'global_param' => 'Localparam', |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1, |
'info' => 'Parameter' |
}, |
'Yw' => { |
'content' => '', |
'global_param' => 'Localparam', |
'default' => 'log2(NY)', |
'type' => 'Fixed', |
'info' => undef, |
'redefine_param' => 0 |
}, |
'NY' => { |
'type' => 'Fixed', |
'content' => '', |
'global_param' => 'Parameter', |
'default' => ' 4', |
'info' => 'Parameter', |
'redefine_param' => 1 |
} |
}, |
'modules' => { |
'ni_slave' => {} |
} |
}, 'ip_gen' ); |
/old/ni.IP
0,0 → 1,639
####################################################################### |
## File: ni.IP |
## |
## Copyright (C) 2014-2016 Alireza Monemi |
## |
## This file is part of ProNoC 1.5.0 |
## |
## WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT |
## MAY CAUSE UNEXPECTED BEHAIVOR. |
################################################################################ |
|
$ni = bless( { |
'hdl_files' => [ |
'/mpsoc/src_peripheral/ni/ni.v', |
'/mpsoc/src_noc/arbiter.v', |
'/mpsoc/src_noc/flit_buffer.v', |
'/mpsoc/src_noc/inout_ports.v', |
'/mpsoc/src_noc/main_comp.v', |
'/mpsoc/src_noc/route_mesh.v', |
'/mpsoc/src_noc/route_torus.v', |
'/mpsoc/src_noc/routing.v' |
], |
'system_h' => ' #define ${IP}_BASE_ADDR ${BASE} |
#define ${IP}_STATUS (*((volatile unsigned int *) (${IP}_BASE_ADDR ))) |
#define ${IP}_MEM_PCKSIZ (*((volatile unsigned int *) (${IP}_BASE_ADDR+4 ))) |
#define ${IP}_PCKSIZE (*((volatile unsigned int *) (${IP}_BASE_ADDR+8))) |
#define ${IP}_MEM (*((volatile unsigned int *) (${IP}_BASE_ADDR+12))) |
|
#define ${IP}_VC_WR_ADDR(v) (*((volatile unsigned int *) (${IP}_BASE_ADDR+4 + (1<<5)+ (v<<6) ))) |
#define ${IP}_VC_RD_ADDR(v) (*((volatile unsigned int *) (${IP}_BASE_ADDR+4 + (v<<6) ))) |
|
|
#define ${IP}_VC_NUM ${V} |
#define ${IP}_VC_MASK ((1<<${V})-1) |
#define ${IP}_CLASS_IN_HDR_WIDTH 8 |
#define ${IP}_DEST_IN_HDR_WIDTH 8 |
#define ${IP}_X_Y_IN_HDR_WIDTH 4 |
|
/* |
[14+V : 14+2V-1]rd_vc_not_empty |
[14 : 14+V-1] wr_vc_not_empty |
13 rsv_pck_isr |
12 rd_done_isr |
11 wr_done_isr |
10 rsv_pck_int_en |
9 rd_done_int_en |
8 wr_done_int_en |
7 all_wr_vcs_full |
6 any_rd_vc_has_data |
5 rd_no_pck_err |
4 rd_ovr_size_err |
3 rd_done |
2 wr_done |
1 rd_busy |
0 wr_busy |
*/ |
#define ${IP}_WR_BUSY (1<<0) |
#define ${IP}_RD_BUSY (1<<1) |
#define ${IP}_WR_DONE (1<<2) |
#define ${IP}_RD_DONE (1<<3) |
#define ${IP}_RD_OVR_ERR (1<<4) |
#define ${IP}_RD_NPCK_ERR (1<<5) |
#define ${IP}_HAS_PCK (1<<6) |
#define ${IP}_ALL_VCS_FULL (1<<7) |
#define ${IP}_WR_DONE_INT_EN (1<<8) |
#define ${IP}_RD_DONE_INT_EN (1<<9) |
#define ${IP}_RSV_PCK_INT_EN (1<<10) |
#define ${IP}_WR_DONE_ISR (1<<11) |
#define ${IP}_RD_DONE_ISR (1<<12) |
#define ${IP}_RSV_PCK_ISR (1<<13) |
#define ${IP}WR_VCS_NO_EMPTY (${IP}_VC_MASK <<14) |
#define ${IP}RD_VCS_NO_EMPTY (${IP}_VC_MASK << (14+${V})) |
|
#define ${IP}_PTR_WIDTH 20 |
#define ${IP}_PCK_SIZE_WIDTH 12 |
|
|
|
|
#define ${IP}_HDR_DEST_CORE_ADDR(DES_X, DES_Y) ((DES_X << ${IP}_X_Y_IN_HDR_WIDTH) | DES_Y)<<(2*${IP}_X_Y_IN_HDR_WIDTH) |
#define ${IP}_HDR_CLASS(pck_class) (pck_class << ( ${IP}_DEST_IN_HDR_WIDTH+ (4* ${IP}_X_Y_IN_HDR_WIDTH))) |
|
|
#define ${IP}_wait_for_sending_pck() while (!(${IP}_STATUS & ${IP}_WR_DONE)) |
#define ${IP}_wait_for_reading_pck() while (!(${IP}_STATUS & ${IP}_RD_DONE)) |
#define ${IP}_wait_for_getting_pck() while (!(${IP}_STATUS & ${IP}_HAS_PCK)) |
|
/***************************************** |
void send_pck (unsigned int * pck_buffer, unsigned int data_size, unsigned int vc_num); |
sending a packet through NoC network; |
(unsigned int des_x,unsigned int des_y : destination core address; |
unsigned int * pck_buffer : the buffer which hold the packet; The data must start from buff[1]; |
unsigned int data_size : the size of data which wanted to be sent out in word = packet_size-1; |
unsigned int class |
|
****************************************/ |
inline void ${IP}_send_pck (unsigned int des_x, unsigned int des_y, volatile unsigned int * pck_buffer, unsigned int data_size, unsigned int pck_class, unsigned int vc_num){ |
pck_buffer [0] = ${IP}_HDR_DEST_CORE_ADDR(des_x, des_y) | ${IP}_HDR_CLASS(pck_class); |
${IP}_VC_WR_ADDR(vc_num) = (unsigned int) (& pck_buffer [0]) + (data_size<<${IP}_PTR_WIDTH); |
${IP}_wait_for_sending_pck(); |
} |
|
/******************************************* |
void save_pck (volatile unsigned int * pck_buffer, unsigned int buffer_size); |
save a received packet on pck_buffer |
unsigned int * pck_buffer: the buffer for storing the packet; The read data start from buff[1]; |
********************************************/ |
inline void ${IP}_save_pck (volatile unsigned int * pck_buffer, unsigned int buffer_size,unsigned int vc_num){ |
${IP}_wait_for_getting_pck(); |
${IP}_VC_RD_ADDR(vc_num) = (unsigned int) (& pck_buffer [0]) + (buffer_size<<${IP}_PTR_WIDTH); |
${IP}_wait_for_reading_pck(); |
}', |
'ip_name' => 'ni', |
'parameters_order' => [ |
'V', |
'B', |
'NX', |
'NY', |
'Fpay', |
'TOPOLOGY', |
'ROUTE_NAME', |
'DEBUG_EN', |
'COMB_MEM_PTR_W', |
'COMB_PCK_SIZE_W', |
'Dw', |
'S_Aw', |
'M_Aw', |
'TAGw', |
'SELw', |
'Yw', |
'Fw', |
'Xw' |
], |
'ports_order' => [ |
'reset', |
'clk', |
'current_x', |
'current_y', |
'flit_out', |
'flit_out_wr', |
'credit_in', |
'flit_in', |
'flit_in_wr', |
'credit_out', |
's_dat_i', |
's_sel_i', |
's_addr_i', |
's_cti_i', |
's_stb_i', |
's_cyc_i', |
's_we_i', |
's_dat_o', |
's_ack_o', |
's_err_o', |
's_rty_o', |
'm_sel_o', |
'm_dat_o', |
'm_addr_o', |
'm_cti_o', |
'm_stb_o', |
'm_cyc_o', |
'm_we_o', |
'm_dat_i', |
'm_ack_i', |
'm_err_i', |
'm_rty_i', |
'irq' |
], |
'sockets' => { |
'ni' => { |
'connection_num' => 'single connection', |
'value' => 1, |
'0' => { |
'name' => 'ni' |
}, |
'type' => 'num', |
'ni' => {} |
} |
}, |
'file_name' => '/home/alireza/Mywork/mpsoc/src_peripheral/ni/ni.v', |
'module_name' => 'ni', |
'unused' => { |
'plug:wb_slave[0]' => [ |
'tag_i', |
'bte_i' |
], |
'plug:wb_master[0]' => [ |
'tag_o', |
'bte_o' |
] |
}, |
'category' => 'NoC', |
'description' => 'Network interface', |
'parameters' => { |
'Dw' => { |
'info' => undef, |
'default' => ' 32', |
'global_param' => 0, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'NY' => { |
'info' => undef, |
'default' => ' 2', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'DEBUG_EN' => { |
'info' => undef, |
'default' => '0', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'NX' => { |
'info' => undef, |
'default' => ' 2', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'V' => { |
'info' => '', |
'default' => ' 4', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'CONGESTION_INDEX' => { |
'info' => undef, |
'default' => '3', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'Fw' => { |
'info' => undef, |
'default' => '2+V+Fpay', |
'global_param' => 0, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 0 |
}, |
'COMB_PCK_SIZE_W' => { |
'info' => undef, |
'default' => '12', |
'global_param' => 0, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'TAGw' => { |
'info' => undef, |
'default' => '3', |
'global_param' => 0, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'COMB_MEM_PTR_W' => { |
'info' => undef, |
'default' => '20', |
'global_param' => 0, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'M_Aw' => { |
'info' => undef, |
'default' => '32', |
'global_param' => 0, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'ROUTE_NAME' => { |
'info' => undef, |
'default' => '"XY"', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'Xw ' => { |
'info' => undef, |
'default' => 'log2(NX)', |
'global_param' => 0, |
'content' => '', |
'redefine_param' => 0, |
'type' => 'Fixed' |
}, |
'Fpay' => { |
'info' => undef, |
'default' => ' 32', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'ROUTE_TYPE' => { |
'info' => undef, |
'default' => '"DETERMINISTIC"', |
'global_param' => 1, |
'content' => '', |
'redefine_param' => 1, |
'type' => 'Fixed' |
}, |
'SELw' => { |
'info' => undef, |
'default' => '4 ', |
'global_param' => 0, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'P' => { |
'info' => undef, |
'default' => ' 5', |
'global_param' => 1, |
'content' => '', |
'redefine_param' => 1, |
'type' => 'Fixed' |
}, |
'B' => { |
'info' => '', |
'default' => ' 4', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'Xw' => { |
'info' => undef, |
'default' => 'log2(NX)', |
'global_param' => 0, |
'content' => '', |
'redefine_param' => 0, |
'type' => 'Fixed' |
}, |
'TOPOLOGY' => { |
'info' => undef, |
'default' => '"MESH"', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'S_Aw' => { |
'info' => undef, |
'default' => '7', |
'global_param' => 0, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
}, |
'Yw' => { |
'info' => undef, |
'default' => 'log2(NY)', |
'global_param' => 0, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 0 |
}, |
'Xwj' => { |
'info' => undef, |
'default' => 'fvf', |
'global_param' => 0, |
'content' => '', |
'redefine_param' => 1, |
'type' => 'Fixed' |
}, |
'SSA_EN' => { |
'info' => undef, |
'default' => '"NO"', |
'global_param' => 1, |
'content' => '', |
'type' => 'Fixed', |
'redefine_param' => 1 |
} |
}, |
'plugs' => { |
'wb_master' => { |
'wb_master' => {}, |
'0' => { |
'name' => 'wb_master' |
}, |
'value' => 1, |
'type' => 'num' |
}, |
'clk' => { |
'clk' => {}, |
'value' => 1, |
'0' => { |
'name' => 'clk' |
}, |
'type' => 'num' |
}, |
'reset' => { |
'reset' => {}, |
'0' => { |
'name' => 'reset' |
}, |
'value' => 1, |
'type' => 'num' |
}, |
'interrupt_peripheral' => { |
'interrupt_peripheral' => {}, |
'0' => { |
'name' => 'int_peripheral' |
}, |
'value' => 1, |
'type' => 'num' |
}, |
'wb_slave' => { |
'0' => { |
'width' => 9, |
'name' => 'wb_slave', |
'addr' => '0xb800_0000 0xbfff_ffff custom devices' |
}, |
'value' => 1, |
'type' => 'num', |
'wb_slave' => {} |
} |
}, |
'modules' => { |
'ni' => {} |
}, |
'gui_status' => { |
'timeout' => 0, |
'status' => 'ideal' |
}, |
'ports' => { |
'm_addr_o' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'adr_o', |
'range' => 'M_Aw-1 : 0', |
'type' => 'output' |
}, |
'm_cyc_o' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'cyc_o', |
'range' => '', |
'type' => 'output' |
}, |
's_cyc_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'cyc_i', |
'range' => '', |
'type' => 'input' |
}, |
's_dat_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'dat_i', |
'range' => 'Dw-1 : 0', |
'type' => 'input' |
}, |
'm_we_o' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'we_o', |
'range' => '', |
'type' => 'output' |
}, |
'credit_out' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'credit_out', |
'range' => 'V-1: 0', |
'type' => 'output' |
}, |
'flit_in_wr' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_in_wr', |
'range' => '', |
'type' => 'input' |
}, |
'm_ack_i' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'ack_i', |
'range' => '', |
'type' => 'input' |
}, |
's_addr_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'adr_i', |
'range' => 'S_Aw-1 : 0', |
'type' => 'input' |
}, |
's_dat_o' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'dat_o', |
'range' => 'Dw-1 : 0', |
'type' => 'output' |
}, |
's_cti_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'cti_i', |
'range' => 'TAGw-1 : 0', |
'type' => 'input' |
}, |
'current_y' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'current_y', |
'range' => 'Yw-1 : 0', |
'type' => 'input' |
}, |
's_sel_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'sel_i', |
'range' => 'SELw-1 : 0', |
'type' => 'input' |
}, |
's_we_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'we_i', |
'range' => '', |
'type' => 'input' |
}, |
'm_stb_o' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'stb_o', |
'range' => '', |
'type' => 'output' |
}, |
's_stb_i' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'stb_i', |
'range' => '', |
'type' => 'input' |
}, |
'flit_out_wr' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_out_wr', |
'range' => '', |
'type' => 'output' |
}, |
'm_dat_i' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'dat_i', |
'range' => 'Dw-1 : 0', |
'type' => 'input' |
}, |
'm_dat_o' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'dat_o', |
'range' => 'Dw-1 : 0', |
'type' => 'output' |
}, |
's_err_o' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'err_o', |
'range' => '', |
'type' => 'output' |
}, |
'm_cti_o' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'cti_o', |
'range' => 'TAGw-1 : 0', |
'type' => 'output' |
}, |
's_ack_o' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'ack_o', |
'range' => '', |
'type' => 'output' |
}, |
'flit_out' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_out', |
'range' => 'Fw-1 : 0', |
'type' => 'output' |
}, |
'credit_in' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'credit_in', |
'range' => 'V-1 : 0', |
'type' => 'input' |
}, |
'reset' => { |
'intfc_name' => 'plug:reset[0]', |
'intfc_port' => 'reset_i', |
'range' => '', |
'type' => 'input' |
}, |
'm_err_i' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'err_i', |
'range' => '', |
'type' => 'input' |
}, |
'm_rty_i' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'rty_i', |
'range' => '', |
'type' => 'input' |
}, |
'm_sel_o' => { |
'intfc_name' => 'plug:wb_master[0]', |
'intfc_port' => 'sel_o', |
'range' => 'SELw-1 : 0', |
'type' => 'output' |
}, |
'flit_in' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'flit_in', |
'range' => 'Fw-1 : 0', |
'type' => 'input' |
}, |
'current_x' => { |
'intfc_name' => 'socket:ni[0]', |
'intfc_port' => 'current_x', |
'range' => 'Xw-1 : 0', |
'type' => 'input' |
}, |
'irq' => { |
'intfc_name' => 'plug:interrupt_peripheral[0]', |
'intfc_port' => 'int_o', |
'range' => '', |
'type' => 'output' |
}, |
'clk' => { |
'intfc_name' => 'plug:clk[0]', |
'intfc_port' => 'clk_i', |
'range' => '', |
'type' => 'input' |
}, |
's_rty_o' => { |
'intfc_name' => 'plug:wb_slave[0]', |
'intfc_port' => 'rty_o', |
'range' => '', |
'type' => 'output' |
} |
} |
}, 'ip_gen' ); |
old/ni.IP
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: old/ni_sep.IP
===================================================================
--- old/ni_sep.IP (nonexistent)
+++ old/ni_sep.IP (revision 38)
@@ -0,0 +1,680 @@
+#######################################################################
+## File: ni_sep.IP
+##
+## Copyright (C) 2014-2016 Alireza Monemi
+##
+## This file is part of ProNoC 1.5.1
+##
+## WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT
+## MAY CAUSE UNEXPECTED BEHAIVOR.
+################################################################################
+
+$ni_sep = bless( {
+ 'hdl_files' => [
+ '/mpsoc/src_peripheral/ni/ni_sep.v',
+ '/mpsoc/src_peripheral/ni/sub_ni_rd.v',
+ '/mpsoc/src_peripheral/ni/sub_ni_wr.v',
+ '/mpsoc/src_noc/arbiter.v',
+ '/mpsoc/src_noc/flit_buffer.v',
+ '/mpsoc/src_noc/inout_ports.v',
+ '/mpsoc/src_noc/main_comp.v',
+ '/mpsoc/src_noc/route_mesh.v',
+ '/mpsoc/src_noc/route_torus.v',
+ '/mpsoc/src_noc/routing.v'
+ ],
+ 'system_h' => '#define ${IP}_BASE_ADDR ${BASE}
+ #define ${IP}_STATUS (*((volatile unsigned int *) (${IP}_BASE_ADDR )))
+ #define ${IP}_MEM_PCKSIZ (*((volatile unsigned int *) (${IP}_BASE_ADDR+4 )))
+ #define ${IP}_PCKSIZE (*((volatile unsigned int *) (${IP}_BASE_ADDR+8)))
+ #define ${IP}_MEM (*((volatile unsigned int *) (${IP}_BASE_ADDR+12)))
+
+ #define ${IP}_VC_WR_ADDR(v) (*((volatile unsigned int *) (${IP}_BASE_ADDR+4 + (1<<5)+ (v<<6) )))
+ #define ${IP}_VC_RD_ADDR(v) (*((volatile unsigned int *) (${IP}_BASE_ADDR+4 + (v<<6) )))
+
+
+ #define ${IP}_VC_NUM ${V}
+ #define ${IP}_VC_MASK ((1<<${V})-1)
+ #define ${IP}_CLASS_IN_HDR_WIDTH 8
+ #define ${IP}_DEST_IN_HDR_WIDTH 8
+ #define ${IP}_X_Y_IN_HDR_WIDTH 4
+
+/*
+ [14+V : 14+2V-1]rd_vc_not_empty
+ [14 : 14+V-1] wr_vc_not_empty
+ 13 rsv_pck_isr
+ 12 rd_done_isr
+ 11 wr_done_isr
+ 10 rsv_pck_int_en
+ 9 rd_done_int_en
+ 8 wr_done_int_en
+ 7 all_wr_vcs_full
+ 6 any_rd_vc_has_data
+ 5 rd_no_pck_err
+ 4 rd_ovr_size_err
+ 3 rd_done
+ 2 wr_done
+ 1 rd_busy
+ 0 wr_busy
+*/
+ #define ${IP}_WR_BUSY (1<<0)
+ #define ${IP}_RD_BUSY (1<<1)
+ #define ${IP}_WR_DONE (1<<2)
+ #define ${IP}_RD_DONE (1<<3)
+ #define ${IP}_RD_OVR_ERR (1<<4)
+ #define ${IP}_RD_NPCK_ERR (1<<5)
+ #define ${IP}_HAS_PCK (1<<6)
+ #define ${IP}_ALL_VCS_FULL (1<<7)
+ #define ${IP}_WR_DONE_INT_EN (1<<8)
+ #define ${IP}_RD_DONE_INT_EN (1<<9)
+ #define ${IP}_RSV_PCK_INT_EN (1<<10)
+ #define ${IP}_WR_DONE_ISR (1<<11)
+ #define ${IP}_RD_DONE_ISR (1<<12)
+ #define ${IP}_RSV_PCK_ISR (1<<13)
+ #define ${IP}WR_VCS_NO_EMPTY (${IP}_VC_MASK <<14)
+ #define ${IP}RD_VCS_NO_EMPTY (${IP}_VC_MASK << (14+${V}))
+
+ #define ${IP}_PTR_WIDTH 20
+ #define ${IP}_PCK_SIZE_WIDTH 12
+
+
+
+
+ #define ${IP}_HDR_DEST_CORE_ADDR(DES_X, DES_Y) ((DES_X << ${IP}_X_Y_IN_HDR_WIDTH) | DES_Y)<<(2*${IP}_X_Y_IN_HDR_WIDTH)
+ #define ${IP}_HDR_CLASS(pck_class) (pck_class << ( ${IP}_DEST_IN_HDR_WIDTH+ (4* ${IP}_X_Y_IN_HDR_WIDTH)))
+
+
+ #define ${IP}_wait_for_sending_pck() while (!(${IP}_STATUS & ${IP}_WR_DONE))
+ #define ${IP}_wait_for_reading_pck() while (!(${IP}_STATUS & ${IP}_RD_DONE))
+ #define ${IP}_wait_for_getting_pck() while (!(${IP}_STATUS & ${IP}_HAS_PCK))
+
+/*****************************************
+void send_pck (unsigned int * pck_buffer, unsigned int data_size, unsigned int vc_num);
+sending a packet through NoC network;
+(unsigned int des_x,unsigned int des_y : destination core address;
+unsigned int * pck_buffer : the buffer which hold the packet; The data must start from buff[1];
+unsigned int data_size : the size of data which wanted to be sent out in word = packet_size-1;
+unsigned int class
+
+****************************************/
+ inline void ${IP}_send_pck (unsigned int des_x, unsigned int des_y, volatile unsigned int * pck_buffer, unsigned int data_size, unsigned int pck_class, unsigned int vc_num){
+ pck_buffer [0] = ${IP}_HDR_DEST_CORE_ADDR(des_x, des_y) | ${IP}_HDR_CLASS(pck_class);
+ ${IP}_VC_WR_ADDR(vc_num) = (unsigned int) (& pck_buffer [0]) + (data_size<<${IP}_PTR_WIDTH);
+ ${IP}_wait_for_sending_pck();
+ }
+
+/*******************************************
+void save_pck (volatile unsigned int * pck_buffer, unsigned int buffer_size);
+save a received packet on pck_buffer
+unsigned int * pck_buffer: the buffer for storing the packet; The read data start from buff[1];
+********************************************/
+ inline void ${IP}_save_pck (volatile unsigned int * pck_buffer, unsigned int buffer_size,unsigned int vc_num){
+ ${IP}_VC_RD_ADDR(vc_num) = (unsigned int) (& pck_buffer [0]) + (buffer_size<<${IP}_PTR_WIDTH);
+ ${IP}_wait_for_reading_pck();
+ }',
+ 'ip_name' => 'ni_sep',
+ 'parameters_order' => [
+ 'V',
+ 'B',
+ 'NX',
+ 'NY',
+ 'Fpay',
+ 'TOPOLOGY',
+ 'ROUTE_NAME',
+ 'DEBUG_EN',
+ 'COMB_MEM_PTR_W',
+ 'COMB_PCK_SIZE_W',
+ 'Dw',
+ 'S_Aw',
+ 'M_Aw',
+ 'TAGw',
+ 'SELw',
+ 'Yw',
+ 'Fw',
+ 'Xw'
+ ],
+ 'ports_order' => [
+ 'reset',
+ 'clk',
+ 'current_x',
+ 'current_y',
+ 'flit_out',
+ 'flit_out_wr',
+ 'credit_in',
+ 'flit_in',
+ 'flit_in_wr',
+ 'credit_out',
+ 's_dat_i',
+ 's_sel_i',
+ 's_addr_i',
+ 's_cti_i',
+ 's_stb_i',
+ 's_cyc_i',
+ 's_we_i',
+ 's_dat_o',
+ 's_ack_o',
+ 'm_rd_sel_o',
+ 'm_rd_dat_o',
+ 'm_rd_addr_o',
+ 'm_rd_cti_o',
+ 'm_rd_stb_o',
+ 'm_rd_cyc_o',
+ 'm_rd_we_o',
+ 'm_rd_ack_i',
+ 'm_wr_sel_o',
+ 'm_wr_addr_o',
+ 'm_wr_cti_o',
+ 'm_wr_stb_o',
+ 'm_wr_cyc_o',
+ 'm_wr_we_o',
+ 'm_wr_dat_i',
+ 'm_wr_ack_i',
+ 'irq'
+ ],
+ 'file_name' => '/home/alireza/Mywork/mpsoc/src_peripheral/ni/ni_sep.v',
+ 'sockets' => {
+ 'ni' => {
+ 'connection_num' => 'single connection',
+ '0' => {
+ 'name' => 'ni'
+ },
+ 'value' => 1,
+ 'type' => 'num',
+ 'ni' => {}
+ }
+ },
+ 'module_name' => 'ni_sep',
+ 'unused' => {
+ 'plug:wb_master[1]' => [
+ 'tag_o',
+ 'bte_o',
+ 'dat_o',
+ 'err_i',
+ 'rty_i'
+ ],
+ 'plug:wb_slave[0]' => [
+ 'err_o',
+ 'rty_o',
+ 'tag_i',
+ 'bte_i'
+ ],
+ 'plug:wb_master[0]' => [
+ 'tag_o',
+ 'dat_i',
+ 'bte_o',
+ 'err_i',
+ 'rty_i'
+ ]
+ },
+ 'category' => 'NoC',
+ 'plugs' => {
+ 'wb_master' => {
+ 'wb_master' => {},
+ '1' => {
+ 'name' => 'wb_wr'
+ },
+ '0' => {
+ 'name' => 'wb_rd'
+ },
+ 'value' => 2,
+ 'type' => 'num'
+ },
+ 'reset' => {
+ 'reset' => {},
+ '0' => {
+ 'name' => 'reset'
+ },
+ 'value' => 1,
+ 'type' => 'num'
+ },
+ 'clk' => {
+ 'clk' => {},
+ '0' => {
+ 'name' => 'clk'
+ },
+ 'value' => 1,
+ 'type' => 'num'
+ },
+ 'interrupt_peripheral' => {
+ 'interrupt_peripheral' => {},
+ 'value' => 1,
+ '0' => {
+ 'name' => 'intrpt_prhl'
+ },
+ 'type' => 'num'
+ },
+ 'wb_slave' => {
+ '1' => {
+ 'width' => 1,
+ 'name' => 'wb_slave_1',
+ 'addr' => '0x9100_0000 0x91ff_ffff General-Purpose I/O'
+ },
+ '0' => {
+ 'width' => 9,
+ 'name' => 'wb_slave',
+ 'addr' => '0xb800_0000 0xbfff_ffff custom devices'
+ },
+ 'value' => 1,
+ 'type' => 'num',
+ 'wb_slave' => {}
+ }
+ },
+ 'modules' => {
+ 'ni_sep' => {}
+ },
+ 'parameters' => {
+ 'Dw' => {
+ 'info' => undef,
+ 'default' => ' 32',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'DEBUG_EN' => {
+ 'info' => undef,
+ 'default' => '0',
+ 'global_param' => 'Parameter',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'NY' => {
+ 'info' => undef,
+ 'default' => ' 2',
+ 'global_param' => 'Parameter',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'NX' => {
+ 'info' => undef,
+ 'default' => ' 2',
+ 'global_param' => 'Parameter',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'V' => {
+ 'info' => '',
+ 'default' => ' 4',
+ 'global_param' => 'Parameter',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'CONGESTION_INDEX' => {
+ 'info' => undef,
+ 'default' => '3',
+ 'global_param' => 1,
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'Fw' => {
+ 'info' => undef,
+ 'default' => '2+V+Fpay',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'redefine_param' => 0,
+ 'type' => 'Fixed'
+ },
+ 'COMB_PCK_SIZE_W' => {
+ 'info' => undef,
+ 'default' => '12',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'TAGw' => {
+ 'info' => undef,
+ 'default' => '3',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'M_Aw' => {
+ 'info' => undef,
+ 'default' => '32',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'COMB_MEM_PTR_W' => {
+ 'info' => undef,
+ 'default' => '20',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'ROUTE_NAME' => {
+ 'info' => undef,
+ 'default' => '"XY"',
+ 'global_param' => 'Parameter',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'Xw ' => {
+ 'info' => undef,
+ 'default' => 'log2(NX)',
+ 'global_param' => 0,
+ 'content' => '',
+ 'type' => 'Fixed',
+ 'redefine_param' => 0
+ },
+ 'Fpay' => {
+ 'info' => undef,
+ 'default' => ' 32',
+ 'global_param' => 'Parameter',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'ROUTE_TYPE' => {
+ 'info' => undef,
+ 'default' => '"DETERMINISTIC"',
+ 'global_param' => 1,
+ 'content' => '',
+ 'type' => 'Fixed',
+ 'redefine_param' => 1
+ },
+ 'SELw' => {
+ 'info' => undef,
+ 'default' => '4 ',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'P' => {
+ 'info' => undef,
+ 'default' => ' 5',
+ 'global_param' => 1,
+ 'content' => '',
+ 'type' => 'Fixed',
+ 'redefine_param' => 1
+ },
+ 'B' => {
+ 'info' => '',
+ 'default' => ' 4',
+ 'global_param' => 'Parameter',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'S_Aw' => {
+ 'info' => undef,
+ 'default' => '7',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'TOPOLOGY' => {
+ 'info' => undef,
+ 'default' => '"MESH"',
+ 'global_param' => 'Parameter',
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'Xw' => {
+ 'info' => undef,
+ 'default' => 'log2(NX)',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'type' => 'Fixed',
+ 'redefine_param' => 0
+ },
+ 'Yw' => {
+ 'info' => undef,
+ 'default' => 'log2(NY)',
+ 'global_param' => 'Localparam',
+ 'content' => '',
+ 'redefine_param' => 0,
+ 'type' => 'Fixed'
+ },
+ 'SSA_EN' => {
+ 'info' => undef,
+ 'default' => '"NO"',
+ 'global_param' => 1,
+ 'content' => '',
+ 'redefine_param' => 1,
+ 'type' => 'Fixed'
+ },
+ 'Xwj' => {
+ 'info' => undef,
+ 'default' => 'fvf',
+ 'global_param' => 0,
+ 'content' => '',
+ 'type' => 'Fixed',
+ 'redefine_param' => 1
+ }
+ },
+ 'gui_status' => {
+ 'timeout' => 0,
+ 'status' => 'ideal'
+ },
+ 'ports' => {
+ 'm_rd_cyc_o' => {
+ 'intfc_port' => 'cyc_o',
+ 'intfc_name' => 'plug:wb_master[0]',
+ 'range' => '',
+ 'type' => 'output'
+ },
+ 's_dat_i' => {
+ 'intfc_port' => 'dat_i',
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => 'Dw-1 : 0',
+ 'type' => 'input'
+ },
+ 's_cyc_i' => {
+ 'intfc_port' => 'cyc_i',
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => '',
+ 'type' => 'input'
+ },
+ 'm_wr_sel_o' => {
+ 'intfc_port' => 'sel_o',
+ 'intfc_name' => 'plug:wb_master[1]',
+ 'range' => 'SELw-1 : 0',
+ 'type' => 'output'
+ },
+ 'm_wr_dat_i' => {
+ 'intfc_port' => 'dat_i',
+ 'intfc_name' => 'plug:wb_master[1]',
+ 'range' => 'Dw-1 : 0',
+ 'type' => 'input'
+ },
+ 'm_wr_addr_o' => {
+ 'intfc_port' => 'adr_o',
+ 'intfc_name' => 'plug:wb_master[1]',
+ 'range' => 'M_Aw-1 : 0',
+ 'type' => 'output'
+ },
+ 'credit_out' => {
+ 'intfc_port' => 'credit_out',
+ 'intfc_name' => 'socket:ni[0]',
+ 'range' => 'V-1 : 0',
+ 'type' => 'output'
+ },
+ 'flit_in_wr' => {
+ 'intfc_port' => 'flit_in_wr',
+ 'intfc_name' => 'socket:ni[0]',
+ 'range' => '',
+ 'type' => 'input'
+ },
+ 's_dat_o' => {
+ 'intfc_port' => 'dat_o',
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => 'Dw-1 : 0',
+ 'type' => 'output'
+ },
+ 's_addr_i' => {
+ 'intfc_port' => 'adr_i',
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => 'S_Aw-1 : 0',
+ 'type' => 'input'
+ },
+ 's_cti_i' => {
+ 'intfc_port' => 'cti_i',
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => 'TAGw-1 : 0',
+ 'type' => 'input'
+ },
+ 'current_y' => {
+ 'intfc_port' => 'current_y',
+ 'intfc_name' => 'socket:ni[0]',
+ 'range' => 'Yw-1 : 0',
+ 'type' => 'input'
+ },
+ 'm_wr_cti_o' => {
+ 'intfc_port' => 'cti_o',
+ 'intfc_name' => 'plug:wb_master[1]',
+ 'range' => 'TAGw-1 : 0',
+ 'type' => 'output'
+ },
+ 'm_rd_ack_i' => {
+ 'intfc_port' => 'ack_i',
+ 'intfc_name' => 'plug:wb_master[0]',
+ 'range' => '',
+ 'type' => 'input'
+ },
+ 's_sel_i' => {
+ 'intfc_port' => 'sel_i',
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => 'SELw-1 : 0',
+ 'type' => 'input'
+ },
+ 's_we_i' => {
+ 'intfc_port' => 'we_i',
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => '',
+ 'type' => 'input'
+ },
+ 'm_rd_dat_o' => {
+ 'intfc_port' => 'dat_o',
+ 'intfc_name' => 'plug:wb_master[0]',
+ 'range' => 'Dw-1 : 0',
+ 'type' => 'output'
+ },
+ 's_stb_i' => {
+ 'intfc_port' => 'stb_i',
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => '',
+ 'type' => 'input'
+ },
+ 'm_wr_stb_o' => {
+ 'intfc_port' => 'stb_o',
+ 'intfc_name' => 'plug:wb_master[1]',
+ 'range' => '',
+ 'type' => 'output'
+ },
+ 'flit_out_wr' => {
+ 'intfc_port' => 'flit_out_wr',
+ 'intfc_name' => 'socket:ni[0]',
+ 'range' => '',
+ 'type' => 'output'
+ },
+ 'm_rd_sel_o' => {
+ 'intfc_port' => 'sel_o',
+ 'intfc_name' => 'plug:wb_master[0]',
+ 'range' => 'SELw-1 : 0',
+ 'type' => 'output'
+ },
+ 'm_rd_addr_o' => {
+ 'intfc_port' => 'adr_o',
+ 'intfc_name' => 'plug:wb_master[0]',
+ 'range' => 'M_Aw-1 : 0',
+ 'type' => 'output'
+ },
+ 's_ack_o' => {
+ 'intfc_port' => 'ack_o',
+ 'intfc_name' => 'plug:wb_slave[0]',
+ 'range' => '',
+ 'type' => 'output'
+ },
+ 'm_wr_ack_i' => {
+ 'intfc_port' => 'ack_i',
+ 'intfc_name' => 'plug:wb_master[1]',
+ 'range' => '',
+ 'type' => 'input'
+ },
+ 'm_rd_we_o' => {
+ 'intfc_port' => 'we_o',
+ 'intfc_name' => 'plug:wb_master[0]',
+ 'range' => '',
+ 'type' => 'output'
+ },
+ 'flit_out' => {
+ 'intfc_port' => 'flit_out',
+ 'intfc_name' => 'socket:ni[0]',
+ 'range' => 'Fw-1 : 0',
+ 'type' => 'output'
+ },
+ 'credit_in' => {
+ 'intfc_port' => 'credit_in',
+ 'intfc_name' => 'socket:ni[0]',
+ 'range' => 'V-1 : 0',
+ 'type' => 'input'
+ },
+ 'reset' => {
+ 'intfc_port' => 'reset_i',
+ 'intfc_name' => 'plug:reset[0]',
+ 'range' => '',
+ 'type' => 'input'
+ },
+ 'm_rd_stb_o' => {
+ 'intfc_port' => 'stb_o',
+ 'intfc_name' => 'plug:wb_master[0]',
+ 'range' => '',
+ 'type' => 'output'
+ },
+ 'flit_in' => {
+ 'intfc_port' => 'flit_in',
+ 'intfc_name' => 'socket:ni[0]',
+ 'range' => 'Fw-1 : 0',
+ 'type' => 'input'
+ },
+ 'm_rd_cti_o' => {
+ 'intfc_port' => 'cti_o',
+ 'intfc_name' => 'plug:wb_master[0]',
+ 'range' => 'TAGw-1 : 0',
+ 'type' => 'output'
+ },
+ 'm_wr_we_o' => {
+ 'intfc_port' => 'we_o',
+ 'intfc_name' => 'plug:wb_master[1]',
+ 'range' => '',
+ 'type' => 'output'
+ },
+ 'current_x' => {
+ 'intfc_port' => 'current_x',
+ 'intfc_name' => 'socket:ni[0]',
+ 'range' => 'Xw-1 : 0',
+ 'type' => 'input'
+ },
+ 'irq' => {
+ 'intfc_port' => 'int_o',
+ 'intfc_name' => 'plug:interrupt_peripheral[0]',
+ 'range' => '',
+ 'type' => 'output'
+ },
+ 'clk' => {
+ 'intfc_port' => 'clk_i',
+ 'intfc_name' => 'plug:clk[0]',
+ 'range' => '',
+ 'type' => 'input'
+ },
+ 'm_wr_cyc_o' => {
+ 'intfc_port' => 'cyc_o',
+ 'intfc_name' => 'plug:wb_master[1]',
+ 'range' => '',
+ 'type' => 'output'
+ }
+ }
+ }, 'ip_gen' );
old/ni_sep.IP
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property