Advertisement
Guest User

Untitled

a guest
Jan 26th, 2021
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.67 KB | None | 0 0
  1. diff --git a/litex_boards/targets/nexys4ddr.py b/litex_boards/targets/nexys4ddr.py
  2. index 1dfda8c..db9f055 100755
  3. --- a/litex_boards/targets/nexys4ddr.py
  4. +++ b/litex_boards/targets/nexys4ddr.py
  5. @@ -27,6 +27,8 @@ from liteeth.phy.rmii import LiteEthPHYRMII
  6.  
  7.  from litevideo.terminal.core import Terminal
  8.  
  9. +from litescope import LiteScopeAnalyzer
  10. +
  11.  # CRG ----------------------------------------------------------------------------------------------
  12.  
  13.  class _CRG(Module):
  14. @@ -56,7 +58,7 @@ class _CRG(Module):
  15.  # BaseSoC ------------------------------------------------------------------------------------------
  16.  
  17.  class BaseSoC(SoCCore):
  18. -    def __init__(self, sys_clk_freq=int(75e6), with_ethernet=False, with_etherbone=False, with_vga=False, **kwargs):
  19. +    def __init__(self, sys_clk_freq=int(75e6), with_ethernet=False, with_etherbone=False, with_analyzer=False, with_vga=False, **kwargs):
  20.          platform = nexys4ddr.Platform()
  21.  
  22.          # SoCCore ----------------------------------_-----------------------------------------------
  23. @@ -96,6 +98,24 @@ class BaseSoC(SoCCore):
  24.              if with_etherbone:
  25.                  self.add_etherbone(phy=self.ethphy)
  26.  
  27. +        # Analyzer ------------------------------------------------------------
  28. +        if with_analyzer:
  29. +            analyzer_signals = [
  30. +                self.cpu.mem_axi.aw, self.cpu.mem_axi.w, self.cpu.mem_axi.b,
  31. +                self.cpu.mem_axi.ar, self.cpu.mem_axi.r,
  32. +                self.cpu.mmio_axi.aw, self.cpu.mmio_axi.w, self.cpu.mmio_axi.b,
  33. +                self.cpu.mmio_axi.ar, self.cpu.mmio_axi.r,
  34. +                self.cpu.l2fb_axi.aw, self.cpu.l2fb_axi.w, self.cpu.l2fb_axi.b,
  35. +                self.cpu.l2fb_axi.ar, self.cpu.l2fb_axi.r,
  36. +            ]
  37. +            self.submodules.analyzer = LiteScopeAnalyzer(analyzer_signals,
  38. +                depth        = 512,
  39. +                clock_domain = "sys",
  40. +                csr_csv      = "analyzer.csv")
  41. +            self.add_csr("analyzer")
  42. +            if not with_etherbone:
  43. +                self.add_jtagbone()
  44. +
  45.          # VGA terminal -----------------------------------------------------------------------------
  46.          if with_vga:
  47.              self.submodules.terminal = terminal = Terminal()
  48. @@ -124,6 +144,7 @@ def main():
  49.      parser.add_argument("--sys-clk-freq",    default=75e6,        help="System clock frequency (default: 75MHz)")
  50.      parser.add_argument("--with-ethernet",   action="store_true", help="Enable Ethernet support")
  51.      parser.add_argument("--with-etherbone",  action="store_true", help="Enable Etherbone support")
  52. +    parser.add_argument("--with-analyzer",   action="store_true", help="Enable Analyzer support")
  53.      parser.add_argument("--with-spi-sdcard", action="store_true", help="Enable SPI-mode SDCard support")
  54.      parser.add_argument("--with-sdcard",     action="store_true", help="Enable SDCard support")
  55.      parser.add_argument("--with-vga",        action="store_true", help="Enable VGA support")
  56. @@ -136,6 +157,7 @@ def main():
  57.          sys_clk_freq   = int(float(args.sys_clk_freq)),
  58.          with_ethernet  = args.with_ethernet,
  59.          with_etherbone = args.with_etherbone,
  60. +        with_analyzer  = args.with_analyzer,
  61.          **soc_sdram_argdict(args)
  62.      )
  63.      assert not (args.with_spi_sdcard and args.with_sdcard)
  64. @@ -144,7 +166,10 @@ def main():
  65.      if args.with_sdcard:
  66.          soc.add_sdcard()
  67.      builder = Builder(soc, **builder_argdict(args))
  68. -    builder.build(run=args.build)
  69. +    vns = builder.build(run=args.build)
  70. +
  71. +    if args.with_analyzer:
  72. +        soc.analyzer.export_csv(vns, "analyzer.csv")
  73.  
  74.      if args.load:
  75.          prog = soc.platform.create_programmer()
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement