Advertisement
Guest User

test sim litex

a guest
Nov 18th, 2022
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. from litex.tools.litex_sim import *
  2.  
  3. class TestSim(SimSoC):
  4. def __init__(self, host_ip="192.168.1.100", host_udp_port=2000):
  5. SimSoC.__init__(self,
  6. cpu_type = None,
  7. integrated_rom_size = 0x10000,
  8. uart_name = "sim",
  9. with_sdram = False,
  10. with_etherbone = False,
  11. etherbone_mac_address = 0x10e2d5000001,
  12. etherbone_ip_address = "192.168.1.50",
  13. sdram_module = "MT48LC16M16",
  14. sdram_data_width = 8,
  15. with_sdcard = False,
  16. )
  17. from litex.build.sim import SimPlatform
  18.  
  19. import numpy
  20.  
  21. pileup_datamem = Memory(16, 2**15, name="test_data")
  22.  
  23. self.specials += pileup_datamem
  24. pd_rp = pileup_datamem.get_port()
  25.  
  26. counter = Signal(15, reset=0)
  27.  
  28. self.sync += counter.eq(counter + 1)
  29. self.comb += [
  30. pd_rp.adr.eq(counter),
  31. ]
  32.  
  33.  
  34. def main():
  35. from litex.soc.integration.soc import LiteXSoCArgumentParser
  36. parser = LiteXSoCArgumentParser(description="LiteX SoC Simulation utility")
  37. sim_args(parser)
  38. args = parser.parse_args()
  39.  
  40. soc_kwargs = soc_core_argdict(args)
  41. builder_kwargs = builder_argdict(args)
  42. verilator_build_kwargs = verilator_build_argdict(args)
  43.  
  44. sys_clk_freq = int(1e6)
  45. sim_config = SimConfig()
  46. sim_config.add_clocker("sys_clk", freq_hz=sys_clk_freq)
  47. sim_config.add_module("serial2console", "serial")
  48. # sim_config.add_module("ethernet", "eth", args={"interface": "tap0", "ip": "192.168.1.100"})
  49.  
  50. # SoC ------------------------------------------------------------------------------------------
  51. soc = TestSim()
  52.  
  53. def pre_run_callback(vns):
  54. if args.trace:
  55. generate_gtkw_savefile(builder, vns, args.trace_fst)
  56.  
  57. # Build/Run ------------------------------------------------------------------------------------
  58. builder = Builder(soc, csr_csv="csr.csv")
  59. builder.build(sim_config=sim_config,
  60. interactive = not args.non_interactive,
  61. pre_run_callback = pre_run_callback,
  62. **verilator_build_kwargs,
  63. )
  64.  
  65.  
  66. if __name__ == "__main__":
  67. main()
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement