Exemple #1
0
def setup_reset(m, reset, *statement, **kwargs):
    period = kwargs['period'] if 'period' in kwargs else 100
    positive = kwargs['positive'] if 'positive' in kwargs else True

    ret = m.Initial(
        reset(not positive),
        statement,
        vtypes.Delay(period),
        reset(positive),
        vtypes.Delay(period),
        reset(not positive),
    )

    # for verilator
    if not hasattr(m, 'verilator_reset'):
        m.verilator_reset = collections.OrderedDict()

    m.verilator_reset[reset] = (period, positive)

    if not hasattr(m, 'verilator_reset_statements'):
        m.verilator_reset_statements = collections.OrderedDict()

    if reset not in m.verilator_reset_statements:
        m.verilator_reset_statements[reset] = []

    m.verilator_reset_statements[reset].extend(statement)

    return ret
Exemple #2
0
def setup_reset(m, reset, *statement, **kwargs):
    period = kwargs['period'] if 'period' in kwargs else 100
    ret = m.Initial(
        reset(0),
        statement,
        vtypes.Delay(100),
        reset(1),
        vtypes.Delay(100),
        reset(0),
    )
    return ret
Exemple #3
0
 def visit_DelayStatement(self, node):
     value = self.visit(node.delay)
     delay = vtypes.Delay(value)
     return delay
Exemple #4
0
def next_clock(clk):
    return (vtypes.Event(vtypes.Posedge(clk)), vtypes.Delay(1))