From 594a19de37f136d443d8b7d2308d12cce5fb0ae5 Mon Sep 17 00:00:00 2001 From: Michael Neuling Date: Wed, 25 Mar 2020 09:58:18 +1100 Subject: [PATCH] Plumb attn instruction through to execute1 Currently we decode attn but we just mark it as an illegal. This adds a separate case statement in execute 1 for attn to terminate the core. Illegals also do this currently but we are soon implementing a 0x700 execption for them. Signed-off-by: Michael Neuling --- decode1.vhdl | 2 +- execute1.vhdl | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/decode1.vhdl b/decode1.vhdl index e9dae1e..8a6804d 100644 --- a/decode1.vhdl +++ b/decode1.vhdl @@ -337,7 +337,7 @@ architecture behaviour of decode1 is -- unit internal in1 in2 in3 out CR CR inv inv cry cry ldst BR sgn upd rsrv 32b sgn rc lk sgl -- op in out A out in out len ext pipe - constant attn_instr : decode_rom_t := (ALU, OP_ILLEGAL, NONE, NONE, NONE, NONE, '0', '0', '0', '0', ZERO, '0', NONE, '0', '0', '0', '0', '0', '0', NONE, '0', '1'); + constant attn_instr : decode_rom_t := (ALU, OP_ATTN, NONE, NONE, NONE, NONE, '0', '0', '0', '0', ZERO, '0', NONE, '0', '0', '0', '0', '0', '0', NONE, '0', '1'); constant nop_instr : decode_rom_t := (ALU, OP_NOP, NONE, NONE, NONE, NONE, '0', '0', '0', '0', ZERO, '0', NONE, '0', '0', '0', '0', '0', '0', NONE, '0', '0'); constant sim_cfg_instr : decode_rom_t := (ALU, OP_SIM_CONFIG,NONE, NONE, NONE, RT, '0', '0', '0', '0', ZERO, '0', NONE, '0', '0', '0', '0', '0', '0', NONE, '0', '1'); diff --git a/execute1.vhdl b/execute1.vhdl index 4703049..0d92266 100644 --- a/execute1.vhdl +++ b/execute1.vhdl @@ -369,6 +369,9 @@ begin when OP_ILLEGAL => terminate_out <= '1'; report "illegal"; + when OP_ATTN => + terminate_out <= '1'; + report "ATTN"; when OP_NOP => -- Do nothing when OP_ADD | OP_CMP =>