Skip to content

Latest commit

 

History

History

Multiplexer 2to1

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Multiplexer 2to1

The given code consists of two modules: mux_2to1 and mux_2to1_tb.

Description:

  • The code defines a multiplexer module called multiplexer_2to1. It takes three input signals: "in0", "in1", and "s", and has one output signal called "out". Inside the module, two instances of the bufif0_gate module are instantiated.

  • The bufif0_gate module is a behavioral gate that behaves like a buffer with output enable. It takes an input signal "a", an enable signal "enable", and produces an output signal "y". The output "y" is driven by "a" when "enable" is high (1), and it is driven to logic "0" when "enable" is low (0).

  • In the multiplexer_2to1 module, the first instance of bufif0_gate, named "b1", connects "in0" to the input "a" of "b1", and "s" to the enable "enable" of "b1". The output "y1" of "b1" is connected to the output "out" of multiplexer_2to1. Similarly, the second instance of "bufif0_gate", named "b2", connects "in1" to the input "a" of "b2", and "s" to the enable "enable" of "b2v. The output "y2" of "b2" is also connected to the output "out" of multiplexer_2to1.

  • The last line of the multiplexer_2to1 module assigns the value of "y2" or "y1" to the output "out" based on the value of the select signal "s". If "s" is high (1), then "y2" is assigned to "out"; otherwise, "y1" is assigned to "out".

  • The mux_2to1_tb module is a testbench that instantiates the multiplexer_2to1 module and performs various input combinations. It monitors the input signals "a", "b", and "s", along with the output signal "y", and displays them using $monitor. Test cases with different input combinations are provided, and there is a delay of "10" time units between each test case.

Output

Multiplexer 2to1

References