Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a VHDL file to implement a binary coded decimal decoder from 4 to 10 with

ID: 2249584 • Letter: W

Question

Write a VHDL file to implement a binary coded decimal decoder from 4 to 10 with active high outputs.

The truth table for the decoder is

Inputs

Outputs

D

C

B

A

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

1

1

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

1

0

0

0

0

1

0

0

0

0

0

0

1

1

0

0

0

0

1

0

0

0

0

0

0

0

1

1

1

0

0

1

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

1

1

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

1

0

0

0

0

0

0

0

0

0

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

Inputs

Outputs

D

C

B

A

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

0

1

1

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

1

0

0

0

0

1

0

0

0

0

0

0

1

1

0

0

0

0

1

0

0

0

0

0

0

0

1

1

1

0

0

1

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

1

1

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

1

0

0

0

0

0

0

0

0

0

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

Explanation / Answer

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;


entity decoder is
port (
A,B, C, D : in std_logic ;
Y : out std_logic_vector ( 9 downto 0 )
);
end decoder;

architecture behavioral of decoder is

signal temp : in std_logic_vector (3 downto 0);
  begin

temp <= D & C & B & A;
   with temp select
   y <= "0000000001" when "0000",
"0000000010" when "0001",
"0000000100" when "0010",
"0000001000" when "0011",
"0000010000" when "0100",
"0000100000" when "0101",

"0001000000" when "0110",

"0010000000" when "0111",  

"0100000000" when "1000",
"1000000000" when "1001",
"0000000000" when others;
end behavioral;