Die in MyHDL angezeigten Dekorateure wurden von Reference organisiert.
instance() Der häufigste Dekorateur. Erstellen Sie automatisch einen Generator.
def ClkDriver(clk, period=20):
lowTime = int(period/2)
highTime = period - lowTime
@instance
def driveClk():
while True:
yield delay(lowTime)
clk.next = 1
yield delay(highTime)
clk.next = 0
return driveClk
always() Ein Dekorateur, der in einem festen Muster verwendet wird. Beispiel einer Schaltung, die an der ansteigenden Flanke des Takts arbeitet
@always(clk.posedge)
def write():
if we:
mem[addr].next = din
always_comb() Ein Dekorateur, der eine Kombinationsschaltung beschreibt.
@always_comb
def read():
dout.next = mem[addr]
always_seq() Ein Dekorateur, der eine sequentielle Schaltung beschreibt.
def Inc(count, enable, clock, reset):
@always_seq(clock.posedge, reset=reset)
def incLogic():
if enable:
count.next = count + 1
return incLogic