Skip to content

Commit

Permalink
mibuild/xilinx: export special_overrides dictionary
Browse files Browse the repository at this point in the history
sbourdeauducq committed Mar 14, 2015
1 parent d34b7d7 commit aef9275
Showing 2 changed files with 11 additions and 12 deletions.
10 changes: 10 additions & 0 deletions mibuild/xilinx/common.py
Original file line number Diff line number Diff line change
@@ -4,6 +4,8 @@
from migen.fhdl.std import *
from migen.fhdl.specials import SynthesisDirective
from migen.genlib.cdc import *
from migen.genlib.resetsync import AsyncResetSynchronizer
from migen.genlib.io import *
from mibuild import tools

def settings(path, ver=None, sub=None):
@@ -81,3 +83,11 @@ class XilinxDifferentialOutput:
@staticmethod
def lower(dr):
return XilinxDifferentialOutputImpl(dr.i, dr.o_p, dr.o_n)

xilinx_special_overrides = {
NoRetiming: XilinxNoRetiming,
MultiReg: XilinxMultiReg,
AsyncResetSynchronizer: XilinxAsyncResetSynchronizer,
DifferentialInput: XilinxDifferentialInput,
DifferentialOutput: XilinxDifferentialOutput,
}
13 changes: 1 addition & 12 deletions mibuild/xilinx/platform.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
from migen.genlib.cdc import *
from migen.genlib.resetsync import AsyncResetSynchronizer
from migen.genlib.io import *

from mibuild.generic_platform import GenericPlatform
from mibuild.xilinx import common, vivado, ise

@@ -18,20 +14,13 @@ def __init__(self, *args, toolchain="ise", **kwargs):
raise ValueError("Unknown toolchain")

def get_verilog(self, *args, special_overrides=dict(), **kwargs):
so = {
NoRetiming: common.XilinxNoRetiming,
MultiReg: common.XilinxMultiReg,
AsyncResetSynchronizer: common.XilinxAsyncResetSynchronizer,
DifferentialInput: common.XilinxDifferentialInput,
DifferentialOutput: common.XilinxDifferentialOutput,
}
so = dict(common.xilinx_special_overrides)
so.update(special_overrides)
return GenericPlatform.get_verilog(self, *args, special_overrides=so, **kwargs)

def get_edif(self, fragment, **kwargs):
return GenericPlatform.get_edif(self, fragment, "UNISIMS", "Xilinx", self.device, **kwargs)


def build(self, *args, **kwargs):
return self.toolchain.build(self, *args, **kwargs)

0 comments on commit aef9275

Please sign in to comment.