bcd转二进制数据的vhdl硬件描述语言(一一罗列组合逻辑的真值表,此法相当的笨,不过比较管用
),用来写cpld芯片,从语言可以看出适合电压显示和输出同步,且步进为0.1v时,能从0v--12.7v。library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity bcd2 is
port (a : in std_logic_vector(8 downto 0);
b : out std_logic_vector(6 downto 0));
end bcd2;
architecture one of bcd2 is
begin
process(a)
begin
case a is
when"000000000"=> b<="0000000";
when"000000001"=> b<="0000001";
when"000000010"=> b<="0000010";
when"000000011"=> b<="0000011";
when"000000100"=> b<="0000100";
when"000000101"=> b<="0000101";
when"000000110"=> b<="0000110";
when"000000111"=> b<="0000111";
when"000001000"=> b<="0001000";
when"000001001"=> b<="0001001";
when"000010000"=> b<="0001010";
when"000010001"=> b<="0001011";
when"000010010"=> b<="0001100";
when"000010011"=> b<="0001101";
when"000010100"=> b<="0001110";
when"000010101"=> b<="0001111";
when"000010110"=> b<="0010000";
when"000010111"=> b<="0010001";
when"000011000"=> b<="0010010";
when"000011001"=> b<="0010011";
when"000100000"=> b<="0010100";
when"000100001"=> b<="0010101";
when"000100010"=> b<="0010110";
when"000100011"=> b<="0010111";
when"000100100"=> b<="0011000";
when"000100101"=> b<="0011001";
when"000100110"=> b<="0011010";
when"000100111"=> b<="0011011";
when"000101000"=> b<="0011100";
when"000101001"=> b<="0011101";
when"000110000"=> b<="0011110";
when"000110001"=> b<="0011111";
when"000110010"=> b<="0100000";
when"000110011"=> b<="0100001";
when"000110100"=> b<="0100010";
when"000110101"=> b<="0100011";
when"000110110"=> b<="0100100";
when"000110111"=> b<="0100101";
when"000111000"=> b<="0100110";
when"000111001"=> b<="0100111";
when"001000000"=> b<="0101000";
when"001000001"=> b<="0101001";
when"001000010"=> b<="0101010";
when"001000011"=> b<="0101011";
when"001000100"=> b<="0101100";
when"001000101"=> b<="0101101";
when"001000110"=> b<="0101110";
when"001000111"=> b<="0101111";
when"001001000"=> b<="0110000";
when"001001001"=> b<="0110001";
when"001010000"=> b<="0110010";
when"001010001"=> b<="0110011";
when"001010010"=> b<="0110100";
when"001010011"=> b<="0110101";
when"001010100"=> b<="0110110";
when"001010101"=> b<="0110111";
when"001010110"=> b<="0111000";
when"001010111"=> b<="0111001";
when"001011000"=> b<="0111010";
when"001011001"=> b<="0111011";
when"001100000"=> b<="0111100";
when"001100001"=> b<="0111101";
when"001100010"=> b<="0111110";
when"001100011"=> b<="0111111";
when"001100100"=> b<="1000000";
when"001100101"=> b<="1000001";
when"001100110"=> b<="1000010";
when"001100111"=> b<="1000011";
when"001101000"=> b<="1000100";
when"001101001"=> b<="1000101";
when"001110000"=> b<="1000110";
when"001110001"=> b<="1000111";
when"001110010"=> b<="1001000";
when"001110011"=> b<="1001001";
when"001110100"=> b<="1001010";
when"001110101"=> b<="1001011";
when"001110110"=> b<="1001100";
when"001110111"=> b<="1001101";
when"001111000"=> b<="1001110";
when"001111001"=> b<="1001111";
when"010000000"=> b<="1010000";
when"010000001"=> b<="1010001";
when"010000010"=> b<="1010010";
when"010000011"=> b<="1010011";
when"010000100"=> b<="1010100";
when"010000101"=> b<="1010101";
when"010000110"=> b<="1010110";
when"010000111"=> b<="1010111";
when"010001000"=> b<="1011000";
when"010001001"=> b<="1011001";
when"010010000"=> b<="1011010";
when"010010001"=> b<="1011011";
when"010010010"=> b<="1011100";
when"010010011"=> b<="1011101";
when"010010100"=> b<="1011110";
when"010010101"=> b<="1011111";
when"010010110"=> b<="1100000";
when"010010111"=> b<="1100001";
when"010011000"=> b<="1100010";
when"010011001"=> b<="1100011";
when"100000000"=> b<="1100100";
when"100000001"=> b<="1100101";
when"100000010"=> b<="1100110";
when"100000011"=> b<="1100111";
when"100000100"=> b<="1101000";
when"100000101"=> b<="1101001";
when"100000110"=> b<="1101010";
when"100000111"=> b<="1101011";
when"100001000"=> b<="1101100";
when"100001001"=> b<="1101101";
when"100010000"=> b<="1101110";
when"100010001"=> b<="1101111";
when"100010010"=> b<="1110000";
when"100010011"=> b<="1110001";
when"100010100"=> b<="1110010";
when"100010101"=> b<="1110011";
when"100010110"=> b<="1110100";
when"100010111"=> b<="1110101";
when"100011000"=> b<="1110110";
when"100011001"=> b<="1110111";
when"100100000"=> b<="1111000";
when"100100001"=> b<="1111001";
when"100100010"=> b<="1111010";
when"100100011"=> b<="1111011";
when"100100100"=> b<="1111100";
when"100100101"=> b<="1111101";
when"100100110"=> b<="1111110";
when"100100111"=> b<="1111111";
when others=> b<="0000000";
end case;
end process;
end one;