I need help writing a verilog code with 4 inputs to a 7 segm
Solution
library IEEE;
 use IEEE.STD_LOGIC_1164.ALL;
 use IEEE.STD_LOGIC_ARITH.ALL;
 use IEEE.STD_LOGIC_UNSIGNED.ALL;
 
 entity test is
 port (
 clk : in std_logic;
 bcd : in std_logic_vector(3 downto 0);  --BCD input
 segment7 : out std_logic_vector(6 downto 0)  -- 7 bit decoded output.
   );
 end test;
 --\'a\' corresponds to MSB of segment7 and g corresponds to LSB of segment7.
 architecture Behavioral of test is
 
 begin
 process (clk,bcd)
 BEGIN
 if (clk\'event and clk=\'1\') then
 case  bcd is
 when \"0000\"=> segment7 <=\"0000001\";  -- \'0\'
 when \"0001\"=> segment7 <=\"1001111\";  -- \'1\'
 when \"0010\"=> segment7 <=\"0010010\";  -- \'2\'
 when \"0011\"=> segment7 <=\"0000110\";  -- \'3\'
 when \"0100\"=> segment7 <=\"1001100\";  -- \'4\'
 when \"0101\"=> segment7 <=\"0100100\";  -- \'5\'
 when \"0110\"=> segment7 <=\"0100000\";  -- \'6\'
 when \"0111\"=> segment7 <=\"0001111\";  -- \'7\'
 when \"1000\"=> segment7 <=\"0000000\";  -- \'8\'
 when \"1001\"=> segment7 <=\"0000100\";  -- \'9\'
 --nothing is displayed when a number more than 9 is given as input.
 when others=> segment7 <=\"1111111\";
 end case;
 end if;
 
 end process;
 
 end Behavioral;

