From ed05ec5f6a2be6eeb332e9040b0a2124a8348e52 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Thu, 8 Dec 2011 18:56:14 +0100 Subject: [PATCH] instances: signal override --- migen/fhdl/structure.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/migen/fhdl/structure.py b/migen/fhdl/structure.py index 254667aa7..802e1cd2d 100644 --- a/migen/fhdl/structure.py +++ b/migen/fhdl/structure.py @@ -157,8 +157,15 @@ class Instance: self.name = name else: self.name = of - self.outs = dict([(x[0], Signal(x[1], self.name + "_" + x[0])) for x in outs]) - self.ins = dict([(x[0], Signal(x[1], self.name + "_" + x[0])) for x in ins]) + def process_io(x): + if isinstance(x[1], Signal): + return x # override + elif isinstance(x[1], BV): + return (x[0], Signal(x[1], self.name + "_" + x[0])) + else: + raise TypeError + self.outs = dict(map(process_io, outs)) + self.ins = dict(map(process_io, ins)) self.parameters = parameters self.clkport = clkport self.rstport = rstport