[PYTHON] Décorateur MyHDL

Les décorateurs qui apparaissent dans MyHDL ont été organisés à partir de Reference.

instance() Le décorateur le plus courant. Créez un générateur automatiquement.

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() Un décorateur utilisé dans un motif fixe. Exemple de circuit fonctionnant sur le front montant de l'horloge

    @always(clk.posedge)
    def write():
        if we:
            mem[addr].next = din

always_comb() Un décorateur qui décrit un circuit combiné.

    @always_comb
    def read():
        dout.next = mem[addr]

always_seq() Un décorateur qui décrit un circuit séquentiel.

def Inc(count, enable, clock, reset):
    @always_seq(clock.posedge, reset=reset)
    def incLogic():
        if enable:
            count.next = count + 1

    return incLogic

Recommended Posts

Décorateur MyHDL
Décorateur 1
Décorateur 2
Décorateur
Décorateur
Remarque: décorateur Python
Le décorateur doit réessayer
Décorateur de fonction Python