Line 133... |
Line 133... |
signal fetch_pc : std_ulogic_vector(data_width_c-1 downto 0); -- pc for instruction fetch
|
signal fetch_pc : std_ulogic_vector(data_width_c-1 downto 0); -- pc for instruction fetch
|
signal curr_pc : std_ulogic_vector(data_width_c-1 downto 0); -- current pc (for current executed instruction)
|
signal curr_pc : std_ulogic_vector(data_width_c-1 downto 0); -- current pc (for current executed instruction)
|
signal next_pc : std_ulogic_vector(data_width_c-1 downto 0); -- next pc (for current executed instruction)
|
signal next_pc : std_ulogic_vector(data_width_c-1 downto 0); -- next pc (for current executed instruction)
|
|
|
-- co-processor interface --
|
-- co-processor interface --
|
|
signal cp_opa, cp_opb : std_ulogic_vector(data_width_c-1 downto 0);
|
signal cp0_data, cp1_data : std_ulogic_vector(data_width_c-1 downto 0);
|
signal cp0_data, cp1_data : std_ulogic_vector(data_width_c-1 downto 0);
|
signal cp0_valid, cp1_valid : std_ulogic;
|
signal cp0_valid, cp1_valid : std_ulogic;
|
signal cp0_start, cp1_start : std_ulogic;
|
signal cp0_start, cp1_start : std_ulogic;
|
|
|
-- pmp interface --
|
-- pmp interface --
|
Line 266... |
Line 267... |
-- data output --
|
-- data output --
|
cmp_o => alu_cmp, -- comparator status
|
cmp_o => alu_cmp, -- comparator status
|
add_o => alu_add, -- OPA + OPB
|
add_o => alu_add, -- OPA + OPB
|
res_o => alu_res, -- ALU result
|
res_o => alu_res, -- ALU result
|
-- co-processor interface --
|
-- co-processor interface --
|
|
cp_opa_o => cp_opa, -- co-processor operand a
|
|
cp_opb_o => cp_opb, -- co-processor operand b
|
cp0_start_o => cp0_start, -- trigger co-processor 0
|
cp0_start_o => cp0_start, -- trigger co-processor 0
|
cp0_data_i => cp0_data, -- co-processor 0 result
|
cp0_data_i => cp0_data, -- co-processor 0 result
|
cp0_valid_i => cp0_valid, -- co-processor 0 result valid
|
cp0_valid_i => cp0_valid, -- co-processor 0 result valid
|
cp1_start_o => cp1_start, -- trigger co-processor 1
|
cp1_start_o => cp1_start, -- trigger co-processor 1
|
cp1_data_i => cp1_data, -- co-processor 1 result
|
cp1_data_i => cp1_data, -- co-processor 1 result
|
Line 292... |
Line 295... |
clk_i => clk_i, -- global clock, rising edge
|
clk_i => clk_i, -- global clock, rising edge
|
rstn_i => rstn_i, -- global reset, low-active, async
|
rstn_i => rstn_i, -- global reset, low-active, async
|
ctrl_i => ctrl, -- main control bus
|
ctrl_i => ctrl, -- main control bus
|
-- data input --
|
-- data input --
|
start_i => cp0_start, -- trigger operation
|
start_i => cp0_start, -- trigger operation
|
rs1_i => rs1, -- rf source 1
|
rs1_i => cp_opa, -- rf source 1
|
rs2_i => rs2, -- rf source 2
|
rs2_i => cp_opb, -- rf source 2
|
-- result and status --
|
-- result and status --
|
res_o => cp0_data, -- operation result
|
res_o => cp0_data, -- operation result
|
valid_o => cp0_valid -- data output valid
|
valid_o => cp0_valid -- data output valid
|
);
|
);
|
end generate;
|
end generate;
|