--- /dev/null
+Migen is free software: you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation, version 3 of the License. This program is
+distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+more details.
+
+Additional permissions under section 7 of the GNU General Public License
+(GPL) are hereby granted. The purpose of this exception is to allow
+non-GPL (including proprietary) logic cores to be used in conjunction
+with code generated by Migen in a design.
+
+"Generated" code refers to Verilog or VHDL code that has been obtained
+by converting FHDL structures using Migen.
+
+To "instantiate" is to include and connect another module as specified
+in section 12.1.2 of the IEEE standard 1364-2001 or in section 9.6 of
+the IEEE standard 1076-1993.
+
+(1) You have permission to propagate a work of generated code that
+ instantiates modules that are not generated code and do not comply
+ with the GPL.
+(2) You have permission to propagate a work of Verilog or VHDL code that
+ is not generated code, does not comply with the GPL and instantiates
+ generated code.
+
+The availability of this exception does not imply any general
+presumption that third-party software is unaffected by the copyleft
+requirements of the license of Migen.
+
+Unless otherwise noted, Migen's source code is copyright (C) 2011-2012
+Sebastien Bourdeauducq.
+
+The simulation extension (as mentioned in the comments at the beginning
+of the corresponding source files) is copyright (C) 2012 Vermeer
+Manufacturing Co.
+
+Other authors retain ownership of their contributions. If a submission
+can reasonably be considered independently copyrightable, it's yours and
+I encourage you to claim it with appropriate copyright notices. This
+submission then falls under the "otherwise noted" category. All
+submissions must use a license compatible with the GPL and the exception
+above.
Send questions, comments and patches to devel [AT] lists.milkymist.org
We are also on IRC: #milkymist on the Freenode network.
-Migen is free software: you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation, version 3 of the License. This program is
-distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-more details.
-
-Additional permissions under section 7 of the GNU General Public License
-(GPL) are hereby granted. The purpose of this exception is to allow
-non-GPL (including proprietary) logic cores to be used in conjunction
-with code generated by Migen in a design.
-
-"Generated" code refers to Verilog or VHDL code that has been obtained
-by converting FHDL structures using Migen.
-
-To "instantiate" is to include and connect another module as specified
-in section 12.1.2 of the IEEE standard 1364-2001 or in section 9.6 of
-the IEEE standard 1076-1993.
-
-(1) You have permission to propagate a work of generated code that
- instantiates modules that are not generated code and do not comply
- with the GPL.
-(2) You have permission to propagate a work of Verilog or VHDL code that
- is not generated code, does not comply with the GPL and instantiates
- generated code.
-
-The availability of this exception does not imply any general
-presumption that third-party software is unaffected by the copyleft
-requirements of the license of Migen.
-
-Unless otherwise noted, Migen's source code is copyright (C) 2011-2012
-Sebastien Bourdeauducq.
-
-The simulation extension (as mentioned in the comments at the beginning
-of the corresponding source files) is copyright (C) 2012 Vermeer
-Manufacturing Co.
-
-Other authors retain ownership of their contributions. If a submission
-can reasonably be considered independently copyrightable, it's yours and
-I encourage you to claim it with appropriate copyright notices. This
-submission then falls under the "otherwise noted" category. All
-submissions must use a license compatible with the GPL and the exception
-above.
-
+See LICENSE file for copyright and license info.
"Electricity! It's like magic!"
class EventSource:
def __init__(self):
self.trigger = Signal()
+ self.pending = Signal()
class EventSourcePulse(EventSource):
pass
# pending
for i, source in enumerate(self.sources):
- pending = Signal()
# W1C
- sync.append(If(self.pending.re & self.pending.r[i], pending.eq(0)))
+ sync.append(If(self.pending.re & self.pending.r[i], source.pending.eq(0)))
if isinstance(source, EventSourcePulse):
# set on a positive trigger pulse
- sync.append(If(source.trigger, pending.eq(1)))
+ sync.append(If(source.trigger, source.pending.eq(1)))
elif isinstance(source, EventSourceLevel):
# set on the falling edge of the trigger
old_trigger = Signal()
sync += [
old_trigger.eq(source.trigger),
- If(~source.trigger & old_trigger, pending.eq(1))
+ If(~source.trigger & old_trigger, source.pending.eq(1))
]
else:
raise TypeError
- comb.append(self.pending.w[i].eq(pending))
+ comb.append(self.pending.w[i].eq(source.pending))
# IRQ
irqs = [self.pending.w[i] & field.r for i, field in enumerate(self.enable.fields)]