This set of Tough VHDL Questions and Answers on “Implementing Combinational Circuits with VHDL – 2”.
1. The process statement used in combinational circuits is called ______ process.
a) Combinational
b) Clocked
c) Unclocked
d) Sequential
Answer: a
Clarification: The process, in which no clock signal is used, is called a combinational process. In a combinational process, the sensitivity list doesn’t include any clock signal for synchronization. In the case of sequential circuits the clock signal is used.
2. Why we need to include all the input signals in the sensitivity list of the process?
a) To monitor the output continuously
b) To monitor the input continuously
c) To make the circuit synthesizable by EDA tools
d) No special purpose
Answer: b
Clarification: If the input signals are not in the sensitivity list of the process, then one can’t monitor the change in input. Any change in input signal will not change the output simultaneously by running the process again.
3. If only two bit vectors are allowed to use in the VHDL code, then how many number of MUX will be required to implement 4 to 1 MUX?
a) 1
b) 2
c) 3
d) 4
Answer: c
Clarification: Since we have inputs with two bits only, so we can use 2 to 1 MUX to implement the required design. So, to design 4 to 1 MUX, we need 3 2 to 1 MUX and hence we can get the desired circuit by using 3 multiplexers.
4. A package is designed called mux4to1_package, in which a component called mux4to1 is defined, which is a 4 to 1 multiplexer. Now a user wants to design a 16 to 1 MUX by using the same component only, how many times he needs to use the PORT MAP statement?
a) 2
b) 3
c) 4
d) 5
Answer: d
Clarification: The problem statement says that a 16:1 MUX is to be designed by using 4:1 multiplexers only. This can be done by using 5 numbers of 4 to 1 multiplexers. Here, 4 MUXs are required to collect all the inputs and one is used to select one from the 4 multiplexers outputs.
5. In designing a 2 to 1 demultiplexer with input d, output y and select line s, which of the following is a correct process statement?
a) PROCESS(d)
b) PROCESS(d(0), d(1), s)
c) PROCESS(d(0), d(1))
d) PROCESS(d, s, y)
Answer: a
Clarification: In a combinational process, the sensitivity list must include all the inputs. For a 2 to 1 MUX, there must be 2 inputs which are d(0) and d(1); also the process should be sensitive to the select line, so s also should be in the sensitivity list.
6. The given code represents a convertor. Which kind of convertor it is?
ENTITY convert IS PORT(b: IN STD_LOGIC_VECTOR(3 DOWNTO 0); x : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END convert; ARCHITECTURE convertor OF covert IS BEGIN PROCESS(b) BEGIN CASE b IS WHEN “0000” => x <= “1111110”; WHEN “0001” => x <= “0110000”; WHEN “0010” => x <= “1101101”; WHEN “0011” => x <= “1111001”; WHEN “0100” => x <= “0110011”; WHEN “0101” => x <= “1011011”; WHEN “0110” => x <= “1011111”; WHEN “0111” => x <= “1110000”; WHEN “1000” => x <= “1111111”; WHEN “1001” => x <= “1110011”; WHEN OTHERS => x <= “0000000”; END CASE; END PROCESS; END convertor;
a) Gray to BCD
b) 7 segment to BCD
c) BCD to gray
d) BCD to 7 segment display
