usb3_pipe/sim.py

61 lines
1.6 KiB
Python
Raw Normal View History

2019-10-09 12:47:40 +02:00
#!/usr/bin/env python3
import argparse
from migen import *
from litex.build.generic_platform import *
from litex.build.sim import SimPlatform
from litex.build.sim.config import SimConfig
from litex.soc.integration.soc_core import *
from litex.soc.integration.builder import *
# IOs ----------------------------------------------------------------------------------------------
class SimPins(Pins):
def __init__(self, n=1):
Pins.__init__(self, "s "*n)
_io = [
("sys_clk", 0, SimPins(1)),
("sys_rst", 0, SimPins(1))
]
# Platform -----------------------------------------------------------------------------------------
class Platform(SimPlatform):
default_clk_name = "sys_clk"
def __init__(self):
SimPlatform.__init__(self, "SIM", _io)
def do_finalize(self, fragment):
pass
# USB3PIPESim --------------------------------------------------------------------------------------
class USB3PIPESim(SoCMini):
def __init__(self):
platform = Platform()
sys_clk_freq = int(1e6)
SoCMini.__init__(self, platform, clk_freq=sys_clk_freq)
# Build --------------------------------------------------------------------------------------------
def main():
parser = argparse.ArgumentParser(description="USB3 PIPE Simulation")
parser.add_argument("--trace", action="store_true", help="enable VCD tracing")
args = parser.parse_args()
sim_config = SimConfig(default_clk="sys_clk")
soc = USB3PIPESim()
builder = Builder(soc, output_dir="build")
builder.build(sim_config=sim_config, trace=args.trace)
if __name__ == "__main__":
main()