Guest User

Untitled

a guest
Jan 20th, 2021
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 3.29 KB | None | 0 0
  1. diff --git a/litex_boards/targets/nexys4ddr.py b/litex_boards/targets/nexys4ddr.py
  2. index 1dfda8c..a8c5fe3 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,19 @@ 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.l2fb_wb,
  31. +            ]
  32. +            self.submodules.analyzer = LiteScopeAnalyzer(analyzer_signals,
  33. +                depth        = 512,
  34. +                clock_domain = "sys",
  35. +                csr_csv      = "analyzer.csv")
  36. +            self.add_csr("analyzer")
  37. +            if not with_etherbone:
  38. +                self.add_uartbone()
  39. +
  40.          # VGA terminal -----------------------------------------------------------------------------
  41.          if with_vga:
  42.              self.submodules.terminal = terminal = Terminal()
  43. @@ -124,6 +139,7 @@ def main():
  44.      parser.add_argument("--sys-clk-freq",    default=75e6,        help="System clock frequency (default: 75MHz)")
  45.      parser.add_argument("--with-ethernet",   action="store_true", help="Enable Ethernet support")
  46.      parser.add_argument("--with-etherbone",  action="store_true", help="Enable Etherbone support")
  47. +    parser.add_argument("--with-analyzer",   action="store_true", help="Enable Analyzer support")
  48.      parser.add_argument("--with-spi-sdcard", action="store_true", help="Enable SPI-mode SDCard support")
  49.      parser.add_argument("--with-sdcard",     action="store_true", help="Enable SDCard support")
  50.      parser.add_argument("--with-vga",        action="store_true", help="Enable VGA support")
  51. @@ -136,6 +152,7 @@ def main():
  52.          sys_clk_freq   = int(float(args.sys_clk_freq)),
  53.          with_ethernet  = args.with_ethernet,
  54.          with_etherbone = args.with_etherbone,
  55. +        with_analyzer  = args.with_analyzer,
  56.          **soc_sdram_argdict(args)
  57.      )
  58.      assert not (args.with_spi_sdcard and args.with_sdcard)
  59. @@ -144,7 +161,10 @@ def main():
  60.      if args.with_sdcard:
  61.          soc.add_sdcard()
  62.      builder = Builder(soc, **builder_argdict(args))
  63. -    builder.build(run=args.build)
  64. +    vns = builder.build(run=args.build)
  65. +
  66. +    if args.with_analyzer:
  67. +        soc.analyzer.export_csv(vns, "analyzer.csv")
  68.  
  69.      if args.load:
  70.          prog = soc.platform.create_programmer()
Advertisement
Add Comment
Please, Sign In to add comment