Sebastien Bourdeauducq
dd0f3311cd
structure: remove Fragment.call_sim
2013-03-15 19:15:48 +01:00
Sebastien Bourdeauducq
9b9bd77d00
sim: compatibility with new ClockDomain API
2013-03-15 19:15:28 +01:00
Sebastien Bourdeauducq
bd8bbd9305
Make ClockDomains part of fragments
2013-03-15 18:17:33 +01:00
Sebastien Bourdeauducq
5adab17efa
flow/actor/filter_endpoints: deterministic order
2013-03-14 12:20:18 +01:00
Sebastien Bourdeauducq
fc883198ae
bank/csrgen/BankArray: create banks in sorted order
2013-03-13 23:07:44 +01:00
Sebastien Bourdeauducq
52d13959f2
bank/description: modify reg/mem in-place
2013-03-13 19:46:34 +01:00
Lars-Peter Clausen
dea4674922
Allow SimActors to produce/consume a constant stream of tokens
...
Currently a SimActor requires one clock period to recover from consuming or
producing a token. ack/stb are deasserted in the cycle where the token is
consumed/produced and only re-asserted in the next cycle. This patch updates the
code to keep the control signals asserted if the actor is able to produce or
consume a token in the next cycle.
The patch also sets 'initialize' attribute on the simulation method, this will
make sure that the control and data signals will be ready right on the first
clock cycle.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2013-03-12 23:10:51 +01:00
Lars-Peter Clausen
72579a6129
Add support for negative slice indices
...
In python a negative indices usually mean start counting from the right side.
I.e. if the index is negative is acutal index used is len(l) + i. E.g. l[-2]
equals l[len(l)-2].
Being able to specify an index this way also comes in handy for migen slices in
some cases. E.g. the following snippet can be implement to shift an abitrary
length register n bits to the right:
reg.eq(Cat(Replicate(0, n), reg[-n:])
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2013-03-12 21:56:01 +01:00
Sebastien Bourdeauducq
69dbf84e54
sim/generic: support implicit get_fragment
2013-03-12 16:54:01 +01:00
Sebastien Bourdeauducq
ecfe1646ec
fhdl/verilog: implicit get_fragment
2013-03-12 16:16:06 +01:00
Sebastien Bourdeauducq
4ada2ead05
fhdl/specials/Memory: automatic name#
2013-03-12 15:58:39 +01:00
Sebastien Bourdeauducq
04df076fba
bank: automatic register naming
2013-03-12 15:45:24 +01:00
Sebastien Bourdeauducq
7e2581bf17
fhdl/tracer: recognize CALL_FUNCTION_VAR opcode
2013-03-12 13:48:09 +01:00
Sebastien Bourdeauducq
12158ceadf
fhdl/tracer: recognize LOAD_DEREF opcode
2013-03-12 10:31:56 +01:00
Sebastien Bourdeauducq
3c75121783
fhdl/tracer: remove leading underscores from names
2013-03-11 22:21:58 +01:00
Sebastien Bourdeauducq
80970b203c
bus/asmibus: use implicit finalization
2013-03-11 17:11:59 +01:00
Sebastien Bourdeauducq
b042757187
Fix Register name conflict between Pytholite and Bank
2013-03-10 19:47:21 +01:00
Sebastien Bourdeauducq
f93695f60e
bank/eventmanager: use module and autoreg
2013-03-10 19:29:05 +01:00
Sebastien Bourdeauducq
174e8cb8d6
bus/asmibus: use fhdl.module API
2013-03-10 19:28:22 +01:00
Sebastien Bourdeauducq
17e0dfe120
fhdl/module: replace autofragment
2013-03-10 19:27:55 +01:00
Sebastien Bourdeauducq
cddbc1157d
bank/description/AutoReg: check that get_memories and get_registers are callable
2013-03-10 18:11:29 +01:00
Sebastien Bourdeauducq
68fe4c269c
bank/csrgen: BankArray
2013-03-10 00:45:16 +01:00
Sebastien Bourdeauducq
f1474420df
bank/description: AutoReg
2013-03-10 00:43:16 +01:00
Sebastien Bourdeauducq
d0676e2dd1
migen/fhdl/autofragment: factorize
2013-03-09 23:23:24 +01:00
Sebastien Bourdeauducq
d0d2df3c4b
fhdl/autofragment: remove legacy functions
2013-03-09 23:05:45 +01:00
Sebastien Bourdeauducq
72fb6fd6bd
fhdl/tools/flat_iteration: generalize
2013-03-09 23:03:15 +01:00
Sebastien Bourdeauducq
f53acb92e7
fhdl/autofragment: fix submodules
2013-03-09 21:15:38 +01:00
Sebastien Bourdeauducq
6da8eb906f
fhdl/autofragment: empty build_fragment by default
2013-03-09 19:10:47 +01:00
Sebastien Bourdeauducq
2b8dc52c13
Use common definition for FinalizeError
2013-03-09 19:03:13 +01:00
Sebastien Bourdeauducq
b75fb7f97c
csr/SRAM: support for writes with memory widths larger than bus words
2013-03-09 00:50:57 +01:00
Sebastien Bourdeauducq
6fa30053bf
fhdl/verilog: tristate outputs are always wire
2013-03-06 11:30:52 +01:00
Sebastien Bourdeauducq
9b4ca987e0
bus/csr: support memories with larger word width than the bus (read only)
2013-03-03 19:27:13 +01:00
Sebastien Bourdeauducq
bb5ee8d3bd
fhdl/autofragment: bugfixes + add auto_attr
2013-03-03 17:53:06 +01:00
Sebastien Bourdeauducq
cc8118d35c
fhdl/autofragment: FModule
2013-03-02 23:30:54 +01:00
Sebastien Bourdeauducq
d2491828a4
csr/SRAM: prefix page register with memory name
2013-03-01 12:06:12 +01:00
Sebastien Bourdeauducq
c10622f5e2
fhdl/verilog: insert reset before listing signals
2013-02-27 18:10:04 +01:00
Sebastien Bourdeauducq
d2cbc70190
bank/description: memprefix
2013-02-25 23:14:15 +01:00
Sebastien Bourdeauducq
a81781f589
fhdl/specials: allow setting memory name
2013-02-25 23:14:03 +01:00
Sebastien Bourdeauducq
425de02f42
uio/ioo: fix specials
2013-02-25 23:13:38 +01:00
Sebastien Bourdeauducq
55ab01f928
fhdl/specials/Instance: _printintbool -> verilog_printexpr
2013-02-24 13:08:01 +01:00
Sebastien Bourdeauducq
a878db1e3c
genlib: clock domain crossing elements
2013-02-23 19:03:35 +01:00
Sebastien Bourdeauducq
7c4e6c35e5
fhdl/verilog: support special lowering and overrides
2013-02-23 19:03:16 +01:00
Sebastien Bourdeauducq
f9acee4e68
corelogic -> genlib
2013-02-22 23:19:37 +01:00
Sebastien Bourdeauducq
38664d6e16
fhdl: inline synthesis directive support
2013-02-22 19:10:02 +01:00
Sebastien Bourdeauducq
49cfba50fa
New 'specials' API
2013-02-22 17:56:35 +01:00
Sebastien Bourdeauducq
1b18194b1d
fhdl: TSTriple
2013-02-19 17:26:02 +01:00
Sebastien Bourdeauducq
dc93a231c6
fhdl: tristate support
2013-02-15 00:17:24 +01:00
Sebastien Bourdeauducq
63d399b6ad
fhdl/autofragment: from_attributes
2013-02-11 18:34:01 +01:00
Sebastien Bourdeauducq
92b67df41c
sim: default runner to Icarus Verilog
2013-02-09 17:04:53 +01:00
Sebastien Bourdeauducq
bd6856ba7a
flow/perftools: finish removing ActorNode
2013-02-09 17:03:48 +01:00
Sebastien Bourdeauducq
473fd20f8c
fhdl/structure: store clock domain name
2013-01-24 13:49:49 +01:00
Sebastien Bourdeauducq
3201554f76
fhdl/verilog: fix spurious clock/reset signals on multiple calls to convert()
2013-01-23 15:13:06 +01:00
Sebastien Bourdeauducq
314a6c7743
corelogic: complex arithmetic support
2013-01-05 14:18:36 +01:00
Sebastien Bourdeauducq
badba89686
fhdl: support nested statement lists
2013-01-05 14:18:15 +01:00
Sebastien Bourdeauducq
47f5fc70e4
pytholite: fix bug with constant assignment to register
2012-12-19 16:21:57 +01:00
Sebastien Bourdeauducq
9c65402fda
pytholite: prune unused registers
2012-12-19 16:03:05 +01:00
Sebastien Bourdeauducq
3fae6c8f03
Do not use super()
2012-12-18 14:54:33 +01:00
Sebastien Bourdeauducq
b06fbdedd6
fhdl/tools: bitreverse
2012-12-14 23:56:16 +01:00
Sebastien Bourdeauducq
1f350adf14
actorlib/sim/SimActor: do not drive busy low when generator yields None
2012-12-14 23:56:03 +01:00
Sebastien Bourdeauducq
a67f483f0f
Token: support idle_wait
2012-12-14 19:16:22 +01:00
Sebastien Bourdeauducq
6f99241585
Move Token to migen.flow.transactions
2012-12-14 15:55:38 +01:00
Sebastien Bourdeauducq
28b4d99d31
replace some forgotten is_abstract()
2012-12-12 22:36:45 +01:00
Sebastien Bourdeauducq
a7227d7d2b
Remove ActorNode
2012-12-12 22:20:48 +01:00
Sebastien Bourdeauducq
8163ed4828
Merge branch 'master' of github.com:milkymist/migen
2012-12-06 20:57:30 +01:00
Sebastien Bourdeauducq
483b821342
fhdl/structure: do not create Signal in Instance when parameter is int
2012-12-06 20:56:46 +01:00
Sebastien Bourdeauducq
280a87ea69
elsewhere: do not create interface in default param
2012-12-06 17:34:48 +01:00
Sebastien Bourdeauducq
62187aa23d
migen/bank: do not create interface in default param
2012-12-06 17:28:28 +01:00
Sebastien Bourdeauducq
c3fdf42825
bus/csr: add SRAM
2012-12-06 17:16:17 +01:00
Sebastien Bourdeauducq
e89c66bf14
bank/csrgen: interface -> bus
2012-12-06 17:15:34 +01:00
Sebastien Bourdeauducq
273d9d285b
bank/description: define reset value of read signal
2012-12-05 16:40:44 +01:00
Sebastien Bourdeauducq
34ce934809
actorlib/sim: drive busy high until generator is finished
2012-12-05 16:40:12 +01:00
Sebastien Bourdeauducq
4bcb39699b
bus/wishbone/sram: accept memories < 32 bits
2012-12-01 13:04:22 +01:00
Sebastien Bourdeauducq
523816982a
bus/wishbone: add SRAM
2012-12-01 12:59:09 +01:00
Sebastien Bourdeauducq
adb1565d7a
pytholite: fix bit width of selection signal
2012-11-30 17:07:32 +01:00
Sebastien Bourdeauducq
cfb23c442f
pytholite: support signed registers
2012-11-30 17:07:12 +01:00
Sebastien Bourdeauducq
7093939309
corelogic/roundrobin: fix request width (again)
2012-11-29 23:47:51 +01:00
Sebastien Bourdeauducq
31c722f993
corelogic/roundrobin: fix request width
2012-11-29 23:47:08 +01:00
Sebastien Bourdeauducq
70e97e0456
Fix various errors from new bitwidth/signedness system conversion
2012-11-29 23:36:55 +01:00
Sebastien Bourdeauducq
261166d92b
fhdl/verilog: make signal behave as integers in arithmetic (MyHDL style)
...
See http://jandecaluwe.com/hdldesign/counting.html
2012-11-29 22:59:54 +01:00
Sebastien Bourdeauducq
55d143a454
fhdl/structure: add unary minus
2012-11-29 22:52:57 +01:00
Sebastien Bourdeauducq
d8e478efee
Replace Signal(bits_for(... with Signal(max=...
2012-11-29 21:53:36 +01:00
Sebastien Bourdeauducq
50ed73c937
New specification for width and signedness
2012-11-29 21:22:38 +01:00
Sebastien Bourdeauducq
6eebfce44a
Refactor Case
2012-11-29 01:11:15 +01:00
Sebastien Bourdeauducq
070652cc39
pytholite/reg: use source id in dictionary
2012-11-29 00:09:35 +01:00
Sebastien Bourdeauducq
fee22a4631
Remove Constant
2012-11-28 23:18:43 +01:00
Sebastien Bourdeauducq
59831e0485
fhdl/structure: improved bits_for function
2012-11-28 18:39:44 +01:00
Sebastien Bourdeauducq
11b1e53224
visit/NodeTransformer: copy most nodes
2012-11-28 17:50:55 +01:00
Sebastien Bourdeauducq
a2bcbfdf8f
fhdl/tools: use NodeTransformer to lower arrays
2012-11-28 17:46:15 +01:00
Sebastien Bourdeauducq
3bc15024ac
fhdl/tools: use NodeVisitor
2012-11-26 21:40:23 +01:00
Sebastien Bourdeauducq
e3a983d731
Remove unroll
2012-11-26 20:07:48 +01:00
Sebastien Bourdeauducq
1460f069f6
fhdl/structure: remove deprecated MemoryPort
2012-11-26 19:36:43 +01:00
Sebastien Bourdeauducq
5183774ec8
bus/wishbone2asmi: do not use MemoryPort
2012-11-26 19:14:59 +01:00
Sebastien Bourdeauducq
fc85ca53ad
actorlib/spi: do not use MemoryPort
2012-11-26 18:27:59 +01:00
Sebastien Bourdeauducq
dac0d11e52
actorlib/sim: Dumper
2012-11-24 00:00:07 +01:00
Sebastien Bourdeauducq
27d87c9412
fhdl/structure: disable we_granularity when larger than width
2012-11-23 23:08:12 +01:00
Sebastien Bourdeauducq
d2c61e6a90
sim/generic/multiread: do not return spurious items
2012-11-23 23:07:25 +01:00
Sebastien Bourdeauducq
74721b206f
pytholite: fix import of _Slice
2012-11-23 21:20:18 +01:00
Sebastien Bourdeauducq
95122bb778
pytholite/io: support memory
2012-11-23 20:36:09 +01:00
Sebastien Bourdeauducq
f42683b71e
fhdl/structure/Memory: fix we width
2012-11-23 19:21:52 +01:00
Sebastien Bourdeauducq
0f6215a13a
fhdl/structure: add Memory.get_port API
2012-11-23 19:17:49 +01:00