Exemplo n.º 1
0
#!/usr/bin/env python3

import sys
sys.path.insert(0, '/opt')

from litex.soc.tools.remote import RemoteClient

wb = RemoteClient()
wb.open()

# # #

# get identifier
fpga_id = ""
for i in range(256):
    c = chr(wb.read(wb.bases.identifier_mem + 4 * i) & 0xff)
    fpga_id += c
    if c == "\0":
        break
print("fpga_id: " + fpga_id)

# # #

wb.close()
Exemplo n.º 2
0
dac0.print_status()

# release/reset jesd core
wb_amc.regs.dac0_control_prbs_config.write(0)
wb_amc.regs.dac0_control_enable.write(0)
wb_amc.regs.dac0_control_enable.write(1)

time.sleep(1)

# show dac0 status
dac0.print_status()

# prbs test
if len(sys.argv) > 1:
    if sys.argv[1] == "prbs":
        fpga_prbs_configs = {"prbs7": 0b01, "prbs15": 0b10, "prbs31": 0b11}
        for prbs in ["prbs7", "prbs15", "prbs31"]:
            # configure prbs on fpga
            wb_amc.regs.dac0_control_prbs_config.write(fpga_prbs_configs[prbs])
            # prbs test on ad9154
            status, errors = dac0.prbs_test(prbs, 100)
            print("{:s} test status: {:02x}".format(prbs, status))
            print("-" * 40)
            for i in range(8):
                print("-lane{:d}: {:d} errors".format(i, errors[i]))

# # #

wb_amc.close()
wb_rtm.close()
Exemplo n.º 3
0
from litex.soc.tools.remote import RemoteClient

wb = RemoteClient()
wb.open()

# # #

identifier = ""
for i in range(30):
    identifier += chr(wb.read(wb.bases.identifier_mem + 4*(i+1))) # TODO: why + 1?
print(identifier)
print("frequency : {}MHz".format(wb.constants.system_clock_frequency/1000000))
print("link up   : {}".format(wb.regs.pcie_phy_lnk_up.read()))
print("bus_master_enable : {}".format(wb.regs.pcie_phy_bus_master_enable.read()))
print("msi_enable : {}".format(wb.regs.pcie_phy_msi_enable.read()))
print("max_req_request_size : {}".format(wb.regs.pcie_phy_max_request_size.read()))
print("max_payload_size : {}".format(wb.regs.pcie_phy_max_payload_size.read()))

# # #

wb.close()
Exemplo n.º 4
0

runpy.run_path("libbase/hmc7043_config_6gbps.py", {"dut": HMC7043DUT})

wb_rtm = RemoteClient(port=1234, csr_csv="../sayma_rtm/csr.csv", debug=False)
wb_rtm.open()

# # #

# clock muxes : 100MHz ext SMA clock to HMC830 input
wb_rtm.regs.clk_src_ext_sel_out.write(1)  # use ext clk from sma
wb_rtm.regs.ref_clk_src_sel_out.write(1)
wb_rtm.regs.dac_clk_src_sel_out.write(0)  # use clk from dac_clk

hmc830 = HMC830(wb_rtm.regs)
hmc7043 = HMC7043(wb_rtm.regs)
print("HMC830 present: {:s}".format(str(hmc830.check_presence())))
print("HMC7043 present: {:s}".format(str(hmc7043.check_presence())))

# configure hmc830
for addr, data in hmc830_config:
    hmc830.write(addr, data)

# configure hmc7043
for addr, data in hmc7043_config:
    hmc7043.write(addr, data)

# # #

wb_rtm.close()