changebcd.vhd

来自「出租车计费器,VHDL实现」· VHDL 代码 · 共 359 行

VHD
359
字号
LIBRARY  IEEE;
USE  IEEE.STD_LOGIC_1164.ALL;
USE  IEEE.STD_LOGIC_ARITH.ALL;
USE  IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY  changebcd  IS
    PORT(  
        dat:IN STD_LOGIC_VECTOR(6 DOWNTO  0);
        bcd:OUT STD_LOGIC_VECTOR(7 DOWNTO  0));
END  changebcd;

ARCHITECTURE  execute  OF  changebcd  IS
signal  ge:STD_LOGIC_VECTOR(6 DOWNTO  0);
signal  shi:STD_LOGIC_VECTOR(3 DOWNTO  0);
BEGIN
      process(dat) 
begin  
        if (dat<10)then
        shi<="0000"; 
        ge<=dat;
        elsif((dat>=10) and (dat<20))then
        shi<="0001";
        ge<=dat-10; 
        elsif((dat>=20) and (dat<30))then
        shi<="0010";
        ge<=dat-20;   
        elsif((dat>=30) and (dat<40))then
        shi<="0011";
        ge<=dat-30;   
        elsif((dat>=40) and (dat<50))then
        shi<="0100";
        ge<=dat-40;   
        elsif((dat>=50) and (dat<60))then
        shi<="0101";
        ge<=dat-50;   
        elsif((dat>=60) and (dat<70))then
        shi<="0110";
        ge<=dat-60;   
        elsif((dat>=70) and (dat<80))then
        shi<="0111";
        ge<=dat-70;   
        elsif((dat>=80) and (dat<90))then
        shi<="1000";
        ge<=dat-80;   
        elsif((dat>=90) and (dat<100))then
        shi<="1001";
        ge<=dat-90;   
        else
          shi<="0000"; 
          ge<="0000000";
end if;
end process;
bcd<=shi&ge(3 downto 0);
end execute;
















































































































































































































































































































⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?