displacement : in gp_register_t;\r
op_detail : in op_opt_t;\r
alu_state : in alu_result_rec;\r
- alu_result : out alu_result_rec;\r
+ alu_result : out alu_result_rec;
+ addr : out word_t; --memaddr
+ data : out gp_register_t --mem data --ureg\r
);\r
\r
end alu;\r
mem_op := '0';\r
addr <= add_result.result;
left <= left_operand;
- right <= right_operand;\r
+ right <= right_operand;
+
+ addr <= add_result.result;
+ data <= right_operand;\r
\r
case cond is\r
when COND_NZERO =>\r
\r
result_v.reg_op := not(op_detail(NO_DST_OPT)) and res_prod and cond_met;\r
result_v.mem_en := mem_en and cond_met;
- result_v.mem_op := mem_op and cond_met;\r
-\r
+ result_v.mem_op := mem_op and cond_met;
+ \r
alu_result <= result_v;\r
\r
end process calc; \r
displacement : in gp_register_t;
op_detail : in op_opt_t;
alu_state : in alu_result_rec;
- alu_result : out alu_result_rec
+ alu_result : out alu_result_rec;
+ addr : out word_t; --memaddr
+ data : out gp_register_t --mem data --ureg
);
end component alu;
alu_inst : alu
port map(clk, reset, condition, op_group,
- left_operand, right_operand, dec_instr.displacement, op_detail, alu_state, alu_nxt);
+ left_operand, right_operand, dec_instr.displacement, op_detail, alu_state, alu_nxt,addr,data);
gpm_inst : gpm
generic map(RESET_VALUE)
--hword <= reg.result(1);
byte_s <= alu_nxt.byte_op;
-addr <= alu_nxt.result;
-data <= right_operand;
+--addr <= alu_nxt.result;
+--data <= right_operand;
--byte_s <= reg.result(2);
end behav;