Fully initialize FPU buses when FPU is disabled
authorAnton Blanchard <anton@linux.ibm.com>
Sun, 13 Dec 2020 05:01:45 +0000 (16:01 +1100)
committerAnton Blanchard <anton@ozlabs.org>
Sun, 13 Dec 2020 05:03:58 +0000 (16:03 +1100)
Some of the bits in the FPU buses end up as z state. Yosys
flags them, so we may as well clean it up.

Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
common.vhdl
core.vhdl

index f91ac187edbe1091908797ae7bfcea9e5407f4b5..03cc942b8ef4744d6d2b2c5ac9db70996cb97930 100644 (file)
@@ -471,6 +471,7 @@ package common is
         interrupt : std_ulogic;
         illegal   : std_ulogic;
     end record;
+    constant FPUToExecute1Init : FPUToExecute1Type := (others => '0');
 
     type FPUToWritebackType is record
         valid           : std_ulogic;
@@ -481,6 +482,7 @@ package common is
         write_cr_mask   : std_ulogic_vector(7 downto 0);
         write_cr_data   : std_ulogic_vector(31 downto 0);
     end record;
+    constant FPUToWritebackInit : FPUToWritebackType :=  (valid => '0', write_enable => '0', write_cr_enable => '0', others => (others => '0'));
 
     type DividerToExecute1Type is record
        valid: std_ulogic;
index b905297be95f7f9b2379bd838229b8c7fab41f88..bc32a8c5cc41df9dbdad791a0fb3610eed0dfca1 100644 (file)
--- a/core.vhdl
+++ b/core.vhdl
@@ -350,13 +350,8 @@ begin
 
     no_fpu: if not HAS_FPU generate
     begin
-        fpu_to_execute1.busy <= '0';
-        fpu_to_execute1.exception <= '0';
-        fpu_to_execute1.interrupt <= '0';
-        fpu_to_execute1.illegal <= '0';
-        fpu_to_writeback.valid <= '0';
-        fpu_to_writeback.write_enable <= '0';
-        fpu_to_writeback.write_cr_enable <= '0';
+        fpu_to_execute1 <= FPUToExecute1Init;
+        fpu_to_writeback <= FPUToWritebackInit;
     end generate;
 
     loadstore1_0: entity work.loadstore1