whitequark 
							
						 
						
							
							
							
							
								
							
							
								9c35e44e4a 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: add iCE5LP1K support.  
							
							
							
						 
						
							2019-08-07 09:01:11 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								434b686d5e 
								
							 
						 
						
							
							
								
								vendor.xilinx_{spartan_3_6,7series}: reconsider default reset logic.  
							
							... 
							
							
							
							On Xilinx devices, flip-flops are reset to their initial state with
an internal global reset network, but this network is deasserted
asynchronously to user clocks. Use BUFGCE and STARTUP to hold default
clock low until after GWE is deasserted. 
							
						 
						
							2019-08-04 23:28:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3d7214cb70 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan_3_6: reconsider bitgen defaults.  
							
							... 
							
							
							
							Previously changed in 27063a3b 
							
						 
						
							2019-08-04 23:28:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								27063a3bd3 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan_3_6: set bitgen defaults to -g Binary:Yes -g Compress.  
							
							... 
							
							
							
							* `-g Binary:Yes` should be overridable.
  * `-g Compress` is a good default. 
							
						 
						
							2019-08-04 14:18:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								65da905c15 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan_3_6: always use -w for map/par/bitgen.  
							
							... 
							
							
							
							-w stands for "override output file", and supplying user options
should not remove it. 
							
						 
						
							2019-08-04 14:12:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								15e8dfe532 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan_3_6: do not use retiming by default.  
							
							... 
							
							
							
							This was added in b404d603 
							
						 
						
							2019-08-04 13:48:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6b025df12c 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan_3_6: force use of bash on UNIX.  
							
							
							
						 
						
							2019-08-04 13:20:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								5eb4e2ee51 
								
							 
						 
						
							
							
								
								build.plat: allow selecting a specific UNIX shell interpreter.  
							
							... 
							
							
							
							Mostly because vendor tools have bashisms. 
							
						 
						
							2019-08-04 13:20:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								34a97b2751 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: avoid routing conflicts with SDR/DDR input pins.  
							
							
							
						 
						
							2019-08-04 00:30:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2e6627c4af 
								
							 
						 
						
							
							
								
								back.rtlil: use a dummy wire, not 'x, when assigning to shorter LHS.  
							
							... 
							
							
							
							Using 'x is legal RTLIL, in theory, but in practice it crashes Yosys
and when it doesn't, it causes Yosys to produce invalid Verilog.
Using a dummy wire is always safe and is not a major readability
issue as this is a rare corner case.
(It is not trivial to shorten the RHS in this case, because during
expansion of an ArrayProxy, match_shape() could be called in
a context far from the RHS handling logic.) 
							
						 
						
							2019-08-04 00:12:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								d0ac8bf789 
								
							 
						 
						
							
							
								
								back.rtlil: actually match shape of left hand side.  
							
							... 
							
							
							
							This comes up in code such as:
  Array([Signal(1), Signal(8)]).eq(Const(0, 8)) 
							
						 
						
							2019-08-03 23:48:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								999a2f612a 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: add missing signal indexing.  
							
							
							
						 
						
							2019-08-03 22:59:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8dd54ac544 
								
							 
						 
						
							
							
								
								build.run: use keyword-only arguments where appropriate.  
							
							
							
						 
						
							2019-08-03 22:52:58 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0fe05188e8 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: track changes in build.plat.  
							
							
							
						 
						
							2019-08-03 22:52:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								99d205494a 
								
							 
						 
						
							
							
								
								hdl.dsl: reword m.If(~True) warning to be more clear.  
							
							... 
							
							
							
							Before this commit, it only suggested one thing (silencing it) and
that's wrong almost all of the time, so suggest the right thing
instead. 
							
						 
						
							2019-08-03 18:52:24 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8854ca03ae 
								
							 
						 
						
							
							
								
								build.plat,vendor: automatically create sync domain from default_clk.  
							
							... 
							
							
							
							But only if it is not defined by the programmer.
Closes  #57 . 
							
						 
						
							2019-08-03 18:36:58 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e0b54b417e 
								
							 
						 
						
							
							
								
								hdl.ir: allow adding more than one domain in missing domain callback.  
							
							... 
							
							
							
							This is useful for injecting complex power-on reset logic. 
							
						 
						
							2019-08-03 18:19:40 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9c28b61d9f 
								
							 
						 
						
							
							
								
								hdl.ir: don't expose as ports missing domains added via elaboratables.  
							
							... 
							
							
							
							The elaboratable is already likely driving the clk/rst signals in
some way appropriate for the platform; if we expose them as ports
nevertheless it will cause problems downstream. 
							
						 
						
							2019-08-03 16:39:21 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								21f2f8c46e 
								
							 
						 
						
							
							
								
								build.plat: add default_rst, to be used with default_clk.  
							
							
							
						 
						
							2019-08-03 16:28:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4dbb5352ad 
								
							 
						 
						
							
							
								
								build.plat: add default_clk{,_constraint,_frequency}.  
							
							... 
							
							
							
							This is the equivalent of oMigen's default_clk and default_clk_period
except the period is taken from the resource. 
							
						 
						
							2019-08-03 16:18:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cea92e9531 
								
							 
						 
						
							
							
								
								hdl.ir: allow returning elaboratables from missing domain callback.  
							
							... 
							
							
							
							This allows e.g. injecting a clock/reset generator in platform build
code on demand (i.e. if the domain is not instantiated manually).
See #57 . 
							
						 
						
							2019-08-03 15:44:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								fc846532c7 
								
							 
						 
						
							
							
								
								hdl.ir: raise DomainError if a domain is used but not defined.  
							
							... 
							
							
							
							Before this commit, a KeyError would be raised elsewhere in guts of
hdl.ir, which is not helpful. 
							
						 
						
							2019-08-03 15:31:24 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								fdb0c5a6bc 
								
							 
						 
						
							
							
								
								hdl.ir: call back from Fragment.prepare if a clock domain is missing.  
							
							... 
							
							
							
							See #57 . 
							
						 
						
							2019-08-03 14:54:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ace2b5ff0a 
								
							 
						 
						
							
							
								
								hdl.dsl: warn on suspicious statements like m.If(~True):.  
							
							... 
							
							
							
							This pattern usually produces an extremely hard to notice bug that
will usually break a design when it is triggered, but will also be
hidden unless the pathological value of a boolean switch is used.
Fixes  #159 . 
							
						 
						
							2019-08-03 14:00:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ab5426ce74 
								
							 
						 
						
							
							
								
								Improve test added in  29fee01f to not leak warnings.  
							
							
							
						 
						
							2019-08-03 13:44:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ee03eab52f 
								
							 
						 
						
							
							
								
								back.rtlil: fix sim-synth mismatch with assigns following switches.  
							
							... 
							
							
							
							Closes  #155 . 
						
							2019-08-03 13:27:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0a603b3844 
								
							 
						 
						
							
							
								
								hdl.ast: fix typo.  
							
							
							
						 
						
							2019-08-03 13:21:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								94e13effad 
								
							 
						 
						
							
							
								
								hdl.ast: deprecate Value.part, add Value.{bit,word}_select.  
							
							... 
							
							
							
							Fixes  #148 . 
						
							2019-08-03 13:07:06 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								bcdc280a87 
								
							 
						 
						
							
							
								
								hdl.ast, back.rtlil: add source locations to anonymous wires.  
							
							... 
							
							
							
							This might help with propagation of locations through optimizer
passes, since not all of them take care to preserve cells at all,
but usually wires stay intact when possible.
Also fixes incorrect source location on value.part(). 
							
						 
						
							2019-08-03 12:51:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								29fee01f86 
								
							 
						 
						
							
							
								
								hdl.ir: warn if .elaborate() returns None.  
							
							... 
							
							
							
							Fixes  #164 . 
						
							2019-08-03 12:30:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								995e4adb8c 
								
							 
						 
						
							
							
								
								hdl.xfrm: handle mem.{Read,Write}Port in CEInserter.  
							
							... 
							
							
							
							Fixes  #154 . 
						
							2019-07-31 05:20:05 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								N. Engelhardt 
							
						 
						
							
							
							
							
								
							
							
								5fd8a796ae 
								
							 
						 
						
							
							
								
								vendor: don't emit duplicate iobuf submodule names.  
							
							... 
							
							
							
							These are no longer allowed after commit 698b005 
							
						 
						
							2019-07-21 07:49:21 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								N. Engelhardt 
							
						 
						
							
							
							
							
								
							
							
								698b005182 
								
							 
						 
						
							
							
								
								hdl.dsl: add getters to m.submodules.  
							
							
							
						 
						
							2019-07-19 12:39:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								81e59832fb 
								
							 
						 
						
							
							
								
								lib.fifo: fix typo.  
							
							
							
						 
						
							2019-07-15 14:12:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Staf Verhaegen 
							
						 
						
							
							
							
							
								
							
							
								ff343d5cf0 
								
							 
						 
						
							
							
								
								Pin: Add extra hierarchy level for name derivation  
							
							
							
						 
						
							2019-07-14 19:30:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								b963449b41 
								
							 
						 
						
							
							
								
								build.run: Ensure batch script returns proper error code.  
							
							
							
						 
						
							2019-07-14 17:43:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ee15538cf0 
								
							 
						 
						
							
							
								
								back.pysim: correctly add gtkwave traces for signals with decoders.  
							
							
							
						 
						
							2019-07-12 13:35:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								6ee760e83f 
								
							 
						 
						
							
							
								
								build.dsl: Add optional name_suffix to Resource.family.  
							
							
							
						 
						
							2019-07-10 15:41:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								278b624c66 
								
							 
						 
						
							
							
								
								back.pysim: avoid malformed VCD files when a decoder uses tabs.  
							
							
							
						 
						
							2019-07-10 12:54:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2fa858b003 
								
							 
						 
						
							
							
								
								hdl.ir: make UnusedElaboratable a real warning.  
							
							... 
							
							
							
							Before this commit, it was a print statement, and therefore, command
interpreter options like -Wignore did not affect it. There is no API
to access the warning filter list, so it was turned into a real
warning; and further, since Python 3.6, tracemalloc can be used
as a standard method to display traceback to allocation site instead
of the ad-hoc traceback logic that was used in Elaboratable before. 
							
						 
						
							2019-07-10 12:46:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								37f363e338 
								
							 
						 
						
							
							
								
								back.rtlil: add decodings to cases when switching on a signal.  
							
							... 
							
							
							
							Fixes  #134 . 
						
							2019-07-09 19:48:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								10e56c75fb 
								
							 
						 
						
							
							
								
								back.verilog: run proc_prune for much cleaner output.  
							
							... 
							
							
							
							This is a very new Yosys feature, and will require a Yosys build
newer than YosysHQ/yosys@44bcb7a1 . 
							
						 
						
							2019-07-09 19:28:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								00c5209a47 
								
							 
						 
						
							
							
								
								hdl.{ast,dsl},back.rtlil: track source locations for switch cases.  
							
							... 
							
							
							
							This is a very new Yosys feature, and will require a Yosys build
newer than YosysHQ/yosys@93bc5aff . 
							
						 
						
							2019-07-09 19:26:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jacob Lifshay 
							
						 
						
							
							
							
							
								
							
							
								62b3e36612 
								
							 
						 
						
							
							
								
								tracer: add PyPy support to get_var_name().  
							
							... 
							
							
							
							Fixes  #141 . 
						
							2019-07-09 07:29:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								367ad5aee7 
								
							 
						 
						
							
							
								
								build.dsl: add Resource.family abstraction.  
							
							
							
						 
						
							2019-07-09 02:44:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								7b4fbf8e01 
								
							 
						 
						
							
							
								
								build.{dsl,res}: allow platform-dependent attributes using callables.  
							
							... 
							
							
							
							Fixes  #132 . 
						
							2019-07-08 11:15:04 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0ab0a74ec1 
								
							 
						 
						
							
							
								
								hdl.rec: respect modifications to signals in Record.like().  
							
							... 
							
							
							
							Fixes  #126 . 
						
							2019-07-08 10:59:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								bfbeca4584 
								
							 
						 
						
							
							
								
								back.rtlil: don't name-prefix signals connected to instance ports.  
							
							... 
							
							
							
							This gives particularly pathological results on IO buffers, like:
  connect \D_OUT_0 \user_led_0_user_led_0__o
Since subfragment signals are name-prefixed because this works well
for signals propagated upwards across hierarchy, this is never
desirable for instances. 
							
						 
						
							2019-07-08 10:48:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0b844da4cf 
								
							 
						 
						
							
							
								
								build.{dsl,res}: allow removing attributes from subsignals.  
							
							... 
							
							
							
							This is useful when most attributes in a large composite resource
are the same, but a few signals are different, and also when building
abstractions around resources.
Fixes  #128 . 
							
						 
						
							2019-07-08 10:42:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f0c1c2cfeb 
								
							 
						 
						
							
							
								
								build.dsl: allow assertions on subsignal widths.  
							
							... 
							
							
							
							This is useful when building abstractions around resources where
the pin names are user-specified.
Fixes  #129 . 
							
						 
						
							2019-07-08 10:42:06 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a7fbff94d8 
								
							 
						 
						
							
							
								
								hdl.{ast,cd,dsl,xfrm}: reject inappropriately used comb domain.  
							
							... 
							
							
							
							Fixes  #125 . 
						
							2019-07-08 10:26:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								5c63177fc2 
								
							 
						 
						
							
							
								
								test: generate examples to verilog as part of unit tests.  
							
							... 
							
							
							
							This is to make sure 806a62c2 doesn't happen again. 
							
						 
						
							2019-07-08 10:12:26 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								447bfa6ad5 
								
							 
						 
						
							
							
								
								compat.genlib.fsm: fix after commit  dac62754.  
							
							
							
						 
						
							2019-07-08 10:12:26 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ec7fcd3697 
								
							 
						 
						
							
							
								
								hdl.xfrm: don't overwrite source locations on ClockDomain signals.  
							
							... 
							
							
							
							On the sample of examples/basic/*.py, there are no remaining
incorrectly inferred locations. 
							
						 
						
							2019-07-08 09:58:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8c9fdf907f 
								
							 
						 
						
							
							
								
								hdl.{dsl,mem,xfrm}: inject appropriate source locations.  
							
							... 
							
							
							
							This primarily fixes the problem with source location precision in
Module (which used to trace locations from __exit__ of the context
managers, by which point everything interesting has been lost), but
also improves memory port and control inserter source locations.
On the sample of examples/basic/*.py, the only incorrectly inferred
remaining location is clk pointing to hdl/mem.py:166. 
							
						 
						
							2019-07-08 09:58:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								710a8d0bc1 
								
							 
						 
						
							
							
								
								back.rtlil: ignore empty source locations.  
							
							... 
							
							
							
							This was a bug introduced during refactoring in 2492f490 
							
						 
						
							2019-07-08 09:58:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								dac6275493 
								
							 
						 
						
							
							
								
								hdl.ast: use keyword-only arguments as appropriate.  
							
							... 
							
							
							
							As a motivation/related refactor, make sure each AST node exposes
src_loc_at in the constructor. 
							
						 
						
							2019-07-08 09:58:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								70f3563b5f 
								
							 
						 
						
							
							
								
								back.rtlil: attach source locations to switches, not processes.  
							
							... 
							
							
							
							This effectively reverts and reimplements half of commit 82903e49 
							
						 
						
							2019-07-08 09:10:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2492f490f5 
								
							 
						 
						
							
							
								
								back.rtlil: use a more principled approach to attributes. NFC.  
							
							... 
							
							
							
							This also refactors the RTLIL builder to use a more aspect-oriented
approach. 
							
						 
						
							2019-07-08 09:10:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								31c54d32ef 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: generate also binary bitfile.  
							
							... 
							
							
							
							Fixes  #139 . 
						
							2019-07-07 21:36:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								b404d603fb 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan_3_6: Add Spartan3A family support.  
							
							
							
						 
						
							2019-07-07 20:44:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cb02a452e9 
								
							 
						 
						
							
							
								
								vendor.lattice_ecp5: don't leave LUT inputs disconnected.  
							
							... 
							
							
							
							This causes YosysHQ/nextpnr#301.
Fixes  #136 . 
							
						 
						
							2019-07-07 02:34:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								da1f58b7ae 
								
							 
						 
						
							
							
								
								hdl.dsl: further clarify error message for incorrect nesting.  
							
							... 
							
							
							
							Fixes  #133 . 
						
							2019-07-07 01:03:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cb8be4a1b0 
								
							 
						 
						
							
							
								
								hdl.dsl: clarify error message for incorrect nesting.  
							
							... 
							
							
							
							Refs #133 . 
							
						 
						
							2019-07-07 00:59:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3388b5b085 
								
							 
						 
						
							
							
								
								hdl.dsl: gracefully handle FSM with no states.  
							
							
							
						 
						
							2019-07-07 00:59:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								146f3cb684 
								
							 
						 
						
							
							
								
								build.plat: source a script with toolchain environment.  
							
							... 
							
							
							
							Fixes  #131 . 
						
							2019-07-07 00:44:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								744154ebb5 
								
							 
						 
						
							
							
								
								build.run: only use os.path on the target OS.  
							
							... 
							
							
							
							Before this commit, BuildPlan.add_file would use os.path.normpath,
which would be the wrong thing for cross-builds. 
							
						 
						
							2019-07-07 00:18:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ba64eb2037 
								
							 
						 
						
							
							
								
								build.run: make BuildProducts abstract, add LocalBuildProducts.  
							
							... 
							
							
							
							This makes it clear that we plan to have remote builds as well.
Also, document everything in build.run. 
							
						 
						
							2019-07-07 00:09:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1ee21d2007 
								
							 
						 
						
							
							
								
								build.plat, vendor.*: don't join strings passed as _opts overrides.  
							
							... 
							
							
							
							Right now an array is expected in any _opts overrides, and if it is
actually a string (because it is passed via an environment variable,
usually), awkwardness results as each character is joined with ` `.
Fixes  #130 . 
							
						 
						
							2019-07-06 23:09:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b6b9f0fc21 
								
							 
						 
						
							
							
								
								build.run: make sure BuildProducts._root is not easily accessible.  
							
							
							
						 
						
							2019-07-06 18:52:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Staf Verhaegen 
							
						 
						
							
							
							
							
								
							
							
								2829d04033 
								
							 
						 
						
							
							
								
								vendor.xilinx_{7series,spartan6}: Support extra VHDL files.  
							
							
							
						 
						
							2019-07-04 21:13:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2e4cc47fcb 
								
							 
						 
						
							
							
								
								hdl.dsl: fix src_loc_at for FSM state signal.  
							
							
							
						 
						
							2019-07-03 16:34:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								82903e493a 
								
							 
						 
						
							
							
								
								back.rtlil: emit \src attributes for processes via Switch and Assign.  
							
							... 
							
							
							
							The locations are unfortunately not very precise, but they provide
some improvement over status quo. 
							
						 
						
							2019-07-03 16:27:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e351e27206 
								
							 
						 
						
							
							
								
								hdl.ast: fix src_loc_at for Mux().  
							
							
							
						 
						
							2019-07-03 15:25:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b471e33d7f 
								
							 
						 
						
							
							
								
								build.res: detect physical conflicts earlier.  
							
							... 
							
							
							
							This is useful for two reasons:
  1. nMigen can provide better error messages than the platform and
     do it earlier in the build pipeline.
  2. Many platforms handle diffpairs by only constraining the P pin;
     the N pin is completely ignored. If this is undetected,
     downstream users (human or software) can rely on this
     information assuming it is correct and introduce more errors.
     (Of course, this will not catch every mistake, but the most
     common is a copy-paste issue, and that will handle it.)
Fixes  #124 . 
							
						 
						
							2019-07-03 15:07:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								7059cb4931 
								
							 
						 
						
							
							
								
								hdl.rec: thread src_loc_at to all inner Signals and Records.  
							
							
							
						 
						
							2019-07-03 14:49:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								33f21628bb 
								
							 
						 
						
							
							
								
								vendor: give names to IO buffer instances.  
							
							... 
							
							
							
							Fixes  #123 . 
						
							2019-07-03 14:43:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								5800f00776 
								
							 
						 
						
							
							
								
								hdl.rec: accept Record(src_loc_at=...).  
							
							
							
						 
						
							2019-07-03 14:35:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								668ff40a75 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: mark CompatMemory as Elaboratable.  
							
							... 
							
							
							
							This suppresses a warning that is not useful in the compat context. 
							
						 
						
							2019-07-03 13:28:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								eeb6aca93d 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: use "sync" as default domain, not "sys".  
							
							... 
							
							
							
							In compat.fhdl.module, we already default to "sync" as the default
clocked domain. Using "sys" in memories only would be inconsistent
and result in more bugs. 
							
						 
						
							2019-07-03 13:25:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c98b8f7c07 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix Memory.get_port() after  94e8f479.  
							
							... 
							
							
							
							This also makes sure the native ports are instantiated for correct
clock domain. 
							
						 
						
							2019-07-03 13:24:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9eb81609d6 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: fix If/Elif/Else after  32446831.  
							
							
							
						 
						
							2019-07-03 13:19:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Sebastien Bourdeauducq 
							
						 
						
							
							
							
							
								
							
							
								9a1048af50 
								
							 
						 
						
							
							
								
								lattice_ecp5: fix get_input  
							
							
							
						 
						
							2019-07-03 10:25:32 +08:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0ab215e5ed 
								
							 
						 
						
							
							
								
								hdl.ast: recognize a Enum used as decoder and format it better.  
							
							
							
						 
						
							2019-07-02 19:34:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								7cc0b8cbf0 
								
							 
						 
						
							
							
								
								hdl.mem: fix naming of registers inside unnamed memories.  
							
							... 
							
							
							
							Before this commit, `None` would leak into the vcd file with pysim. 
							
						 
						
							2019-07-02 18:45:35 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								20553b1478 
								
							 
						 
						
							
							
								
								build.plat: add iter_extra_files method.  
							
							... 
							
							
							
							* vendor.*: employ iter_extra_files. 
							
						 
						
							2019-07-02 18:25:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ea25806971 
								
							 
						 
						
							
							
								
								back.rtlil: emit \sig$next wires instead of \$next\sig. NFC.  
							
							... 
							
							
							
							Just a bit more readable. 
							
						 
						
							2019-07-02 18:06:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								dd5e513e42 
								
							 
						 
						
							
							
								
								back.rtlil: do not emit $next wires for comb signals.  
							
							... 
							
							
							
							According to RTLIL semantics (that was undocumented before today),
the only purpose of `sync always` is to enable inference of latches,
because there is no other way to express them in terms of RTLIL
processes without ending up with a combinatorial loop. But, nMigen
specifically avoids latches, so this is not necessary.
This change results in major improvements in Verilog readability.
See also #98 . 
							
						 
						
							2019-07-02 18:05:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6b843b5be6 
								
							 
						 
						
							
							
								
								hdl.rec: implement slicing by component names.  
							
							... 
							
							
							
							Fixes  #121 . 
						
							2019-07-02 17:46:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								34f110100a 
								
							 
						 
						
							
							
								
								hdl.rec: implement Record.like.  
							
							... 
							
							
							
							Fixes  #120 . 
						
							2019-07-02 17:46:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								b67f5cfa65 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: read extra .xdc files.  
							
							
							
						 
						
							2019-07-02 08:23:37 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								94e8f479a5 
								
							 
						 
						
							
							
								
								hdl.mem: use read_port(domain="comb") for asynchronous read ports.  
							
							... 
							
							
							
							This avoids the absurdity of the combination of arguments that is
read_port(domain="sync", synchronous=True).
Fixes  #116 . 
							
						 
						
							2019-07-01 19:56:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f75a0163f9 
								
							 
						 
						
							
							
								
								back.rtlil: fix Array regression in  32446831.  
							
							... 
							
							
							
							Fixes  #117 . 
						
							2019-07-01 01:53:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9c54d0c061 
								
							 
						 
						
							
							
								
								back.pysim: create unique ResetSynchronizer internal domains.  
							
							... 
							
							
							
							Commit 300d47ca779f3ee9 
							
						 
						
							2019-06-28 08:34:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								300d47ca2e 
								
							 
						 
						
							
							
								
								back.pysim: override ResetSynchronizer implementation.  
							
							... 
							
							
							
							This was rewritten to use Yosys cells in 779f3ee9 
							
						 
						
							2019-06-28 07:49:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								779f3ee906 
								
							 
						 
						
							
							
								
								lib.cdc: avoid interior clock domains in ResetSynchronizer.  
							
							... 
							
							
							
							Such clock domains will "leak" into the enclosing scope, which is
generally undesirable. Also, this is instructive for a platform
overriding the behavior, since it provides guidance on how to
correctly instantiate platform-specific flops.
I've considered also doing this for MultiReg(), but it is very
challenging in presence of non-reset-less CDC FFs, since Yosys'
$dffsr primitive has separate set and clear inputs, and reshuffling
the reset value for those results in quite a bit of additional logic.
(That said, it might have to be done anyway, precisely because
letting Yosys generate this additional logic might prove too much
for the toolchain to cope with, and again, platform-independent
code should provide guidance to platform-specific code.) 
							
						 
						
							2019-06-28 07:34:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								21379dd44b 
								
							 
						 
						
							
							
								
								lib.cdc: eliminate no_retiming attributes.  
							
							... 
							
							
							
							See #115  for rationale. 
							
						 
						
							2019-06-28 07:22:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6454378fe7 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: fix instance of negedge FF due to a typo.  
							
							
							
						 
						
							2019-06-28 07:05:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								1609a5ba54 
								
							 
						 
						
							
							
								
								build.plat: fix dedent overrides.  
							
							
							
						 
						
							2019-06-28 06:52:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								32446831b4 
								
							 
						 
						
							
							
								
								hdl.{ast,dsl}, back.{pysim,rtlil}: allow multiple case values.  
							
							... 
							
							
							
							This means that instead of:
    with m.Case(0b00):
        <body>
    with m.Case(0b01):
        <body>
it is legal to write:
    with m.Case(0b00, 0b01):
        <body>
with no change in semantics, and slightly nicer RTLIL or Verilog
output.
Fixes  #103 . 
							
						 
						
							2019-06-28 04:37:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								48d4ee4031 
								
							 
						 
						
							
							
								
								hdl.ir, back.rtlil: allow specifying attributes on instances.  
							
							... 
							
							
							
							Fixes  #107 . 
						
							2019-06-28 04:14:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6f4e3156d8 
								
							 
						 
						
							
							
								
								back.pysim: fix scope screwup.  
							
							
							
						 
						
							2019-06-26 05:22:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2f7e52369c 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: fix typo.  
							
							
							
						 
						
							2019-06-25 22:01:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b1af0601fa 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: simplify handling of default case.  
							
							
							
						 
						
							2019-06-25 22:01:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e5e23644a4 
								
							 
						 
						
							
							
								
								hdl.{ast,dst}: directly represent RTLIL default case.  
							
							... 
							
							
							
							This makes RTLIL mildly nicer:
 casez ({ \$5 , \$3 , \$1  })
   3'bzz1:
       \$next\o  = \$7 ;
   3'bz1z:
       \$next\o  = \$9 ;
   3'b1zz:
       \$next\o  = \$11 ;
-  3'bz:
+  default:
       { \$next\co , \$next\o  } = \$13 ;
 endcase 
							
						 
						
							2019-06-25 22:01:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f60ceb349b 
								
							 
						 
						
							
							
								
								vendor.xilinx_{spartan6,7series}: speedgrade→speed.  
							
							... 
							
							
							
							For consistency with ECP5. 
							
						 
						
							2019-06-25 15:51:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0a145ed2d9 
								
							 
						 
						
							
							
								
								vendor.lattice_ecp5: implement.  
							
							... 
							
							
							
							Note that because of issues with Yosys and nextpnr, it is not yet
possible to use either SDR or DDR I/O. 
							
						 
						
							2019-06-25 15:48:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								23ed888857 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: use different --package for 4k devices.  
							
							
							
						 
						
							2019-06-19 06:09:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								b3c5ff7e95 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: fix IOB packing.  
							
							
							
						 
						
							2019-06-17 20:48:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3fc5f170e6 
								
							 
						 
						
							
							
								
								vendor.xilinx_{7series,spartan6}: emit IBUF/OBUF explicitly.  
							
							... 
							
							
							
							Do this to make sure all buffers, tristate/differential or not, are
instantiated the exact same way, and are subject to the same set of
toolchain bugs, if any. 
							
						 
						
							2019-06-17 15:47:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2a8e7bc6f2 
								
							 
						 
						
							
							
								
								vendor.xilinx_{7series,spartan6}: cleanup. NFC.  
							
							... 
							
							
							
							Eliminate some intermediate signals if they are not necessary.
Do not even return i, o, or t if the pin does not have them. 
							
						 
						
							2019-06-17 15:47:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8b34602d91 
								
							 
						 
						
							
							
								
								vendor.xilinx_{7series,spartan6}: connect FCDE and IOB directly.  
							
							... 
							
							
							
							Before this commit, in some cases there will be an inverter, which is
not allowed on an FDCE with IOB attribute set to true, as it will
interfere with packing. 
							
						 
						
							2019-06-17 15:47:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								04c07715b4 
								
							 
						 
						
							
							
								
								build.plat: dedent overrides.  
							
							
							
						 
						
							2019-06-16 12:40:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								70bbfecf6d 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: never place an inverter on global buffer output.  
							
							... 
							
							
							
							This would make `pin.i` not a global network anymore, which is likely
undesirable if an explicit Attrs(GLOBAL=1) is specified. 
							
						 
						
							2019-06-14 20:44:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								01a3101fd3 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: implement inverters.  
							
							
							
						 
						
							2019-06-13 15:14:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								412781e0c3 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan6: implement DDR I/O buffers and inverters.  
							
							
							
						 
						
							2019-06-13 15:13:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2566747061 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: fix Case().makedefault().  
							
							... 
							
							
							
							Fixes  #100 . 
						
							2019-06-13 03:56:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f689b777b4 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: always order default case as the very last.  
							
							
							
						 
						
							2019-06-13 03:56:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f1174655b1 
								
							 
						 
						
							
							
								
								hdl.ast: tighten assertion in Switch().  
							
							
							
						 
						
							2019-06-13 03:56:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6beba3a48b 
								
							 
						 
						
							
							
								
								Simplify code by using Signal.like(name_suffix="..") appropriately.  
							
							
							
						 
						
							2019-06-12 22:28:45 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e52b15d236 
								
							 
						 
						
							
							
								
								hdl.ast: add name_suffix=".." option to Signal.like().  
							
							... 
							
							
							
							This simplifies creation of related signals with nice names during
metaprogramming, e.g.
  def make_ff(m, sig):
      sig_ff = Signal.like(sig, name_suffix="_ff")
      m.d.sync += sig_ff.eq(sig)
      return sig_ff 
							
						 
						
							2019-06-12 22:26:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								3b303c3334 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: implement DDR I/O buffers.  
							
							
							
						 
						
							2019-06-12 19:55:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								d3ed390b9d 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: fix typo.  
							
							
							
						 
						
							2019-06-12 17:38:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								efb2d773c3 
								
							 
						 
						
							
							
								
								build.{dsl,res,plat}: add PinsN and DiffPairsN.  
							
							
							
						 
						
							2019-06-12 14:42:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ad1a40c934 
								
							 
						 
						
							
							
								
								hdl.ast: implement values with custom lowering.  
							
							
							
						 
						
							2019-06-11 07:01:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								066dd799e8 
								
							 
						 
						
							
							
								
								back.pysim: check for a clock being added twice.  
							
							... 
							
							
							
							This commit adds a best-effort error for a common mistake of adding
a clock driving the same domain twice, such as a result of
a copy-paste error.
Fixes  #27 . 
							
						 
						
							2019-06-11 03:54:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								d2d8c2b8bf 
								
							 
						 
						
							
							
								
								back.rtlil: mask memory init values.  
							
							... 
							
							
							
							This handles both init values that are too wide, which happens if
their magnitude is too high, or if they're negative.
Fixes  #96 . 
							
						 
						
							2019-06-11 03:43:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								58e39f90ce 
								
							 
						 
						
							
							
								
								hdl.mem: coerce memory init values to integers.  
							
							... 
							
							
							
							The coercion is carefully chosen to accept (other than normal ints)
instances of e.g. np.int64, but reject instances of e.g. float.
See https://stackoverflow.com/a/48940855/254415  for details.
Fixes  #93 . 
							
						 
						
							2019-06-11 03:38:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Simon Kirkby 
							
						 
						
							
							
							
							
								
							
							
								2423eabc15 
								
							 
						 
						
							
							
								
								lib.cdc: fix typo.  
							
							
							
						 
						
							2019-06-09 10:24:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								d5ba26b174 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan6: implement.  
							
							
							
						 
						
							2019-06-07 08:58:41 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								2b3a0e9fa0 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: fix typos.  
							
							
							
						 
						
							2019-06-07 07:33:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								12e8fe484d 
								
							 
						 
						
							
							
								
								build.dsl: fix precondition check in Pins.  
							
							
							
						 
						
							2019-06-06 20:40:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								f26e612899 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: implement.  
							
							
							
						 
						
							2019-06-06 13:22:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b45c5119f5 
								
							 
						 
						
							
							
								
								build.res: allow querying frequency of a previously constrained clock.  
							
							
							
						 
						
							2019-06-05 12:51:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c9879c795b 
								
							 
						 
						
							
							
								
								build.{dsl,res,plat}: apply clock constraints to signals, not resources.  
							
							... 
							
							
							
							This adds the Clock() build DSL element, and adds a resource manager
function add_clock_constraint() that takes a Pin or a Signal.
Note that not all platforms, in particular not any nextpnr platforms
at the moment, can add constraints on arbitrary signals.
Fixes  #86 . 
							
						 
						
							2019-06-05 08:52:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ab3f103e5a 
								
							 
						 
						
							
							
								
								build.dsl: replace extras= with Attrs().  
							
							... 
							
							
							
							This change proved more tricky than expected due to downstream
dependencies, so it also includes some secondary refactoring. 
							
						 
						
							2019-06-05 07:02:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c52cd72d3e 
								
							 
						 
						
							
							
								
								Typos and style fixes. NFC.  
							
							
							
						 
						
							2019-06-05 02:48:41 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								452c4b380b 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: normalize device names.  
							
							... 
							
							
							
							Right now the device name in the board file is just the option
nextpnr uses, but that's overnormalized and doesn't quite match
the chip names used elsewhere. It is even worse for ECP5 in terms
of mismatch with chip names, and for ECP5 we need to support other
toolchains as well, so let's handle this uniformly everywhere. 
							
						 
						
							2019-06-04 16:09:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4379a5d6fe 
								
							 
						 
						
							
							
								
								hdl.ir: rephrase elaboratable warning to not look like an error.  
							
							
							
						 
						
							2019-06-04 13:11:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								537d91851d 
								
							 
						 
						
							
							
								
								compat.fhdl.module: silence "unused elaboratable" warnings.  
							
							
							
						 
						
							2019-06-04 13:09:36 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								38917e4523 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix platform lowering for TSTriple again.  
							
							
							
						 
						
							2019-06-04 13:03:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								79a3710255 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix platform lowering.  
							
							... 
							
							
							
							get_tristate only has O/OE; the triple is created by get_input_output. 
							
						 
						
							2019-06-04 12:26:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0cbb743df9 
								
							 
						 
						
							
							
								
								compat.fhdl.module: implement some TODO'd deprecation warnings.  
							
							
							
						 
						
							2019-06-04 12:00:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3adce21ce3 
								
							 
						 
						
							
							
								
								build.run: fix product extraction to work on Windows.  
							
							... 
							
							
							
							Before this commit, it would fail with a "Permission denied" error. 
							
						 
						
							2019-06-04 11:40:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								63c4123f6e 
								
							 
						 
						
							
							
								
								build.plat: hide executed commands in quiet builds on Windows.  
							
							
							
						 
						
							2019-06-04 11:34:18 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1d3e9c8331 
								
							 
						 
						
							
							
								
								build.plat: allow (easily) overriding with an empty string on Windows.  
							
							
							
						 
						
							2019-06-04 11:33:51 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								39ca0e6fa6 
								
							 
						 
						
							
							
								
								compat.fhdl.module: CompatModule should be elaboratable.  
							
							... 
							
							
							
							Fixes  #83 . 
						
							2019-06-04 11:11:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4310254103 
								
							 
						 
						
							
							
								
								build.res: use ConstraintError iff a constraint invariant is violated.  
							
							... 
							
							
							
							In particular don't use it for type errors. 
							
						 
						
							2019-06-04 11:00:11 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								51c03ca391 
								
							 
						 
						
							
							
								
								hdl.xfrm: handle empty lhs in LHSGroup{Analyzer,Filter}.  
							
							
							
						 
						
							2019-06-04 10:26:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1b54eb80da 
								
							 
						 
						
							
							
								
								vendor.board: split off into nmigen-boards package.  
							
							... 
							
							
							
							The iCE40 programmers are also moved, since they're board-specific.
(It looks like iceprog isn't, but it only works with Lattice
evaluation kits.)
Fixes  #80 . 
							
						 
						
							2019-06-04 09:52:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								316ba10207 
								
							 
						 
						
							
							
								
								build.run: simplify using build products locally, e.g. for programming.  
							
							
							
						 
						
							2019-06-04 09:13:24 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2763b403f1 
								
							 
						 
						
							
							
								
								build.res: simplify emission of port constraints on individual bits.  
							
							
							
						 
						
							2019-06-04 08:39:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9f643ce005 
								
							 
						 
						
							
							
								
								Clean up imports.  
							
							... 
							
							
							
							This commit:
  * moves lists of universally useful imports from `nmigen` to
    `nmigen.hdl` and `nmigen.lib`, reimporting them in `nmigen`;
  * replaces lots of imports from individual parts of `nmigen.hdl`
    with a star import from `nmigen.hdl`;
  * replaces imports in tests with what we expect downstream code
    to use;
  * adds some missing imports in `nmigen.formal`. 
							
						 
						
							2019-06-04 08:18:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3194b5c90b 
								
							 
						 
						
							
							
								
								build.run: extract from build.plat.  
							
							
							
						 
						
							2019-06-04 07:53:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c89c2ce941 
								
							 
						 
						
							
							
								
								vendor.board.tinyfpga_bx: clk16 pin does not have a global buffer.  
							
							... 
							
							
							
							Fixes  #82 . 
						
							2019-06-04 06:43:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								45d1dc1d54 
								
							 
						 
						
							
							
								
								vendor.board.tinyfpga_bx: fix typo.  
							
							
							
						 
						
							2019-06-04 06:20:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6426b90e4a 
								
							 
						 
						
							
							
								
								vendor.conn.pmod: implement.  
							
							... 
							
							
							
							Fixes  #79 . 
						
							2019-06-03 16:49:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0fa45b5e14 
								
							 
						 
						
							
							
								
								vendor.board: extract package.  
							
							
							
						 
						
							2019-06-03 16:14:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2ca0834d41 
								
							 
						 
						
							
							
								
								vendor.tinyfpga_bx: add connectors.  
							
							
							
						 
						
							2019-06-03 15:40:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								7c5461d210 
								
							 
						 
						
							
							
								
								vendor.icestick: add connectors.  
							
							
							
						 
						
							2019-06-03 15:15:45 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f351e2bd1e 
								
							 
						 
						
							
							
								
								vendor.ice40_hx1k_blink_evn: add (some) connectors.  
							
							... 
							
							
							
							I have no idea how to lay out the Arduino-like connectors best,
so they're just missing. 
							
						 
						
							2019-06-03 15:03:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ed64880cc4 
								
							 
						 
						
							
							
								
								build.{plat,res}: add support for connectors.  
							
							... 
							
							
							
							Fixes  #77 . 
						
							2019-06-03 15:02:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a013eb1f59 
								
							 
						 
						
							
							
								
								build.dsl: add support for connectors.  
							
							
							
						 
						
							2019-06-03 13:47:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4c443a7ef5 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: TSTriple is not an elaboratable.  
							
							
							
						 
						
							2019-06-03 09:39:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								639e64c388 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: implement differential output buffers.  
							
							
							
						 
						
							2019-06-03 09:28:27 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								41adcc3f97 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: implement differential input buffers.  
							
							
							
						 
						
							2019-06-03 08:38:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3116d4add2 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: allow instantiating SB_GB_IO via extras.  
							
							
							
						 
						
							2019-06-03 07:54:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								185abb492d 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: implement SDR and DDR I/O buffers.  
							
							
							
						 
						
							2019-06-03 07:43:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b42043f764 
								
							 
						 
						
							
							
								
								lib.io: add i_clk and o_clk to pin layout with xdr>=1.  
							
							
							
						 
						
							2019-06-03 07:43:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a1940c5528 
								
							 
						 
						
							
							
								
								hdl.rec: unbreak hasattr(rec, ...).  
							
							... 
							
							
							
							hasattr() requires that AttributeError be raised. Change __getitem__
to raise AttributeError, too, since it is fundamentally just sugar
for getattr(). 
							
						 
						
							2019-06-03 07:43:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6fae06aea9 
								
							 
						 
						
							
							
								
								build.{dsl,plat,res}: allow dir="oe".  
							
							... 
							
							
							
							Although a dir="oe" pin is generally equivalent to dir="io" pin with
the i* signal(s) disconnected, they are not equivalent, because some
pins may not be able to support input buffers at all, either because
there are no input buffers, or because the input buffers are consumed
by some other resource.
E.g. this can happen on iCE40 when the input buffer is consumed by
a PLL. 
							
						 
						
							2019-06-03 04:42:55 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1eee7cd76f 
								
							 
						 
						
							
							
								
								lib.io: allow dir="oe".  
							
							... 
							
							
							
							Although a dir="oe" pin is generally equivalent to dir="io" pin with
the i* signal(s) disconnected, they are not equivalent, because some
pins may not be able to support input buffers at all, either because
there are no input buffers, or because the input buffers are consumed
by some other resource.
E.g. this can happen on iCE40 when the input buffer is consumed by
a PLL. 
							
						 
						
							2019-06-03 04:28:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9ba2efd86b 
								
							 
						 
						
							
							
								
								build.{res,plat}: use xdr=0 as default, not xdr=1.  
							
							... 
							
							
							
							The previous behavior was semantically incorrect. 
							
						 
						
							2019-06-03 03:36:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cd6488c782 
								
							 
						 
						
							
							
								
								build.res: allow requesting raw ports, with dir="-".  
							
							... 
							
							
							
							This provides an escape hatch for the case where the nMigen platform
code is not flexible enough, and a IO buffer primitive needs to be
instantiated directly. 
							
						 
						
							2019-06-03 03:36:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c30617fc05 
								
							 
						 
						
							
							
								
								lib.io: allow Pin(xdr=0), representing a combinatorial I/O buffer.  
							
							
							
						 
						
							2019-06-03 03:36:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3327deae92 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: enable SystemVerilog when reading .sv files.  
							
							
							
						 
						
							2019-06-03 03:01:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f417725b10 
								
							 
						 
						
							
							
								
								build.res: if not specified, request resource  #0 .  
							
							... 
							
							
							
							This markedly differs from oMigen system, which would request
consecutive resources. The difference is deliberate; most resources
are singular, so it does not matter for them, and for resources where
it does matter, which pins are requested should not depend on order
of execution of `platform.request`. 
							
						 
						
							2019-06-03 02:54:17 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								dc17d06fe9 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: instantiate SB_IO and apply extras.  
							
							... 
							
							
							
							The PULLUP and PULLUP_RESISTOR extras are representable in the PCF
file. The IO_STANDARD extra, however, can only be an SB_IO parameter. 
							
						 
						
							2019-06-03 02:51:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c6a0761b3a 
								
							 
						 
						
							
							
								
								hdl.ir: accept LHS signals like slices as Instance io ports.  
							
							... 
							
							
							
							This is unlikely to work with anything except Slice and Cat, but
there's no especially good place to enforce it. (Maybe in Instance?) 
							
						 
						
							2019-06-03 02:39:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b8a61edc2f 
								
							 
						 
						
							
							
								
								hdl.dsl: allow adding submodules with computed name, like with domains.  
							
							
							
						 
						
							2019-06-03 02:22:55 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b64a31255c 
								
							 
						 
						
							
							
								
								hdl.ir: accept expanded (kind, name, value) tuples in Instance.  
							
							... 
							
							
							
							This is useful for e.g. programmatically generating parameters
without having to mess with kwargs dicts. 
							
						 
						
							2019-06-03 02:12:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								fb01854372 
								
							 
						 
						
							
							
								
								build.{res,plat}: propagate extras to pin fragment factories.  
							
							... 
							
							
							
							This is necessary because on some platforms, like iCE40, extras
become parameters on an IO primitive, since the constraint file
format is not expressive enough for all of them. 
							
						 
						
							2019-06-03 01:58:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								268fe6330e 
								
							 
						 
						
							
							
								
								build.res: simplify. NFC.  
							
							
							
						 
						
							2019-06-03 01:29:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								98497b2075 
								
							 
						 
						
							
							
								
								build.dsl: require a dict for extras instead of a stringly array.  
							
							... 
							
							
							
							Fixes  #72 . 
						
							2019-06-02 23:36:21 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e4ebe03115 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: use .bin suffix for bitstream tempfiles.  
							
							
							
						 
						
							2019-06-02 04:12:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								37152c733e 
								
							 
						 
						
							
							
								
								vendor.tinyfpga_{b→bx}  
							
							
							
						 
						
							2019-06-02 04:11:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								bff08c5016 
								
							 
						 
						
							
							
								
								vendor.tinyfpga_b: fix IO_STANDARD.  
							
							
							
						 
						
							2019-06-02 04:04:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Simon Kirkby 
							
						 
						
							
							
							
							
								
							
							
								358b98e5de 
								
							 
						 
						
							
							
								
								vendor.tinyfpga_b: implement.  
							
							
							
						 
						
							2019-06-02 01:20:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								39fad9a955 
								
							 
						 
						
							
							
								
								vendor.icestick: fix typo.  
							
							
							
						 
						
							2019-06-02 01:13:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ba0fcddb2c 
								
							 
						 
						
							
							
								
								vendor.ice40_hx1k_blink_evn: implement.  
							
							
							
						 
						
							2019-06-01 16:48:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								eab372383a 
								
							 
						 
						
							
							
								
								vendor.icestick: implement.  
							
							
							
						 
						
							2019-06-01 16:47:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								321d245e95 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: implement.  
							
							
							
						 
						
							2019-06-01 16:47:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b1eab9fb3b 
								
							 
						 
						
							
							
								
								build.plat: implement.  
							
							
							
						 
						
							2019-06-01 16:43:27 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								53ddff9f33 
								
							 
						 
						
							
							
								
								build.res: always return a Pin record.  
							
							... 
							
							
							
							In the simple cases, a Pin record consisting of exactly one field
is equivalent in every way to this single field. In the more complex
case however, it can be used as a record, making the code more robust
such that it works with both bidirectional and unidirectional pins. 
							
						 
						
							2019-06-01 16:41:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8c1b5a26b3 
								
							 
						 
						
							
							
								
								build.res: accept a list of clocks in ConstraintManager constructor.  
							
							
							
						 
						
							2019-06-01 15:41:41 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f17375a60b 
								
							 
						 
						
							
							
								
								back.rtlil: allow specifying platform for convert().  
							
							
							
						 
						
							2019-05-26 17:10:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								578dba263f 
								
							 
						 
						
							
							
								
								Add versioneer.  
							
							
							
						 
						
							2019-05-26 11:20:13 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b0ba960296 
								
							 
						 
						
							
							
								
								hdl.ir: silence unused elaboratable warning on interpreter crash.  
							
							
							
						 
						
							2019-05-26 10:48:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								d393c5ec64 
								
							 
						 
						
							
							
								
								build.res: add ConstraintManager.  
							
							
							
						 
						
							2019-05-26 01:26:58 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3a9fe31133 
								
							 
						 
						
							
							
								
								build.dsl: make Pins and DiffPairs iterable.  
							
							... 
							
							
							
							Returns pin names. 
							
						 
						
							2019-05-25 22:43:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								48145cee02 
								
							 
						 
						
							
							
								
								build.dsl: improve repr of Pins() and DiffPairs().  
							
							
							
						 
						
							2019-05-25 22:43:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2b7dc37ffe 
								
							 
						 
						
							
							
								
								hdl.rec: allow providing fields during construction.  
							
							... 
							
							
							
							This allows creating records populated with e.g. signals with custom
names, or sub-records that are instances of Record subclasses. 
							
						 
						
							2019-05-25 22:06:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3392708e2b 
								
							 
						 
						
							
							
								
								Consider Instances a part of containing fragment for use-def purposes.  
							
							... 
							
							
							
							Fixes  #70 . 
						
							2019-05-25 20:13:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Chris Osterwood 
							
						 
						
							
							
							
							
								
							
							
								699fe5a675 
								
							 
						 
						
							
							
								
								Add import so that Tristate.elaborate builds  
							
							
							
						 
						
							2019-05-20 16:34:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c337246fc5 
								
							 
						 
						
							
							
								
								hdl.ir: when adding sync domain to a design, also add it to ports.  
							
							... 
							
							
							
							Otherwise we end up in a situation where the examples don't have
clk and rst as ports, which is not nice.
Fixes  #67 . 
							
						 
						
							2019-05-15 06:44:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								39bc59c924 
								
							 
						 
						
							
							
								
								hdl.ir: during port propagation, defs should take priority over uses.  
							
							
							
						 
						
							2019-05-13 15:34:13 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								921f506e69 
								
							 
						 
						
							
							
								
								back.rtlil: assign undriven signals to their reset value.  
							
							... 
							
							
							
							Fixes  #35 . 
						
							2019-05-13 08:33:55 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								744e33f42d 
								
							 
						 
						
							
							
								
								hdl: make all public Value classes other than Record final.  
							
							... 
							
							
							
							In some cases, nMigen uses type() instead of isinstance() to dispatch
on types. Make sure all such uses of type() are robust; in addition,
make it clear that nMigen AST classes are not meant to be subclassed.
(Record is an exception.)
Fixes  #65 . 
							
						 
						
							2019-05-12 05:40:17 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								958cb18b88 
								
							 
						 
						
							
							
								
								hdl.ir: only pull explicitly specified ports to toplevel, if any.  
							
							... 
							
							
							
							Fixes  #30 . 
						
							2019-05-12 05:21:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								6a77122c2e 
								
							 
						 
						
							
							
								
								lib.io: add a name argument to the Pin constructor.  
							
							
							
						 
						
							2019-04-24 22:02:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a982fbe377 
								
							 
						 
						
							
							
								
								build.dsl: style. NFC.  
							
							
							
						 
						
							2019-04-24 15:02:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								dd5bd1c88d 
								
							 
						 
						
							
							
								
								build: add DSL for defining platform resources.  
							
							
							
						 
						
							2019-04-24 11:49:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								97af266645 
								
							 
						 
						
							
							
								
								back.verilog: allow stripping the src attribute, for cleaner output.  
							
							
							
						 
						
							2019-04-22 14:59:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								c8e92c0612 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix Tristate, TSTriple.  
							
							... 
							
							
							
							* fix TSTriple instance.
* TSTriple, Tristate: tag as Elaboratable 
							
						 
						
							2019-04-22 09:57:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								371dc8bebe 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix Tristate.  
							
							
							
						 
						
							2019-04-22 08:49:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								93d15abcf1 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix TSTriple.  
							
							
							
						 
						
							2019-04-22 08:15:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								585514e6ed 
								
							 
						 
						
							
							
								
								hdl.ir: rework named port handling for Instances.  
							
							... 
							
							
							
							The main purpose of this rework is cleanup, to avoid specifying
the direction of input ports in an implicit, ad-hoc way using
the named ports and ports dictionaries.
While working on this I realized that output ports can be connected
to anything that is valid on LHS, so this is now supported too. 
							
						 
						
							2019-04-22 07:46:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								44711b7d08 
								
							 
						 
						
							
							
								
								hdl.ir: detect elaboratables that are created but not used.  
							
							... 
							
							
							
							Requres every elaboratable to inherit from Elaboratable, but still
accepts ones that do not, with a warning.
Fixes  #3 . 
							
						 
						
							2019-04-21 08:52:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								85ae99c1b4 
								
							 
						 
						
							
							
								
								back.rtlil: emit nmigen.hierarchy attribute.  
							
							... 
							
							
							
							Fixes  #54 . 
						
							2019-04-21 07:55:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								360bc9b5b4 
								
							 
						 
						
							
							
								
								hdl.ast: improve tests for exceptional conditions.  
							
							
							
						 
						
							2019-04-21 07:20:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								33f9bd2a1d 
								
							 
						 
						
							
							
								
								hdl.ast: accept Signals with identical min/max bounds.  
							
							... 
							
							
							
							And produce a 0-bit signal.
Fixes  #58 . 
							
						 
						
							2019-04-21 07:16:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								083016d747 
								
							 
						 
						
							
							
								
								back.rtlil: only expand legalized values in Array/Part context on RHS.  
							
							... 
							
							
							
							Otherwise the following code fails to compile:
    index = Signal(1)
    array = Array(range(2))
    with m.If(0 == array[index]):
        m.d.sync += index.eq(0)
Fixes  #51 . 
							
						 
						
							2019-04-21 06:43:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ce1eff5464 
								
							 
						 
						
							
							
								
								hdl.rec: implement Record.connect.  
							
							... 
							
							
							
							Fixes  #31 . 
						
							2019-04-21 06:37:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f22106e5ef 
								
							 
						 
						
							
							
								
								back.rtlil: allow record slices on LHS.  
							
							
							
						 
						
							2019-04-20 08:12:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								611c25f909 
								
							 
						 
						
							
							
								
								hdl.rec: fix slicing of records.  
							
							
							
						 
						
							2019-04-19 19:55:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								dda8f34d39 
								
							 
						 
						
							
							
								
								hdl.xfrm: handle classes that inherit from Record.  
							
							
							
						 
						
							2019-04-18 17:06:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								287a0531b3 
								
							 
						 
						
							
							
								
								lib.io: rework TSTriple/Tristate interface to use pin_layout/Pin.  
							
							
							
						 
						
							2019-04-15 16:27:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								50fa2516fa 
								
							 
						 
						
							
							
								
								hdl.ast: fix some type checks.  
							
							
							
						 
						
							2019-04-10 04:33:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0a2a7025a6 
								
							 
						 
						
							
							
								
								hdl.xfrm: allow using FragmentTransformer on any elaboratable.  
							
							... 
							
							
							
							Fixes  #29 . 
						
							2019-04-10 00:23:11 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								49eef77c53 
								
							 
						 
						
							
							
								
								hdl: remove deprecated get_fragment() and lower() methods.  
							
							
							
						 
						
							2019-04-09 23:53:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a74cacdc69 
								
							 
						 
						
							
							
								
								hdl.ast: handle a common typo, such as Signal(1, True).  
							
							
							
						 
						
							2019-04-03 14:59:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c9c9307a5e 
								
							 
						 
						
							
							
								
								test_sim: add missing add_process().  
							
							... 
							
							
							
							Fixes  #43 . 
						
							2019-03-28 17:50:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Luke Wren 
							
						 
						
							
							
							
							
								
							
							
								23a07b955f 
								
							 
						 
						
							
							
								
								lib.cdc: add optional reset to MultiReg, and document its use cases.  
							
							
							
						 
						
							2019-03-28 05:21:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a57c72d606 
								
							 
						 
						
							
							
								
								back.rtlil: fix off-by-one in Part legalization.  
							
							... 
							
							
							
							Fixes  #52 . 
						
							2019-03-28 05:12:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								anuejn 
							
						 
						
							
							
							
							
								
							
							
								3c95299c4e 
								
							 
						 
						
							
							
								
								hdl.rec: separate record and signal name with __, not _.  
							
							... 
							
							
							
							This makes names of signals within records less ambiguous, in case
they themselves have underscores within them. 
							
						 
						
							2019-03-25 14:26:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								81ee2db163 
								
							 
						 
						
							
							
								
								hdl.ast: fix typo.  
							
							... 
							
							
							
							Fixes  #49 . 
						
							2019-03-25 10:50:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4027317835 
								
							 
						 
						
							
							
								
								lib.fifo: register GrayEncoder output before CDC.  
							
							... 
							
							
							
							Without this register, static hazards in the encoder could cause
multiple encoder output bits to toggle, which would be incorrectly
sampled by the 2FF synchronizer.
Reported by @Wren6991. 
							
						 
						
							2019-03-03 18:23:51 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e93bf4bf4b 
								
							 
						 
						
							
							
								
								tracer: factor out get_var_name(default=).  
							
							
							
						 
						
							2019-03-03 18:21:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cac4b10b82 
								
							 
						 
						
							
							
								
								hdl.rec: remove __slots__.  
							
							... 
							
							
							
							Left in by mistake. 
							
						 
						
							2019-03-03 18:21:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8ee6bd80ff 
								
							 
						 
						
							
							
								
								hdl.ir: raise a more descriptive error on non-elaboratable object.  
							
							
							
						 
						
							2019-02-14 20:52:42 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								43e4833ddb 
								
							 
						 
						
							
							
								
								back.rtlil: accept ast.Const as cell parameter.  
							
							
							
						 
						
							2019-01-26 23:25:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								bc5a127fd2 
								
							 
						 
						
							
							
								
								hdl.ast: fix ValueKey for Cat.  
							
							
							
						 
						
							2019-01-26 23:25:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e844b0e095 
								
							 
						 
						
							
							
								
								compat.fhdl.module: fix typo.  
							
							
							
						 
						
							2019-01-26 23:08:55 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ce7ba70462 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix __all__ list.  
							
							
							
						 
						
							2019-01-26 22:59:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6cd9f7db19 
								
							 
						 
						
							
							
								
								compat.genlib.resetsync: add shim for AsyncResetSynchronizer.  
							
							
							
						 
						
							2019-01-26 18:24:36 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2fb85a6170 
								
							 
						 
						
							
							
								
								compat.fifo: fix _FIFOInterface deprecation wrapper.  
							
							
							
						 
						
							2019-01-26 18:23:58 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f44ca291c1 
								
							 
						 
						
							
							
								
								lib.cdc: add ResetSynchronizer.  
							
							
							
						 
						
							2019-01-26 18:07:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e74dbc3377 
								
							 
						 
						
							
							
								
								back.pysim: support async reset.  
							
							
							
						 
						
							2019-01-26 18:07:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8686e9aa06 
								
							 
						 
						
							
							
								
								back.pysim: give better names to unnamed fragments and their signals.  
							
							... 
							
							
							
							Was: top.#0, top.None_clk
Now: top.U0, top.U0_clk
(U for Unnamed, or similarly, an unit refdes.) 
							
						 
						
							2019-01-26 18:07:16 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b133eb735f 
								
							 
						 
						
							
							
								
								back.rtlil: accept any elaboratable, not just fragments.  
							
							
							
						 
						
							2019-01-26 16:11:29 +00:00