1
0
mirror of https://github.com/myhdl/myhdl.git synced 2025-01-24 21:52:56 +08:00
2006-09-19 19:58:18 +00:00

60 lines
1.1 KiB
Python

from myhdl import *
def dffa(q, d, clk, rst):
@always(clk.posedge, rst.negedge)
def logic():
if rst == 0:
q.next = 0
else:
q.next = d
return logic
from random import randrange
def test_dffa():
q, d, clk, rst = [Signal(bool(0)) for i in range(4)]
dffa_inst = dffa(q, d, clk, rst)
@always(delay(10))
def clkgen():
clk.next = not clk
@always(clk.negedge)
def stimulus():
d.next = randrange(2)
@instance
def rstgen():
yield delay(5)
rst.next = 1
while True:
yield delay(randrange(500, 1000))
rst.next = 0
yield delay(randrange(80, 140))
rst.next = 1
return dffa_inst, clkgen, stimulus, rstgen
def simulate(timesteps):
tb = traceSignals(test_dffa)
sim = Simulation(tb)
sim.run(timesteps)
simulate(20000)
def convert():
q, d, clk, rst = [Signal(bool(0)) for i in range(4)]
toVerilog(dffa, q, d, clk, rst)
conversion.analyze(dffa, q, d, clk, rst)
convert()