summaryrefslogtreecommitdiff
path: root/pb_APP_log_comb.srcs/sources_1
diff options
context:
space:
mode:
authorLYAM <cous5830@gmail.com>2025-05-05 15:51:55 -0400
committerLYAM <cous5830@gmail.com>2025-05-05 15:51:55 -0400
commit99f4eb01251847661d14fbe893eb7b97fde81d96 (patch)
tree33d37ffc54fd1a8ee0dede65cc9a51135767ae4a /pb_APP_log_comb.srcs/sources_1
parent00d617992fa1b35f28366db7a564045e441184ea (diff)
BCD_S now working with complement 2 instead of 1
Diffstat (limited to 'pb_APP_log_comb.srcs/sources_1')
-rw-r--r--pb_APP_log_comb.srcs/sources_1/new/Bin2DualBCD_S.vhd72
1 files changed, 46 insertions, 26 deletions
diff --git a/pb_APP_log_comb.srcs/sources_1/new/Bin2DualBCD_S.vhd b/pb_APP_log_comb.srcs/sources_1/new/Bin2DualBCD_S.vhd
index ccfe305..d007af4 100644
--- a/pb_APP_log_comb.srcs/sources_1/new/Bin2DualBCD_S.vhd
+++ b/pb_APP_log_comb.srcs/sources_1/new/Bin2DualBCD_S.vhd
@@ -41,41 +41,61 @@ architecture Behavioral of Bin2DualBCD_S is
begin
- process (signed_in(3))
- begin
- case (signed_in(3)) is
- when '0' =>
- signed_code <= "0000";
- when '1' =>
- signed_code <= "1101";
- when others =>
- signed_code <= "1110"; -- E
- end case;
- end process;
-
- -- Units are the same regardless of sign.
- process (signed_in(2 downto 0))
+ process (signed_in)
begin
- case (signed_in(2 downto 0)) is
- when "000" =>
+ case (signed_in) is
+ when "0000" =>
signed_units <= "0000";
- when "001" =>
+ signed_code <= "0000";
+ when "0001" =>
signed_units <= "0001";
- when "010" =>
+ signed_code <= "0000";
+ when "0010" =>
signed_units <= "0010";
- when "011" =>
+ signed_code <= "0000";
+ when "0011" =>
signed_units <= "0011";
- when "100" =>
+ signed_code <= "0000";
+ when "0100" =>
signed_units <= "0100";
- when "101" =>
+ signed_code <= "0000";
+ when "0101" =>
signed_units <= "0101";
- when "110" =>
- signed_units <= "0110";
- when "111" =>
+ signed_code <= "0000";
+ when "0110" =>
+ signed_units <= "0100";
+ signed_code <= "0000";
+ when "0111" =>
signed_units <= "0111";
+ signed_code <= "0000";
+ when "1000" =>
+ signed_units <= "1000";
+ signed_code <= "1101";
+ when "1001" =>
+ signed_units <= "0111";
+ signed_code <= "1101";
+ when "1010" =>
+ signed_units <= "0110";
+ signed_code <= "1101";
+ when "1011" =>
+ signed_units <= "0101";
+ signed_code <= "1101";
+ when "1100" =>
+ signed_units <= "0100";
+ signed_code <= "1101";
+ when "1101" =>
+ signed_units <= "0011";
+ signed_code <= "1101";
+ when "1110" =>
+ signed_units <= "0010";
+ signed_code <= "1101";
+ when "1111" =>
+ signed_units <= "0001";
+ signed_code <= "1101";
when others =>
- signed_units <= "1111"; -- r
+ signed_units <= "1111";
+ signed_code <= "1110";
end case;
- end process;
+ end process;
end Behavioral;