[PYTHON] MyHDL Dekorateur

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

Recommended Posts

MyHDL Dekorateur
Dekorateur 1
Dekorateur 2
Dekorateur
Dekorateur
Hinweis: Python-Dekorator
Dekorateur zu versuchen
Python-Funktionsdekorateur