问答题 用VHDL语言描述上题的两个电路。
【正确答案】图4.3.24(a)所示电路的VHDL程序如下:
   LIBRARY ieee;
   USE ieee.Std_logic_1164.ALL;
   LIBRARY lattice:
   USE lattice.components.ALL;
   ENTITY xiti424a IS
   PORT(a,b,C:IN Std_logic;f, g:OUT Std_logic);
   END xiti424a:
   ARCHITECTURE xiti424a_ar OF xiti424a IS
   SIGNAL sel:Std_logic_vector(1 downto 0);
   BEGIN
   sel<=b&c:
   PROCESS(a,b,c)
   BEGIN
   CASE sel IS
     WHEN"00" =>f<=not a;g<='0' ;
     WHEN "01" =>f<='1';g<=a;
     WHEN"10"=>f<='1';g<=a;
     WHEN"11"=>f<=a;g<='1';
     WHEN OTHERS=>f<='Z';g<='Z';
    END CASE:
    END PROCESS:
   END xiti424a_ar;
   图4.3.24(b)所示电路的VHDL程序如下:
   LIBRARY ieee;
   USE ieee.Std_logic_1164.ALL;
   LIBRARY lattice;
   USE lattice.components.ALL;
   ENTITY xiti424b IS
   PORT(a,b,c:IN Std_logic;f1, f2:OUT Std_logic);
   END xiti424b:
   ARCHITECTURE xiti424b_ar OF xiti424b IS
   SIGNAL sel:Std_logic_vector(1 downto 0);
   BEGIN
   sel<=b&C;
   PROCESS(a,b,c)
   BEGIN
   CASE sel 1S
     WHEN"00"=>f1<=a;f2<='0';
     WHEN"01"=>f1<=not a;f2<=not a;
     WHEN"10"=>f1<=not a;f2<=not a;
     WHEN"11"=>f1<=a;f2<='1';
     WHEN OTHERS=>f1<='Z';f2<='Z';
    END CASE:
    END PROCESS:
   END xiti424b_ar;
【答案解析】