OpenCores
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
    /
    from Rev 6 to Rev 7
    Reverse comparison

Rev 6 → Rev 7

/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/NoC/cross_bar.v
30,6 → 30,8
 
module cross_bar #(
parameter VC_NUM_PER_PORT = 4,
parameter X_NODE_NUM = 3,
parameter Y_NODE_NUM = 3,
parameter PORT_NUM = 5,
parameter PYLD_WIDTH = 32,
parameter FLIT_TYPE_WIDTH = 2,
52,8 → 54,10
output[FLIT_ARRAY_WIDTH-1 : 0] flit_out_array
);
`LOG2
localparam MUX_IN_WIDTH = FLIT_ARRAY_WIDTH-FLIT_WIDTH;
localparam PORT_SEL_BCD_WIDTH =log2(PORT_SEL_WIDTH);
localparam MUX_IN_WIDTH = FLIT_ARRAY_WIDTH-FLIT_WIDTH;
localparam PORT_SEL_BCD_WIDTH = log2(PORT_SEL_WIDTH);
localparam X_NODE_NUM_WIDTH = log2(X_NODE_NUM);
localparam Y_NODE_NUM_WIDTH = log2(Y_NODE_NUM);
wire [MUX_IN_WIDTH-1 : 0] flit_in_mux_array [PORT_NUM-1 : 0];
wire [PORT_NUM-1 : 0] header_flit;
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/NoC/router.v
206,6 → 206,8
//cross_bar
cross_bar #(
.VC_NUM_PER_PORT (VC_NUM_PER_PORT),
.X_NODE_NUM (X_NODE_NUM),
.Y_NODE_NUM (Y_NODE_NUM),
.PORT_NUM (PORT_NUM),
.PYLD_WIDTH (PYLD_WIDTH),
.FLIT_TYPE_WIDTH (FLIT_TYPE_WIDTH)
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/NoC/tasks.v
1,7 → 1,7
// synthesis translate_off
task automatic cpu_write_data (
input [X_NODE_NUM_WIDTH-1 : 0] src_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] src_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_y_addr,
input [CPU_ADR_WIDTH-1 : 0] addr_i,
input [31 : 0] data_i
);
23,8 → 23,8
endtask
 
task automatic cpu_read_data (
input [X_NODE_NUM_WIDTH-1 : 0] src_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] src_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_y_addr,
input [CPU_ADR_WIDTH-1 : 0] addr_i,
output[31 : 0] data_o
46,10 → 46,10
 
task automatic send_pck(
input [X_NODE_NUM_WIDTH-1 : 0] src_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] src_y_addr,
input [X_NODE_NUM_WIDTH-1 : 0] des_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] des_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_y_addr,
input [`NI_PCK_SIZE_WIDTH-1 : 0] pck_size,
input [`NI_PTR_WIDTH-1 : 0] pck_ptr
 
74,8 → 74,8
 
 
task automatic send_pck_cmd (
input [X_NODE_NUM_WIDTH-1 : 0] src_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] src_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_y_addr,
input [`NI_PCK_SIZE_WIDTH-1 : 0] pck_size,
input [`NI_PTR_WIDTH-1 : 0] pck_ptr
92,10 → 92,10
////////////////////////////////////
 
task automatic write_hdr (
input [X_NODE_NUM_WIDTH-1 : 0] src_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] src_y_addr,
input [X_NODE_NUM_WIDTH-1 : 0] des_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] des_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_y_addr,
input [`NI_PTR_WIDTH-1 : 0] pck_ptr
 
 
106,7 → 106,7
begin : hdr1
addr_i = pck_ptr>>2;
data_i = {{PORT_NUM_BCD_WIDTH{1'b0}},des_x_addr,des_y_addr,{(32-PORT_NUM_BCD_WIDTH-X_NODE_NUM_WIDTH-Y_NODE_NUM_WIDTH){1'b0}}};
data_i = {{PORT_NUM_BCD_WIDTH{1'b0}},des_x_addr,des_y_addr,{(32-PORT_NUM_BCD_WIDTH-`X_Y_ADDR_WIDTH_IN_HDR-`X_Y_ADDR_WIDTH_IN_HDR){1'b0}}};
cpu_write_data ( src_x_addr, src_y_addr, addr_i,data_i);
end
115,8 → 115,8
///////////////////////////////////
 
task automatic recive_pck(
input [X_NODE_NUM_WIDTH-1 : 0] src_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] src_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_y_addr,
input [12 : 0] pck_size,
input [18 : 0] pck_ptr
 
148,15 → 148,15
/*
task automatic write_prog_hdr (
input [X_NODE_NUM_WIDTH-1 : 0] src_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] src_y_addr,
input [X_NODE_NUM_WIDTH-1 : 0] des_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] des_y_addr
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_y_addr
 
);
begin : hdr2
ni_s_addr_i [`CORE_NUM(src_x_addr,src_y_addr)] = SLAVE_WR_PCK_ADDR;
ram_data[`CORE_NUM(src_x_addr,src_y_addr)]= {{PORT_NUM_BCD_WIDTH{1'b0}},des_x_addr,des_y_addr,{(32-PORT_NUM_BCD_WIDTH-X_NODE_NUM_WIDTH-Y_NODE_NUM_WIDTH-1){1'b0}}, 1'b1 };
ram_data[`CORE_NUM(src_x_addr,src_y_addr)]= {{PORT_NUM_BCD_WIDTH{1'b0}},des_x_addr,des_y_addr,{(32-PORT_NUM_BCD_WIDTH-`X_Y_ADDR_WIDTH_IN_HDR-`X_Y_ADDR_WIDTH_IN_HDR-1){1'b0}}, 1'b1 };
ram_addr[`CORE_NUM(src_x_addr,src_y_addr)]= 0;
@ (posedge clk) # 1 ram_we[`CORE_NUM(src_x_addr,src_y_addr)] = 1'b1;
@ (posedge clk) # 1 ram_we[`CORE_NUM(src_x_addr,src_y_addr)] = 1'b0;
168,10 → 168,10
///////////////////////////////////////////////
 
task automatic send_prog_pck(
input [X_NODE_NUM_WIDTH-1 : 0] src_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] src_y_addr,
input [X_NODE_NUM_WIDTH-1 : 0] des_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] des_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] src_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_y_addr,
input [12 : 0] pck_size,
input [18 : 0] pck_ptr
 
189,8 → 189,8
////////////////////////////////////////////////
 
task automatic update_cmd_mem (
input [X_NODE_NUM_WIDTH-1 : 0] des_x_addr,
input [Y_NODE_NUM_WIDTH-1 : 0] des_y_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_x_addr,
input [`X_Y_ADDR_WIDTH_IN_HDR-1 : 0] des_y_addr,
input [31 : 0] jtag_mem_start_addr,
input [31 : 0] pckt_size,
input [31 : 0] sdram_start_addr
198,7 → 198,7
begin : update
@(posedge clk) # 1 cmd_we = 1'b1;
cmd_addr = 1;
cmd_data ={{(32-X_NODE_NUM_WIDTH-Y_NODE_NUM_WIDTH){1'b0}},des_x_addr,des_y_addr};
cmd_data ={{(32-`X_Y_ADDR_WIDTH_IN_HDR-`X_Y_ADDR_WIDTH_IN_HDR){1'b0}},des_x_addr,des_y_addr};
@(posedge clk) # 1 cmd_we = 1'b1;
cmd_addr = 2;
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/NoC/ext_ram_nic.v
72,7 → 72,7
localparam PORT_NUM_BCD_WIDTH = log2(PORT_NUM);
localparam X_NODE_NUM_WIDTH = log2(X_NODE_NUM);
localparam Y_NODE_NUM_WIDTH = log2(Y_NODE_NUM);
localparam HDR_ZERO_NUM = (32 - (2*(X_NODE_NUM_WIDTH+Y_NODE_NUM_WIDTH)) - PORT_NUM_BCD_WIDTH);
localparam HDR_ZERO_NUM = (32 - (4*`X_Y_ADDR_WIDTH_IN_HDR) - PORT_NUM_BCD_WIDTH);
localparam STATUSE_NUM = 8;
localparam IDEAL = 1;
104,6 → 104,7
reg src_en,addr_capture_en, pck_size_en,pck_size_dec;
reg [X_NODE_NUM_WIDTH-1 :0] dest_x_addr,dest_x_addr_next;
reg [Y_NODE_NUM_WIDTH-1 :0] dest_y_addr,dest_y_addr_next;
wire [`X_Y_ADDR_WIDTH_IN_HDR-1 :0] dest_x_addr_hdr,dest_y_addr_hdr;
reg wr_reg,wr_reg_next; // 1 : write, 0 : read
reg ack_reg,ack_reg_next; // 1: ack required 0: no need
reg ovc_wr;
132,7 → 133,7
assign in_vc_num = flit_in [`FLIT_IN_VC_LOC ];
//assign fifo_vc_num = fifo_flit_out [`FLIT_IN_VC_LOC ];
//assign fifo_hdr_flg = fifo_flit_out [`FLIT_HDR_FLG_LOC ];
//assign fifo_hdr_flg = fifo_flit_out [`FLIT_HDR_FLG_LOC ];
assign fifo_tail_flg = fifo_flit_out [`FLIT_TAIL_FLAG_LOC ];
assign cand_ivc_selected = |candidate_ivc;
141,12 → 142,22
assign all_ovc_full = & full_ovc;
assign cand_ovc_full = |(full_ovc & cand_ovc) ;
assign flit_out_wr = (ram_readdatavalid | wr_hdr | wr_tail);
assign flit_out = (wr_hdr) ? {`HDR_FLIT,cand_ovc,port_num,dest_x_addr,dest_y_addr,SW_X_ADDR[X_NODE_NUM_WIDTH-1 : 0],SW_Y_ADDR[Y_NODE_NUM_WIDTH-1 : 0],{HDR_ZERO_NUM {1'b0}}}:
assign flit_out = (wr_hdr) ? {`HDR_FLIT,cand_ovc,port_num,dest_x_addr_hdr,dest_y_addr_hdr,SW_X_ADDR[`X_Y_ADDR_WIDTH_IN_HDR-1 : 0],SW_Y_ADDR[`X_Y_ADDR_WIDTH_IN_HDR-1 : 0],{HDR_ZERO_NUM {1'b0}}}:
{flit_type,cand_ovc,ram_readdata};
assign flit_type = (wr_tail ||(rd_valid_counter == 1 && rd_busy)) ? `TAIL_FLIT : `BODY_FLIT;
assign ram_address = addr_counter;
assign credit_out =(fifo_rd) ? candidate_ivc : {VC_NUM_PER_PORT{1'b0}};
assign ram_byteenable_n = 4'd0;
assign ram_byteenable_n = 4'd0;
generate
if(X_NODE_NUM_WIDTH == `X_Y_ADDR_WIDTH_IN_HDR) assign dest_x_addr_hdr = dest_x_addr;
else assign dest_x_addr_hdr = {{(`X_Y_ADDR_WIDTH_IN_HDR-X_NODE_NUM_WIDTH){1'b0}},dest_x_addr};
if(Y_NODE_NUM_WIDTH == `X_Y_ADDR_WIDTH_IN_HDR) assign dest_y_addr_hdr = dest_y_addr;
else assign dest_y_addr_hdr = {{(`X_Y_ADDR_WIDTH_IN_HDR-Y_NODE_NUM_WIDTH){1'b0}},dest_y_addr};
endgenerate
 
//assign fifo_not_empty & ~ivc_busy;
fifo_buffer #(
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/NoC/ni.v
28,7 → 28,7
must be updated by cpu in the first word of the packet
3-status register: provide information about the current status of the router
status_reg = {all_vcs_full,any_vc_has_data,rd_no_pck_err,rd_ovr_size_err,rd_done,wr_done};
status_reg = {all_vcs_full,any_vc_has_data,rd_no_pck_err,rd_ovr_size_err,rd_done,wr_done};
RD/WR registers ={pck_size_next,memory_ptr_next}
Info: monemi@fkegraduate.utm.my
121,13 → 121,14
localparam SLAVE_WR_PCK_ADDR = 1;
localparam SLAVE_STATUS_ADDR = 2;
localparam NUMBER_OF_STATUS = 6;
localparam NUMBER_OF_STATUS = 7;
localparam IDEAL = 1;
localparam READ_MEM_PCK_HDR = 2;
localparam ASSIGN_PORT_VC = 4;
localparam WR_ON_FIFO = 8;
localparam WR_ON_RAM = 16;
localparam PROG_WR = 32;
localparam SEND_HDR = 8;
localparam WR_ON_FIFO = 16;
localparam WR_ON_RAM = 32;
localparam PROG_WR = 64;
localparam PORT_NUM_BCD_WIDTH = log2(PORT_NUM);
140,6 → 141,7
//avalon slave interface signals
wire s_chipselect, s_write,s_read, s_waitrequest;
wire [WS_ADDR_WIDTH-1 :0] s_address;
263,8 → 265,8
assign flit_out = {wr_flit_type,cand_wr_vc,m_pyld};
//assign s_waitrequest = s_write & (ps!= IDEAL ) & (s_address==SLAVE_RD_PCK_ADDR | s_address==SLAVE_WR_PCK_ADDR );
assign dest_x_addr = m_readdata[32-PORT_NUM_BCD_WIDTH-1 : 32-PORT_NUM_BCD_WIDTH-X_NODE_NUM_WIDTH ];
assign dest_y_addr = m_readdata[32-PORT_NUM_BCD_WIDTH-X_NODE_NUM_WIDTH-1 : 32-PORT_NUM_BCD_WIDTH-X_NODE_NUM_WIDTH-Y_NODE_NUM_WIDTH ];
assign dest_x_addr = m_readdata[`DES_X_ADDR_LOC ];
assign dest_y_addr = m_readdata[`DES_Y_ADDR_LOC ];
assign m_pyld = (port_num_en_del )? {port_num_reg,m_readdata[32-PORT_NUM_BCD_WIDTH-1: 0]} : m_readdata;
278,7 → 280,7
//status register
assign status_reg = {all_vcs_full,any_vc_has_data,rd_no_pck_err,rd_ovr_size_err,rd_done,wr_done};
assign s_readdata = status_reg;
assign prog_mode_en_next = flit_in_hdr_flg & (flit_in [`JTAG_PROG_LOC]== 1'b1);
assign prog_mode_en_next = flit_in_hdr_flg & (flit_in [`FLIT_IN_WR_RAM_LOC]== 1'b1);
generate
if(WM_ADDR_WIDTH > PTR_WIDTH) assign m_address = memory_ptr+counter+(~m_waitrequest & read_burst);
448,22 → 450,22
end //READ_MEM_PCK_HDR:
ASSIGN_PORT_VC : begin
if(~m_waitrequest) begin
ns = WR_ON_FIFO;
ns = SEND_HDR;
rd_mem_en = 1'b1;
counter_increase = 1'b1;
cand_wr_vc_en = 1'b1;
port_num_en = 1'b1;
hdr_write_next = 1'b1;
end else rd_mem_en = 1'b1;
end else rd_mem_en = 1'b1;
end
SEND_HDR: begin
ns = WR_ON_FIFO;
wr_flit_type = HDR_FLIT;
hdr_write_next = 1'b0;
flit_out_wr = 1'b1;
end
WR_ON_FIFO: begin
read_burst = 1'b1;
if(hdr_write)begin
wr_flit_type = HDR_FLIT ;
hdr_write_next = 1'b0;
flit_out_wr = 1'b1;
end
if(!m_waitrequest) begin
if(pck_eq_counter) begin
flit_out_wr = 1'b1;
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/IP_core/aeMB_IP.v
19,6 → 19,7
Purpose:
SoC with one aeMB processor, wishbone bus,ni,ext_int, gpio and timer
 
Info: monemi@fkegraduate.utm.my
35,31 → 36,49
parameter NI_CTRL_SIMULATION = "aeMB",
parameter AEMB_RAM_WIDTH_IN_WORD = `AEMB_RAM_WIDTH_IN_WORD_DEF,
parameter RAM_EN = 1,
parameter NOC_EN = 1,
parameter NOC_EN = 0,
parameter GPIO_EN = 1,
parameter GPIO_PORT_NUM = 8,
parameter GPIO_PORT_WIDTH = 7,
parameter GPIO_WIDTH = GPIO_PORT_NUM * GPIO_PORT_WIDTH,
parameter EXT_INT_EN = 1,
parameter TIMER_EN = 1,
parameter INT_CTRL_EN = 1,
//wishbone bus parameters
parameter DATA_WIDTH = 32, // maximum data width
parameter ADDR_WIDTH = 32,
parameter SEL_WIDTH = 4,
parameter TAG_WIDTH = 3, // CTI
//aeMB parameter
parameter AEMB_IWB = 32, ///< INST bus width
parameter AEMB_DWB = 32, ///< DATA bus width
parameter AEMB_XWB = 7, ///< XCEL bus width
//external int parameters
parameter EXT_INT_NUM = 3,//max 32
parameter EXT_INT_ADDR_WIDTH = 3,
 
// CACHE PARAMETERS
parameter AEMB_ICH = 11, ///< instruction cache size
parameter AEMB_IDX = 6,///< cache index size
//timet parameters
parameter TIMER_ADDR_WIDTH =3,
parameter TIMER_INT_NUM =1,
 
// OPTIONAL HARDWARE
parameter AEMB_BSF = 1, ///< optional barrel shift
parameter AEMB_MUL = 1, ///< optional multiplier
//int_ctrl parameters
parameter INT_CTRL_INT_NUM = (EXT_INT_EN*EXT_INT_NUM) + (TIMER_EN * TIMER_INT_NUM),
parameter INT_CTRL_ADDR_WIDTH =3,
// noc parameter
//gpio parameters
parameter IO_EN = 0,
parameter I_EN = 0,
parameter O_EN = 1,
parameter IO_PORT_WIDTH = "0",
parameter I_PORT_WIDTH = "0",
parameter O_PORT_WIDTH = "7,7,7,7,7,7,7,7",
parameter IO_WIDTH =(IO_EN)? sum_of_all(IO_PORT_WIDTH) : 1,
parameter I_WIDTH =(I_EN )? sum_of_all(I_PORT_WIDTH) : 1,
parameter O_WIDTH =(O_EN )? sum_of_all(O_PORT_WIDTH) : 1,
parameter EXT_INT_WIDTH =(EXT_INT_EN)? EXT_INT_NUM : 1,
parameter GPIO_ADDR_WIDTH = 15,
 
// noc parameter
parameter TOPOLOGY = "TORUS", // "MESH" or "TORUS"
parameter ROUTE_ALGRMT = "XY", //"XY" or "MINIMAL"
parameter VC_NUM_PER_PORT = 2,
68,19 → 87,37
parameter PORT_NUM = 5,
parameter X_NODE_NUM = 4,
parameter Y_NODE_NUM = 3,
parameter SW_X_ADDR = 2,
parameter SW_Y_ADDR = 1,
parameter SW_X_ADDR = 0,
parameter SW_Y_ADDR = 0,
parameter NOC_S_ADDR_WIDTH = 3,
parameter CORE_NUMBER = `CORE_NUM(SW_X_ADDR,SW_Y_ADDR),
parameter NIC_CONNECT_PORT = 0, // 0:Local 1:East, 2:North, 3:West, 4:South
parameter FLIT_TYPE_WIDTH = 2,
parameter VC_ID_WIDTH = VC_NUM_PER_PORT,
parameter FLIT_WIDTH = PYLD_WIDTH+FLIT_TYPE_WIDTH+VC_ID_WIDTH
parameter FLIT_WIDTH = PYLD_WIDTH+FLIT_TYPE_WIDTH+VC_ID_WIDTH,
//aeMB parameters
parameter AEMB_IWB = 32, ///< INST bus width
parameter AEMB_DWB = 32, ///< DATA bus width
parameter AEMB_XWB = 7, ///< XCEL bus width
 
// CACHE PARAMETERS
parameter AEMB_ICH = 11, ///< instruction cache size
parameter AEMB_IDX = 6,///< cache index size
 
// OPTIONAL HARDWARE
parameter AEMB_BSF = 1, ///< optional barrel shift
parameter AEMB_MUL = 1 ///< optional multiplier
)(
input clk,reset_in,sys_int_i,sys_ena_i,
output [GPIO_WIDTH-1:0] gpio,
input clk,reset_in,sys_ena_i,
input [EXT_INT_WIDTH-1 :0] ext_int_i,
inout [IO_WIDTH-1 :0] gpio_io,
input [I_WIDTH-1 :0] gpio_i,
output [O_WIDTH-1 :0] gpio_o,
// NOC interfaces
output [FLIT_WIDTH-1 :0] flit_out,
output flit_out_wr,
114,6 → 151,9
`define ADD_BUS_LOCALPARAM 1
`include "../parameter.v"
 
`define ADD_FUNCTION 1
`include "../my_functions.v"
 
//synthesis translate_off
`define SIMULATION_CODE 1
//synthesis translate_on
141,7 → 181,10
 
 
wire sys_int_i,timer_irq;
wire [EXT_INT_NUM-1 : 0 ] ext_int_o;
wire [INT_CTRL_INT_NUM-1 : 0 ] int_ctrl_in;
wire [SLAVE_ADDR_ARRAY_WIDTH-1 : 0 ] bus_slave_adr_o;
wire [SLAVE_DATA_ARRAY_WIDTH-1 : 0 ] bus_slave_dat_o;
wire [SLAVE_SEL_ARRAY_WIDTH-1 : 0 ] bus_slave_sel_o;
332,12 → 375,18
if(GPIO_EN) begin : gpio_gen
 
localparam GPIO_ADDR_WIDTH = (GPIO_PORT_NUM==1) ? 2 : log2(GPIO_PORT_NUM*2);
output_port #(
.PORT_NUM (GPIO_PORT_NUM),
.PORT_WIDTH (GPIO_PORT_WIDTH)
gpio #(
.DATA_WIDTH (DATA_WIDTH),
.SEL_WIDTH (SEL_WIDTH),
.IO_EN (IO_EN),
.I_EN (I_EN),
.O_EN (O_EN),
.IO_PORT_WIDTH (IO_PORT_WIDTH),
.I_PORT_WIDTH (I_PORT_WIDTH),
.O_PORT_WIDTH (O_PORT_WIDTH)
)
the_seven_segment
the_gpio
(
.clk (clk),
.reset (reset),
348,62 → 397,156
.sa_we_i (slave_we_i [GPIO_ID]),
.sa_ack_o (slave_ack_o [GPIO_ID]),
.sa_dat_o (slave_dat_o [GPIO_ID]),
.gpio_out (gpio )
.gpio_io (gpio_io),
.gpio_i (gpio_i),
.gpio_o (gpio_o)
);
end //GPIO_EN
if(NOC_EN) begin : noc_gen
end //GPIO_EN
else begin
assign gpio_io = {IO_WIDTH{1'bX}};
assign gpio_o = {O_WIDTH{1'bX}};
end
if(NOC_EN) begin : noc_gen
ni #(
.TOPOLOGY (TOPOLOGY),
.ROUTE_ALGRMT (ROUTE_ALGRMT),
.VC_NUM_PER_PORT (VC_NUM_PER_PORT),
.PYLD_WIDTH (PYLD_WIDTH),
.BUFFER_NUM_PER_VC (BUFFER_NUM_PER_VC),
.PORT_NUM (PORT_NUM),
.X_NODE_NUM (X_NODE_NUM),
.Y_NODE_NUM (Y_NODE_NUM),
.SW_X_ADDR (SW_X_ADDR),
.SW_Y_ADDR (SW_Y_ADDR),
.NIC_CONNECT_PORT (NIC_CONNECT_PORT),
.RAM_WIDTH_IN_WORD (AEMB_RAM_WIDTH_IN_WORD),
.W_DATA_WIDTH (DATA_WIDTH ),
.WS_ADDR_WIDTH (NOC_S_ADDR_WIDTH)
)
ni_inst
(
.reset (reset),
.clk (clk) ,
.flit_out (flit_out) ,
.flit_out_wr (flit_out_wr) ,
.credit_in (credit_in) ,
.flit_in (flit_in) ,
.flit_in_wr (flit_in_wr) ,
.credit_out (credit_out) ,
.TOPOLOGY (TOPOLOGY),
.ROUTE_ALGRMT (ROUTE_ALGRMT),
.VC_NUM_PER_PORT (VC_NUM_PER_PORT),
.PYLD_WIDTH (PYLD_WIDTH),
.BUFFER_NUM_PER_VC (BUFFER_NUM_PER_VC),
.PORT_NUM (PORT_NUM),
.X_NODE_NUM (X_NODE_NUM),
.Y_NODE_NUM (Y_NODE_NUM),
.SW_X_ADDR (SW_X_ADDR),
.SW_Y_ADDR (SW_Y_ADDR),
.NIC_CONNECT_PORT (NIC_CONNECT_PORT),
.RAM_WIDTH_IN_WORD (AEMB_RAM_WIDTH_IN_WORD),
.W_DATA_WIDTH (DATA_WIDTH ),
.WS_ADDR_WIDTH (NOC_S_ADDR_WIDTH)
)
ni_inst
(
.reset (reset),
.clk (clk) ,
.flit_out (flit_out) ,
.flit_out_wr (flit_out_wr) ,
.credit_in (credit_in) ,
.flit_in (flit_in) ,
.flit_in_wr (flit_in_wr) ,
.credit_out (credit_out) ,
.s_dat_i (slave_dat_i [NOC_S_ID]) ,
.s_addr_i (slave_addr_i [NOC_S_ID][`NOC_S_ADDR_RANG]) ,
.s_stb_i (slave_stb_i [NOC_S_ID]) ,
.s_we_i (slave_we_i [NOC_S_ID]) ,
.s_dat_o (slave_dat_o [NOC_S_ID]) ,
.s_ack_o (slave_ack_o [NOC_S_ID]) ,
.m_sel_o (master_sel_o [NOC_M_ID]),
.m_dat_o (master_dat_o [NOC_M_ID]) ,
.m_addr_o (master_adr_o [NOC_M_ID][AEMB_RAM_WIDTH_IN_WORD-1 : 0]) ,
.m_cti_o (master_tag_o [NOC_M_ID]) ,
.m_stb_o (master_stb_o [NOC_M_ID]) ,
.m_cyc_o (master_cyc_o [NOC_M_ID]) ,
.m_we_o (master_wre_o [NOC_M_ID]) ,
.m_dat_i (master_dat_i [NOC_M_ID]) ,
.m_ack_i (master_ack_i [NOC_M_ID])
);
 
assign master_adr_o [NOC_M_ID] [ADDR_WIDTH-1 : AEMB_RAM_WIDTH_IN_WORD] = {ADDR_WIDTH-AEMB_RAM_WIDTH_IN_WORD{1'b0}};
end // NOC_EN
else begin
assign flit_out ={FLIT_WIDTH{1'bX}};
assign flit_out_wr = 1'bX;
assign credit_out ={VC_NUM_PER_PORT{1'bX}};
end
if(EXT_INT_EN) begin : ext_in_gen
.s_dat_i (slave_dat_i [NOC_S_ID]) ,
.s_addr_i (slave_addr_i [NOC_S_ID][`NOC_S_ADDR_RANG]) ,
.s_stb_i (slave_stb_i [NOC_S_ID]) ,
.s_we_i (slave_we_i [NOC_S_ID]) ,
.s_dat_o (slave_dat_o [NOC_S_ID]) ,
.s_ack_o (slave_ack_o [NOC_S_ID]) ,
ext_int #(
.EXT_INT_NUM (EXT_INT_NUM),//max 32
.ADDR_WIDTH (EXT_INT_ADDR_WIDTH)
)the_ext_int
(
.clk (clk),
.reset (reset),
.sa_dat_i (slave_dat_i [EXT_INT_ID][EXT_INT_NUM-1 :0]) ,
.sa_sel_i (slave_sel_i [EXT_INT_ID]),
.sa_addr_i (slave_addr_i [EXT_INT_ID][EXT_INT_ADDR_WIDTH-1 :0]) ,
.sa_stb_i (slave_stb_i [EXT_INT_ID]) ,
.sa_we_i (slave_we_i [EXT_INT_ID]) ,
.sa_dat_o (slave_dat_o [EXT_INT_ID][EXT_INT_NUM-1 :0]) ,
.sa_ack_o (slave_ack_o [EXT_INT_ID]) ,
.m_sel_o (master_sel_o [NOC_M_ID]),
.m_dat_o (master_dat_o [NOC_M_ID]) ,
.m_addr_o (master_adr_o [NOC_M_ID][AEMB_RAM_WIDTH_IN_WORD-1 : 0]) ,
.m_cti_o (master_tag_o [NOC_M_ID]) ,
.m_stb_o (master_stb_o [NOC_M_ID]) ,
.m_cyc_o (master_cyc_o [NOC_M_ID]) ,
.m_we_o (master_wre_o [NOC_M_ID]) ,
.m_dat_i (master_dat_i [NOC_M_ID]) ,
.m_ack_i (master_ack_i [NOC_M_ID])
);
.ext_int_i (ext_int_i),
.ext_int_o (ext_int_o)//output to the interrupt controller
);
assign slave_dat_o [EXT_INT_ID][DATA_WIDTH-1 :EXT_INT_NUM] = {(DATA_WIDTH-EXT_INT_NUM){1'b0}};
end // EXT_INT_EN
if(TIMER_EN) begin :timer_gen
// wire timer_irq;
timer #(
.ADDR_WIDTH (TIMER_ADDR_WIDTH)
)
the_timer
(
.clk (clk),
.reset (reset),
.sa_dat_i (slave_dat_i [TIMER_ID]) ,
.sa_sel_i (slave_sel_i [TIMER_ID]),
.sa_addr_i (slave_addr_i [TIMER_ID][TIMER_ADDR_WIDTH-1 :0]) ,
.sa_stb_i (slave_stb_i [TIMER_ID]) ,
.sa_we_i (slave_we_i [TIMER_ID]) ,
.sa_dat_o (slave_dat_o [TIMER_ID]) ,
.sa_ack_o (slave_ack_o [TIMER_ID]),
.irq (timer_irq)
);
end //TIMER_EN
if(INT_CTRL_EN) begin : int_ctrl_gen
int_ctrl #(
.INT_NUM (INT_CTRL_INT_NUM),
.DATA_WIDTH (DATA_WIDTH),
.ADDR_WIDTH (INT_CTRL_ADDR_WIDTH)
)
int_ctrl_gen
(
.clk (clk),
.reset (reset),
.sa_dat_i (slave_dat_i [INT_CTRL_ID]) ,
.sa_sel_i (slave_sel_i [INT_CTRL_ID]),
.sa_addr_i (slave_addr_i [INT_CTRL_ID][INT_CTRL_ADDR_WIDTH-1 :0]) ,
.sa_stb_i (slave_stb_i [INT_CTRL_ID]) ,
.sa_we_i (slave_we_i [INT_CTRL_ID]) ,
.sa_dat_o (slave_dat_o [INT_CTRL_ID]) ,
.sa_ack_o (slave_ack_o [INT_CTRL_ID]),
.int_i (int_ctrl_in),
.int_o (sys_int_i)
);
if(EXT_INT_EN && TIMER_EN) assign int_ctrl_in = {timer_irq,ext_int_o};
else if(EXT_INT_EN) assign int_ctrl_in = ext_int_o;
else assign int_ctrl_in = timer_irq;
end //INT_CTRL_EN
else begin
assign sys_int_i= 1'b0;
end
 
assign master_adr_o [NOC_M_ID] [ADDR_WIDTH-1 : AEMB_RAM_WIDTH_IN_WORD] = {ADDR_WIDTH-AEMB_RAM_WIDTH_IN_WORD{1'b0}};
 
 
 
end // NOC_EN
endgenerate
 
wishbone_bus #(
411,6 → 554,10
.RAM_EN (RAM_EN),
.NOC_EN (NOC_EN),
.GPIO_EN (GPIO_EN),
.EXT_INT_EN (EXT_INT_EN),
.TIMER_EN (TIMER_EN),
.INT_CTRL_EN (INT_CTRL_EN),
.MASTER_NUM_ (MASTER_NUM),
.SLAVE_NUM_ (SLAVE_NUM),
.ADDR_WIDTH (ADDR_WIDTH),
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/IP_core/gpio.v
19,66 → 19,245
Purpose:
a simple wishbone compatible output port
 
a simple wishbone compatible output/input port
each port has three registers.
addr
0 DIR_REG
1 WRITE_REG port 0
2 READ_REG
32 DIR_REG
33 WRITE_REG port 1
34 READ_REG
.
.
.
Info: monemi@fkegraduate.utm.my
 
****************************************************************/
 
 
`include "../define.v"
`include "../define.v"
 
module output_port #(
parameter DATA_WIDTH = 32,
parameter PORT_WIDTH = 7,
parameter PORT_NUM = 4,
parameter SEL_WIDTH = 4,
parameter ADDR_WIDTH = (PORT_NUM==1) ? 2 : log2(PORT_NUM*2),
parameter OUT_WIDTH = PORT_NUM * PORT_WIDTH
`define PORT_WIDTH(PORT,i) extract_value(PORT,i)
`define PORT_LOC_START(PORT,i) start_loc(PORT,i)
`define PORT_LOC_END(PORT,i) `PORT_LOC_START(PORT,i)+ `PORT_WIDTH(PORT,i) -1'b1
`define PORT_LOC(PORT,i) `PORT_LOC_END(PORT,i) : `PORT_LOC_START(PORT,i)
 
module gpio #(
parameter DATA_WIDTH = 32,
parameter SEL_WIDTH = 4,
parameter IO_EN = 0,
parameter I_EN = 0,
parameter O_EN = 1,
// port(n-1) ... port0
parameter IO_PORT_WIDTH = "17,4,10,30",
parameter I_PORT_WIDTH = "17,4",
parameter O_PORT_WIDTH = "10",
 
parameter ADDR_TYPE_WIDTH = 5,
parameter ADDR_PORT_WIDTH = 5,
parameter ADDR_REG_WIDTH = 5,
parameter IO_WIDTH =(IO_EN)? sum_of_all(IO_PORT_WIDTH) : 1,
parameter I_WIDTH =(I_EN )? sum_of_all(I_PORT_WIDTH) : 1,
parameter O_WIDTH =(O_EN )? sum_of_all(O_PORT_WIDTH) : 1,
parameter ADDR_WIDTH = ADDR_TYPE_WIDTH+ADDR_PORT_WIDTH+ADDR_REG_WIDTH
)
(
input clk,
input reset,
input [ DATA_WIDTH-1 : 0] sa_dat_i,
input [DATA_WIDTH-1 : 0] sa_dat_i,
input [SEL_WIDTH-1 : 0] sa_sel_i,
input [ADDR_WIDTH-1 : 0] sa_addr_i,
input sa_stb_i,
input sa_we_i,
 
output [ DATA_WIDTH-1 : 0] sa_dat_o,
output sa_ack_o,
output [OUT_WIDTH-1 : 0] gpio_out
 
 
output [DATA_WIDTH-1 : 0] sa_dat_o,
output reg sa_ack_o,
inout [IO_WIDTH-1 : 0] gpio_io,
input [I_WIDTH-1 : 0] gpio_i,
output [O_WIDTH-1 : 0] gpio_o
);
`LOG2
`define ADD_FUNCTION 1
`include "../my_functions.v"
reg [PORT_WIDTH-1 : 0 ] gpio_reg [PORT_NUM-1 : 0];
//port type
localparam GPIO_TYPE_NUM =3;
localparam IO_ADDR_NUM =0;
localparam I_ADDR_NUM =1;
localparam O_ADDR_NUM =2;
assign sa_ack_o = sa_stb_i;
assign sa_dat_o = { {(DATA_WIDTH-PORT_WIDTH){1'b0}}, gpio_reg [sa_addr_i[ADDR_WIDTH-1 : 1] ] };
 
//register per port
localparam DIR_REG =0;
localparam WRITE_REG =1;
localparam READ_REG =2;
genvar i;
localparam IO_PORT_NUM =number_of_port(IO_PORT_WIDTH);
localparam I_PORT_NUM =number_of_port(I_PORT_WIDTH);
localparam O_PORT_NUM =number_of_port(O_PORT_WIDTH);
localparam IO_REG_PER_PORT =3;//dir write read
localparam O_REG_PER_PORT =1;//write
localparam I_REG_PER_PORT =1;//read
localparam IO_ADDR_WIDTH =log2(IO_PORT_NUM*IO_REG_PER_PORT );
localparam I_ADDR_WIDTH =log2(O_PORT_NUM*I_REG_PER_PORT );
localparam O_ADDR_WIDTH =log2(I_PORT_NUM*O_REG_PER_PORT );
wire [DATA_WIDTH-1 : 0] read_mux_in [GPIO_TYPE_NUM-1 :0];
wire [ADDR_TYPE_WIDTH-1 : 0] addr_gpio_type;
wire [ADDR_PORT_WIDTH-1 : 0] addr_gpio_port;
wire [ADDR_REG_WIDTH-1 : 0] addr_gpio_reg;
assign {addr_gpio_type,addr_gpio_port,addr_gpio_reg} = sa_addr_i;
genvar i,j;
generate
for (i=0; i<PORT_NUM; i=i+1'b1) begin : port_lp
always @ (posedge clk or posedge reset) begin
if(reset) begin
gpio_reg[i] <= {PORT_WIDTH{1'b0}};
end else begin
if(sa_stb_i & sa_we_i & i== sa_addr_i[ADDR_WIDTH-1 : 1]) gpio_reg[i] <= sa_dat_i[PORT_WIDTH-1 : 0];
/**********************************
GPIO
*********************************/
 
if(IO_EN)begin : gpio_gen_blk
reg [IO_WIDTH-1 : 0] io_dir;
reg [IO_WIDTH-1 : 0] io_write;
wire [DATA_WIDTH-1 : 0] io_read_mux_in [IO_PORT_NUM-1 :0][IO_REG_PER_PORT-1 : 0];
wire io_addr;
assign io_addr = addr_gpio_type == IO_ADDR_NUM;
for(i=0; i<IO_PORT_NUM ; i=i+1'b1) begin : internal_reg_blk0
always @ (posedge clk or posedge reset) begin
if(reset) begin
io_dir [`PORT_LOC(IO_PORT_WIDTH,i)] <= {`PORT_WIDTH(IO_PORT_WIDTH,i){1'b0}};
io_write [`PORT_LOC(IO_PORT_WIDTH,i)] <= {`PORT_WIDTH(IO_PORT_WIDTH,i){1'b0}};
end else begin
if(sa_stb_i && sa_we_i && io_addr) begin
if( addr_gpio_port == i) begin
if( addr_gpio_reg == DIR_REG ) io_dir [`PORT_LOC(IO_PORT_WIDTH,i)] <= sa_dat_i[`PORT_WIDTH(IO_PORT_WIDTH,i)-1'b1 : 0];
if( addr_gpio_reg == WRITE_REG ) io_write [`PORT_LOC(IO_PORT_WIDTH,i)] <= sa_dat_i[`PORT_WIDTH(IO_PORT_WIDTH,i)-1'b1 : 0];
end
end //sa_stb_i && sa_we_i
end //reset
end//always
assign io_read_mux_in[i][DIR_REG] = {{(DATA_WIDTH-`PORT_WIDTH(IO_PORT_WIDTH,i)){1'b0}},io_dir [`PORT_LOC(IO_PORT_WIDTH,i)]};
assign io_read_mux_in[i][WRITE_REG] = {{(DATA_WIDTH-`PORT_WIDTH(IO_PORT_WIDTH,i)){1'b0}},io_write [`PORT_LOC(IO_PORT_WIDTH,i)]};
assign io_read_mux_in[i][READ_REG] = {{(DATA_WIDTH-`PORT_WIDTH(IO_PORT_WIDTH,i)){1'b0}},gpio_io [`PORT_LOC(IO_PORT_WIDTH,i)]};
for(j=0;j<`PORT_WIDTH(IO_PORT_WIDTH,i); j=j+1'b1) begin: out_pin_assign0
assign gpio_io[`PORT_LOC_START(IO_PORT_WIDTH,i)+j] = (io_dir[`PORT_LOC_START(IO_PORT_WIDTH,i)+j]) ? io_write [`PORT_LOC_START(IO_PORT_WIDTH,i)+j] : 1'bZ;
end
end
end//for
assign read_mux_in[IO_ADDR_NUM] = io_read_mux_in[addr_gpio_port ][addr_gpio_reg];
end // GPIO_EN
else assign read_mux_in[IO_ADDR_NUM] = 'hX;
assign gpio_out [(i+1)*PORT_WIDTH-1 : i*PORT_WIDTH] = gpio_reg[i];
/**********************************
GPI
*********************************/
if(I_EN) begin : gpi_gen_blk
wire [DATA_WIDTH-1 : 0] i_read_mux_in [I_PORT_NUM-1 : 0];
for(i=0; i<I_PORT_NUM ; i=i+1'b1) begin : internal_reg_blk1
assign i_read_mux_in[i] = {{(DATA_WIDTH-`PORT_WIDTH(I_PORT_WIDTH,i)){1'b0}},gpio_i [`PORT_LOC(I_PORT_WIDTH,i)]};
end//for
assign read_mux_in[I_ADDR_NUM] = i_read_mux_in[addr_gpio_port];
end//GPI_EN
else assign read_mux_in[I_ADDR_NUM] = 'hX;
/**********************************
GPO
*********************************/
 
if(O_EN)begin : gpo_gen_blk
wire [DATA_WIDTH-1 : 0] o_read_mux_in [O_PORT_NUM-1 : 0];
wire o_addr;
reg [O_WIDTH-1 : 0] o_write;
assign o_addr = addr_gpio_type==O_ADDR_NUM ;
for(i=0; i<O_PORT_NUM ; i=i+1'b1) begin : internal_reg_blk2
always @ (posedge clk or posedge reset) begin
if(reset) begin
o_write [`PORT_LOC(O_PORT_WIDTH,i)] <= {`PORT_WIDTH(O_PORT_WIDTH,i){1'b0}};
end else begin
if(sa_stb_i && sa_we_i && o_addr) begin
if( addr_gpio_port == i && addr_gpio_reg == WRITE_REG ) o_write [`PORT_LOC(O_PORT_WIDTH,i)] <= sa_dat_i[`PORT_WIDTH(O_PORT_WIDTH,i)-1'b1 : 0];
end //sa_stb_i && sa_we_i
end //reset
end//always
assign o_read_mux_in[i]= {{(DATA_WIDTH-`PORT_WIDTH(O_PORT_WIDTH,i)){1'b0}},o_write [`PORT_LOC(O_PORT_WIDTH,i)]};
for(j=0;j<`PORT_WIDTH(O_PORT_WIDTH,i); j=j+1'b1) begin: out_pin_assign2
assign gpio_o[`PORT_LOC_START(O_PORT_WIDTH,i)+j] = o_write [`PORT_LOC_START(O_PORT_WIDTH,i)+j];
end
end//for
assign read_mux_in[O_ADDR_NUM] = o_read_mux_in[addr_gpio_port ];
end // GPIO_EN
else assign read_mux_in[O_ADDR_NUM] = 'hX;
endgenerate
 
 
 
reg [DATA_WIDTH-1 : 0] read_reg;
always @(posedge clk) begin
if(reset)begin
read_reg <= {DATA_WIDTH{1'b0}};
sa_ack_o <= 1'b0;
end else begin
if(sa_stb_i && ~sa_we_i) read_reg <= read_mux_in[addr_gpio_type];
sa_ack_o <= sa_stb_i && ~sa_ack_o;
end
end
assign sa_dat_o = read_reg;
endmodule
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/IP_core/int_ctrl.v
0,0 → 1,97
module int_ctrl #(
parameter INT_NUM = 4,
parameter DATA_WIDTH = 32,
parameter SEL_WIDTH = 4,
parameter ADDR_WIDTH = 3
 
 
)
(
input clk,
input reset,
// wishbone interface
input [DATA_WIDTH-1 : 0] sa_dat_i,
input [SEL_WIDTH-1 : 0] sa_sel_i,
input [ADDR_WIDTH-1 : 0] sa_addr_i,
input sa_stb_i,
input sa_we_i,
output [DATA_WIDTH-1 : 0] sa_dat_o,
output reg sa_ack_o,
//intruupt interface
input [INT_NUM-1 : 0 ] int_i,
output int_o
);
localparam [ADDR_WIDTH-1 : 0] MER_REG_ADDR = 0;
localparam [ADDR_WIDTH-1 : 0] IER_REG_ADDR = 1;
localparam [ADDR_WIDTH-1 : 0] IAR_REG_ADDR = 2;
localparam [ADDR_WIDTH-1 : 0] IPR_REG_ADDR = 3;
//internal register
reg [INT_NUM-1 : 0] ipr,ier,iar;
reg [INT_NUM-1 : 0] ipr_next,ier_next,iar_next;
reg [INT_NUM-1 : 0] read,read_next;
reg [1:0] mer,mer_next;
always@(*) begin
mer_next = mer;
ier_next = ier;
iar_next = iar & ~int_i;
ipr_next = (ipr | int_i) & ier;
read_next = read;
if(sa_stb_i )
if(sa_we_i ) begin
case(sa_addr_i)
MER_REG_ADDR: mer_next = sa_dat_i[1:0];
IER_REG_ADDR: ier_next = sa_dat_i[INT_NUM-1 : 0];
IAR_REG_ADDR: begin
iar_next = iar | sa_dat_i[INT_NUM-1 : 0];//set iar by writting 1
ipr_next = ipr & ~sa_dat_i[INT_NUM-1 : 0];//reset ipr by writting 1
end
default: ipr_next = ipr | int_i;
endcase
end//we
else begin
case(sa_addr_i)
MER_REG_ADDR: read_next = mer;
IER_REG_ADDR: read_next = ier;
IAR_REG_ADDR: read_next = iar;
IPR_REG_ADDR: read_next = ipr;
default: read_next = read;
endcase
end
end//stb
always @(posedge clk) begin
if(reset)begin
mer <= 2'b0;
ier <= {INT_NUM{1'b0}};
iar <= {INT_NUM{1'b0}};
ipr <= {INT_NUM{1'b0}};
read <= {INT_NUM{1'b0}};
sa_ack_o <= 1'b0;
end else begin
mer <= mer_next;
ier <= ier_next;
iar <= iar_next;
ipr <= ipr_next;
read <= read_next;
sa_ack_o <= sa_stb_i && ~sa_ack_o;
end
end
assign int_o = ((mer == 2'b11) && (ier & ipr) ) ? 1'b1 :1'b0;
assign sa_dat_o = {{(DATA_WIDTH-INT_NUM){1'b0}},read};
endmodule
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/IP_core/timer.v
0,0 → 1,154
 
`include "../define.v"
 
module timer #(
parameter DATA_WIDTH = 32,
parameter COUNTER_WIDTH = 32,
parameter SEL_WIDTH = 4,
parameter ADDR_WIDTH = 3
 
 
)(
input clk,
input reset,
// wishbone interface
input [DATA_WIDTH-1 : 0] sa_dat_i,
input [SEL_WIDTH-1 : 0] sa_sel_i,
input [ADDR_WIDTH-1 : 0] sa_addr_i,
input sa_stb_i,
input sa_we_i,
output [DATA_WIDTH-1 : 0] sa_dat_o,
output reg sa_ack_o,
//intruupt interface
output irq
);
 
`LOG2
 
localparam TCSR_REG_ADDR = 0; //timer control register
localparam TLR_REG_ADDR = 1; //timer load register
localparam TCMP_REG_ADDR = 2;// timer compare value register
 
localparam MAX_CLK_DEV = 256;
localparam DEV_COUNT_WIDTH= log2(MAX_CLK_DEV);
localparam DEV_CTRL_WIDTH = log2(DEV_COUNT_WIDTH);
 
localparam TCSR_REG_WIDTH = 4+DEV_CTRL_WIDTH;
localparam TCR_REG_WIDTH = TCSR_REG_WIDTH-1;
/***************************
tcr: timer control register
bit
 
6-3: clk_dev_ctrl
3 : timer_isr
2 : rst_on_cmp_value
1 : int_enble_on_cmp_value
0 : timer enable
 
 
 
 
***************************/
reg [TCSR_REG_WIDTH-1 : 0] tcsr;
wire [TCSR_REG_WIDTH-1 : 0] tcsr_next; //timer control register
reg [TCR_REG_WIDTH-1 : 0] tcr_next;
reg timer_isr_next;
 
reg [DEV_COUNT_WIDTH-1 : 0] clk_dev_counter,clk_dev_counter_next;
 
wire [DEV_COUNT_WIDTH-1 : 0] dev_one_hot;
wire [DEV_COUNT_WIDTH-2 : 0] dev_cmp_val;
 
wire timer_en,int_en,rst_on_cmp,timer_isr;
wire clk_dev_rst,counter_rst;
wire [DEV_CTRL_WIDTH-1 : 0] clk_dev_ctrl;
 
 
 
reg [COUNTER_WIDTH-1 : 0] counter,counter_next,cmp,cmp_next,read,read_next;
 
 
 
assign {timer_isr,clk_dev_ctrl,rst_on_cmp,int_en,timer_en} = tcsr;
assign dev_cmp_val = dev_one_hot[DEV_COUNT_WIDTH-1 : 1];
assign clk_dev_rst = clk_dev_counter == dev_cmp_val;
assign counter_rst = (rst_on_cmp)? (counter == cmp) : 1'b0;
assign sa_dat_o = read;
assign irq = timer_isr;
assign tcsr_next ={timer_isr_next,tcr_next};
bcd_to_one_hot #(
.BCD_WIDTH (DEV_CTRL_WIDTH),
.ONE_HOT_WIDTH (DEV_COUNT_WIDTH)
)
conv
(
.bcd_code (clk_dev_ctrl),
.one_hot_code (dev_one_hot)
);
 
always @(posedge clk or posedge reset) begin
if(reset) begin
counter <= {COUNTER_WIDTH{1'b0}};
cmp <= {COUNTER_WIDTH{1'b1}};
clk_dev_counter <= {DEV_COUNT_WIDTH{1'b0}};
tcsr <= {TCR_REG_WIDTH{1'b0}};
read <= {COUNTER_WIDTH{1'b0}};
sa_ack_o <= 1'b0;
end else begin
counter <= counter_next;
cmp <= cmp_next;
clk_dev_counter <= clk_dev_counter_next;
tcsr <= tcsr_next;
read <= read_next;
sa_ack_o <= sa_stb_i && ~sa_ack_o;
end
end
always@(*)begin
counter_next = counter;
clk_dev_counter_next = clk_dev_counter;
timer_isr_next =(timer_isr | (counter_rst & clk_dev_rst) ) & int_en;
tcr_next = tcsr[TCR_REG_WIDTH-1 : 0];
cmp_next = cmp;
read_next = read;
//counters
if(timer_en)begin
if(clk_dev_rst) begin
clk_dev_counter_next = {DEV_COUNT_WIDTH{1'b0}};
if(counter_rst) begin
counter_next = {COUNTER_WIDTH{1'b0}};
end else begin
counter_next = counter +1'b1;
end // count_rst
end else begin
clk_dev_counter_next = clk_dev_counter +1'b1;
end //dev_rst
end//time_en
if(sa_stb_i )begin
if(sa_we_i ) begin
case(sa_addr_i)
TCSR_REG_ADDR: begin
tcr_next = sa_dat_i[TCR_REG_WIDTH-1 : 0];
timer_isr_next = timer_isr & ~sa_dat_i[TCSR_REG_WIDTH-1];// reset isr by writting 1
end
TLR_REG_ADDR: counter_next = sa_dat_i[COUNTER_WIDTH-1 : 0];
TCMP_REG_ADDR: cmp_next = sa_dat_i[COUNTER_WIDTH-1 : 0];
default: cmp_next = cmp;
endcase
end//we
else begin
case(sa_addr_i)
TCSR_REG_ADDR: read_next = tcsr;
TLR_REG_ADDR: read_next = counter;
TCMP_REG_ADDR: read_next = cmp;
default: read_next = read;
endcase
end
end//stb
end//always
 
 
 
endmodule
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/IP_core/bus_addr_cmp.v
2,6 → 2,10
parameter RAM_EN = 1,
parameter NOC_EN = 1,
parameter GPIO_EN = 1,
parameter EXT_INT_EN = 1,
parameter TIMER_EN = 1,
parameter INT_CTRL_EN = 1,
parameter ADDR_PERFIX_ = 8,
parameter SLAVE_NUM_ = 3
)
32,6 → 36,18
end else if(k == GPIO_ID) begin
assign base_start_addr [k] = GPIO_ADDR_START;
assign base_end_addr [k] = GPIO_ADDR_START+ GPIO_BK_NUM;
end else if(k == EXT_INT_ID) begin
assign base_start_addr [k] = EXT_INT_ADDR_START;
assign base_end_addr [k] = EXT_INT_ADDR_START+ EXT_INT_BK_NUM;
end else if(k == TIMER_ID) begin
assign base_start_addr [k] = TIMER_ADDR_START;
assign base_end_addr [k] = TIMER_ADDR_START+ TIMER_BK_NUM;
end else if(k == INT_CTRL_ID) begin
assign base_start_addr [k] = INT_CTRL_ADDR_START;
assign base_end_addr [k] = INT_CTRL_ADDR_START+ INT_CTRL_BK_NUM;
end
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/IP_core/aeMB_mpsoc.v
70,7 → 70,6
`include "../define.v"
 
 
 
module aeMB_mpsoc #(
parameter NI_CTRL_SIMULATION = "aeMB",
/*"aeMB" or "testbench".
79,18 → 78,19
Defining it as "testbench" will remove the processors
in simulation. Hence, the simulation time will be decreased. The tasks to control
NI pins are written in tasks.V file */
//noc parameter
parameter TOPOLOGY = `TOPOLOGY_DEF,
parameter ROUTE_ALGRMT = `ROUTE_ALGRMT_DEF, //"XY" or "MINIMAL"
parameter VC_NUM_PER_PORT = `VC_NUM_PER_PORT_DEF ,
parameter PYLD_WIDTH = `PYLD_WIDTH_DEF,
parameter BUFFER_NUM_PER_VC = `BUFFER_NUM_PER_VC_DEF,
parameter X_NODE_NUM = `X_NODE_NUM_DEF,
parameter Y_NODE_NUM = `Y_NODE_NUM_DEF,
parameter AEMB_RAM_WIDTH_IN_WORD = `AEMB_RAM_WIDTH_IN_WORD_DEF,
parameter NOC_S_ADDR_WIDTH = `NOC_S_ADDR_WIDTH_DEF,
parameter SW_OUTPUT_REGISTERED = 0,// 1: registered , 0 not registered
// external sdram parameter
parameter SDRAM_EN = `SDRAM_EN_DEF,// 0 : disabled 1: enabled
parameter SDRAM_SW_X_ADDR = `SDRAM_SW_X_ADDR_DEF,
parameter SDRAM_SW_Y_ADDR = `SDRAM_SW_Y_ADDR_DEF,
98,20 → 98,36
parameter SDRAM_ADDR_WIDTH = `SDRAM_ADDR_WIDTH_DEF,
parameter CAND_VC_SEL_MODE = 0,
//aeMB parameter
parameter RAM_EN = 1,
parameter NOC_EN = 1,
parameter GPIO_EN = 1,
parameter GPIO_PORT_WIDTH = 1,
parameter GPIO_PORT_NUM = 1,
// processors parameter
//parameter DEV_EN_ARRAY ="IPn:[the specefic value for nth IP];Def:[default value for the rest of IPs]"
parameter RAM_EN_ARRAY = "Def:1",
parameter NOC_EN_ARRAY = "Def:1",
parameter GPIO_EN_ARRAY = "Def:1",
parameter EXT_INT_EN_ARRAY = "IP0_0:1;Def:0",
parameter TIMER_EN_ARRAY = "IP0_0:1;Def:0",
parameter INT_CTRL_EN_ARRAY = "IP0_0:1;Def:0",
//gpio parameters
parameter IO_EN_ARRAY = "IP0_0:1;Def:0",
parameter I_EN_ARRAY = "Def:0",
parameter O_EN_ARRAY = "IP0_1:0;Def:1",
parameter EXT_INT_NUM_ARRAY = "IP0_0:3;Def:0",//max 32
parameter IO_PORT_WIDTH_ARRAY = "Def:1",
parameter I_PORT_WIDTH_ARRAY = "Def:0",
parameter O_PORT_WIDTH_ARRAY = "IP0_0:7,7,7,7,7,7,7,7;IP0_1:0;Def:1",
parameter TOTAL_EXT_INT_NUM = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,EXT_INT_NUM_ARRAY)+1,
parameter TOTAL_IO_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,IO_PORT_WIDTH_ARRAY)+1,
parameter TOTAL_I_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,I_PORT_WIDTH_ARRAY)+1,
parameter TOTAL_O_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,O_PORT_WIDTH_ARRAY)+1,
parameter AEMB_IWB = 32, ///< INST bus width
parameter AEMB_DWB = 32, ///< DATA bus width
//parameter JTAG_INTERFACE_EN = 1, // if disabled the jtag can just send packet but can not recieve any packet
//parameter JTAG_SW_X_ADDR = 0,
//parameter JTAG_SW_Y_ADDR = 0,
//parameter JTAG_ni_CONNECT_PORT = 0,
parameter PORT_NUM = 5,
parameter FLIT_TYPE_WIDTH = 2,
parameter PORT_SEL_WIDTH = PORT_NUM-1,//assum that no port whants to send a packet to itself!
124,14 → 140,18
parameter CPU_ADR_WIDTH = AEMB_DWB-2,
parameter CPU_ADDR_ARRAY_WIDTH = CPU_ADR_WIDTH * TOTAL_ROUTERS_NUM,
parameter CPU_DATA_ARRAY_WIDTH = 32 * TOTAL_ROUTERS_NUM
//parameter RAM_ARRAY_ADDR_WIDTH = M_ADDR_SIZE*TOTAL_ROUTERS_NUM
 
)(
input reset,
input clk,
output [TOTAL_ROUTERS_NUM-1 :0] led,
input [TOTAL_EXT_INT_NUM-1 :0] ext_int_i,
inout [TOTAL_IO_WIDTH-1 :0] gpio_io,
input [TOTAL_I_WIDTH-1 :0] gpio_i,
output [TOTAL_O_WIDTH-1 :0] gpio_o,
output [12 :0] sdram_addr, // sdram_wire.addr
output [1 :0] sdram_ba, // .ba
output sdram_cas_n, // .cas_n
167,8 → 187,11
);
`define ADD_FUNCTION 1
`include "../my_functions.v"
 
 
wire [TOTAL_O_WIDTH-1 : 0] gpio_o_array [TOTAL_ROUTERS_NUM-1 :0];
wire [FLIT_ARRAY_WIDTH-1 : 0] router_flit_in_array [TOTAL_ROUTERS_NUM-1 :0];
wire [PORT_NUM-1 : 0] router_wr_in_en_array [TOTAL_ROUTERS_NUM-1 :0];
189,10 → 212,10
//synthesis translate_off
//In case we want to handle NI interface using testbench not aeMB
wire [AEMB_DWB-1 :2] cpu_adr_i [TOTAL_ROUTERS_NUM-1 :0];
wire [31 :0] cpu_dat_i [TOTAL_ROUTERS_NUM-1 :0];
wire [3 :0] cpu_sel_i [TOTAL_ROUTERS_NUM-1 :0];
wire [31 :0] cpu_dat_o [TOTAL_ROUTERS_NUM-1 :0];
wire [AEMB_DWB-1 : 2] cpu_adr_i [TOTAL_ROUTERS_NUM-1 :0];
wire [31 : 0] cpu_dat_i [TOTAL_ROUTERS_NUM-1 :0];
wire [3 : 0] cpu_sel_i [TOTAL_ROUTERS_NUM-1 :0];
wire [31 : 0] cpu_dat_o [TOTAL_ROUTERS_NUM-1 :0];
//synthesis translate_on
 
205,6 → 228,28
 
for (x=0; x<X_NODE_NUM; x=x+1) begin :x_loop
for (y=0; y<Y_NODE_NUM; y=y+1) begin: y_loop
localparam RAM_EN = s2i(ip_value(x,y,RAM_EN_ARRAY));
localparam NOC_EN = s2i(ip_value(x,y,NOC_EN_ARRAY));
localparam GPIO_EN = s2i(ip_value(x,y,GPIO_EN_ARRAY));
localparam EXT_INT_EN = s2i(ip_value(x,y,EXT_INT_EN_ARRAY));
localparam EXT_INT_NUM = s2i(ip_value(x,y,EXT_INT_NUM_ARRAY));
localparam TIMER_EN = s2i(ip_value(x,y,TIMER_EN_ARRAY));
localparam INT_CTRL_EN = s2i(ip_value(x,y,INT_CTRL_EN_ARRAY));
localparam IO_EN = s2i(ip_value(x,y,IO_EN_ARRAY));
localparam I_EN = s2i(ip_value(x,y,I_EN_ARRAY));
localparam O_EN = s2i(ip_value(x,y,O_EN_ARRAY));
localparam IO_PORT_WIDTH = ip_value(x,y,IO_PORT_WIDTH_ARRAY);
localparam I_PORT_WIDTH = ip_value(x,y,I_PORT_WIDTH_ARRAY);
localparam O_PORT_WIDTH = ip_value(x,y,O_PORT_WIDTH_ARRAY);
localparam EXT_INT_END = end_loc_in_array (x,y,X_NODE_NUM,EXT_INT_NUM_ARRAY);
localparam EXT_INT_STRT = start_loc_in_array (x,y,X_NODE_NUM,EXT_INT_NUM_ARRAY);
localparam IO_END = end_loc_in_array (x,y,X_NODE_NUM,IO_PORT_WIDTH_ARRAY);
localparam IO_STRT = start_loc_in_array (x,y,X_NODE_NUM,IO_PORT_WIDTH_ARRAY);
localparam I_END = end_loc_in_array (x,y,X_NODE_NUM,I_PORT_WIDTH_ARRAY);
localparam I_STRT = start_loc_in_array (x,y,X_NODE_NUM,I_PORT_WIDTH_ARRAY);
localparam O_END = end_loc_in_array (x,y,X_NODE_NUM,O_PORT_WIDTH_ARRAY);
localparam O_STRT = start_loc_in_array (x,y,X_NODE_NUM,O_PORT_WIDTH_ARRAY);
localparam IP_NUM = `CORE_NUM(x,y);
if( SDRAM_EN == 1 && x == SDRAM_SW_X_ADDR && y == SDRAM_SW_Y_ADDR) begin : sdram_gen
230,13 → 275,13
.clk (clk) ,
// NOC interfaces
.flit_out (ni_flit_out [`CORE_NUM(x,y)]),
.flit_out_wr (ni_flit_out_wr [`CORE_NUM(x,y)]),
.credit_in (ni_credit_in [`CORE_NUM(x,y)]),
.flit_out (ni_flit_out [IP_NUM]),
.flit_out_wr (ni_flit_out_wr [IP_NUM]),
.credit_in (ni_credit_in [IP_NUM]),
.flit_in (ni_flit_in [`CORE_NUM(x,y)]),
.flit_in_wr (ni_flit_in_wr [`CORE_NUM(x,y)]),
.credit_out (ni_credit_out [`CORE_NUM(x,y)]) ,
.flit_in (ni_flit_in [IP_NUM]),
.flit_in_wr (ni_flit_in_wr [IP_NUM]),
.credit_out (ni_credit_out [IP_NUM]) ,
.sdram_addr (sdram_addr) ,
.sdram_ba (sdram_ba) ,
252,13 → 297,22
end else begin : aeMB_core_gen
 
 
aeMB_IP #(
.RAM_EN (RAM_EN),
.RAM_EN (RAM_EN),
.NOC_EN (NOC_EN),
.GPIO_EN (GPIO_EN),
.GPIO_PORT_WIDTH (GPIO_PORT_WIDTH),
.GPIO_PORT_NUM (GPIO_PORT_NUM),
.EXT_INT_EN (EXT_INT_EN),
.TIMER_EN (TIMER_EN),
.INT_CTRL_EN (INT_CTRL_EN),
.IO_EN (IO_EN),
.I_EN (I_EN),
.O_EN (O_EN),
.IO_PORT_WIDTH (IO_PORT_WIDTH),
.I_PORT_WIDTH (I_PORT_WIDTH),
.O_PORT_WIDTH (O_PORT_WIDTH),
.EXT_INT_NUM (EXT_INT_NUM),
.AEMB_IWB (AEMB_IWB), ///< INST bus width
.AEMB_DWB (AEMB_DWB), ///< DATA bus width
.NI_CTRL_SIMULATION (NI_CTRL_SIMULATION),
276,35 → 330,41
.SW_Y_ADDR (y),
.NIC_CONNECT_PORT (0), // 0:Local 1:East, 2:North, 3:West, 4:South
.AEMB_RAM_WIDTH_IN_WORD (AEMB_RAM_WIDTH_IN_WORD),
.CORE_NUMBER (`CORE_NUM(x,y))
.CORE_NUMBER (IP_NUM)
)
ip_core
(
.reset_in (reset) ,
.clk (clk) ,
.sys_int_i (1'b0),
.sys_ena_i (1'b1),
.gpio (led [`CORE_NUM(x,y)]),
// .ext_int_i (`assign_mpsoc_pin(ext_int_i,x,y,EXT_INT_NUM_ARRAY)), //((end_loc_in_array(x,y,X_NODE_NUM,EXT_INT_NUM_ARRAY)+1 != start_loc_in_array(x,y,X_NODE_NUM,EXT_INT_NUM_ARRAY))? ext_int_i [end_loc_in_array(x,y,X_NODE_NUM,EXT_INT_NUM_ARRAY) :start_loc_in_array(x,y,X_NODE_NUM,EXT_INT_NUM_ARRAY)]:'hx),
// .gpio_io (`assign_mpsoc_pin(gpio_io,x,y,IO_PORT_WIDTH_ARRAY)),//( [end_loc_in_array(x,y,X_NODE_NUM,IO_PORT_WIDTH_ARRAY) :start_loc_in_array(x,y,X_NODE_NUM,IO_PORT_WIDTH_ARRAY)]),
// .gpio_i (`assign_mpsoc_pin(gpio_i,x,y,I_PORT_WIDTH_ARRAY)),//[end_loc_in_array(x,y,X_NODE_NUM,I_PORT_WIDTH_ARRAY) :start_loc_in_array(x,y,X_NODE_NUM,I_PORT_WIDTH_ARRAY)]),
// .gpio_o (`assign_mpsoc_pin(gpio_o,x,y,O_PORT_WIDTH_ARRAY)), //(gpio_o [end_loc_in_array(x,y,X_NODE_NUM,O_PORT_WIDTH_ARRAY) :start_loc_in_array(x,y,X_NODE_NUM,O_PORT_WIDTH_ARRAY)]),
.ext_int_i (ext_int_i[EXT_INT_END: EXT_INT_STRT]),
.gpio_io (gpio_io [IO_END : IO_STRT]),
.gpio_i (gpio_i [I_END : I_STRT]),
.gpio_o (gpio_o_array[IP_NUM][O_END-O_STRT : 0]),//((O_EN) ? gpio_o [O_END : O_STRT]: 1'bZ)),
// NOC interfaces
.flit_out (ni_flit_out [`CORE_NUM(x,y)]),
.flit_out_wr (ni_flit_out_wr [`CORE_NUM(x,y)]),
.credit_in (ni_credit_in [`CORE_NUM(x,y)]),
.flit_out (ni_flit_out [IP_NUM]),
.flit_out_wr (ni_flit_out_wr [IP_NUM]),
.credit_in (ni_credit_in [IP_NUM]),
.flit_in (ni_flit_in [`CORE_NUM(x,y)]),
.flit_in_wr (ni_flit_in_wr [`CORE_NUM(x,y)]),
.credit_out (ni_credit_out [`CORE_NUM(x,y)])
.flit_in (ni_flit_in [IP_NUM]),
.flit_in_wr (ni_flit_in_wr [IP_NUM]),
.credit_out (ni_credit_out [IP_NUM])
//synthesis translate_off
,
.cpu_dat_i (cpu_dat_i [`CORE_NUM(x,y)]),
.cpu_sel_i (cpu_sel_i [`CORE_NUM(x,y)]),
.cpu_adr_i (cpu_adr_i [`CORE_NUM(x,y)]),
.cpu_stb_i (cpu_stb_i [`CORE_NUM(x,y)]),
.cpu_wre_i (cpu_wre_i [`CORE_NUM(x,y)]),
.cpu_cyc_i (cpu_cyc_i [`CORE_NUM(x,y)]),
.cpu_dat_o (cpu_dat_o [`CORE_NUM(x,y)]),
.cpu_ack_o (cpu_ack_o [`CORE_NUM(x,y)])
.cpu_dat_i (cpu_dat_i [IP_NUM]),
.cpu_sel_i (cpu_sel_i [IP_NUM]),
.cpu_adr_i (cpu_adr_i [IP_NUM]),
.cpu_stb_i (cpu_stb_i [IP_NUM]),
.cpu_wre_i (cpu_wre_i [IP_NUM]),
.cpu_cyc_i (cpu_cyc_i [IP_NUM]),
.cpu_dat_o (cpu_dat_o [IP_NUM]),
.cpu_ack_o (cpu_ack_o [IP_NUM])
//synthesis translate_on
312,6 → 372,8
);
if(O_EN) assign gpio_o [O_END : O_STRT] = gpio_o_array[IP_NUM][O_END-O_STRT : 0];
end
router#(
332,12 → 394,12
)
the_router
(
.wr_in_en_array (router_wr_in_en_array [`CORE_NUM(x,y)]),
.flit_in_array (router_flit_in_array [`CORE_NUM(x,y)]),
.credit_out_array (router_credit_out_array [`CORE_NUM(x,y)]),
.wr_out_en_array (router_wr_out_en_array [`CORE_NUM(x,y)]),
.flit_out_array (router_flit_out_array [`CORE_NUM(x,y)]),
.credit_in_array (router_credit_in_array [`CORE_NUM(x,y)]),
.wr_in_en_array (router_wr_in_en_array [IP_NUM]),
.flit_in_array (router_flit_in_array [IP_NUM]),
.credit_out_array (router_credit_out_array [IP_NUM]),
.wr_out_en_array (router_wr_out_en_array [IP_NUM]),
.flit_out_array (router_flit_out_array [IP_NUM]),
.credit_in_array (router_credit_in_array [IP_NUM]),
.clk (clk),
.reset (reset)
);
355,16 → 417,16
if(x < X_NODE_NUM-1) begin
assign router_flit_in_array [`SELECT_WIRE(x,y,1,FLIT_WIDTH)] = router_flit_out_array [`SELECT_WIRE((x+1),y,3,FLIT_WIDTH)];
assign router_credit_in_array [`SELECT_WIRE(x,y,1,VC_NUM_PER_PORT)] = router_credit_out_array [`SELECT_WIRE((x+1),y,3,VC_NUM_PER_PORT)];
assign router_wr_in_en_array [`CORE_NUM(x,y)][1] = router_wr_out_en_array [`CORE_NUM((x+1),y)][3];
assign router_wr_in_en_array [IP_NUM][1] = router_wr_out_en_array [`CORE_NUM((x+1),y)][3];
end else begin
if(TOPOLOGY == "MESH") begin
assign router_flit_in_array [`SELECT_WIRE(x,y,1,FLIT_WIDTH)] = {FLIT_WIDTH{1'b0}};
assign router_credit_in_array [`SELECT_WIRE(x,y,1,VC_NUM_PER_PORT)] = {VC_NUM_PER_PORT{1'b0}};
assign router_wr_in_en_array [`CORE_NUM(x,y)][1] = 1'b0;
assign router_wr_in_en_array [IP_NUM][1] = 1'b0;
end else if(TOPOLOGY == "TORUS") begin
assign router_flit_in_array [`SELECT_WIRE(x,y,1,FLIT_WIDTH)] = router_flit_out_array [`SELECT_WIRE(0,y,3,FLIT_WIDTH)];
assign router_credit_in_array [`SELECT_WIRE(x,y,1,VC_NUM_PER_PORT)] = router_credit_out_array [`SELECT_WIRE(0,y,3,VC_NUM_PER_PORT)];
assign router_wr_in_en_array [`CORE_NUM(x,y)][1] = router_wr_out_en_array [`CORE_NUM(0,y)][3];
assign router_wr_in_en_array [IP_NUM][1] = router_wr_out_en_array [`CORE_NUM(0,y)][3];
end //topology
end
372,16 → 434,16
if(y>0) begin
assign router_flit_in_array [`SELECT_WIRE(x,y,2,FLIT_WIDTH)] = router_flit_out_array [`SELECT_WIRE(x,(y-1),4,FLIT_WIDTH)];
assign router_credit_in_array [`SELECT_WIRE(x,y,2,VC_NUM_PER_PORT)] = router_credit_out_array [`SELECT_WIRE(x,(y-1),4,VC_NUM_PER_PORT)];
assign router_wr_in_en_array [`CORE_NUM(x,y)][2] = router_wr_out_en_array [`CORE_NUM(x,(y-1))][4];
assign router_wr_in_en_array [IP_NUM][2] = router_wr_out_en_array [`CORE_NUM(x,(y-1))][4];
end else begin
if(TOPOLOGY == "MESH") begin
assign router_flit_in_array [`SELECT_WIRE(x,y,2,FLIT_WIDTH)] = {FLIT_WIDTH{1'b0}};
assign router_credit_in_array [`SELECT_WIRE(x,y,2,VC_NUM_PER_PORT)] = {VC_NUM_PER_PORT{1'b0}};
assign router_wr_in_en_array [`CORE_NUM(x,y)][2] = 1'b0;
assign router_wr_in_en_array [IP_NUM][2] = 1'b0;
end else if(TOPOLOGY == "TORUS") begin
assign router_flit_in_array [`SELECT_WIRE(x,y,2,FLIT_WIDTH)] = router_flit_out_array [`SELECT_WIRE(x,(Y_NODE_NUM-1),4,FLIT_WIDTH)];
assign router_credit_in_array [`SELECT_WIRE(x,y,2,VC_NUM_PER_PORT)] = router_credit_out_array [`SELECT_WIRE(x,(Y_NODE_NUM-1),4,VC_NUM_PER_PORT)];
assign router_wr_in_en_array [`CORE_NUM(x,y)][2] = router_wr_out_en_array [`CORE_NUM(x,(Y_NODE_NUM-1))][4];
assign router_wr_in_en_array [IP_NUM][2] = router_wr_out_en_array [`CORE_NUM(x,(Y_NODE_NUM-1))][4];
end//topology
end//y>0
389,16 → 451,16
if(x>0)begin
assign router_flit_in_array [`SELECT_WIRE(x,y,3,FLIT_WIDTH)] = router_flit_out_array [`SELECT_WIRE((x-1),y,1,FLIT_WIDTH)] ;
assign router_credit_in_array [`SELECT_WIRE(x,y,3,VC_NUM_PER_PORT)] = router_credit_out_array [`SELECT_WIRE((x-1),y,1,VC_NUM_PER_PORT)] ;
assign router_wr_in_en_array [`CORE_NUM(x,y)][3] = router_wr_out_en_array [`CORE_NUM((x-1),y)][1];
assign router_wr_in_en_array [IP_NUM][3] = router_wr_out_en_array [`CORE_NUM((x-1),y)][1];
end else begin
if(TOPOLOGY == "MESH") begin
assign router_flit_in_array [`SELECT_WIRE(x,y,3,FLIT_WIDTH)] = {FLIT_WIDTH{1'b0}};
assign router_credit_in_array [`SELECT_WIRE(x,y,3,VC_NUM_PER_PORT)] = {VC_NUM_PER_PORT{1'b0}};
assign router_wr_in_en_array [`CORE_NUM(x,y)][3] = 1'b0;
assign router_wr_in_en_array [IP_NUM][3] = 1'b0;
end else if(TOPOLOGY == "TORUS") begin
assign router_flit_in_array [`SELECT_WIRE(x,y,3,FLIT_WIDTH)] = router_flit_out_array [`SELECT_WIRE((X_NODE_NUM-1),y,1,FLIT_WIDTH)] ;
assign router_credit_in_array [`SELECT_WIRE(x,y,3,VC_NUM_PER_PORT)] = router_credit_out_array [`SELECT_WIRE((X_NODE_NUM-1),y,1,VC_NUM_PER_PORT)] ;
assign router_wr_in_en_array [`CORE_NUM(x,y)][3] = router_wr_out_en_array [`CORE_NUM((X_NODE_NUM-1),y)][1];
assign router_wr_in_en_array [IP_NUM][3] = router_wr_out_en_array [`CORE_NUM((X_NODE_NUM-1),y)][1];
end//topology
end
405,29 → 467,29
if(y < Y_NODE_NUM-1)begin
assign router_flit_in_array [`SELECT_WIRE(x,y,4,FLIT_WIDTH)] = router_flit_out_array [`SELECT_WIRE(x,(y+1),2,FLIT_WIDTH)];
assign router_credit_in_array [`SELECT_WIRE(x,y,4,VC_NUM_PER_PORT)] = router_credit_out_array [`SELECT_WIRE(x,(y+1),2,VC_NUM_PER_PORT)];
assign router_wr_in_en_array [`CORE_NUM(x,y)][4] = router_wr_out_en_array [`CORE_NUM(x,(y+1))][2];
assign router_wr_in_en_array [IP_NUM][4] = router_wr_out_en_array [`CORE_NUM(x,(y+1))][2];
end else begin
if(TOPOLOGY == "MESH") begin
assign router_flit_in_array [`SELECT_WIRE(x,y,4,FLIT_WIDTH)] = {FLIT_WIDTH{1'b0}};
assign router_credit_in_array [`SELECT_WIRE(x,y,4,VC_NUM_PER_PORT)] = {VC_NUM_PER_PORT{1'b0}};
assign router_wr_in_en_array [`CORE_NUM(x,y)][4] = 1'b0;
assign router_wr_in_en_array [IP_NUM][4] = 1'b0;
end else if(TOPOLOGY == "TORUS") begin
assign router_flit_in_array [`SELECT_WIRE(x,y,4,FLIT_WIDTH)] = router_flit_out_array [`SELECT_WIRE(x,0,2,FLIT_WIDTH)];
assign router_credit_in_array [`SELECT_WIRE(x,y,4,VC_NUM_PER_PORT)] = router_credit_out_array [`SELECT_WIRE(x,0,2,VC_NUM_PER_PORT)];
assign router_wr_in_en_array [`CORE_NUM(x,y)][4] = router_wr_out_en_array [`CORE_NUM(x,0)][2];
assign router_wr_in_en_array [IP_NUM][4] = router_wr_out_en_array [`CORE_NUM(x,0)][2];
end//topology
end
//connection to the ip_core
assign router_flit_in_array [`SELECT_WIRE(x,y,0,FLIT_WIDTH)] = ni_flit_out [`CORE_NUM(x,y)];
assign router_credit_in_array [`SELECT_WIRE(x,y,0,VC_NUM_PER_PORT)] = ni_credit_out [`CORE_NUM(x,y)];
assign router_wr_in_en_array [`CORE_NUM(x,y)][0] = ni_flit_out_wr [`CORE_NUM(x,y)];
assign router_flit_in_array [`SELECT_WIRE(x,y,0,FLIT_WIDTH)] = ni_flit_out [IP_NUM];
assign router_credit_in_array [`SELECT_WIRE(x,y,0,VC_NUM_PER_PORT)] = ni_credit_out [IP_NUM];
assign router_wr_in_en_array [IP_NUM][0] = ni_flit_out_wr [IP_NUM];
assign ni_flit_in [`CORE_NUM(x,y)] = router_flit_out_array [`SELECT_WIRE(x,y,0,FLIT_WIDTH)];
assign ni_flit_in_wr [`CORE_NUM(x,y)] = router_wr_out_en_array [`CORE_NUM(x,y)][0];
assign ni_credit_in [`CORE_NUM(x,y)] = router_credit_out_array[`SELECT_WIRE(x,y,0,VC_NUM_PER_PORT)];
assign ni_flit_in [IP_NUM] = router_flit_out_array [`SELECT_WIRE(x,y,0,FLIT_WIDTH)];
assign ni_flit_in_wr [IP_NUM] = router_wr_out_en_array [IP_NUM][0];
assign ni_credit_in [IP_NUM] = router_credit_out_array [`SELECT_WIRE(x,y,0,VC_NUM_PER_PORT)];
 
434,10 → 496,10
 
//synthesis translate_off
assign cpu_adr_i [`CORE_NUM(x,y)] = cpu_adr_i_array [(`CORE_NUM(x,y)+1)*(CPU_ADR_WIDTH)-1 : `CORE_NUM(x,y)*CPU_ADR_WIDTH];
assign cpu_dat_i [`CORE_NUM(x,y)] = cpu_dat_i_array [(`CORE_NUM(x,y)+1)*32-1 : `CORE_NUM(x,y)*32 ];
assign cpu_sel_i [`CORE_NUM(x,y)] = cpu_sel_i_array [(`CORE_NUM(x,y)+1)*4-1 : `CORE_NUM(x,y)*4 ];
assign cpu_dat_o_array [(`CORE_NUM(x,y)+1)*32-1 : `CORE_NUM(x,y)*32] = cpu_dat_o [`CORE_NUM(x,y)];
assign cpu_adr_i [IP_NUM] = cpu_adr_i_array [(IP_NUM+1)*(CPU_ADR_WIDTH)-1 : IP_NUM*CPU_ADR_WIDTH];
assign cpu_dat_i [IP_NUM] = cpu_dat_i_array [(IP_NUM+1)*32-1 : IP_NUM*32 ];
assign cpu_sel_i [IP_NUM] = cpu_sel_i_array [(IP_NUM+1)*4-1 : IP_NUM*4 ];
assign cpu_dat_o_array [(IP_NUM+1)*32-1 : IP_NUM*32] = cpu_dat_o [IP_NUM];
//synthesis translate_on
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/IP_core/wishbone_bus.v
35,6 → 35,10
parameter RAM_EN = 1,
parameter NOC_EN = 0,
parameter GPIO_EN = 1,
parameter EXT_INT_EN = 1,
parameter TIMER_EN = 1,
parameter INT_CTRL_EN = 1,
parameter GPIO_WIDTH = 56,
parameter MASTER_NUM_ = 4, //number of master port
parameter SLAVE_NUM_ = 4, //number of slave port
173,6 → 177,10
.RAM_EN (RAM_EN),
.NOC_EN (NOC_EN),
.GPIO_EN (GPIO_EN),
.EXT_INT_EN (EXT_INT_EN),
.TIMER_EN (TIMER_EN),
.INT_CTRL_EN (INT_CTRL_EN),
.ADDR_PERFIX_ (ADDR_PERFIX),
.SLAVE_NUM_ (SLAVE_NUM)
)
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/IP_core/reset_jtag.v
0,0 → 1,107
// megafunction wizard: %In-System Sources and Probes%
// GENERATION: STANDARD
// VERSION: WM1.0
// MODULE: altsource_probe
 
// ============================================================
// File Name: reset_jtag.v
// Megafunction Name(s):
// altsource_probe
//
// Simulation Library Files(s):
// altera_mf
// ============================================================
// ************************************************************
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
//
// 13.0.0 Build 156 04/24/2013 SJ Full Version
// ************************************************************
 
 
//Copyright (C) 1991-2013 Altera Corporation
//Your use of Altera Corporation's design tools, logic functions
//and other software and tools, and its AMPP partner logic
//functions, and any output files from any of the foregoing
//(including device programming or simulation files), and any
//associated documentation or information are expressly subject
//to the terms and conditions of the Altera Program License
//Subscription Agreement, Altera MegaCore Function License
//Agreement, or other applicable license agreement, including,
//without limitation, that your use is for the sole purpose of
//programming logic devices manufactured by Altera and sold by
//Altera or its authorized distributors. Please refer to the
//applicable agreement for further details.
 
 
// synopsys translate_off
`timescale 1 ps / 1 ps
// synopsys translate_on
module reset_jtag (
probe,
source);
 
input [0:0] probe;
output [0:0] source;
 
wire [0:0] sub_wire0;
wire [0:0] source = sub_wire0[0:0];
 
altsource_probe altsource_probe_component (
.probe (probe),
.source (sub_wire0)
// synopsys translate_off
,
.clrn (),
.ena (),
.ir_in (),
.ir_out (),
.jtag_state_cdr (),
.jtag_state_cir (),
.jtag_state_e1dr (),
.jtag_state_sdr (),
.jtag_state_tlr (),
.jtag_state_udr (),
.jtag_state_uir (),
.raw_tck (),
.source_clk (),
.source_ena (),
.tdi (),
.tdo (),
.usr1 ()
// synopsys translate_on
);
defparam
altsource_probe_component.enable_metastability = "NO",
altsource_probe_component.instance_id = "RST",
altsource_probe_component.probe_width = 1,
altsource_probe_component.sld_auto_instance_index = "NO",
altsource_probe_component.sld_instance_index = 127,
altsource_probe_component.source_initial_value = " 0",
altsource_probe_component.source_width = 1;
 
 
endmodule
 
// ============================================================
// CNX file retrieval info
// ============================================================
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
// Retrieval info: CONSTANT: ENABLE_METASTABILITY STRING "NO"
// Retrieval info: CONSTANT: INSTANCE_ID STRING "RST"
// Retrieval info: CONSTANT: PROBE_WIDTH NUMERIC "1"
// Retrieval info: CONSTANT: SLD_AUTO_INSTANCE_INDEX STRING "NO"
// Retrieval info: CONSTANT: SLD_INSTANCE_INDEX NUMERIC "127"
// Retrieval info: CONSTANT: SOURCE_INITIAL_VALUE STRING " 0"
// Retrieval info: CONSTANT: SOURCE_WIDTH NUMERIC "1"
// Retrieval info: USED_PORT: probe 0 0 1 0 INPUT NODEFVAL "probe[0..0]"
// Retrieval info: USED_PORT: source 0 0 1 0 OUTPUT NODEFVAL "source[0..0]"
// Retrieval info: CONNECT: @probe 0 0 1 0 probe 0 0 1 0
// Retrieval info: CONNECT: source 0 0 1 0 @source 0 0 1 0
// Retrieval info: GEN_FILE: TYPE_NORMAL reset_jtag.v TRUE
// Retrieval info: GEN_FILE: TYPE_NORMAL reset_jtag.inc FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL reset_jtag.cmp FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL reset_jtag.bsf FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL reset_jtag_inst.v FALSE
// Retrieval info: GEN_FILE: TYPE_NORMAL reset_jtag_bb.v TRUE
// Retrieval info: LIB_FILE: altera_mf
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/IP_core/ext_int.v
0,0 → 1,99
module ext_int #(
parameter EXT_INT_NUM = 3,//max 32
parameter ADDR_WIDTH = 3,
parameter SEL_WIDTH = 4,
parameter DATA_WIDTH = EXT_INT_NUM
 
)(
input clk,
input reset,
//wishbone bus interface
input [DATA_WIDTH-1 : 0] sa_dat_i,
input [SEL_WIDTH-1 : 0] sa_sel_i,
input [ADDR_WIDTH-1 : 0] sa_addr_i,
input sa_stb_i,
input sa_we_i,
output [DATA_WIDTH-1 : 0] sa_dat_o,
output reg sa_ack_o,
//interrupt ports
input [EXT_INT_NUM-1 : 0] ext_int_i,
output [EXT_INT_NUM-1 : 0] ext_int_o //output to the interrupt controller
);
 
//interrupt registers
localparam [ADDR_WIDTH-1 : 0] GER_REG_ADDR = 0;
localparam [ADDR_WIDTH-1 : 0] IER_RISING_REG_ADDR = 1;
localparam [ADDR_WIDTH-1 : 0] IER_FALLING_REG_ADDR = 2;
localparam [ADDR_WIDTH-1 : 0] ISR_REG_ADDR = 3;
localparam [ADDR_WIDTH-1 : 0] PIN_REG_ADDR = 4;
reg ger,ger_next;
reg [EXT_INT_NUM-1 : 0] ier_rise,ier_fall,isr,read,int_reg1,int_reg2;//2
reg [EXT_INT_NUM-1 : 0] ier_rise_next,ier_fall_next,isr_next,read_next,int_reg1_next,int_reg2_next;
wire [EXT_INT_NUM-1 : 0] triggered,rise_edge,fall_edge;
assign rise_edge = (ger)? ier_rise & ~int_reg2 & int_reg1 : {EXT_INT_NUM{1'b0}};
assign fall_edge = (ger)? ier_fall & int_reg2 & ~int_reg1 : {EXT_INT_NUM{1'b0}};
assign triggered = rise_edge | fall_edge;
always @ (posedge clk or posedge reset) begin
if(reset) begin
ger <= 1'b0;
ier_rise <= {EXT_INT_NUM{1'b0}};
ier_fall <= {EXT_INT_NUM{1'b0}};
isr <= {EXT_INT_NUM{1'b0}};
read <= {EXT_INT_NUM{1'b0}};
int_reg1 <= {EXT_INT_NUM{1'b0}};
int_reg2 <= {EXT_INT_NUM{1'b0}};
sa_ack_o <= 1'b0;
end else begin
ger <= ger_next;
ier_rise <= ier_rise_next;
ier_fall <= ier_fall_next;
isr <= isr_next;
read <= read_next;
int_reg1 <= int_reg1_next;
int_reg2 <= int_reg2_next;
sa_ack_o <= sa_stb_i && ~sa_ack_o;
end//
end//always
always@(*) begin
int_reg2_next = int_reg1;
int_reg1_next = ext_int_i;
ger_next = ger;
ier_rise_next = ier_rise;
ier_fall_next = ier_fall;
isr_next = isr | triggered; // set isr if the intrrupt is triggered
read_next = read;
if(sa_stb_i && sa_we_i ) begin
if( sa_addr_i == GER_REG_ADDR ) ger_next = sa_dat_i[0];
if( sa_addr_i == IER_RISING_REG_ADDR ) ier_rise_next = sa_dat_i[EXT_INT_NUM-1'b1 : 0];
if( sa_addr_i == IER_FALLING_REG_ADDR ) ier_fall_next = sa_dat_i[EXT_INT_NUM-1'b1 : 0];
if( sa_addr_i == ISR_REG_ADDR ) isr_next = isr & ~sa_dat_i[EXT_INT_NUM-1'b1 : 0];// reset isr by writting 1
end
if(sa_stb_i && ~sa_we_i) begin
case(sa_addr_i)
GER_REG_ADDR: read_next = {{(EXT_INT_NUM-1){1'b0}},ger};
IER_RISING_REG_ADDR: read_next = ier_rise;
IER_FALLING_REG_ADDR: read_next = ier_fall;
ISR_REG_ADDR: read_next = isr;
PIN_REG_ADDR: read_next = ext_int_i;
default read_next = read;
endcase
end
end//always
assign sa_dat_o = read;
assign ext_int_o= isr;
endmodule
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/my_functions.v
0,0 → 1,264
/* Add
"`define ADD_FUNCTION "
before calling the function `include "../my_function.v".
*/
 
`ifdef ADD_FUNCTION
/*****************************
extract the nth value of an string as a decemila value. the values inside
the string parameter must be seperated by "," e.g
parameter mystring = "12,3,8"
then extract_value(mystring,2) is integer 12
*****************************/
 
function integer extract_value;
input reg[1000:0] port_size_string;
input integer value_loc;
integer end_char;
integer i,j,width;
reg[7:0] tmp;
reg[1000:0] buffer;
begin
width=0;
i=0;
j=0;
if(value_loc>0) begin //locate the start ','
while(j<value_loc) begin
buffer=(port_size_string >>(i*8));
tmp = buffer[7:0];
if(tmp ==",") begin
j=j+1'b1;
end
i=i+1'b1;
end//while
end
end_char=0;
j=0;
while(end_char==0)begin
buffer=(port_size_string >>(i*8));
tmp = buffer[7:0];
if(tmp =="," || tmp ==0) begin
end_char=1;
end else begin
width= (j==0)? tmp-"0" : width + ((j*10)*(tmp-"0"));
end
i=i+1'b1;
j=j+1'b1;
end//while
extract_value = width;
end
endfunction
 
/*****************************
 
return the sum of all values in string
 
*****************************/
 
function integer sum_of_all;
input reg[1000:0] port_size_string;
integer total_port_num;
integer i;
begin
total_port_num=number_of_port(port_size_string) ;
sum_of_all=0;
for (i=0; i< total_port_num; i=i+1'b1) begin
sum_of_all = sum_of_all+ extract_value(port_size_string,i);
end//for
end
endfunction
function integer start_loc;
input reg[1000:0] port_size_string;
input integer value_num;
integer i;
begin
start_loc=0;
for (i=0; i< value_num; i=i+1'b1) begin
start_loc = start_loc + extract_value(port_size_string,i);
end//for
end
endfunction
 
function integer number_of_port;
input reg[1000:0] port_size_string;
integer i;
begin
number_of_port=1;
while(port_size_string[7:0]!=8'h0) begin
if (port_size_string[7:0]==",") number_of_port=number_of_port+1'b1;
port_size_string = port_size_string >>8;
end//while
end
endfunction
/************************
parameter DEV_EN_ARRAY ="IPx_y:[the specefic value for IP(x,y)];Def:[default value for the rest of IPs]"
ip_value(ip_x,ip_y,DEV_EN_ARRAY) : will extract the defined value for IP(x,y)
eg:
parameter O_PORT_WIDTH_ARRAY ="IP0_0:7,7,7,7,7,7,7,7;Def:1";
parameter O_PORT_WIDTH_0 = ip_value(0,0,O_PORT_WIDTH_ARRAY); // will load "7,7,7,7,7,7,7,7" in O_PORT_WIDTH_0
parameter O_PORT_WIDTH_5 = ip_value(5,0,O_PORT_WIDTH_ARRAY); // will load "1" in O_PORT_WIDTH_5
**************************/
function integer string_size;
input reg [1000:0] string_i;
begin
string_size = 0;
while ( string_i[7:0]!= 0) begin
string_size = string_size+ 1'b1;
string_i = string_i >> 8;
end
end
endfunction
 
function reg [1000:0] mask;
input integer size;
begin
mask=0;
while (size >0) begin
mask = mask<<8;
mask = mask +8'hFF;
size = size-1'b1;
end
end
endfunction
 
 
function integer find_loc;
input reg [1000:0] string_i;
input reg [1000:0] array;
input integer end_loc;
integer str_size;
integer loc;
begin
loc=0;
str_size = string_size(string_i);
find_loc = -1;
while ( array[7:0]!=0 && loc!=end_loc) begin
if((array & mask(str_size)) == (string_i & mask(str_size))) find_loc=loc;
array = array >> 8;
loc = loc +1'b1;
end
end
endfunction
 
function reg [1000:0] cut_string;
input reg [1000:0] string_i;
input integer start_loc;
input integer end_loc;
integer tmp;
begin
if(end_loc < start_loc ) begin //swap
tmp=start_loc;
start_loc = end_loc;
end_loc = tmp;
end
string_i = string_i & mask(end_loc);
string_i = string_i >> (start_loc*8);
cut_string = string_i;
end
endfunction
 
 
 
function reg [1000:0] ip_value;
input integer ip_x,ip_y;
input reg [1000:0] ip_array;
reg [1000:0] ip_name;
integer tmp,i,ip_loc,end_ip_value,size;
begin
//make IPnum string
ip_name = "IP";
i=1;
while(i)begin
tmp= ip_x;
i=0;
while(tmp>9)begin tmp= tmp/10; i=i+1; end
ip_name = (ip_name << 8 )+ tmp+"0";
ip_x = ip_x % (10**i);
end
ip_name = (ip_name << 8 )+ "_";
i=1;
while(i)begin
tmp= ip_y;
i=0;
while(tmp>9)begin tmp= tmp/10; i=i+1; end
ip_name = (ip_name << 8 )+ tmp+"0";
ip_y = ip_y % (10**i);
end
ip_name = (ip_name << 8 )+ ":";
size=string_size(ip_array);
ip_loc= find_loc (ip_name,ip_array,size);
if(ip_loc == -1) ip_loc= find_loc("Def:",ip_array,size);
end_ip_value =find_loc (";",ip_array,ip_loc);
ip_value = cut_string(ip_array,ip_loc,end_ip_value+1);
end
endfunction
function integer s2i;
input [1000:0] string_i;
integer i;
begin
s2i =0;
i=0;
while (string_i [7:0]!=0) begin
s2i = s2i+(string_i [7:0]-"0")* (10**i);
string_i = string_i >> 8;
i=i+1'b1;
end
end
endfunction
 
 
function integer start_loc_in_array;
input integer ip_x,ip_y;
input integer max_x_num;
input [1000: 0] string_i;
integer x,y,sum;
begin
start_loc_in_array =0;
for (y=0; y<ip_y; y=y+1) begin
for(x=0; x<max_x_num; x=x+1 ) begin
sum = sum_of_all(ip_value(x,y,string_i));
// if(sum==0) sum =1;
start_loc_in_array = start_loc_in_array + sum;
end
end//for y
for(x=0; x<ip_x; x=x+1 ) begin
sum = sum_of_all(ip_value(x,y,string_i));
// if(sum==0) sum =1;
start_loc_in_array = start_loc_in_array + sum;
end
end
endfunction
 
 
function integer end_loc_in_array;
input integer ip_x,ip_y;
input integer max_x_num;
input [1000: 0] string_i;
integer sum;
begin
end_loc_in_array = start_loc_in_array(ip_x,ip_y,max_x_num,string_i);
sum = sum_of_all(ip_value(ip_x,ip_y,string_i));
if(sum==0) sum =1;
end_loc_in_array = end_loc_in_array + sum-1;
end
endfunction
 
 
 
`endif
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/testbench_noc.v
54,27 → 54,60
parameter CPU_ADR_WIDTH = AEMB_DWB-2;
parameter CPU_ADDR_ARRAY_WIDTH = CPU_ADR_WIDTH * TOTAL_ROUTERS_NUM;
parameter CPU_DATA_ARRAY_WIDTH = 32 * TOTAL_ROUTERS_NUM;
parameter RAM_EN = 1;
parameter NOC_EN = 1;
parameter GPIO_EN = 1;
parameter GPIO_PORT_WIDTH = 1;
parameter GPIO_PORT_NUM = 1;
parameter RAM_EN_ARRAY = "Def:1";
parameter NOC_EN_ARRAY = "Def:1";
parameter GPIO_EN_ARRAY = "Def:1";
parameter EXT_INT_EN_ARRAY = "IP0_0:1;Def:0";
parameter TIMER_EN_ARRAY = "IP0_0:1;Def:0";
parameter INT_CTRL_EN_ARRAY = "IP0_0:1;Def:0";
//gpio parameters
parameter IO_EN_ARRAY = "Def:0";
parameter I_EN_ARRAY = "Def:0";
parameter O_EN_ARRAY = "IP0_1:0;Def:1";
parameter EXT_INT_NUM_ARRAY = "IP0_0:3;Def:0";//max 32
parameter IO_PORT_WIDTH_ARRAY = "Def:1";
parameter I_PORT_WIDTH_ARRAY = "Def:0";
parameter O_PORT_WIDTH_ARRAY = "IP0_0:7,7,7,7,7,7,7,7;IP0_1:0;Def:1";
localparam X_NODE_NUM_WIDTH = log2(X_NODE_NUM);
localparam Y_NODE_NUM_WIDTH = log2(Y_NODE_NUM);
localparam PORT_NUM_BCD_WIDTH = log2(PORT_NUM);
//generate the base addresses
`define ADD_BUS_LOCALPARAM 1
localparam RAM_EN = 1;
localparam NOC_EN = 1;
localparam GPIO_EN = 1;
localparam EXT_INT_EN = 1;
localparam TIMER_EN = 1;
localparam INT_CTRL_EN = 1;
`include "parameter.v"
`define ADD_FUNCTION 1
`include "my_functions.v"
`LOG2
 
reg reset ,clk;
wire[TOTAL_ROUTERS_NUM-1 :0] led;
localparam TOTAL_EXT_INT_NUM = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,EXT_INT_NUM_ARRAY)+1;
localparam TOTAL_IO_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,IO_PORT_WIDTH_ARRAY)+1;
localparam TOTAL_I_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,I_PORT_WIDTH_ARRAY)+1;
localparam TOTAL_O_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,O_PORT_WIDTH_ARRAY)+1;
reg reset ,clk;
reg [TOTAL_EXT_INT_NUM-1 :0] ext_int_i;
wire [TOTAL_IO_WIDTH-1 :0] gpio_io;
reg [TOTAL_I_WIDTH-1 :0] gpio_i;
wire [TOTAL_O_WIDTH-1 :0] gpio_o;
 
 
wire [CPU_ADDR_ARRAY_WIDTH-1 :0] cpu_adr_i_array;
111,7 → 144,7
end
endgenerate
 
wire [12 :0] sdram_addr; // sdram_wire.addr
wire [12 :0] sdram_addr; // sdram_wire.addr
wire [1 :0] sdram_ba; // .ba
wire sdram_cas_n; // .cas_n
wire sdram_cke; // .cke
155,18 → 188,30
.AEMB_RAM_WIDTH_IN_WORD (AEMB_RAM_WIDTH_IN_WORD),
.AEMB_DWB (AEMB_DWB),
.SDRAM_EN (SDRAM_EN),
.RAM_EN (RAM_EN),
.NOC_EN (NOC_EN),
.GPIO_EN (GPIO_EN),
.GPIO_PORT_WIDTH (GPIO_PORT_WIDTH),
.GPIO_PORT_NUM (GPIO_PORT_NUM)
.RAM_EN_ARRAY (RAM_EN_ARRAY),
.NOC_EN_ARRAY (NOC_EN_ARRAY),
.GPIO_EN_ARRAY (GPIO_EN_ARRAY),
.EXT_INT_EN_ARRAY (EXT_INT_EN_ARRAY),
.TIMER_EN_ARRAY (TIMER_EN_ARRAY),
.INT_CTRL_EN_ARRAY (INT_CTRL_EN_ARRAY),
.IO_EN_ARRAY (IO_EN_ARRAY),
.I_EN_ARRAY (I_EN_ARRAY),
.O_EN_ARRAY (O_EN_ARRAY),
.EXT_INT_NUM_ARRAY (EXT_INT_NUM_ARRAY),
.IO_PORT_WIDTH_ARRAY (IO_PORT_WIDTH_ARRAY),
.I_PORT_WIDTH_ARRAY (I_PORT_WIDTH_ARRAY),
.O_PORT_WIDTH_ARRAY (O_PORT_WIDTH_ARRAY)
)
aeMB_mpsoc_inst
(
.reset (reset) , // reg
.clk (clk) , // reg
.led (led), // wire
.reset (reset), // reg
.clk (clk), // reg
.ext_int_i (ext_int_i),
.gpio_io (gpio_io),
.gpio_i (gpio_i),
.gpio_o (gpio_o),
.sdram_addr (sdram_addr) , // wire [12:0] sdram_addr
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/SoC_IP_top.v
0,0 → 1,139
/*********************************************************************
File: SoC_IP_top.v
Copyright (C) 2014 Alireza Monemi
 
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. If not, see <http://www.gnu.org/licenses/>.
Purpose:
The top module for SoC with one aeMB processor, wishbone bus, gpio
and timer
 
Info: monemi@fkegraduate.utm.my
 
****************************************************************/
 
 
module SoC_IP_top (
input CLOCK_50,
input [3 : 0] KEY,
output [3 : 0] LEDG,
output [6 : 0] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7
 
 
);
 
 
parameter SEVEN_SEG_NUM = 8;
parameter AEMB_RAM_WIDTH_IN_WORD = `AEMB_RAM_WIDTH_IN_WORD_DEF;
parameter RAM_EN = 1;
parameter GPIO_EN = 1;
parameter EXT_INT_EN = 1;
parameter TIMER_EN = 1;
parameter INT_CTRL_EN = 1;
//gpio parameters
parameter IO_EN = 0;
parameter I_EN = 0;
parameter O_EN = 1;
parameter IO_PORT_WIDTH = "0";
parameter I_PORT_WIDTH = "0";
parameter O_PORT_WIDTH = "7,7,7,7,7,7,7,7";
//external int parameters
parameter EXT_INT_NUM = 3;//max 32
 
 
wire [(SEVEN_SEG_NUM *7)-1 :0] seven_segment;
wire [2 :0] ext_int_i;
wire reset,reset_in,sys_en,sys_en_n;
wire clk;
assign sys_en = ~ sys_en_n;
assign clk = CLOCK_50;
assign LEDG[0] = reset;
assign LEDG[3:1]= ext_int_i;
assign {HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,HEX1,HEX0} = seven_segment;
assign reset_in = ~KEY[0];
assign ext_int_i = ~KEY[3:1];
signal_holder #(
.DELAY_COUNT(1000)
)
hold_reset
(
.reset_in (reset_in),
.clk (clk),
.reset_out (reset)
);
signal_holder #(
.DELAY_COUNT(100)
)
hold_en
(
.reset_in (reset),
.clk (clk),
.reset_out (sys_en_n)
);
aeMB_IP #(
.AEMB_RAM_WIDTH_IN_WORD (AEMB_RAM_WIDTH_IN_WORD ),
.RAM_EN (RAM_EN),
.NOC_EN (0),
.GPIO_EN (GPIO_EN),
.EXT_INT_EN (EXT_INT_EN),
.TIMER_EN (TIMER_EN),
.INT_CTRL_EN (INT_CTRL_EN),
.IO_EN (IO_EN),
.I_EN (I_EN),
.O_EN (O_EN),
.IO_PORT_WIDTH (IO_PORT_WIDTH),
.I_PORT_WIDTH (I_PORT_WIDTH),
.O_PORT_WIDTH (O_PORT_WIDTH),
.EXT_INT_NUM (EXT_INT_NUM),
.SW_X_ADDR(0),
.SW_Y_ADDR(0)
)IP
(
.clk (clk),
.reset_in(reset),
.sys_ena_i(sys_en),
.ext_int_i(ext_int_i),
.gpio_io(),
.gpio_i(),
.gpio_o(seven_segment)
);
 
 
 
 
 
endmodule
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/parameter.v
31,30 → 31,43
 
 
`ifdef ADD_BUS_LOCALPARAM
 
localparam MASTER_NUM = 2+NOC_EN; //number of master port
localparam SLAVE_NUM = RAM_EN + GPIO_EN + NOC_EN ; //number of slave port
localparam ADDR_PERFIX = 8;
localparam ADDR_PERFIX = 8;
// Total number of master port in wishbone bus. The aeMB has two master port. To add new device
// update its as : MASTER_NUM = 2+NOC_EN + (NEW_DEV_EN * number of master port the new device has)
localparam MASTER_NUM = 2+NOC_EN; //number of master port
//Total number of slave port.
// To add new device, update its as : SLAVE_NUM = old_value + (NEW_DEV_EN * number of slave port the new device has)
localparam SLAVE_NUM = RAM_EN + GPIO_EN + NOC_EN + EXT_INT_EN + TIMER_EN + INT_CTRL_EN;
 
// addrees range definition
localparam RAM_ADDR_START = 8'H00; // 32'H00000000 to 32'H3FFFFFFF
localparam RAM_BK_NUM = 8'H3F;
 
localparam RAM_ADDR_START = 8'H00; // 32'H00000000 to 32'H3FFFFFFF
localparam RAM_BK_NUM = 8'H3F;
 
localparam NOC_ADDR_START = 8'H40 ; // 32'H40000000 to 32'H40FFFFFF
localparam NOC_BK_NUM = 8'H01;
localparam NOC_ADDR_START = 8'H40; // 32'H40000000 to 32'H40FFFFFF
localparam NOC_BK_NUM = 8'H01;
localparam GPIO_ADDR_START= 8'H41; // 32'H41000000 to 32'H41FFFFFF
localparam GPIO_BK_NUM = 8'H01 ;
localparam GPIO_ADDR_START = 8'H41; // 32'H41000000 to 32'H41FFFFFF
localparam GPIO_BK_NUM = 8'H01;
localparam EXT_INT_ADDR_START = 8'H42; // 32'H42000000 to 32'H42FFFFFF
localparam EXT_INT_BK_NUM = 8'H01;
 
localparam TIMER_ADDR_START = 8'H43; // 32'H43000000 to 32'H43FFFFFF
localparam TIMER_BK_NUM = 8'H01;
 
localparam INT_CTRL_ADDR_START = 8'H44; // 32'H44000000 to 32'H44FFFFFF
localparam INT_CTRL_BK_NUM = 8'H01;
//add new device addr range here
// salve and master conection port definition
 
// salve and master coonection port definition
 
 
localparam RAM_ID = 0;
localparam RAM_ID_E = 0;
63,9 → 76,19
localparam GPIO_ID = ( GPIO_EN ) ? NOC_S_ID_E + 1 : 255;
localparam GPIO_ID_E = NOC_S_ID_E + GPIO_EN ;
localparam EXT_INT_ID = (EXT_INT_EN) ? GPIO_ID_E +1 : 255;
localparam EXT_INT_ID_E = GPIO_ID_E + EXT_INT_EN;
localparam TIMER_ID = (TIMER_EN) ? EXT_INT_ID_E +1 : 255;
localparam TIMER_ID_E = EXT_INT_ID_E + TIMER_EN;
localparam INT_CTRL_ID = (INT_CTRL_EN) ? TIMER_ID_E +1 : 255;
localparam INT_CTRL_ID_E = TIMER_ID_E + INT_CTRL_EN;
//localparam NEW_ID = (NEW_EN) ? LAST_ID_E +1 : 255;
//localparam NEW_ID_E = LAST_ID_E + NEW_EN;
//master device number
localparam IWB_ID = 0;
localparam IWB_ERR_EN = 0;
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/testbench_mpsoc.v
0,0 → 1,238
/*********************************************************************
File: testbench.v
Copyright (C) 2014 Alireza Monemi
 
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. If not, see <http://www.gnu.org/licenses/>.
Purpose:
A testbench for top-level design. This testbench can be used to simulate
a real life application. running the ./run file in sw folder
will copy the generated mif files in simulation folder which will be read
by modelsim. However, due to simulating the aemb processors it is slow
Info: monemi@fkegraduate.utm.my
*********************************************************************/
 
 
 
 
 
`timescale 1ns/1ps
`include "define.v"
 
module testbench_mpsoc ();
parameter NI_CTRL_SIMULATION = "aeMB";
/*"aeMB" or "testbench".
Definig it as " aeMB" will generate the same MPSoC for both simulation and
implementation.
Defining it as "testbench" will remove the processors
in simulation. Hence, the simulation time will be decreased. The tasks to control
NI pins are written in tasks.v file */
parameter TOPOLOGY = `TOPOLOGY_DEF;
parameter ROUTE_ALGRMT = `ROUTE_ALGRMT_DEF;
parameter X_NODE_NUM = `X_NODE_NUM_DEF;
parameter Y_NODE_NUM = `Y_NODE_NUM_DEF;
parameter PORT_NUM = 5;
parameter AEMB_RAM_WIDTH_IN_WORD = `AEMB_RAM_WIDTH_IN_WORD_DEF;
parameter TOTAL_ROUTERS_NUM = X_NODE_NUM * Y_NODE_NUM;
parameter AEMB_DWB = `AEMB_DWB_DEF;
parameter SDRAM_EN = `SDRAM_EN_DEF;// 0 : disabled 1: enabled
parameter CPU_ADR_WIDTH = AEMB_DWB-2;
parameter CPU_ADDR_ARRAY_WIDTH = CPU_ADR_WIDTH * TOTAL_ROUTERS_NUM;
parameter CPU_DATA_ARRAY_WIDTH = 32 * TOTAL_ROUTERS_NUM;
 
parameter RAM_EN_ARRAY = `RAM_EN_ARRAY_DEF;
parameter NOC_EN_ARRAY = `NOC_EN_ARRAY_DEF;
parameter GPIO_EN_ARRAY = `GPIO_EN_ARRAY_DEF;
parameter EXT_INT_EN_ARRAY = `EXT_INT_EN_ARRAY_DEF;
parameter TIMER_EN_ARRAY = `TIMER_EN_ARRAY_DEF;
parameter INT_CTRL_EN_ARRAY = `INT_CTRL_EN_ARRAY_DEF;
//gpio parameters
parameter IO_EN_ARRAY = `IO_EN_ARRAY_DEF;
parameter I_EN_ARRAY = `I_EN_ARRAY_DEF;
parameter O_EN_ARRAY = `O_EN_ARRAY_DEF;
parameter EXT_INT_NUM_ARRAY = `EXT_INT_NUM_ARRAY_DEF;
parameter IO_PORT_WIDTH_ARRAY = `IO_PORT_WIDTH_ARRAY_DEF;
parameter I_PORT_WIDTH_ARRAY = `I_PORT_WIDTH_ARRAY_DEF;
parameter O_PORT_WIDTH_ARRAY = `O_PORT_WIDTH_ARRAY_DEF;
localparam X_NODE_NUM_WIDTH = log2(X_NODE_NUM);
localparam Y_NODE_NUM_WIDTH = log2(Y_NODE_NUM);
localparam PORT_NUM_BCD_WIDTH = log2(PORT_NUM);
//`define ADD_BUS_LOCALPARAM 1
//`include "parameter.v"
`define ADD_FUNCTION 1
`include "my_functions.v"
`LOG2
 
localparam TOTAL_EXT_INT_NUM = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,EXT_INT_NUM_ARRAY)+1;
localparam TOTAL_IO_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,IO_PORT_WIDTH_ARRAY)+1;
localparam TOTAL_I_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,I_PORT_WIDTH_ARRAY)+1;
localparam TOTAL_O_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,O_PORT_WIDTH_ARRAY)+1;
reg reset ,clk;
reg [TOTAL_EXT_INT_NUM-1 :0] ext_int_i;
wire [TOTAL_IO_WIDTH-1 :0] gpio_io;
reg [TOTAL_I_WIDTH-1 :0] gpio_i;
wire [TOTAL_O_WIDTH-1 :0] gpio_o;
 
 
 
 
 
wire [12 :0] sdram_addr; // sdram_wire.addr
wire [1 :0] sdram_ba; // .ba
wire sdram_cas_n; // .cas_n
wire sdram_cke; // .cke
wire sdram_cs_n; // .cs_n
wire [31 :0] sdram_dq; // .dq
wire [3 :0] sdram_dqm; // .dqm
wire sdram_ras_n; // .ras_n
wire sdram_we_n; // .we_n
wire sdram_clk; // sdram_clk.clk
 
generate
if (SDRAM_EN) begin
sdram_sdram_controller_test_component sdram_test_component(
// regs:
.clk (clk),
.zs_addr (sdram_addr),
.zs_ba (sdram_ba),
.zs_cas_n (sdram_cas_n),
.zs_cke (sdram_cke),
.zs_cs_n (sdram_cs_n),
.zs_dqm (sdram_dqm),
.zs_ras_n (sdram_ras_n),
.zs_we_n (sdram_we_n),
// wires:
.zs_dq (sdram_dq)
);
end
endgenerate
 
aeMB_mpsoc #(
.NI_CTRL_SIMULATION (NI_CTRL_SIMULATION),
.TOPOLOGY (TOPOLOGY),
.ROUTE_ALGRMT (ROUTE_ALGRMT),
.X_NODE_NUM (X_NODE_NUM),
.Y_NODE_NUM (Y_NODE_NUM),
.AEMB_RAM_WIDTH_IN_WORD (AEMB_RAM_WIDTH_IN_WORD),
.AEMB_DWB (AEMB_DWB),
.SDRAM_EN (SDRAM_EN),
.RAM_EN_ARRAY (RAM_EN_ARRAY),
.NOC_EN_ARRAY (NOC_EN_ARRAY),
.GPIO_EN_ARRAY (GPIO_EN_ARRAY),
.EXT_INT_EN_ARRAY (EXT_INT_EN_ARRAY),
.TIMER_EN_ARRAY (TIMER_EN_ARRAY),
.INT_CTRL_EN_ARRAY (INT_CTRL_EN_ARRAY),
.IO_EN_ARRAY (IO_EN_ARRAY),
.I_EN_ARRAY (I_EN_ARRAY),
.O_EN_ARRAY (O_EN_ARRAY),
.EXT_INT_NUM_ARRAY (EXT_INT_NUM_ARRAY),
.IO_PORT_WIDTH_ARRAY (IO_PORT_WIDTH_ARRAY),
.I_PORT_WIDTH_ARRAY (I_PORT_WIDTH_ARRAY),
.O_PORT_WIDTH_ARRAY (O_PORT_WIDTH_ARRAY)
)
aeMB_mpsoc_inst
(
.reset (reset) , // reg
.clk (clk) , // reg
.ext_int_i (ext_int_i),
.gpio_io (gpio_io),
.gpio_i (gpio_i),
.gpio_o (gpio_o),
.sdram_addr (sdram_addr) , // wire [12:0] sdram_addr
.sdram_ba (sdram_ba) , // wire [1:0] sdram_ba
.sdram_cas_n (sdram_cas_n) , // wire sdram_cas_n
.sdram_cke (sdram_cke) , // wire sdram_cke
.sdram_cs_n (sdram_cs_n) , // wire sdram_cs_n
.sdram_dq (sdram_dq) , // inout [31:0] sdram_dq
.sdram_dqm (sdram_dqm) , // wire [3:0] sdram_dqm
.sdram_ras_n (sdram_ras_n) , // wire sdram_ras_n
.sdram_we_n (sdram_we_n) , // wire sdram_we_n
.sdram_clk (sdram_clk) // ou
//synthesis translate_off
//In case we want to handle NI interface using testbench not aeMB
,
.cpu_adr_i_array (),
.cpu_cyc_i (),
.cpu_dat_i_array (),
.cpu_sel_i_array (),
.cpu_stb_i (),
.cpu_wre_i (),
.cpu_ack_o (),
.cpu_dat_o_array ()
//synthesis translate_on
);
 
 
 
 
 
 
 
initial begin
clk = 1'b0;
forever clk = #10 ~clk;
end
 
initial begin
reset=1;
ext_int_i=0;
#50
reset=0;
end
 
 
endmodule
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/MPSoC_top.v
0,0 → 1,158
/*********************************************************************
File: MPSoC_top.v
Copyright (C) 2014 Alireza Monemi
 
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. If not, see <http://www.gnu.org/licenses/>.
Purpose:
The NoC based MPSoC top module for DE2-115 Altra board. The global
parameters for NoC are defined in "define.v" file.
 
Info: monemi@fkegraduate.utm.my
 
****************************************************************/
 
 
 
`include "define.v"
module MPSoC_top #(
parameter NI_CTRL_SIMULATION = "aeMB",
/*"aeMB" or "testbench".
Definig it as " aeMB" will generate the same MPSoC for both simulation and
implementation.
Defining it as "testbench" will remove the processors
in simulation. Hence, the simulation time will be decreased. The tasks to control
NI pins are written in tasks.V file */
//noc parameter
parameter TOPOLOGY = `TOPOLOGY_DEF,
parameter ROUTE_ALGRMT = `ROUTE_ALGRMT_DEF, //"XY" or "MINIMAL"
parameter VC_NUM_PER_PORT = `VC_NUM_PER_PORT_DEF ,
parameter PYLD_WIDTH = `PYLD_WIDTH_DEF,
parameter BUFFER_NUM_PER_VC = `BUFFER_NUM_PER_VC_DEF,
parameter X_NODE_NUM = `X_NODE_NUM_DEF,
parameter Y_NODE_NUM = `Y_NODE_NUM_DEF,
parameter AEMB_RAM_WIDTH_IN_WORD = `AEMB_RAM_WIDTH_IN_WORD_DEF,
parameter NOC_S_ADDR_WIDTH = `NOC_S_ADDR_WIDTH_DEF,
parameter SW_OUTPUT_REGISTERED = 0,// 1: registered , 0 not registered
// external sdram parameter
parameter SDRAM_EN = `SDRAM_EN_DEF,// 0 : disabled 1: enabled
parameter SDRAM_SW_X_ADDR = `SDRAM_SW_X_ADDR_DEF,
parameter SDRAM_SW_Y_ADDR = `SDRAM_SW_Y_ADDR_DEF,
parameter SDRAM_NI_CONNECT_PORT = `SDRAM_NI_CONNECT_PORT_DEF,
parameter SDRAM_ADDR_WIDTH = `SDRAM_ADDR_WIDTH_DEF,
parameter CAND_VC_SEL_MODE = 0,
// processors parameter
//parameter DEV_EN_ARRAY ="IPn:[the specefic value for nth IP];Def:[default value for the rest of IPs]"
parameter RAM_EN_ARRAY = `RAM_EN_ARRAY_DEF,
parameter NOC_EN_ARRAY = `NOC_EN_ARRAY_DEF,
parameter GPIO_EN_ARRAY = `GPIO_EN_ARRAY_DEF,
parameter EXT_INT_EN_ARRAY = `EXT_INT_EN_ARRAY_DEF,
parameter TIMER_EN_ARRAY = `TIMER_EN_ARRAY_DEF,
parameter INT_CTRL_EN_ARRAY = `INT_CTRL_EN_ARRAY_DEF,
//gpio parameters
parameter IO_EN_ARRAY = `IO_EN_ARRAY_DEF,
parameter I_EN_ARRAY = `I_EN_ARRAY_DEF,
parameter O_EN_ARRAY = `O_EN_ARRAY_DEF,
parameter EXT_INT_NUM_ARRAY = `EXT_INT_NUM_ARRAY_DEF,
parameter IO_PORT_WIDTH_ARRAY = `IO_PORT_WIDTH_ARRAY_DEF,
parameter I_PORT_WIDTH_ARRAY = `I_PORT_WIDTH_ARRAY_DEF,
parameter O_PORT_WIDTH_ARRAY = `O_PORT_WIDTH_ARRAY_DEF,
parameter TOTAL_EXT_INT_NUM = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,EXT_INT_NUM_ARRAY)+1,
parameter TOTAL_IO_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,IO_PORT_WIDTH_ARRAY)+1,
parameter TOTAL_I_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,I_PORT_WIDTH_ARRAY)+1,
parameter TOTAL_O_WIDTH = end_loc_in_array(X_NODE_NUM-1,Y_NODE_NUM-1,X_NODE_NUM,O_PORT_WIDTH_ARRAY)+1,
parameter TOTAL_ROUTERS_NUM = X_NODE_NUM * Y_NODE_NUM
)
(
 
 
input CLOCK_50,
input [3 : 0] KEY,
output [1 : 0] LEDG,
output [TOTAL_ROUTERS_NUM-2 : 0] LEDR,
output [6 : 0] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7,
// DRAM interface
output [12 : 0] DRAM_ADDR,
output [1 : 0] DRAM_BA,
output DRAM_CAS_N,
output DRAM_CKE,
output DRAM_CLK,
output DRAM_CS_N,
inout [31 : 0] DRAM_DQ,
output [3 : 0] DRAM_DQM,
output DRAM_RAS_N,
output DRAM_WE_N
);
`define ADD_FUNCTION 1
`include "my_functions.v"
 
 
wire reset;
wire clk;
wire [TOTAL_ROUTERS_NUM-2 :0] led;
wire [3 :0] ext_int_i;
wire jtag_reset;
 
assign clk = CLOCK_50;
assign LEDR = led;
assign LEDG[0] = reset;
assign LEDG[1] = jtag_reset;
assign reset = ~KEY[0];
assign ext_int_i= ~KEY[3:1];
aeMB_mpsoc the_mpsoc
(
.reset (reset | jtag_reset),
.clk (clk),
.ext_int_i (ext_int_i),
.gpio_io ( ),
.gpio_i ( ),
.gpio_o ({led,HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,HEX1,HEX0} ),
.sdram_addr (DRAM_ADDR), // sdram_wire.addr
.sdram_ba (DRAM_BA), // .ba
.sdram_cas_n (DRAM_CAS_N), // .cas_n
.sdram_cke (DRAM_CKE), // .cke
.sdram_cs_n (DRAM_CS_N), // .cs_n
.sdram_dq (DRAM_DQ), // .dq
.sdram_dqm (DRAM_DQM), // .dqm
.sdram_ras_n (DRAM_RAS_N), // .ras_n
.sdram_we_n (DRAM_WE_N), // .we_n
.sdram_clk (DRAM_CLK) // sdram_clk.clk
);
 
 
reset_jtag the_reset(
.probe(),
.source(jtag_reset)
);
 
 
 
endmodule
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/src/testbench_soc.v
0,0 → 1,81
/*********************************************************************
File: testbench_soc.v
Copyright (C) 2014 Alireza Monemi
 
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. If not, see <http://www.gnu.org/licenses/>.
Purpose:
A testbench for top-level design. This testbench can be used to simulate
a real life application. running the ./soc_run file in sw folder
will copy the generated mif file in simulation folder which will be read
by modelsim.
Info: monemi@fkegraduate.utm.my
*********************************************************************/
 
`timescale 1ns/1ps
 
 
module testbench_soc ();
reg clk,reset;
wire [3 : 0] KEY;
wire [3 : 0] LEDG;
wire [6 : 0] HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7;
reg [2: 0] ext_int;
 
SoC_IP_top IP(
.CLOCK_50 (clk),
.KEY (KEY),
.LEDG (LEDG),
.HEX0 (HEX0),
.HEX1 (HEX1),
.HEX2 (HEX2),
.HEX3 (HEX3),
.HEX4 (HEX4),
.HEX5 (HEX5),
.HEX6 (HEX6),
.HEX7 (HEX7)
);
 
assign KEY= {ext_int,~reset};
 
 
initial begin
clk = 1'b0;
forever clk = #10 ~clk;
end
 
initial begin
ext_int=0;
reset=1;
#50
reset=0;
#300000
ext_int = 1;
#50
ext_int = 0;
end
 
 
endmodule
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/mpsoc.qsf
38,7 → 38,7
 
set_global_assignment -name FAMILY "Cyclone IV E"
set_global_assignment -name DEVICE EP4CE115F29C7
set_global_assignment -name TOP_LEVEL_ENTITY top_de115
set_global_assignment -name TOP_LEVEL_ENTITY MPSoC_top
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 13.0
set_global_assignment -name PROJECT_CREATION_TIME_DATE "17:41:22 DECEMBER 25, 2013"
set_global_assignment -name LAST_QUARTUS_VERSION 13.0
1107,20 → 1107,25
set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKOUT_N2
set_location_assignment PIN_G24 -to HSMC_CLKOUT_N1
set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKOUT_N1
set_global_assignment -name EDA_TEST_BENCH_NAME testbench_soc -section_id eda_simulation
set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -section_id testbench_soc
set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME testbench_soc -section_id testbench_soc
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
set_global_assignment -name EDA_TEST_BENCH_NAME testbench -section_id eda_simulation
set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -section_id testbench
set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME testbench -section_id testbench
set_global_assignment -name EDA_TEST_BENCH_NAME testbench_mpsoc -section_id eda_simulation
set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -section_id testbench_mpsoc
set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME testbench_mpsoc -section_id testbench_mpsoc
set_global_assignment -name EDA_TEST_BENCH_NAME testbench_noc -section_id eda_simulation
set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -section_id testbench_noc
set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME testbench_noc -section_id testbench_noc
set_global_assignment -name EDA_TEST_BENCH_FILE src/testbench_noc.v -section_id testbench
set_global_assignment -name EDA_TEST_BENCH_FILE src/testbench.v -section_id testbench
set_global_assignment -name EDA_TEST_BENCH_FILE src/testbench_noc.v -section_id testbench_noc
set_global_assignment -name VERILOG_FILE src/IP_core/reset_jtag.v
set_global_assignment -name VERILOG_FILE src/MPSoC_top.v
set_global_assignment -name VERILOG_FILE src/IP_core/int_ctrl.v
set_global_assignment -name VERILOG_FILE src/IP_core/ext_int.v
set_global_assignment -name VERILOG_FILE src/IP_core/timer.v
set_global_assignment -name VERILOG_FILE src/SoC_IP_top.v
set_global_assignment -name VERILOG_FILE src/NoC/route_compute.v
set_global_assignment -name VERILOG_FILE src/top_de115.v
set_global_assignment -name VERILOG_FILE src/NoC/ext_ram_nic.v
set_global_assignment -name VERILOG_FILE src/NoC/sdram_core.v
set_global_assignment -name VERILOG_FILE src/IP_core/sdram/synthesis/submodules/sdram_up_clocks_0.v
1184,4 → 1189,8
set_global_assignment -name VERILOG_FILE src/IP_core/aeMB_mpsoc.v
set_global_assignment -name VERILOG_FILE src/IP_core/bus_addr_cmp.v
set_global_assignment -name SDC_FILE clk50.sdc
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
set_global_assignment -name EDA_TEST_BENCH_FILE src/testbench_noc.v -section_id testbench_soc
set_global_assignment -name EDA_TEST_BENCH_FILE src/testbench_soc.v -section_id testbench_soc
set_global_assignment -name EDA_TEST_BENCH_FILE src/testbench_mpsoc.v -section_id testbench_mpsoc
set_global_assignment -name EDA_TEST_BENCH_FILE src/testbench_noc.v -section_id testbench_noc
an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/do Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_00.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_00.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_00.c (nonexistent) @@ -1,66 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - -unsigned int buffer [BUFFER_SIZE]; - -#define DES_X 2 -#define DES_Y 1 -#define DES_ADDR core_addr(DES_X, DES_Y) - -void delay(unsigned int); - - -int main() -{ -unsigned int status=0; - int i; - *led_ptr = 0x0001; - while(1){ - - - *led_ptr = *led_ptr +1; - // delay ( 10); - - for (i=1;i<15;i++) { - buffer [i] = i*2; - } - - - - - buffer [0]= DES_ADDR ; - *nic_wr_ptr = (unsigned int) (&buffer[0]) + (BUFFER_SIZE<<19); - while (!(status & NIC_WR_DONE_LOC)) status = *nic_st_ptr ; - - // usleep(1000000); - // *led_ptr = 0x0000; -//delay ( 10); - //usleep(1000000); - - - } - - - - - - - return 0; -} - - - - -void delay ( unsigned int num ){ - - while (num>0){ - num--; - asm volatile ("nop"); - } - return; - -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_00.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_00.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_00.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_01.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_01.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_01.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_00.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_00.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_00.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_01.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_01.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_01.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_02.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_02.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_02.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_01.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_01.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_01.c (nonexistent) @@ -1,37 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - -unsigned int buffer [BUFFER_SIZE]; - -int main(void){ - - - unsigned int status=0; - int i; - - while(1){ - while (!(status & NIC_HAS_PCK_LOC)) status = *nic_st_ptr ; - *led_ptr = 0xFFFF; - *nic_rd_ptr= (unsigned int) (&buffer[0]) + (BUFFER_SIZE<<19); - - } - return 0; -} - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_02.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_02.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_02.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_03.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_03.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu00_03.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_00.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_00.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_00.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/send.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/send.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/send.c (nonexistent) @@ -1,66 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" -//#include "aemb/core.hh" - - -unsigned int buffer [BUFFER_SIZE]; - -#define DES_X 3 -#define DES_Y 1 -#define DES_ADDR core_addr(DES_X, DES_Y) - -void delay(unsigned int); - - -int main() -{ -unsigned int status=0; - int i; - *led_ptr = 0x0001; - while(1){ - - - *led_ptr = *led_ptr +1; - // delay ( 10); - - for (i=1;i<15;i++) { - buffer [i] = i*2; - } - - - - - buffer [0]= DES_ADDR ; - *nic_wr_ptr = (unsigned int) (&buffer[0]) + (BUFFER_SIZE<<19); - while (!(status & NIC_WR_DONE_LOC)) status = *nic_st_ptr ; - - // usleep(1000000); - // *led_ptr = 0x0000; -//delay ( 10); - //usleep(1000000); - - - } - - - - - - - return 0; -} - - - - -void delay ( unsigned int num ){ - - while (num>0){ - num--; - asm volatile ("nop"); - } - return; - -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_01.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_01.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_01.c (nonexistent) @@ -1,37 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - -unsigned int buffer [BUFFER_SIZE]; - -int main(void){ - - - unsigned int status=0; - int i; - - while(1){ - while (!(status & NIC_HAS_PCK_LOC)) status = *nic_st_ptr ; - *led_ptr = 0xFFFF; - *nic_rd_ptr= (unsigned int) (&buffer[0]) + (BUFFER_SIZE<<19); - - } - return 0; -} - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_02.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_02.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_02.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_03.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_03.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu01_03.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_02.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_02.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_02.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_03.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_03.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu02_03.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_03.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_03.c (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/code/cpu03_03.c (nonexistent) @@ -1,28 +0,0 @@ -#include "orsocdef.h" -#include -#include "addr_map.h" - - - - - - -void delay ( unsigned int ); - - -int main(void){ - *led_ptr = *led_ptr +1; - delay ( 10); - return 0; -} - - - -void delay ( unsigned int num ){ - while (num>0){ - num--; - asm volatile ("nop"); - } - return; -} - Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/run =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/run (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/run (nonexistent) @@ -1,15 +0,0 @@ -#!/bin/sh - - rm -Rf ram/*.mif - rm -Rf ../simulation/modelsim/sw/ram/*.mif - cd code -for i in $(ls *.c); do - echo item: $i - cp $i ../compile/code.c - cd ../compile - ./gccrom code.c - cp out/ram0.mif ../ram/${i%.*}.mif - cp out/ram0.mif ../../simulation/modelsim/sw/ram/${i%.*}.mif - rm code.c - cd ../code -done
an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/run Property changes : Deleted: svn:executable ## -1 +0,0 ## -* \ No newline at end of property Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_00.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_00.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_00.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B808017C; + 00000002 : B8080320; 00000003 : 00000000; - 00000004 : B808018C; + 00000004 : B8080190; [00000005..00000007] : 00000000; - 00000008 : B8080184; + 00000008 : B8080328; [00000009..00000013] : 00000000; - 00000014 : 31A004C0; - 00000015 : 304003B8; - 00000016 : 30200D30; + 00000014 : 31A00688; + 00000015 : 30400590; + 00000016 : 30200E80; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F40140; + 00000019 : B9F402DC; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C004C0; - 0000001F : 20E004C0; + 0000001E : 20C00688; + 0000001F : 20E00688; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C004C0; - 00000027 : 20E0053C; + 00000026 : 20C00688; + 00000027 : 20E0068C; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,204 +40,318 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400E4; + 0000002E : B9F40280; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; - 00000032 : B9F40024; + 00000032 : B9F401A8; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F400C0; + 00000035 : B9F4025C; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; 00000039 : B60F0008; 0000003A : 20210014; - 0000003B : E8A003B8; - 0000003C : E8E003C0; - 0000003D : E94003C4; - 0000003E : B00000F8; - 0000003F : 312004C0; - 00000040 : B0001200; - 00000041 : 31000000; - 00000042 : 30600001; - 00000043 : F8650000; - 00000044 : 10C00000; - 00000045 : E8650000; - 00000046 : 30800002; - 00000047 : 30630001; - 00000048 : F8650000; - 00000049 : 10642000; - 0000004A : F88304C0; - 0000004B : 30840002; - 0000004C : AA44001E; - 0000004D : BE32FFF4; - 0000004E : 10642000; - 0000004F : F90004C0; - 00000050 : F9270000; - 00000051 : BC26FFD0; - 00000052 : E86A0000; - 00000053 : A4C30001; - 00000054 : BC26FFC4; - 00000055 : E86A0000; - 00000056 : A4C30001; - 00000057 : BC26FFB8; - 00000058 : B800FFE8; - 00000059 : B8000008; - 0000005A : 80000000; - 0000005B : BE25FFFC; - 0000005C : 30A5FFFF; - 0000005D : B60F0008; - 0000005E : 80000000; - 0000005F : B6110000; - 00000060 : 80000000; - 00000061 : B6910000; - 00000062 : 80000000; - 00000063 : B62E0000; - 00000064 : 80000000; - 00000065 : B60F0008; - 00000066 : 80000000; - 00000067 : B60F0008; - 00000068 : 80000000; - 00000069 : 3021FFE0; - 0000006A : 10C00000; - 0000006B : FA61001C; - 0000006C : F9E10000; - 0000006D : B9F40024; - 0000006E : 12650000; - 0000006F : E8A003AC; - 00000070 : E8650028; - 00000071 : BC03000C; - 00000072 : 99FC1800; - 00000073 : 80000000; - 00000074 : B9F4FE9C; - 00000075 : 10B30000; - 00000076 : E86003AC; - 00000077 : 3021FFC8; - 00000078 : FB410030; - 00000079 : FB610034; - 0000007A : F9E10000; - 0000007B : FA61001C; - 0000007C : FAC10020; - 0000007D : FAE10024; - 0000007E : FB010028; - 0000007F : FB21002C; - 00000080 : EB030048; - 00000081 : 13650000; - 00000082 : BE180050; - 00000083 : 13460000; - 00000084 : E8780004; - 00000085 : EB380088; - 00000086 : 3263FFFF; - 00000087 : BC53003C; - 00000088 : 64930402; - 00000089 : 30640008; - 0000008A : 12D81800; - 0000008B : BE060074; - 0000008C : 12F92000; - 0000008D : BC1900C0; - 0000008E : E8770080; - 0000008F : 1643D000; - 00000090 : BC1200EC; - 00000091 : 3273FFFF; - 00000092 : 32F7FFFC; - 00000093 : AA53FFFF; - 00000094 : BE32FFE8; - 00000095 : 32D6FFFC; - 00000096 : E9E10000; - 00000097 : EA61001C; - 00000098 : EAC10020; - 00000099 : EAE10024; - 0000009A : EB010028; - 0000009B : EB21002C; - 0000009C : EB410030; - 0000009D : EB610034; - 0000009E : B60F0008; - 0000009F : 30210038; - 000000A0 : E8B70000; - 000000A1 : 99FC3800; - 000000A2 : 80000000; - 000000A3 : 3273FFFF; - 000000A4 : 32F7FFFC; - 000000A5 : AA53FFFF; - 000000A6 : BE12FFC0; - 000000A7 : 32D6FFFC; - 000000A8 : E8780004; - 000000A9 : E8F60000; - 000000AA : 3063FFFF; - 000000AB : 16439800; - 000000AC : BC120074; - 000000AD : F8160000; - 000000AE : BC07FFD4; - 000000AF : BE190058; - 000000B0 : 30800001; - 000000B1 : E8790100; - 000000B2 : 44849C00; - 000000B3 : 84641800; - 000000B4 : BC030044; - 000000B5 : E8790104; - 000000B6 : 84641800; - 000000B7 : BC23FFA4; - 000000B8 : E8D70000; - 000000B9 : 99FC3800; - 000000BA : 10BB0000; - 000000BB : B810FFA4; - 000000BC : 3273FFFF; - 000000BD : 3273FFFF; - 000000BE : AA53FFFF; - 000000BF : BE12FF5C; - 000000C0 : 3273FFFF; - 000000C1 : AA53FFFF; - 000000C2 : BE32FFF0; - 000000C3 : 3273FFFF; - 000000C4 : B800FF48; - 000000C5 : 99FC3800; - 000000C6 : 3273FFFF; - 000000C7 : B810FF78; - 000000C8 : 32F7FFFC; - 000000C9 : FA780004; - 000000CA : B800FF90; - 000000CB : E8780004; - 000000CC : E8F60000; - 000000CD : 3063FFFF; - 000000CE : 16439800; - 000000CF : BC120054; - 000000D0 : F8160000; - 000000D1 : BC07FF00; - 000000D2 : BC190038; - 000000D3 : 30800001; - 000000D4 : E8790100; - 000000D5 : 44849C00; - 000000D6 : 84641800; - 000000D7 : BC030024; - 000000D8 : E8790104; - 000000D9 : 84641800; - 000000DA : BC230030; - 000000DB : E8D70000; - 000000DC : 99FC3800; - 000000DD : 10BB0000; - 000000DE : B810FED0; - 000000DF : 3273FFFF; - 000000E0 : 99FC3800; - 000000E1 : 3273FFFF; - 000000E2 : B810FEC4; - 000000E3 : 32F7FFFC; - 000000E4 : FA780004; - 000000E5 : B800FFB0; - 000000E6 : E8B70000; - 000000E7 : 99FC3800; - 000000E8 : 3273FFFF; - 000000E9 : B810FEA8; - 000000EA : 32F7FFFC; - 000000EB : 000003CC; - 000000EC : 43000000; - 000000ED : 00000000; - 000000EE : 41000000; - 000000EF : 40000000; - 000000F0 : 40000004; - 000000F1 : 40000008; - 000000F2 : 000003CC; - [000000F3..000000FA] : 00000000; - 000000FB : 000003B0; - [000000FC..00000FFF] : 00000000; + 0000003B : 94608001; + 0000003C : A0630002; + 0000003D : 9403C001; + 0000003E : B60F0008; + 0000003F : 80000000; + 00000040 : B0004300; + 00000041 : 30600000; + 00000042 : E8800688; + 00000043 : E8A30000; + 00000044 : 30840001; + 00000045 : F8800688; + 00000046 : F8A30000; + 00000047 : B60F0008; + 00000048 : 80000000; + 00000049 : B0004400; + 0000004A : E860000C; + 0000004B : A4630001; + 0000004C : BC030010; + 0000004D : B000DEAD; + 0000004E : 3060BEAF; + 0000004F : F8600688; + 00000050 : B0004400; + 00000051 : E860000C; + 00000052 : A4630002; + 00000053 : BC030010; + 00000054 : B0001234; + 00000055 : 30605678; + 00000056 : F8600688; + 00000057 : B0004400; + 00000058 : E860000C; + 00000059 : A4630004; + 0000005A : BC030010; + 0000005B : B000AAAA; + 0000005C : 3060AAAA; + 0000005D : F8600688; + 0000005E : B0004200; + 0000005F : E860000C; + 00000060 : B0004200; + 00000061 : F860000C; + 00000062 : B60F0008; + 00000063 : 80000000; + 00000064 : 3021FFB0; + 00000065 : F9E10000; + 00000066 : F8610020; + 00000067 : F8810024; + 00000068 : F8A10028; + 00000069 : F8C1002C; + 0000006A : F8E10030; + 0000006B : F9010034; + 0000006C : F9210038; + 0000006D : F941003C; + 0000006E : F9610040; + 0000006F : F9810044; + 00000070 : FA210048; + 00000071 : 95608001; + 00000072 : FA41004C; + 00000073 : F961001C; + 00000074 : B0004400; + 00000075 : E860000C; + 00000076 : A4630008; + 00000077 : BC230070; + 00000078 : B0004400; + 00000079 : E860000C; + 0000007A : A4630007; + 0000007B : BC03000C; + 0000007C : B9F4FF34; + 0000007D : 80000000; + 0000007E : B0004400; + 0000007F : E860000C; + 00000080 : B0004400; + 00000081 : F8600008; + 00000082 : E9E10000; + 00000083 : E961001C; + 00000084 : E8610020; + 00000085 : E8810024; + 00000086 : 940BC001; + 00000087 : E8A10028; + 00000088 : E8C1002C; + 00000089 : E8E10030; + 0000008A : E9010034; + 0000008B : E9210038; + 0000008C : E941003C; + 0000008D : E9610040; + 0000008E : E9810044; + 0000008F : EA210048; + 00000090 : EA41004C; + 00000091 : B62E0000; + 00000092 : 30210050; + 00000093 : B9F4FEB4; + 00000094 : 80000000; + 00000095 : B800FF8C; + 00000096 : B8000008; + 00000097 : 80000000; + 00000098 : BE25FFFC; + 00000099 : 30A5FFFF; + 0000009A : B60F0008; + 0000009B : 30A50001; + 0000009C : 3021FFE4; + 0000009D : F9E10000; + 0000009E : 30800007; + 0000009F : B00002FA; + 000000A0 : 3060F080; + 000000A1 : B0004200; + 000000A2 : F8800004; + 000000A3 : 30A00003; + 000000A4 : B0004200; + 000000A5 : F8A00000; + 000000A6 : B0004300; + 000000A7 : F8600008; + 000000A8 : B0004300; + 000000A9 : F8800000; + 000000AA : 3060000F; + 000000AB : B0004400; + 000000AC : F8600004; + 000000AD : B0004400; + 000000AE : F8A00000; + 000000AF : F8000688; + 000000B0 : B9F4FE2C; + 000000B1 : 80000000; + 000000B2 : 10E00000; + 000000B3 : 10C70000; + 000000B4 : B0004100; + 000000B5 : 30A02004; + 000000B6 : E8600688; + 000000B7 : 30E70001; + 000000B8 : 44633000; + 000000B9 : A463000F; + 000000BA : 64630402; + 000000BB : E8830548; + 000000BC : 30C60004; + 000000BD : A884FFFF; + 000000BE : F8850000; + 000000BF : AA470008; + 000000C0 : BE32FFD8; + 000000C1 : 30A50080; + 000000C2 : B0000000; + 000000C3 : 30A0C350; + 000000C4 : B9F4FF48; + 000000C5 : 80000000; + 000000C6 : B810FFB4; + 000000C7 : 10E00000; + 000000C8 : B6110000; + 000000C9 : 80000000; + 000000CA : B6910000; + 000000CB : 80000000; + 000000CC : B60F0008; + 000000CD : 80000000; + 000000CE : B60F0008; + 000000CF : 80000000; + 000000D0 : 3021FFE0; + 000000D1 : 10C00000; + 000000D2 : FA61001C; + 000000D3 : F9E10000; + 000000D4 : B9F40024; + 000000D5 : 12650000; + 000000D6 : E8A00588; + 000000D7 : E8650028; + 000000D8 : BC03000C; + 000000D9 : 99FC1800; + 000000DA : 80000000; + 000000DB : B9F4FD00; + 000000DC : 10B30000; + 000000DD : E8600588; + 000000DE : 3021FFC8; + 000000DF : FB410030; + 000000E0 : FB610034; + 000000E1 : F9E10000; + 000000E2 : FA61001C; + 000000E3 : FAC10020; + 000000E4 : FAE10024; + 000000E5 : FB010028; + 000000E6 : FB21002C; + 000000E7 : EB030048; + 000000E8 : 13650000; + 000000E9 : BE180050; + 000000EA : 13460000; + 000000EB : E8780004; + 000000EC : EB380088; + 000000ED : 3263FFFF; + 000000EE : BC53003C; + 000000EF : 64930402; + 000000F0 : 30640008; + 000000F1 : 12D81800; + 000000F2 : BE060074; + 000000F3 : 12F92000; + 000000F4 : BC1900C0; + 000000F5 : E8770080; + 000000F6 : 1643D000; + 000000F7 : BC1200EC; + 000000F8 : 3273FFFF; + 000000F9 : 32F7FFFC; + 000000FA : AA53FFFF; + 000000FB : BE32FFE8; + 000000FC : 32D6FFFC; + 000000FD : E9E10000; + 000000FE : EA61001C; + 000000FF : EAC10020; + 00000100 : EAE10024; + 00000101 : EB010028; + 00000102 : EB21002C; + 00000103 : EB410030; + 00000104 : EB610034; + 00000105 : B60F0008; + 00000106 : 30210038; + 00000107 : E8B70000; + 00000108 : 99FC3800; + 00000109 : 80000000; + 0000010A : 3273FFFF; + 0000010B : 32F7FFFC; + 0000010C : AA53FFFF; + 0000010D : BE12FFC0; + 0000010E : 32D6FFFC; + 0000010F : E8780004; + 00000110 : E8F60000; + 00000111 : 3063FFFF; + 00000112 : 16439800; + 00000113 : BC120074; + 00000114 : F8160000; + 00000115 : BC07FFD4; + 00000116 : BE190058; + 00000117 : 30800001; + 00000118 : E8790100; + 00000119 : 44849C00; + 0000011A : 84641800; + 0000011B : BC030044; + 0000011C : E8790104; + 0000011D : 84641800; + 0000011E : BC23FFA4; + 0000011F : E8D70000; + 00000120 : 99FC3800; + 00000121 : 10BB0000; + 00000122 : B810FFA4; + 00000123 : 3273FFFF; + 00000124 : 3273FFFF; + 00000125 : AA53FFFF; + 00000126 : BE12FF5C; + 00000127 : 3273FFFF; + 00000128 : AA53FFFF; + 00000129 : BE32FFF0; + 0000012A : 3273FFFF; + 0000012B : B800FF48; + 0000012C : 99FC3800; + 0000012D : 3273FFFF; + 0000012E : B810FF78; + 0000012F : 32F7FFFC; + 00000130 : FA780004; + 00000131 : B800FF90; + 00000132 : E8780004; + 00000133 : E8F60000; + 00000134 : 3063FFFF; + 00000135 : 16439800; + 00000136 : BC120054; + 00000137 : F8160000; + 00000138 : BC07FF00; + 00000139 : BC190038; + 0000013A : 30800001; + 0000013B : E8790100; + 0000013C : 44849C00; + 0000013D : 84641800; + 0000013E : BC030024; + 0000013F : E8790104; + 00000140 : 84641800; + 00000141 : BC230030; + 00000142 : E8D70000; + 00000143 : 99FC3800; + 00000144 : 10BB0000; + 00000145 : B810FED0; + 00000146 : 3273FFFF; + 00000147 : 99FC3800; + 00000148 : 3273FFFF; + 00000149 : B810FEC4; + 0000014A : 32F7FFFC; + 0000014B : FA780004; + 0000014C : B800FFB0; + 0000014D : E8B70000; + 0000014E : 99FC3800; + 0000014F : 3273FFFF; + 00000150 : B810FEA8; + 00000151 : 32F7FFFC; + 00000152 : 0000003F; + 00000153 : 00000006; + 00000154 : 0000005B; + 00000155 : 0000004F; + 00000156 : 00000066; + 00000157 : 0000006D; + 00000158 : 0000007D; + 00000159 : 00000007; + 0000015A : 0000007F; + 0000015B : 0000006F; + 0000015C : 00000077; + 0000015D : 0000007C; + 0000015E : 00000039; + 0000015F : 0000005E; + 00000160 : 00000079; + 00000161 : 00000071; + 00000162 : 00000594; + 00000163 : 43000000; + 00000164 : 00000594; + [00000165..0000016C] : 00000000; + 0000016D : 0000058C; + [0000016E..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_01.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_01.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_01.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B8080158; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B8080168; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080160; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00488; + 00000015 : 30400390; + 00000016 : 30200CF8; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F4011C; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00488; + 0000001F : 20E00488; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00488; + 00000027 : 20E00504; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,186 +40,190 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400C0; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; - 00000032 : B9F4003C; + 00000032 : B9F40024; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F4009C; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; 00000039 : B60F0008; 0000003A : 20210014; - 0000003B : B8000008; - 0000003C : 80000000; - 0000003D : BE25FFFC; - 0000003E : 30A5FFFF; - 0000003F : B60F0008; - 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 0000003B : B00000F8; + 0000003C : 30C00488; + 0000003D : B0000420; + 0000003E : 30A00000; + 0000003F : 30600001; + 00000040 : 10800000; + 00000041 : F864048C; + 00000042 : 30630001; + 00000043 : AA43001F; + 00000044 : BE32FFF4; + 00000045 : 30840004; + 00000046 : F8A00488; + 00000047 : B0004000; + 00000048 : F8C00004; + 00000049 : B0004000; + 0000004A : E8600008; + 0000004B : A4630001; + 0000004C : BE03FFF4; + 0000004D : 30600001; + 0000004E : B810FFCC; + 0000004F : 10800000; + 00000050 : B8000008; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; + 00000052 : BE25FFFC; + 00000053 : 30A5FFFF; 00000054 : B60F0008; 00000055 : 80000000; - 00000056 : B60F0008; + 00000056 : B6110000; 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000058 : B6910000; + 00000059 : 80000000; + 0000005A : B62E0000; + 0000005B : 80000000; + 0000005C : B60F0008; + 0000005D : 80000000; + 0000005E : B60F0008; + 0000005F : 80000000; + 00000060 : 3021FFE0; + 00000061 : 10C00000; + 00000062 : FA61001C; + 00000063 : F9E10000; + 00000064 : B9F40024; + 00000065 : 12650000; + 00000066 : E8A00388; + 00000067 : E8650028; + 00000068 : BC03000C; + 00000069 : 99FC1800; + 0000006A : 80000000; + 0000006B : B9F4FEC0; + 0000006C : 10B30000; + 0000006D : E8600388; + 0000006E : 3021FFC8; + 0000006F : FB410030; + 00000070 : FB610034; + 00000071 : F9E10000; + 00000072 : FA61001C; + 00000073 : FAC10020; + 00000074 : FAE10024; + 00000075 : FB010028; + 00000076 : FB21002C; + 00000077 : EB030048; + 00000078 : 13650000; + 00000079 : BE180050; + 0000007A : 13460000; + 0000007B : E8780004; + 0000007C : EB380088; + 0000007D : 3263FFFF; + 0000007E : BC53003C; + 0000007F : 64930402; + 00000080 : 30640008; + 00000081 : 12D81800; + 00000082 : BE060074; + 00000083 : 12F92000; + 00000084 : BC1900C0; + 00000085 : E8770080; + 00000086 : 1643D000; + 00000087 : BC1200EC; + 00000088 : 3273FFFF; + 00000089 : 32F7FFFC; + 0000008A : AA53FFFF; + 0000008B : BE32FFE8; + 0000008C : 32D6FFFC; + 0000008D : E9E10000; + 0000008E : EA61001C; + 0000008F : EAC10020; + 00000090 : EAE10024; + 00000091 : EB010028; + 00000092 : EB21002C; + 00000093 : EB410030; + 00000094 : EB610034; + 00000095 : B60F0008; + 00000096 : 30210038; + 00000097 : E8B70000; + 00000098 : 99FC3800; + 00000099 : 80000000; + 0000009A : 3273FFFF; + 0000009B : 32F7FFFC; + 0000009C : AA53FFFF; + 0000009D : BE12FFC0; + 0000009E : 32D6FFFC; + 0000009F : E8780004; + 000000A0 : E8F60000; + 000000A1 : 3063FFFF; + 000000A2 : 16439800; + 000000A3 : BC120074; + 000000A4 : F8160000; + 000000A5 : BC07FFD4; + 000000A6 : BE190058; + 000000A7 : 30800001; + 000000A8 : E8790100; + 000000A9 : 44849C00; + 000000AA : 84641800; + 000000AB : BC030044; + 000000AC : E8790104; + 000000AD : 84641800; + 000000AE : BC23FFA4; + 000000AF : E8D70000; + 000000B0 : 99FC3800; + 000000B1 : 10BB0000; + 000000B2 : B810FFA4; + 000000B3 : 3273FFFF; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE12FF5C; + 000000B7 : 3273FFFF; + 000000B8 : AA53FFFF; + 000000B9 : BE32FFF0; + 000000BA : 3273FFFF; + 000000BB : B800FF48; + 000000BC : 99FC3800; + 000000BD : 3273FFFF; + 000000BE : B810FF78; + 000000BF : 32F7FFFC; + 000000C0 : FA780004; + 000000C1 : B800FF90; + 000000C2 : E8780004; + 000000C3 : E8F60000; + 000000C4 : 3063FFFF; + 000000C5 : 16439800; + 000000C6 : BC120054; + 000000C7 : F8160000; + 000000C8 : BC07FF00; + 000000C9 : BC190038; + 000000CA : 30800001; + 000000CB : E8790100; + 000000CC : 44849C00; + 000000CD : 84641800; + 000000CE : BC030024; + 000000CF : E8790104; + 000000D0 : 84641800; + 000000D1 : BC230030; + 000000D2 : E8D70000; + 000000D3 : 99FC3800; + 000000D4 : 10BB0000; + 000000D5 : B810FED0; + 000000D6 : 3273FFFF; + 000000D7 : 99FC3800; + 000000D8 : 3273FFFF; + 000000D9 : B810FEC4; + 000000DA : 32F7FFFC; + 000000DB : FA780004; + 000000DC : B800FFB0; + 000000DD : E8B70000; + 000000DE : 99FC3800; + 000000DF : 3273FFFF; + 000000E0 : B810FEA8; + 000000E1 : 32F7FFFC; + 000000E2 : 00000394; + 000000E3 : 43000000; + 000000E4 : 00000394; + [000000E5..000000EC] : 00000000; + 000000ED : 0000038C; + [000000EE..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_00.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_00.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_00.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B0000000; + 00000049 : 30A0C350; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B0000000; + 0000004E : 30A0C350; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_02.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_02.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_02.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B000000F; + 00000049 : 30A04240; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B000000F; + 0000004E : 30A04240; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_01.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_01.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_01.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B000004C; + 00000049 : 30A04B40; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B000004C; + 0000004E : 30A04B40; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_00.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_00.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_00.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B0000003; + 00000049 : 30A00D40; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B0000003; + 0000004E : 30A00D40; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_03.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_03.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu00_03.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B0000000; + 00000049 : 30A0C350; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B0000000; + 0000004E : 30A0C350; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_02.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_02.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_02.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B000002D; + 00000049 : 30A0C6C0; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B000002D; + 0000004E : 30A0C6C0; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_01.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_01.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_01.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080140; + 00000002 : B8080128; 00000003 : 00000000; - 00000004 : B8080150; + 00000004 : B8080138; [00000005..00000007] : 00000000; - 00000008 : B8080148; + 00000008 : B8080130; [00000009..00000013] : 00000000; - 00000014 : 31A00480; - 00000015 : 30400378; - 00000016 : 30200CF0; + 00000014 : 31A00458; + 00000015 : 30400360; + 00000016 : 30200CC8; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F40104; + 00000019 : B9F400EC; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00480; - 0000001F : 20E00480; + 0000001E : 20C00458; + 0000001F : 20E00458; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00480; - 00000027 : 20E004FC; + 00000026 : 20C00458; + 00000027 : 20E004D4; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A8; + 0000002E : B9F40090; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,181 +47,171 @@ 00000032 : B9F40024; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F40084; + 00000035 : B9F4006C; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; 00000039 : B60F0008; 0000003A : 20210014; - 0000003B : E8C00378; - 0000003C : E8A0037C; - 0000003D : E8800384; - 0000003E : B00000F8; - 0000003F : 31000480; - 00000040 : B0000000; - 00000041 : 30E0FFFF; - 00000042 : 10600000; - 00000043 : BC030010; - 00000044 : F8E60000; - 00000045 : F9050000; - 00000046 : BC23FFF8; - 00000047 : E8640000; - 00000048 : B810FFEC; - 00000049 : A4630010; - 0000004A : B8000008; + 0000003B : B00000F8; + 0000003C : 30800458; + 0000003D : B0004000; + 0000003E : E8600008; + 0000003F : A4630010; + 00000040 : BC03FFF4; + 00000041 : B0004000; + 00000042 : F8800000; + 00000043 : B800FFE8; + 00000044 : B8000008; + 00000045 : 80000000; + 00000046 : BE25FFFC; + 00000047 : 30A5FFFF; + 00000048 : B60F0008; + 00000049 : 80000000; + 0000004A : B6110000; 0000004B : 80000000; - 0000004C : BE25FFFC; - 0000004D : 30A5FFFF; - 0000004E : B60F0008; + 0000004C : B6910000; + 0000004D : 80000000; + 0000004E : B62E0000; 0000004F : 80000000; - 00000050 : B6110000; + 00000050 : B60F0008; 00000051 : 80000000; - 00000052 : B6910000; + 00000052 : B60F0008; 00000053 : 80000000; - 00000054 : B62E0000; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : B60F0008; - 00000059 : 80000000; - 0000005A : 3021FFE0; - 0000005B : 10C00000; - 0000005C : FA61001C; - 0000005D : F9E10000; - 0000005E : B9F40024; - 0000005F : 12650000; - 00000060 : E8A00370; - 00000061 : E8650028; - 00000062 : BC03000C; - 00000063 : 99FC1800; - 00000064 : 80000000; - 00000065 : B9F4FED8; - 00000066 : 10B30000; - 00000067 : E8600370; - 00000068 : 3021FFC8; - 00000069 : FB410030; - 0000006A : FB610034; - 0000006B : F9E10000; - 0000006C : FA61001C; - 0000006D : FAC10020; - 0000006E : FAE10024; - 0000006F : FB010028; - 00000070 : FB21002C; - 00000071 : EB030048; - 00000072 : 13650000; - 00000073 : BE180050; - 00000074 : 13460000; - 00000075 : E8780004; - 00000076 : EB380088; - 00000077 : 3263FFFF; - 00000078 : BC53003C; - 00000079 : 64930402; - 0000007A : 30640008; - 0000007B : 12D81800; - 0000007C : BE060074; - 0000007D : 12F92000; - 0000007E : BC1900C0; - 0000007F : E8770080; - 00000080 : 1643D000; - 00000081 : BC1200EC; - 00000082 : 3273FFFF; - 00000083 : 32F7FFFC; - 00000084 : AA53FFFF; - 00000085 : BE32FFE8; - 00000086 : 32D6FFFC; - 00000087 : E9E10000; - 00000088 : EA61001C; - 00000089 : EAC10020; - 0000008A : EAE10024; - 0000008B : EB010028; - 0000008C : EB21002C; - 0000008D : EB410030; - 0000008E : EB610034; - 0000008F : B60F0008; - 00000090 : 30210038; - 00000091 : E8B70000; - 00000092 : 99FC3800; - 00000093 : 80000000; - 00000094 : 3273FFFF; - 00000095 : 32F7FFFC; - 00000096 : AA53FFFF; - 00000097 : BE12FFC0; - 00000098 : 32D6FFFC; - 00000099 : E8780004; - 0000009A : E8F60000; - 0000009B : 3063FFFF; - 0000009C : 16439800; - 0000009D : BC120074; - 0000009E : F8160000; - 0000009F : BC07FFD4; - 000000A0 : BE190058; - 000000A1 : 30800001; - 000000A2 : E8790100; - 000000A3 : 44849C00; - 000000A4 : 84641800; - 000000A5 : BC030044; - 000000A6 : E8790104; - 000000A7 : 84641800; - 000000A8 : BC23FFA4; - 000000A9 : E8D70000; - 000000AA : 99FC3800; - 000000AB : 10BB0000; - 000000AC : B810FFA4; - 000000AD : 3273FFFF; + 00000054 : 3021FFE0; + 00000055 : 10C00000; + 00000056 : FA61001C; + 00000057 : F9E10000; + 00000058 : B9F40024; + 00000059 : 12650000; + 0000005A : E8A00358; + 0000005B : E8650028; + 0000005C : BC03000C; + 0000005D : 99FC1800; + 0000005E : 80000000; + 0000005F : B9F4FEF0; + 00000060 : 10B30000; + 00000061 : E8600358; + 00000062 : 3021FFC8; + 00000063 : FB410030; + 00000064 : FB610034; + 00000065 : F9E10000; + 00000066 : FA61001C; + 00000067 : FAC10020; + 00000068 : FAE10024; + 00000069 : FB010028; + 0000006A : FB21002C; + 0000006B : EB030048; + 0000006C : 13650000; + 0000006D : BE180050; + 0000006E : 13460000; + 0000006F : E8780004; + 00000070 : EB380088; + 00000071 : 3263FFFF; + 00000072 : BC53003C; + 00000073 : 64930402; + 00000074 : 30640008; + 00000075 : 12D81800; + 00000076 : BE060074; + 00000077 : 12F92000; + 00000078 : BC1900C0; + 00000079 : E8770080; + 0000007A : 1643D000; + 0000007B : BC1200EC; + 0000007C : 3273FFFF; + 0000007D : 32F7FFFC; + 0000007E : AA53FFFF; + 0000007F : BE32FFE8; + 00000080 : 32D6FFFC; + 00000081 : E9E10000; + 00000082 : EA61001C; + 00000083 : EAC10020; + 00000084 : EAE10024; + 00000085 : EB010028; + 00000086 : EB21002C; + 00000087 : EB410030; + 00000088 : EB610034; + 00000089 : B60F0008; + 0000008A : 30210038; + 0000008B : E8B70000; + 0000008C : 99FC3800; + 0000008D : 80000000; + 0000008E : 3273FFFF; + 0000008F : 32F7FFFC; + 00000090 : AA53FFFF; + 00000091 : BE12FFC0; + 00000092 : 32D6FFFC; + 00000093 : E8780004; + 00000094 : E8F60000; + 00000095 : 3063FFFF; + 00000096 : 16439800; + 00000097 : BC120074; + 00000098 : F8160000; + 00000099 : BC07FFD4; + 0000009A : BE190058; + 0000009B : 30800001; + 0000009C : E8790100; + 0000009D : 44849C00; + 0000009E : 84641800; + 0000009F : BC030044; + 000000A0 : E8790104; + 000000A1 : 84641800; + 000000A2 : BC23FFA4; + 000000A3 : E8D70000; + 000000A4 : 99FC3800; + 000000A5 : 10BB0000; + 000000A6 : B810FFA4; + 000000A7 : 3273FFFF; + 000000A8 : 3273FFFF; + 000000A9 : AA53FFFF; + 000000AA : BE12FF5C; + 000000AB : 3273FFFF; + 000000AC : AA53FFFF; + 000000AD : BE32FFF0; 000000AE : 3273FFFF; - 000000AF : AA53FFFF; - 000000B0 : BE12FF5C; + 000000AF : B800FF48; + 000000B0 : 99FC3800; 000000B1 : 3273FFFF; - 000000B2 : AA53FFFF; - 000000B3 : BE32FFF0; - 000000B4 : 3273FFFF; - 000000B5 : B800FF48; - 000000B6 : 99FC3800; - 000000B7 : 3273FFFF; - 000000B8 : B810FF78; - 000000B9 : 32F7FFFC; - 000000BA : FA780004; - 000000BB : B800FF90; - 000000BC : E8780004; - 000000BD : E8F60000; - 000000BE : 3063FFFF; - 000000BF : 16439800; - 000000C0 : BC120054; - 000000C1 : F8160000; - 000000C2 : BC07FF00; - 000000C3 : BC190038; - 000000C4 : 30800001; - 000000C5 : E8790100; - 000000C6 : 44849C00; - 000000C7 : 84641800; - 000000C8 : BC030024; - 000000C9 : E8790104; - 000000CA : 84641800; - 000000CB : BC230030; - 000000CC : E8D70000; - 000000CD : 99FC3800; - 000000CE : 10BB0000; - 000000CF : B810FED0; - 000000D0 : 3273FFFF; - 000000D1 : 99FC3800; - 000000D2 : 3273FFFF; - 000000D3 : B810FEC4; - 000000D4 : 32F7FFFC; - 000000D5 : FA780004; - 000000D6 : B800FFB0; - 000000D7 : E8B70000; - 000000D8 : 99FC3800; - 000000D9 : 3273FFFF; - 000000DA : B810FEA8; - 000000DB : 32F7FFFC; - 000000DC : 0000038C; - 000000DD : 43000000; - 000000DE : 41000000; - 000000DF : 40000000; - 000000E0 : 40000004; - 000000E1 : 40000008; - 000000E2 : 0000038C; - [000000E3..000000EA] : 00000000; - 000000EB : 00000374; - [000000EC..00000FFF] : 00000000; + 000000B2 : B810FF78; + 000000B3 : 32F7FFFC; + 000000B4 : FA780004; + 000000B5 : B800FF90; + 000000B6 : E8780004; + 000000B7 : E8F60000; + 000000B8 : 3063FFFF; + 000000B9 : 16439800; + 000000BA : BC120054; + 000000BB : F8160000; + 000000BC : BC07FF00; + 000000BD : BC190038; + 000000BE : 30800001; + 000000BF : E8790100; + 000000C0 : 44849C00; + 000000C1 : 84641800; + 000000C2 : BC030024; + 000000C3 : E8790104; + 000000C4 : 84641800; + 000000C5 : BC230030; + 000000C6 : E8D70000; + 000000C7 : 99FC3800; + 000000C8 : 10BB0000; + 000000C9 : B810FED0; + 000000CA : 3273FFFF; + 000000CB : 99FC3800; + 000000CC : 3273FFFF; + 000000CD : B810FEC4; + 000000CE : 32F7FFFC; + 000000CF : FA780004; + 000000D0 : B800FFB0; + 000000D1 : E8B70000; + 000000D2 : 99FC3800; + 000000D3 : 3273FFFF; + 000000D4 : B810FEA8; + 000000D5 : 32F7FFFC; + 000000D6 : 00000364; + 000000D7 : 43000000; + 000000D8 : 00000364; + [000000D9..000000E0] : 00000000; + 000000E1 : 0000035C; + [000000E2..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_00.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_00.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_00.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B0000000; + 00000049 : 30A0C350; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B0000000; + 0000004E : 30A0C350; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_03.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_03.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu01_03.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B0000000; + 00000049 : 30A0C350; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B0000000; + 0000004E : 30A0C350; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_02.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_02.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_02.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B0000000; + 00000049 : 30A0C350; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B0000000; + 0000004E : 30A0C350; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_01.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_01.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_01.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080140; + 00000002 : B8080128; 00000003 : 00000000; - 00000004 : B8080150; + 00000004 : B8080138; [00000005..00000007] : 00000000; - 00000008 : B8080148; + 00000008 : B8080130; [00000009..00000013] : 00000000; - 00000014 : 31A00480; - 00000015 : 30400378; - 00000016 : 30200CF0; + 00000014 : 31A00458; + 00000015 : 30400360; + 00000016 : 30200CC8; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F40104; + 00000019 : B9F400EC; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00480; - 0000001F : 20E00480; + 0000001E : 20C00458; + 0000001F : 20E00458; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00480; - 00000027 : 20E004FC; + 00000026 : 20C00458; + 00000027 : 20E004D4; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A8; + 0000002E : B9F40090; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,181 +47,171 @@ 00000032 : B9F40024; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F40084; + 00000035 : B9F4006C; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; 00000039 : B60F0008; 0000003A : 20210014; - 0000003B : E8C00378; - 0000003C : E8A0037C; - 0000003D : E8800384; - 0000003E : B00000F8; - 0000003F : 31000480; - 00000040 : B0000000; - 00000041 : 30E0FFFF; - 00000042 : 10600000; - 00000043 : BC030010; - 00000044 : F8E60000; - 00000045 : F9050000; - 00000046 : BC23FFF8; - 00000047 : E8640000; - 00000048 : B810FFEC; - 00000049 : A4630010; - 0000004A : B8000008; + 0000003B : B00000F8; + 0000003C : 30800458; + 0000003D : B0004000; + 0000003E : E8600008; + 0000003F : A4630010; + 00000040 : BC03FFF4; + 00000041 : B0004000; + 00000042 : F8800000; + 00000043 : B800FFE8; + 00000044 : B8000008; + 00000045 : 80000000; + 00000046 : BE25FFFC; + 00000047 : 30A5FFFF; + 00000048 : B60F0008; + 00000049 : 80000000; + 0000004A : B6110000; 0000004B : 80000000; - 0000004C : BE25FFFC; - 0000004D : 30A5FFFF; - 0000004E : B60F0008; + 0000004C : B6910000; + 0000004D : 80000000; + 0000004E : B62E0000; 0000004F : 80000000; - 00000050 : B6110000; + 00000050 : B60F0008; 00000051 : 80000000; - 00000052 : B6910000; + 00000052 : B60F0008; 00000053 : 80000000; - 00000054 : B62E0000; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : B60F0008; - 00000059 : 80000000; - 0000005A : 3021FFE0; - 0000005B : 10C00000; - 0000005C : FA61001C; - 0000005D : F9E10000; - 0000005E : B9F40024; - 0000005F : 12650000; - 00000060 : E8A00370; - 00000061 : E8650028; - 00000062 : BC03000C; - 00000063 : 99FC1800; - 00000064 : 80000000; - 00000065 : B9F4FED8; - 00000066 : 10B30000; - 00000067 : E8600370; - 00000068 : 3021FFC8; - 00000069 : FB410030; - 0000006A : FB610034; - 0000006B : F9E10000; - 0000006C : FA61001C; - 0000006D : FAC10020; - 0000006E : FAE10024; - 0000006F : FB010028; - 00000070 : FB21002C; - 00000071 : EB030048; - 00000072 : 13650000; - 00000073 : BE180050; - 00000074 : 13460000; - 00000075 : E8780004; - 00000076 : EB380088; - 00000077 : 3263FFFF; - 00000078 : BC53003C; - 00000079 : 64930402; - 0000007A : 30640008; - 0000007B : 12D81800; - 0000007C : BE060074; - 0000007D : 12F92000; - 0000007E : BC1900C0; - 0000007F : E8770080; - 00000080 : 1643D000; - 00000081 : BC1200EC; - 00000082 : 3273FFFF; - 00000083 : 32F7FFFC; - 00000084 : AA53FFFF; - 00000085 : BE32FFE8; - 00000086 : 32D6FFFC; - 00000087 : E9E10000; - 00000088 : EA61001C; - 00000089 : EAC10020; - 0000008A : EAE10024; - 0000008B : EB010028; - 0000008C : EB21002C; - 0000008D : EB410030; - 0000008E : EB610034; - 0000008F : B60F0008; - 00000090 : 30210038; - 00000091 : E8B70000; - 00000092 : 99FC3800; - 00000093 : 80000000; - 00000094 : 3273FFFF; - 00000095 : 32F7FFFC; - 00000096 : AA53FFFF; - 00000097 : BE12FFC0; - 00000098 : 32D6FFFC; - 00000099 : E8780004; - 0000009A : E8F60000; - 0000009B : 3063FFFF; - 0000009C : 16439800; - 0000009D : BC120074; - 0000009E : F8160000; - 0000009F : BC07FFD4; - 000000A0 : BE190058; - 000000A1 : 30800001; - 000000A2 : E8790100; - 000000A3 : 44849C00; - 000000A4 : 84641800; - 000000A5 : BC030044; - 000000A6 : E8790104; - 000000A7 : 84641800; - 000000A8 : BC23FFA4; - 000000A9 : E8D70000; - 000000AA : 99FC3800; - 000000AB : 10BB0000; - 000000AC : B810FFA4; - 000000AD : 3273FFFF; + 00000054 : 3021FFE0; + 00000055 : 10C00000; + 00000056 : FA61001C; + 00000057 : F9E10000; + 00000058 : B9F40024; + 00000059 : 12650000; + 0000005A : E8A00358; + 0000005B : E8650028; + 0000005C : BC03000C; + 0000005D : 99FC1800; + 0000005E : 80000000; + 0000005F : B9F4FEF0; + 00000060 : 10B30000; + 00000061 : E8600358; + 00000062 : 3021FFC8; + 00000063 : FB410030; + 00000064 : FB610034; + 00000065 : F9E10000; + 00000066 : FA61001C; + 00000067 : FAC10020; + 00000068 : FAE10024; + 00000069 : FB010028; + 0000006A : FB21002C; + 0000006B : EB030048; + 0000006C : 13650000; + 0000006D : BE180050; + 0000006E : 13460000; + 0000006F : E8780004; + 00000070 : EB380088; + 00000071 : 3263FFFF; + 00000072 : BC53003C; + 00000073 : 64930402; + 00000074 : 30640008; + 00000075 : 12D81800; + 00000076 : BE060074; + 00000077 : 12F92000; + 00000078 : BC1900C0; + 00000079 : E8770080; + 0000007A : 1643D000; + 0000007B : BC1200EC; + 0000007C : 3273FFFF; + 0000007D : 32F7FFFC; + 0000007E : AA53FFFF; + 0000007F : BE32FFE8; + 00000080 : 32D6FFFC; + 00000081 : E9E10000; + 00000082 : EA61001C; + 00000083 : EAC10020; + 00000084 : EAE10024; + 00000085 : EB010028; + 00000086 : EB21002C; + 00000087 : EB410030; + 00000088 : EB610034; + 00000089 : B60F0008; + 0000008A : 30210038; + 0000008B : E8B70000; + 0000008C : 99FC3800; + 0000008D : 80000000; + 0000008E : 3273FFFF; + 0000008F : 32F7FFFC; + 00000090 : AA53FFFF; + 00000091 : BE12FFC0; + 00000092 : 32D6FFFC; + 00000093 : E8780004; + 00000094 : E8F60000; + 00000095 : 3063FFFF; + 00000096 : 16439800; + 00000097 : BC120074; + 00000098 : F8160000; + 00000099 : BC07FFD4; + 0000009A : BE190058; + 0000009B : 30800001; + 0000009C : E8790100; + 0000009D : 44849C00; + 0000009E : 84641800; + 0000009F : BC030044; + 000000A0 : E8790104; + 000000A1 : 84641800; + 000000A2 : BC23FFA4; + 000000A3 : E8D70000; + 000000A4 : 99FC3800; + 000000A5 : 10BB0000; + 000000A6 : B810FFA4; + 000000A7 : 3273FFFF; + 000000A8 : 3273FFFF; + 000000A9 : AA53FFFF; + 000000AA : BE12FF5C; + 000000AB : 3273FFFF; + 000000AC : AA53FFFF; + 000000AD : BE32FFF0; 000000AE : 3273FFFF; - 000000AF : AA53FFFF; - 000000B0 : BE12FF5C; + 000000AF : B800FF48; + 000000B0 : 99FC3800; 000000B1 : 3273FFFF; - 000000B2 : AA53FFFF; - 000000B3 : BE32FFF0; - 000000B4 : 3273FFFF; - 000000B5 : B800FF48; - 000000B6 : 99FC3800; - 000000B7 : 3273FFFF; - 000000B8 : B810FF78; - 000000B9 : 32F7FFFC; - 000000BA : FA780004; - 000000BB : B800FF90; - 000000BC : E8780004; - 000000BD : E8F60000; - 000000BE : 3063FFFF; - 000000BF : 16439800; - 000000C0 : BC120054; - 000000C1 : F8160000; - 000000C2 : BC07FF00; - 000000C3 : BC190038; - 000000C4 : 30800001; - 000000C5 : E8790100; - 000000C6 : 44849C00; - 000000C7 : 84641800; - 000000C8 : BC030024; - 000000C9 : E8790104; - 000000CA : 84641800; - 000000CB : BC230030; - 000000CC : E8D70000; - 000000CD : 99FC3800; - 000000CE : 10BB0000; - 000000CF : B810FED0; - 000000D0 : 3273FFFF; - 000000D1 : 99FC3800; - 000000D2 : 3273FFFF; - 000000D3 : B810FEC4; - 000000D4 : 32F7FFFC; - 000000D5 : FA780004; - 000000D6 : B800FFB0; - 000000D7 : E8B70000; - 000000D8 : 99FC3800; - 000000D9 : 3273FFFF; - 000000DA : B810FEA8; - 000000DB : 32F7FFFC; - 000000DC : 0000038C; - 000000DD : 43000000; - 000000DE : 41000000; - 000000DF : 40000000; - 000000E0 : 40000004; - 000000E1 : 40000008; - 000000E2 : 0000038C; - [000000E3..000000EA] : 00000000; - 000000EB : 00000374; - [000000EC..00000FFF] : 00000000; + 000000B2 : B810FF78; + 000000B3 : 32F7FFFC; + 000000B4 : FA780004; + 000000B5 : B800FF90; + 000000B6 : E8780004; + 000000B7 : E8F60000; + 000000B8 : 3063FFFF; + 000000B9 : 16439800; + 000000BA : BC120054; + 000000BB : F8160000; + 000000BC : BC07FF00; + 000000BD : BC190038; + 000000BE : 30800001; + 000000BF : E8790100; + 000000C0 : 44849C00; + 000000C1 : 84641800; + 000000C2 : BC030024; + 000000C3 : E8790104; + 000000C4 : 84641800; + 000000C5 : BC230030; + 000000C6 : E8D70000; + 000000C7 : 99FC3800; + 000000C8 : 10BB0000; + 000000C9 : B810FED0; + 000000CA : 3273FFFF; + 000000CB : 99FC3800; + 000000CC : 3273FFFF; + 000000CD : B810FEC4; + 000000CE : 32F7FFFC; + 000000CF : FA780004; + 000000D0 : B800FFB0; + 000000D1 : E8B70000; + 000000D2 : 99FC3800; + 000000D3 : 3273FFFF; + 000000D4 : B810FEA8; + 000000D5 : 32F7FFFC; + 000000D6 : 00000364; + 000000D7 : 43000000; + 000000D8 : 00000364; + [000000D9..000000E0] : 00000000; + 000000E1 : 0000035C; + [000000E2..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_03.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_03.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu02_03.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B0000000; + 00000049 : 30A0C350; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B0000000; + 0000004E : 30A0C350; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_02.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_02.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_02.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B0000000; + 00000049 : 30A0C350; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B0000000; + 0000004E : 30A0C350; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_03.mif =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_03.mif (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/ram/cpu03_03.mif (revision 7) @@ -8,24 +8,24 @@ CONTENT BEGIN 00000000 : B8080050; 00000001 : 00000000; - 00000002 : B8080138; + 00000002 : B808014C; 00000003 : 00000000; - 00000004 : B8080148; + 00000004 : B808015C; [00000005..00000007] : 00000000; - 00000008 : B8080140; + 00000008 : B8080154; [00000009..00000013] : 00000000; - 00000014 : 31A00478; - 00000015 : 30400370; - 00000016 : 30200C68; + 00000014 : 31A00480; + 00000015 : 30400388; + 00000016 : 30200C70; 00000017 : B9F40014; 00000018 : 80000000; - 00000019 : B9F400FC; + 00000019 : B9F40110; 0000001A : 30A30000; 0000001B : B8000000; 0000001C : 2021FFEC; 0000001D : F9E10000; - 0000001E : 20C00478; - 0000001F : 20E00478; + 0000001E : 20C00480; + 0000001F : 20E00480; 00000020 : 06463800; 00000021 : BC720014; 00000022 : F8060000; @@ -32,8 +32,8 @@ 00000023 : 20C60004; 00000024 : 06463800; 00000025 : BC92FFF4; - 00000026 : 20C00478; - 00000027 : 20E00478; + 00000026 : 20C00480; + 00000027 : 20E00480; 00000028 : 06463800; 00000029 : BC720014; 0000002A : F8060000; @@ -40,7 +40,7 @@ 0000002B : 20C60004; 0000002C : 06463800; 0000002D : BC92FFF4; - 0000002E : B9F400A0; + 0000002E : B9F400B4; 0000002F : 80000000; 00000030 : 20C00000; 00000031 : 20E00000; @@ -47,7 +47,7 @@ 00000032 : B9F4003C; 00000033 : 20A00000; 00000034 : 32630000; - 00000035 : B9F4007C; + 00000035 : B9F40090; 00000036 : 80000000; 00000037 : C9E10000; 00000038 : 30730000; @@ -59,167 +59,169 @@ 0000003E : 30A5FFFF; 0000003F : B60F0008; 00000040 : 80000000; - 00000041 : E8800370; - 00000042 : 3021FFE4; - 00000043 : F9E10000; - 00000044 : E8640000; - 00000045 : 30A0000A; - 00000046 : 30630001; - 00000047 : F8640000; - 00000048 : B9F4FFCC; - 00000049 : 80000000; - 0000004A : E9E10000; - 0000004B : 10600000; - 0000004C : B60F0008; - 0000004D : 3021001C; - 0000004E : B6110000; - 0000004F : 80000000; - 00000050 : B6910000; + 00000041 : 3021FFDC; + 00000042 : FA61001C; + 00000043 : B0004100; + 00000044 : 32602004; + 00000045 : FAC10020; + 00000046 : F9E10000; + 00000047 : 32C00001; + 00000048 : B0000000; + 00000049 : 30A0C350; + 0000004A : FAD30000; + 0000004B : B9F4FFC0; + 0000004C : 80000000; + 0000004D : B0000000; + 0000004E : 30A0C350; + 0000004F : F8130000; + 00000050 : B9F4FFAC; 00000051 : 80000000; - 00000052 : B62E0000; - 00000053 : 80000000; - 00000054 : B60F0008; - 00000055 : 80000000; - 00000056 : B60F0008; - 00000057 : 80000000; - 00000058 : 3021FFE0; - 00000059 : 10C00000; - 0000005A : FA61001C; - 0000005B : F9E10000; - 0000005C : B9F40024; - 0000005D : 12650000; - 0000005E : E8A00368; - 0000005F : E8650028; - 00000060 : BC03000C; - 00000061 : 99FC1800; - 00000062 : 80000000; - 00000063 : B9F4FEE0; - 00000064 : 10B30000; - 00000065 : E8600368; - 00000066 : 3021FFC8; - 00000067 : FB410030; - 00000068 : FB610034; - 00000069 : F9E10000; - 0000006A : FA61001C; - 0000006B : FAC10020; - 0000006C : FAE10024; - 0000006D : FB010028; - 0000006E : FB21002C; - 0000006F : EB030048; - 00000070 : 13650000; - 00000071 : BE180050; - 00000072 : 13460000; - 00000073 : E8780004; - 00000074 : EB380088; - 00000075 : 3263FFFF; - 00000076 : BC53003C; - 00000077 : 64930402; - 00000078 : 30640008; - 00000079 : 12D81800; - 0000007A : BE060074; - 0000007B : 12F92000; - 0000007C : BC1900C0; - 0000007D : E8770080; - 0000007E : 1643D000; - 0000007F : BC1200EC; - 00000080 : 3273FFFF; - 00000081 : 32F7FFFC; - 00000082 : AA53FFFF; - 00000083 : BE32FFE8; - 00000084 : 32D6FFFC; - 00000085 : E9E10000; - 00000086 : EA61001C; - 00000087 : EAC10020; - 00000088 : EAE10024; - 00000089 : EB010028; - 0000008A : EB21002C; - 0000008B : EB410030; - 0000008C : EB610034; - 0000008D : B60F0008; - 0000008E : 30210038; - 0000008F : E8B70000; - 00000090 : 99FC3800; - 00000091 : 80000000; - 00000092 : 3273FFFF; - 00000093 : 32F7FFFC; - 00000094 : AA53FFFF; - 00000095 : BE12FFC0; - 00000096 : 32D6FFFC; - 00000097 : E8780004; - 00000098 : E8F60000; - 00000099 : 3063FFFF; - 0000009A : 16439800; - 0000009B : BC120074; - 0000009C : F8160000; - 0000009D : BC07FFD4; - 0000009E : BE190058; - 0000009F : 30800001; - 000000A0 : E8790100; - 000000A1 : 44849C00; - 000000A2 : 84641800; - 000000A3 : BC030044; - 000000A4 : E8790104; - 000000A5 : 84641800; - 000000A6 : BC23FFA4; - 000000A7 : E8D70000; - 000000A8 : 99FC3800; - 000000A9 : 10BB0000; - 000000AA : B810FFA4; - 000000AB : 3273FFFF; - 000000AC : 3273FFFF; - 000000AD : AA53FFFF; - 000000AE : BE12FF5C; - 000000AF : 3273FFFF; - 000000B0 : AA53FFFF; - 000000B1 : BE32FFF0; - 000000B2 : 3273FFFF; - 000000B3 : B800FF48; - 000000B4 : 99FC3800; - 000000B5 : 3273FFFF; - 000000B6 : B810FF78; - 000000B7 : 32F7FFFC; - 000000B8 : FA780004; - 000000B9 : B800FF90; - 000000BA : E8780004; - 000000BB : E8F60000; - 000000BC : 3063FFFF; - 000000BD : 16439800; - 000000BE : BC120054; - 000000BF : F8160000; - 000000C0 : BC07FF00; - 000000C1 : BC190038; - 000000C2 : 30800001; - 000000C3 : E8790100; - 000000C4 : 44849C00; - 000000C5 : 84641800; - 000000C6 : BC030024; - 000000C7 : E8790104; - 000000C8 : 84641800; - 000000C9 : BC230030; - 000000CA : E8D70000; - 000000CB : 99FC3800; - 000000CC : 10BB0000; - 000000CD : B810FED0; - 000000CE : 3273FFFF; - 000000CF : 99FC3800; - 000000D0 : 3273FFFF; - 000000D1 : B810FEC4; - 000000D2 : 32F7FFFC; - 000000D3 : FA780004; - 000000D4 : B800FFB0; - 000000D5 : E8B70000; - 000000D6 : 99FC3800; - 000000D7 : 3273FFFF; - 000000D8 : B810FEA8; - 000000D9 : 32F7FFFC; - 000000DA : 00000384; - 000000DB : 43000000; - 000000DC : 41000000; - 000000DD : 40000000; - 000000DE : 40000004; - 000000DF : 40000008; - 000000E0 : 00000384; - [000000E1..000000E8] : 00000000; - 000000E9 : 0000036C; - [000000EA..00000FFF] : 00000000; + 00000052 : B800FFD8; + 00000053 : B6110000; + 00000054 : 80000000; + 00000055 : B6910000; + 00000056 : 80000000; + 00000057 : B62E0000; + 00000058 : 80000000; + 00000059 : B60F0008; + 0000005A : 80000000; + 0000005B : B60F0008; + 0000005C : 80000000; + 0000005D : 3021FFE0; + 0000005E : 10C00000; + 0000005F : FA61001C; + 00000060 : F9E10000; + 00000061 : B9F40024; + 00000062 : 12650000; + 00000063 : E8A0037C; + 00000064 : E8650028; + 00000065 : BC03000C; + 00000066 : 99FC1800; + 00000067 : 80000000; + 00000068 : B9F4FECC; + 00000069 : 10B30000; + 0000006A : E860037C; + 0000006B : 3021FFC8; + 0000006C : FB410030; + 0000006D : FB610034; + 0000006E : F9E10000; + 0000006F : FA61001C; + 00000070 : FAC10020; + 00000071 : FAE10024; + 00000072 : FB010028; + 00000073 : FB21002C; + 00000074 : EB030048; + 00000075 : 13650000; + 00000076 : BE180050; + 00000077 : 13460000; + 00000078 : E8780004; + 00000079 : EB380088; + 0000007A : 3263FFFF; + 0000007B : BC53003C; + 0000007C : 64930402; + 0000007D : 30640008; + 0000007E : 12D81800; + 0000007F : BE060074; + 00000080 : 12F92000; + 00000081 : BC1900C0; + 00000082 : E8770080; + 00000083 : 1643D000; + 00000084 : BC1200EC; + 00000085 : 3273FFFF; + 00000086 : 32F7FFFC; + 00000087 : AA53FFFF; + 00000088 : BE32FFE8; + 00000089 : 32D6FFFC; + 0000008A : E9E10000; + 0000008B : EA61001C; + 0000008C : EAC10020; + 0000008D : EAE10024; + 0000008E : EB010028; + 0000008F : EB21002C; + 00000090 : EB410030; + 00000091 : EB610034; + 00000092 : B60F0008; + 00000093 : 30210038; + 00000094 : E8B70000; + 00000095 : 99FC3800; + 00000096 : 80000000; + 00000097 : 3273FFFF; + 00000098 : 32F7FFFC; + 00000099 : AA53FFFF; + 0000009A : BE12FFC0; + 0000009B : 32D6FFFC; + 0000009C : E8780004; + 0000009D : E8F60000; + 0000009E : 3063FFFF; + 0000009F : 16439800; + 000000A0 : BC120074; + 000000A1 : F8160000; + 000000A2 : BC07FFD4; + 000000A3 : BE190058; + 000000A4 : 30800001; + 000000A5 : E8790100; + 000000A6 : 44849C00; + 000000A7 : 84641800; + 000000A8 : BC030044; + 000000A9 : E8790104; + 000000AA : 84641800; + 000000AB : BC23FFA4; + 000000AC : E8D70000; + 000000AD : 99FC3800; + 000000AE : 10BB0000; + 000000AF : B810FFA4; + 000000B0 : 3273FFFF; + 000000B1 : 3273FFFF; + 000000B2 : AA53FFFF; + 000000B3 : BE12FF5C; + 000000B4 : 3273FFFF; + 000000B5 : AA53FFFF; + 000000B6 : BE32FFF0; + 000000B7 : 3273FFFF; + 000000B8 : B800FF48; + 000000B9 : 99FC3800; + 000000BA : 3273FFFF; + 000000BB : B810FF78; + 000000BC : 32F7FFFC; + 000000BD : FA780004; + 000000BE : B800FF90; + 000000BF : E8780004; + 000000C0 : E8F60000; + 000000C1 : 3063FFFF; + 000000C2 : 16439800; + 000000C3 : BC120054; + 000000C4 : F8160000; + 000000C5 : BC07FF00; + 000000C6 : BC190038; + 000000C7 : 30800001; + 000000C8 : E8790100; + 000000C9 : 44849C00; + 000000CA : 84641800; + 000000CB : BC030024; + 000000CC : E8790104; + 000000CD : 84641800; + 000000CE : BC230030; + 000000CF : E8D70000; + 000000D0 : 99FC3800; + 000000D1 : 10BB0000; + 000000D2 : B810FED0; + 000000D3 : 3273FFFF; + 000000D4 : 99FC3800; + 000000D5 : 3273FFFF; + 000000D6 : B810FEC4; + 000000D7 : 32F7FFFC; + 000000D8 : FA780004; + 000000D9 : B800FFB0; + 000000DA : E8B70000; + 000000DB : 99FC3800; + 000000DC : 3273FFFF; + 000000DD : B810FEA8; + 000000DE : 32F7FFFC; + 000000DF : 0000038C; + 000000E0 : 43000000; + 000000E1 : 00000000; + 000000E2 : 0000038C; + [000000E3..000000EA] : 00000000; + 000000EB : 00000380; + [000000EC..00000FFF] : 00000000; END; \ No newline at end of file Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/tcl/prog.tcl =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/tcl/prog.tcl (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/tcl/prog.tcl (revision 7) @@ -0,0 +1,78 @@ +#/usr/bin/tclsh + +proc hold_reset {} { + global device_name usb + start_insystem_source_probe -device_name $device_name -hardware_name $usb + write_source_data -instance_index 127 -value 0x1 -value_in_hex + end_insystem_source_probe +} + +proc release_reset {} { + global device_name usb + start_insystem_source_probe -device_name $device_name -hardware_name $usb + write_source_data -instance_index 127 -value 0x0 -value_in_hex + end_insystem_source_probe +} + +## Setup USB hardware - assumes only USB Blaster is installed and +## an FPGA is the only device in the JTAG chain +set usb [lindex [get_hardware_names] 0] +set device_name [lindex [get_device_names -hardware_name $usb] 0] + +puts $usb +puts $device_name + +#reset all processors +hold_reset + + +# Initiate a editing sequence +begin_memory_edit -hardware_name $usb -device_name $device_name + +foreach instance \ + [get_editable_mem_instances -hardware_name $usb -device_name $device_name] { + set inst_name [lindex $instance 5] + set inst_index [lindex $instance 0] + #puts $inst_name + #puts $inst_index + set xx [string range $inst_name 0 1] + set yy [string range $inst_name 2 end] + #puts $xx + #puts $yy + set ram_file_name ../ram/cpu${xx}_${yy}.mif + +#update prog memory + if {[file exists $ram_file_name] == 1} { + puts "memory ${inst_name} is programed with $ram_file_name" + update_content_to_memory_from_file -instance_index $inst_index -mem_file_path $ram_file_name -mem_file_type mif + } + +} + + + + +#set xx 0 +#set yy 0 +# for {set yy 0} {$yy<$Y_NODE_NUM} {incr yy} { +# for {set xx 0} {$xx<$X_NODE_NUM} {incr xx} { +# set ram_file_name [format "ram/cpu%02d_%02d.mif" $xx $yy] +# set mem_index [format "%02d%02d" $xx $yy] + +#update prog memory +# update_content_to_memory_from_file -instance_index $mem_index -mem_file_path $ram_file_name -mem_file_type mif + +#puts $ram_file_name\n +#puts $mem_index\n + +# }} + + + + + +#End the editing sequence +end_memory_edit + +#release reset +release_reset
an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/tcl/prog.tcl Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/prog_memories =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/prog_memories (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/prog_memories (revision 7) @@ -0,0 +1,4 @@ +#!/bin/sh + cd tcl + quartus_stp -t prog.tcl + cd ..
an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/prog_memories Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile/addr_map.h =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile/addr_map.h (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile/addr_map.h (nonexistent) @@ -1,32 +0,0 @@ -#ifndef ADDR_MAP_H - #define ADDR_MAP_H - - #define RAM_BASE 0x00000000 - #define NOC_BASE 0x40000000 - #define GPIO_BASE 0x41000000 - - - - //NOC - #define NIC_WR_DONE_LOC 1<<0 - #define NIC_RD_DONE_LOC 1<<1 - #define NIC_RD_OVR_ERR_LOC 1<<2 - #define NIC_RD_NPCK_ERR_LOC 1<<3 - #define NIC_HAS_PCK_LOC 1<<4 - #define X_NODE_NUM_WIDTH 2 - #define Y_NODE_NUM_WIDTH 2 - #define BUFFER_SIZE 31 - - volatile unsigned int *led_ptr = (unsigned int*) (GPIO_BASE); - volatile unsigned int *nic_rd_ptr = (unsigned int*) (NOC_BASE); - volatile unsigned int *nic_wr_ptr = (unsigned int*) (NOC_BASE+4); - volatile unsigned int *nic_st_ptr = (unsigned int*) (NOC_BASE+8); - - #define core_addr(DES_X, DES_Y) ((DES_X << Y_NODE_NUM_WIDTH) + DES_Y)<<(32-3-Y_NODE_NUM_WIDTH-X_NODE_NUM_WIDTH) - - - - - - -#endif Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile/gccrom =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile/gccrom (revision 6) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile/gccrom (revision 7) @@ -13,25 +13,25 @@ INPUT="custom_crt/crt0.s custom_crt/crtinit.s" mb-g++ $XILFLAGS $CXXFLAGS $LNKFLAGS $LIBFLAGS $INCFLAGS -specs=aemb.specs $INPUT $@ -o $ELFFILE && \ -echo "xgcc=$?" && \ +#echo "xgcc=$?" && \ # Create a text listing of the compiled code mb-objdump -dDSCz $ELFFILE > $ELFFILE.dump && \ -echo "dump=$?" && \ +#echo "dump=$?" && \ # Convert the ELF file to an SREC file mb-objcopy -O srec $ELFFILE $ELFFILE.srec && \ -echo "copy=$?" && \ +#echo "copy=$?" && \ # Generate a Verilog VMEM file from the SREC file srec_cat $ELFFILE.srec -fill 0xFF -within $ELFFILE.srec --range-pad 4 -o out/dump.vmem -vmem 32 && \ -echo "srec=$?" && \ +#echo "srec=$?" && \ # Convert the ELF file to an IHEX file mb-objcopy -O ihex $ELFFILE $ELFFILE.ihex && \ -echo "copy2ihex=$?" && \ +#echo "copy2ihex=$?" && \ # Generate a MIF file from the IHEX file ihex/ihex2mif -f $ELFFILE.ihex -e $RAMSIZE -o out/ram0.mif && \
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile/system.h
0,0 → 1,116
#ifndef SYSTEM_H
#define SYSTEM_H
//define base addresses
#define RAM_BASE 0x00000000
#define NOC_BASE 0x40000000
#define GPIO_BASE 0x41000000
#define EXT_INT_BASE 0x42000000
#define TIMER_BASE 0x43000000
#define INT_CTRL_BASE 0x44000000
//GPIO
#define GPIO_ADDR_TYPE_START 5
#define GPIO_ADDR_PORT_WIDTH 5
#define GPIO_ADDR_REG_WIDTH 5
 
 
#define GPIO_IO_TYPE_NUM 0
#define GPIO_I_TYPE_NUM 4
#define GPIO_O_TYPE_NUM 8
 
#define GPIO_DIR_REG 0
#define GPIO_WRITE_REG 4
#define GPIO_READ_REG 8
 
#define GPIO_TYPE_LOC_START (GPIO_ADDR_REG_WIDTH + GPIO_ADDR_PORT_WIDTH)
#define GPIO_PORT_LOC_START (GPIO_ADDR_REG_WIDTH+2)
 
#define GPIO_IO_BASE (GPIO_BASE + (GPIO_IO_TYPE_NUM << GPIO_TYPE_LOC_START))
#define GPIO_I_BASE (GPIO_BASE + (GPIO_I_TYPE_NUM << GPIO_TYPE_LOC_START))
#define GPIO_O_BASE (GPIO_BASE + (GPIO_O_TYPE_NUM << GPIO_TYPE_LOC_START))
 
#define gpio_io_dir_reg(port_num) (*((volatile unsigned int *) (GPIO_IO_BASE+(port_num << GPIO_PORT_LOC_START)+GPIO_DIR_REG)))
#define gpio_io_wr_reg(port_num) (*((volatile unsigned int *) (GPIO_IO_BASE+(port_num << GPIO_PORT_LOC_START)+GPIO_WRITE_REG)))
#define gpio_io_rd_reg(port_num) (*((volatile unsigned int *) (GPIO_IO_BASE+(port_num << GPIO_PORT_LOC_START)+GPIO_READ_REG)))
#define gpio_o_wr_reg(port_num) (*((volatile unsigned int *) (GPIO_O_BASE+(port_num << GPIO_PORT_LOC_START)+GPIO_WRITE_REG)))
#define gpio_i_rd_reg(port_num) (*((volatile unsigned int *) (GPIO_I_BASE+(port_num << GPIO_PORT_LOC_START)+GPIO_READ_REG)))
 
#define gpio_io_dir(port_num,val) gpio_io_dir_reg(port_num)=val
#define gpio_io_wr(port_num,val) gpio_io_wr_reg(port_num)=val
#define gpio_o_wr(port_num,val) gpio_o_wr_reg(port_num)=val
 
//EXT_INT
#define EXT_INT_GER (*((volatile unsigned int *) (EXT_INT_BASE )))
#define EXT_INT_IER_RISE (*((volatile unsigned int *) (EXT_INT_BASE+4 )))
#define EXT_INT_IER_FALL (*((volatile unsigned int *) (EXT_INT_BASE+8 )))
#define EXT_INT_ISR (*((volatile unsigned int *) (EXT_INT_BASE+12 )))
#define EXT_INT_RD (*((volatile unsigned int *) (EXT_INT_BASE+16 )))
 
//TIMER
#define TCSR0 (*((volatile unsigned int *) (TIMER_BASE )))
/*
//timer control register
TCSR0
bit
6-3 : clk_dev_ctrl
3 : timer_isr
2 : rst_on_cmp_value
1 : int_enble_on_cmp_value
0 : timer enable
*/
#define TLR0 (*((volatile unsigned int *) (TIMER_BASE+4 )))
#define TCMP0 (*((volatile unsigned int *) (TIMER_BASE+8 )))
#define TIMER_EN 1
#define TIMER_INT_EN 2
#define TIMER_RST_ON_CMP 4
 
//INT CONTROLLER
 
#define INTC_MER (*((volatile unsigned int *) (INT_CTRL_BASE )))
#define INTC_IER (*((volatile unsigned int *) (INT_CTRL_BASE+4 )))
#define INTC_IAR (*((volatile unsigned int *) (INT_CTRL_BASE+8 )))
#define INTC_IPR (*((volatile unsigned int *) (INT_CTRL_BASE+12 )))
 
 
 
//NOC
#define X_Y_ADDR_WIDTH_IN_HDR 4
#define NI_PTR_WIDTH 19
#define NI_PCK_SIZE_WIDTH 13
#define NIC_WR_DONE_LOC 1<<0
#define NIC_RD_DONE_LOC 1<<1
#define NIC_RD_OVR_ERR_LOC 1<<2
#define NIC_RD_NPCK_ERR_LOC 1<<3
#define NIC_HAS_PCK_LOC 1<<4
 
#define NIC_RD (*((volatile unsigned int *) (NOC_BASE )))
#define NIC_WR (*((volatile unsigned int *) (NOC_BASE+4)))
#define NIC_ST (*((volatile unsigned int *) (NOC_BASE+8)))
 
 
#define core_addr(DES_X, DES_Y) ((DES_X << X_Y_ADDR_WIDTH_IN_HDR) + DES_Y)<<(32-3-(2*X_Y_ADDR_WIDTH_IN_HDR))
inline void send_pck (unsigned int * pck_buffer, unsigned int pck_size){
NIC_WR = (unsigned int) (& pck_buffer [0]) + (pck_size<<NI_PTR_WIDTH);
}
inline void save_pck (unsigned int * pck_buffer, unsigned int pck_size){
NIC_RD = (unsigned int) (& pck_buffer [0]) + (pck_size<<NI_PTR_WIDTH);
}
#define wait_for_sending_pck() while (!(NIC_ST & NIC_WR_DONE_LOC))
#define wait_for_getting_pck() while (!(NIC_ST & NIC_HAS_PCK_LOC))
 
 
 
#endif
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile_mpsoc
0,0 → 1,15
#!/bin/sh
 
rm -Rf ram/*.mif
rm -Rf ../simulation/modelsim/sw/ram/*.mif
cd mpsoc_code
for i in $(ls *.c); do
echo item: $i
cp $i ../compile/code.c
cd ../compile
./gccrom code.c
cp out/ram0.mif ../ram/${i%.*}.mif
cp out/ram0.mif ../../simulation/modelsim/sw/ram/${i%.*}.mif
rm code.c
cd ../mpsoc_code
done
an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile_mpsoc Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/do =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/do (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/do (revision 7) @@ -0,0 +1,14 @@ +#!/bin/sh +for x in 0 1 2 3 ; do + for y in 0 1 2 3; do + echo "cpu0${x}_0$y.c" + rm cpu0$x_$y.c + cp cpu.c "cpu0${x}_0$y.c" + done +done + + # echo item: cpu0$x$y.c + #cp cpu00_001.c cpu0$x_$y.c + #done + +
an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/do Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_00.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_00.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_00.c (revision 7) @@ -0,0 +1,122 @@ +#include "orsocdef.h" +#include + +#include "system.h" + + +#define EXT_INT_EN 1 +#define TIMER_EN 1 +#define EXT_INT_NUM 3 + +#define TIMER_INT (1<<(EXT_INT_NUM*EXT_INT_EN)) +#define EXT_INT_1 (1<<0) +#define EXT_INT_2 (1<<1) +#define EXT_INT_3 (1<<2) + +#define EXT_INT_ALL (EXT_INT_1 | EXT_INT_2 | EXT_INT_3) // ((1<>(j*4))&0xF; + gpio_o_wr(j,~seven_seg_tab[hex_val]); + } + + delay(50000); + }//while + return 0; + + + +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_00.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_00.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_00.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(50000); + gpio_o_wr(0,0); + delay(50000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_01.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_01.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_01.c (revision 7) @@ -0,0 +1,49 @@ +#include "orsocdef.h" +#include +#include "system.h" + +#define BUFFER_SIZE 31 + +unsigned int buffer [BUFFER_SIZE]; + +#define DES_X 2 +#define DES_Y 1 +#define DES_ADDR core_addr(DES_X, DES_Y) + +void delay(unsigned int); + + + + + + +int main() +{ + unsigned int status=0; + int i; + + while(1){ + for (i=1;i0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_01.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_01.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_01.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(5000000); + gpio_o_wr(0,0); + delay(5000000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_02.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_02.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_02.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(1000000); + gpio_o_wr(0,0); + delay(1000000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_00.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_00.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_00.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(200000); + gpio_o_wr(0,0); + delay(200000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_02.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_02.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_02.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(3000000); + gpio_o_wr(0,0); + delay(3000000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_00.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_00.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_00.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(50000); + gpio_o_wr(0,0); + delay(50000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_03.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_03.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu00_03.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(50000); + gpio_o_wr(0,0); + delay(50000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_01.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_01.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_01.c (revision 7) @@ -0,0 +1,40 @@ +#include "orsocdef.h" +#include +#include "system.h" + +#define BUFFER_SIZE 31 + +void delay(unsigned int); + +unsigned int buffer [BUFFER_SIZE]; + + + + +int main(void){ + + + unsigned int status=0; + + + while(1){ + wait_for_getting_pck(); + save_pck (buffer,BUFFER_SIZE); + + } + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_03.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_03.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu01_03.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(50000); + gpio_o_wr(0,0); + delay(50000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_01.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_01.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_01.c (revision 7) @@ -0,0 +1,46 @@ +#include "orsocdef.h" +#include +#include "system.h" + +#define BUFFER_SIZE 31 +void delay(unsigned int); + +unsigned int buffer [BUFFER_SIZE]; + + + + + + + + + + +int main(void){ + + + unsigned int status=0; + + + while(1){ + wait_for_getting_pck(); + save_pck (buffer,BUFFER_SIZE); + + } + return 0; +} + + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_02.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_02.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_02.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(50000); + gpio_o_wr(0,0); + delay(50000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_03.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_03.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu02_03.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(50000); + gpio_o_wr(0,0); + delay(50000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_02.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_02.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_02.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(50000); + gpio_o_wr(0,0); + delay(50000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_03.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_03.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/mpsoc_code/cpu03_03.c (revision 7) @@ -0,0 +1,34 @@ +#include "orsocdef.h" +#include +#include "system.h" + + +void delay(unsigned int); + + +int main() +{ + + while(1) + { + gpio_o_wr(0,1); + delay(50000); + gpio_o_wr(0,0); + delay(50000); + }//while + return 0; +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile_soc =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile_soc (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile_soc (revision 7) @@ -0,0 +1,13 @@ +#!/bin/sh + + rm -Rf ram/*.mif + rm -Rf ../simulation/modelsim/sw/ram/*.mif + cd soc_code + cp soc.c ../compile/code.c + cd ../compile + ./gccrom code.c + cp out/ram0.mif ../ram/cpu00_00.mif + cp out/ram0.mif ../../simulation/modelsim/sw/ram/cpu00_00.mif + rm code.c + cd ../soc_code +
an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/compile_soc Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/soc_code/soc.c =================================================================== --- an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/soc_code/soc.c (nonexistent) +++ an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/sw/soc_code/soc.c (revision 7) @@ -0,0 +1,122 @@ +#include "orsocdef.h" +#include + +#include "system.h" + + +#define EXT_INT_EN 1 +#define TIMER_EN 1 +#define EXT_INT_NUM 3 + +#define TIMER_INT (1<<(EXT_INT_NUM*EXT_INT_EN)) +#define EXT_INT_1 (1<<0) +#define EXT_INT_2 (1<<1) +#define EXT_INT_3 (1<<2) + +#define EXT_INT_ALL (EXT_INT_1 | EXT_INT_2 | EXT_INT_3) // ((1<>(j*4))&0xF; + gpio_o_wr(j,~seven_seg_tab[hex_val]); + } + + delay(50000); + }//while + return 0; + + + +} + + + + +void delay ( unsigned int num ){ + + while (num>0){ + num--; + asm volatile ("nop"); + } + return; + +} + Index: an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/noc_based_mpsoc/mpsoc.qws =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.