Skip to content

Commit

Permalink
Port fpgalink_programmer to use newer fl library.
Browse files Browse the repository at this point in the history
  • Loading branch information
xfxf authored and sbourdeauducq committed Aug 4, 2015
1 parent df2306a commit 9c902bc
Showing 1 changed file with 17 additions and 12 deletions.
29 changes: 17 additions & 12 deletions mibuild/fpgalink_programmer.py
@@ -1,11 +1,14 @@

import os

from mibuild.generic_programmer import GenericProgrammer
from mibuild.xilinx.programmer import _create_xsvf

import fpgalink3
fpgalink3.flInitialise(0)
try:
import fl
except ImportError:
import fpgalink3 as fl

fl.flInitialise(0)


class FPGALink(GenericProgrammer):
Expand Down Expand Up @@ -50,28 +53,29 @@ def open_device(self):

print("Attempting to open connection to FPGALink device", vp, "...")
try:
handle = fpgalink3.flOpen(self.fpgalink_vidpid)
except fpgalink3.FLException as ex:
handle = fl.flOpen(self.fpgalink_vidpid)
except fl.FLException as ex:
if not ivp:
raise FLException(
"Could not open FPGALink device at {0} and"
" no initial VID:PID was supplied".format(vp))

print("Loading firmware into %s..." % ivp)
fpgalink3.flLoadStandardFirmware(ivp, vp)
fl.flLoadStandardFirmware(ivp, vp)

print("Awaiting renumeration...")
if not fpgalink3.flAwaitDevice(vp, 600):
raise fpgalink3.FLException(
if not fl.flAwaitDevice(vp, 600):
raise fl.FLException(
"FPGALink device did not renumerate properly"
" as {0}".format(vp))

print("Attempting to open connection to FPGALink device", vp,
"again...")
handle = fpgalink3.flOpen(vp)
handle = fl.flOpen(vp)

# Only Nero capable hardware support doing programming.
assert fpgalink3.flIsNeroCapable(handle)
assert fl.flIsNeroCapable(handle)
print("Cable connection opened.")
return handle

def load_bitstream(self, bitstream_file):
Expand All @@ -88,10 +92,11 @@ def load_bitstream(self, bitstream_file):
print("Programming %s to device." % xsvf_file)
print("="*n)
handle = self.open_device()
fpgalink3.flProgram(handle, 'J:'+self.pin_cfg, progFile=xsvf_file)
print("Programming device...")
fl.flProgram(handle, "J:"+self.pin_cfg, progFile=xsvf_file)
print("Programming successful!")
print("="*n+"\n")
fpgalink3.flClose(handle)
fl.flClose(handle)

def flash(self, address, data_file):
raise NotImplementedError("Not supported yet.")

0 comments on commit 9c902bc

Please sign in to comment.