示例#1
0
def main(args):
    wb = RemoteClient()
    wb.open()
    # print('reset before: ', wb.regs.xgmii_reset.read())
    # wb.regs.xgmii_reset.write(1)
    # print('reset after: ', wb.regs.xgmii_reset.read())
    # time.sleep(5)
    # print('reset after: ', wb.regs.xgmii_reset.read())
    # wb.regs.xgmii_reset.write(0)
    # print('reset after: ', wb.regs.xgmii_reset.read())

    print(f'pcs status: {hex(wb.regs.xgmii_pcs_status.read())}')
    print('pcs reset: ', wb.regs.xgmii_pcs_config.write(1))

    print(f'pcs status: {hex(wb.regs.xgmii_pcs_status.read())}')

    for i in range(1):
        print(wb.regs.f_sample_value.read() / 1e6)
        time.sleep(1)
    wb.close()
示例#2
0
#!/usr/bin/env python3
import time
from litex.tools.litex_client import RemoteClient
from litescope.software.driver.analyzer import LiteScopeAnalyzerDriver

wb = RemoteClient(debug=False)
wb.open()
regs = wb.regs

analyzer = LiteScopeAnalyzerDriver(wb.regs, "analyzer", debug=False)

# # #

dfii_control_sel = 0x01
dfii_control_cke = 0x02
dfii_control_odt = 0x04
dfii_control_reset_n = 0x08

dfii_command_cs = 0x01
dfii_command_we = 0x02
dfii_command_cas = 0x04
dfii_command_ras = 0x08
dfii_command_wrdata = 0x10
dfii_command_rddata = 0x20

regs.sdram_dfii_control.write(0)

# release reset
regs.sdram_dfii_pi0_address.write(0x0)
regs.sdram_dfii_pi0_baddress.write(0)
regs.sdram_dfii_control.write(dfii_control_odt | dfii_control_reset_n)
示例#3
0
# use arty_ddr3 design with this script to
# find working bitslip/delay configuration

dfii_control_sel     = 0x01
dfii_control_cke     = 0x02
dfii_control_odt     = 0x04
dfii_control_reset_n = 0x08

dfii_command_cs     = 0x01
dfii_command_we     = 0x02
dfii_command_cas    = 0x04
dfii_command_ras    = 0x08
dfii_command_wrdata = 0x10
dfii_command_rddata = 0x20

wb = RemoteClient(debug=True)
wb.open()
regs = wb.regs

# # #

regs.sdram_dfii_control.write(0)

# release reset
regs.sdram_dfii_pi0_address.write(0x0)
regs.sdram_dfii_pi0_baddress.write(0)
regs.sdram_dfii_control.write(dfii_control_odt|dfii_control_reset_n)
time.sleep(0.1)

# bring cke high
regs.sdram_dfii_pi0_address.write(0x0)
示例#4
0
from litex.tools.litex_client import RemoteClient

wb = RemoteClient("192.168.1.50", 1234, csr_data_width=8)
wb.open()
regs = wb.regs

# # #

print("temperature: %f°C" %
      (regs.xadc_temperature.read() * 503.975 / 4096 - 273.15))
print("vccint: %fV" % (regs.xadc_vccint.read() / 4096 * 3))
print("vccaux: %fV" % (regs.xadc_vccaux.read() / 4096 * 3))
print("vccbram: %fV" % (regs.xadc_vccbram.read() / 4096 * 3))

# # #

wb.close()
示例#5
0
def connect(desc, *args, add_args=None, **kw):
    parser = argparse.ArgumentParser(description=desc)
    get_args(parser, *args, **kw)

    # Common arguments
    parser.add_argument("--bind-ip", default="localhost",
                        help="Host bind address")
    parser.add_argument("--bind-port", default=1234,
                        help="Host bind port")

    # UART arguments
    parser.add_argument("--uart", action="store_true",
                        help="Select UART interface")
    parser.add_argument("--uart-port", default=None,
                        help="Set UART port")
    #parser.add_argument("--uart-baudrate", default=115200,
    #                    help="Set UART baudrate")

    # UDP arguments
    parser.add_argument("--udp", action="store_true",
                        help="Select UDP interface")
    parser.add_argument("--udp-ip", default="192.168.100.50",
                        help="Set UDP remote IP address")
    parser.add_argument("--udp-port", default=1234,
                        help="Set UDP remote port")

    # PCIe arguments
    parser.add_argument("--pcie", action="store_true",
                        help="Select PCIe interface")
    parser.add_argument("--pcie-bar", default=None,
                        help="Set PCIe BAR")

    # USB arguments
    parser.add_argument("--usb", action="store_true",
                        help="Select USB interface")
    parser.add_argument("--usb-vid", default=None,
                        help="Set USB vendor ID")
    parser.add_argument("--usb-pid", default=None,
                        help="Set USB product ID")
    parser.add_argument("--usb-max-retries", default=10,
                        help="Number of times to try reconnecting to USB")

    if add_args is not None:
        add_args(parser)
    args = parser.parse_args()

    s = ServerProxy(args)
    s.start()
    while not s.ready:
        continue

    test_dir = os.path.join(TOP_DIR, get_testdir(args))
    wb = RemoteClient(args.bind_ip, int(args.bind_port), csr_csv="{}/csr.csv".format(test_dir), debug=True)
    wb.open()
    print()
    print("Device DNA: {}".format(get_dna(wb)))
    print("   Git Rev: {}".format(get_git(wb)))
    print("  Platform: {}".format(get_platform(wb)))
    print("  Analyzer: {}".format(["No", "Yes"][hasattr(wb.regs, "analyzer")]))
    print("      XADC: {}".format(get_xadc(wb)))
    print()

    return args, wb
示例#6
0
#!/usr/bin/env python3
from litex.tools.litex_client import RemoteClient

rom_base = 0x00000000
dump_size = 0x8000
words_per_packet = 128

wb = RemoteClient()
wb.open()

# # #

print("dumping cpu rom to dump.bin...")
dump = []
for n in range(dump_size // (words_per_packet * 4)):
    dump += wb.read(rom_base + n * words_per_packet * 4, words_per_packet)
f = open("dump.bin", "wb")
for v in dump:
    f.write(v.to_bytes(4, byteorder="big"))
f.close()

# # #

wb.close()
示例#7
0
from litex.tools.litex_client import RemoteClient
import numpy as np
import matplotlib.pyplot as plt
import pdb

wb = RemoteClient()
wb.open()

ADC_SRAM_BASE = 0x20000000
nsamples = 1024
MAX_SAMPLES = 128
Fs = 50e6
midrange = 2048

if __name__ == '__main__':

    remaining_samples = nsamples - MAX_SAMPLES
    s = np.uint32(wb.read(ADC_SRAM_BASE, min(MAX_SAMPLES, nsamples)))

    while remaining_samples > 0:
        nsamples_to_read = min(remaining_samples, MAX_SAMPLES)
        s = np.append(s, wb.read(ADC_SRAM_BASE + len(s) * 4, nsamples_to_read))
        remaining_samples -= nsamples_to_read

    s_a = np.uint16([s_i & 0xFFF for s_i in s])
    s_b = np.uint16([s_i >> 16 for s_i in s])

    wb.close()
    plt.subplot(3, 1, 1)
    plt.plot(s_a)
    plt.plot(s_b)
示例#8
0
# use nexys_ddr3 design with this script to
# find working bitslip/delay configuration

dfii_control_sel = 0x01
dfii_control_cke = 0x02
dfii_control_odt = 0x04
dfii_control_reset_n = 0x08

dfii_command_cs = 0x01
dfii_command_we = 0x02
dfii_command_cas = 0x04
dfii_command_ras = 0x08
dfii_command_wrdata = 0x10
dfii_command_rddata = 0x20

wb = RemoteClient(csr_data_width=8)
wb.open()
regs = wb.regs

# # #

regs.sdram_dfii_control.write(0)

# release reset
regs.sdram_dfii_pi0_address.write(0x0)
regs.sdram_dfii_pi0_baddress.write(0)
regs.sdram_dfii_control.write(dfii_control_odt | dfii_control_reset_n)
time.sleep(0.1)

# bring cke high
regs.sdram_dfii_pi0_address.write(0x0)
#!/usr/bin/env python3

import time
import sys
sys.path.append("../")

from litex.tools.litex_client import RemoteClient

wb = RemoteClient("192.168.1.50", 1234)
wb.open()

# # #

# test uart
for c in "hello world from host\n":
    wb.regs.uart_rxtx.write(ord(c))

# # #

wb.close()