From 9cb7ef593022820a8603a1e1ade89b42e1466719 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Tue, 17 Mar 2009 09:36:33 +0000 Subject: [PATCH] - more decoding of cop_signals. New cop_read is now implemented into instruction decoder Committed on the Free edition of March Hare Software CVSNT Server. Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/ git-svn-id: http://moon:8086/svn/vhdl/trunk@399 cc03376c-175c-47c8-b038-4cd826a8556b --- lib/CPUs/MIPS/src/core/mips_instr.vhd | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/CPUs/MIPS/src/core/mips_instr.vhd b/lib/CPUs/MIPS/src/core/mips_instr.vhd index cbfc588..3db27b9 100644 --- a/lib/CPUs/MIPS/src/core/mips_instr.vhd +++ b/lib/CPUs/MIPS/src/core/mips_instr.vhd @@ -157,7 +157,7 @@ package body mips_instr is rt := to_integer(extract_rt(instr)); rs := to_integer(extract_rs(instr)); - result := op_sll; + result := reserved; case opc is @@ -485,6 +485,7 @@ package body mips_instr is variable result : ctrl_lines_t; begin result.cop_instr_en := '0'; + result.cop_read := '0'; result.jump := '0'; result.jump_long := '0'; result.branch := '0'; @@ -794,6 +795,18 @@ package body mips_instr is -- when COPz => when 16 | 17 | 18 | 19 => result.cop_instr_en := '1'; + case rs is + when 0 => -- MFCz + result.cop_read := '1'; + result.reg_write := '1'; + when 2 => -- CFCz + result.cop_read := '1'; + result.reg_write := '1'; + + when others => null; -- undef + + end case; + -- when op_addi => when 8 =>