blob: 3ac611c9b0ef6931141921b1704b2ebf7bf23d26 [file] [log] [blame]
module chip_controller(
input[31:0] output_data_from_elpis_to_controller,
input output_enabled_from_elpis_to_controller, // not used, do something with it
input wb_clk_i,
input wb_rst_i,
input[127:0] la_data_in,
input[127:0] la_oenb,
output[127:0] la_data_out,
output clk,
output rst,
output reset_core,
output is_loading_memory_into_core,
output read_enable_to_Elpis,
output output_enabled_from_controller_to_pico,
output[31:0] data_to_core_mem,
output[31:0] read_value_to_Elpis,
output[19:0] addr_to_core_mem,
output[31:0] wbs_dat_o
);
assign clk = (~la_oenb[96]) ? la_data_in[96]: wb_clk_i;
assign rst = (~la_oenb[97]) ? la_data_in[97]: wb_rst_i;
// Input data wires from PicoRiscV to Elpis
assign addr_to_core_mem = la_data_in[19:0];
assign data_to_core_mem = la_data_in[63:32];
assign read_value_to_Elpis = la_data_in[95:64];
// Permissions from PicoRiscV to Elpis
assign reset_core = la_data_in[97];
assign is_loading_memory_into_core = la_data_in[98];
assign read_enable_to_Elpis = la_data_in[99];
assign output_enabled_from_controller_to_pico = la_data_out[100];
assign wbs_dat_o = output_data_from_elpis_to_controller;
endmodule