mirror of
https://github.com/enjoy-digital/litex.git
synced 2025-01-04 09:52:26 -05:00
litex_ok.py bitstream configuration example
This commit is contained in:
parent
c8dcc39957
commit
4276a181ba
6 changed files with 1689 additions and 1 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -7,7 +7,7 @@ __pycache__/
|
|||
*~
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
# *.so Removed for okHost SO files
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
|
|
11
litex/tools/60-opalkelly.rules
Normal file
11
litex/tools/60-opalkelly.rules
Normal file
|
@ -0,0 +1,11 @@
|
|||
# udev rules file for all Opal Kelly VID matches.
|
||||
# This file allows udev to change the mode to 666 (all read/write)
|
||||
# for any Opal Kelly VID.
|
||||
#
|
||||
|
||||
# For FedoraCore 5 and similar:
|
||||
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="151f", MODE="0666"
|
||||
|
||||
# For FedoraCore 7 and similar:
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="151f", MODE="0666"
|
||||
|
BIN
litex/tools/_ok.so
Executable file
BIN
litex/tools/_ok.so
Executable file
Binary file not shown.
BIN
litex/tools/libokFrontPanel.so
Executable file
BIN
litex/tools/libokFrontPanel.so
Executable file
Binary file not shown.
50
litex/tools/litex_ok.py
Executable file
50
litex/tools/litex_ok.py
Executable file
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
#
|
||||
# This file is part of LiteX.
|
||||
#
|
||||
# Copyright (c) 2023 Andrew Elbert Wilson <Andrew.E.Wilson@ieee.org>
|
||||
# SPDX-License-Identifier: BSD-2-Clause
|
||||
|
||||
|
||||
import time
|
||||
import argparse
|
||||
#Dependencies for ok library
|
||||
# * sudo apt install libsdl2-2.0-0
|
||||
# * sudo apt install liblua5.3-0
|
||||
# * udev rules for ok USB 60-opalkelly.rules
|
||||
import ok
|
||||
|
||||
|
||||
# Run ----------------------------------------------------------------------------------------------
|
||||
|
||||
def _get_args():
|
||||
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||
parser.add_argument("bitstream", help="Bitstream for XEM8320")
|
||||
return parser.parse_args()
|
||||
|
||||
def main():
|
||||
args = _get_args()
|
||||
print(args.bitstream)
|
||||
xem = ok.FrontPanelDevices().Open()
|
||||
if not xem:
|
||||
print ("A device could not be opened. Is one connected?")
|
||||
exit()
|
||||
devInfo = ok.okTDeviceInfo()
|
||||
if (xem.NoError != xem.GetDeviceInfo(devInfo)):
|
||||
print ("Unable to retrieve device information.")
|
||||
exit()
|
||||
print(" Product: " + devInfo.productName)
|
||||
print("Firmware version: %d.%d" % (devInfo.deviceMajorVersion, devInfo.deviceMinorVersion))
|
||||
print(" Serial Number: %s" % devInfo.serialNumber)
|
||||
print(" Device ID: %s" % devInfo.deviceID)
|
||||
tic = time.perf_counter()
|
||||
if (xem.NoError != xem.ConfigureFPGA(args.bitstream)):
|
||||
print ("FPGA configuration failed.")
|
||||
else:
|
||||
toc = time.perf_counter()
|
||||
print (f"FPGA configuration succeded in {toc - tic:0.4f} seconds")
|
||||
|
||||
xem.Close()
|
||||
if __name__ == "__main__":
|
||||
main()
|
1627
litex/tools/ok.py
Normal file
1627
litex/tools/ok.py
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue