2016-05-11 12:08:15 +02:00
|
|
|
from myhdl import block, always_comb, Signal
|
2003-02-19 22:35:10 +00:00
|
|
|
|
2016-05-11 12:08:15 +02:00
|
|
|
@block
|
2003-02-19 22:35:10 +00:00
|
|
|
def mux(z, a, b, sel):
|
2016-05-11 12:08:15 +02:00
|
|
|
|
2003-02-19 22:35:10 +00:00
|
|
|
""" Multiplexer.
|
2016-05-11 12:08:15 +02:00
|
|
|
|
2003-02-19 22:35:10 +00:00
|
|
|
z -- mux output
|
|
|
|
a, b -- data inputs
|
|
|
|
sel -- control input: select a if asserted, otherwise b
|
2016-05-11 12:08:15 +02:00
|
|
|
|
2003-02-19 22:35:10 +00:00
|
|
|
"""
|
2016-05-11 12:08:15 +02:00
|
|
|
|
|
|
|
@always_comb
|
|
|
|
def comb():
|
2003-02-19 22:35:10 +00:00
|
|
|
if sel == 1:
|
|
|
|
z.next = a
|
|
|
|
else:
|
|
|
|
z.next = b
|
|
|
|
|
2016-05-11 12:08:15 +02:00
|
|
|
return comb
|