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 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4bf80a6e33 
								
							 
						 
						
							
							
								
								compat: suppress deprecation warnings that are internal or during test.  
							
							
							
						 
						
							2019-01-26 15:43:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								7890c0adc8 
								
							 
						 
						
							
							
								
								test.compat: reenable tests converting to Verilog.  
							
							
							
						 
						
							2019-01-26 15:29:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4887771e4a 
								
							 
						 
						
							
							
								
								compat.sim: fix deprecated stdlib import.  
							
							
							
						 
						
							2019-01-26 15:26:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4948162f33 
								
							 
						 
						
							
							
								
								hdl.ir: rename .get_fragment() to .elaborate().  
							
							... 
							
							
							
							Closes  #9 . 
						
							2019-01-26 02:31:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4922a73c5d 
								
							 
						 
						
							
							
								
								test.compat: import tests from Migen as appropriate.  
							
							... 
							
							
							
							test_signed and test_coding are adjusted slightly to account for
differences in comb propagation between the simulators; we might want
to revert that eventually. 
							
						 
						
							2019-01-26 01:01:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f71e0fffbb 
								
							 
						 
						
							
							
								
								hdl.ast: fix shape calculation for *.  
							
							... 
							
							
							
							This was carried over from Migen, and is wrong there too.
Counterexample: 1'sd-1 * 4'sd-4 = 4'sd-4 (but should be 5'sd4). 
							
						 
						
							2019-01-26 00:56:40 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								7b25665fde 
								
							 
						 
						
							
							
								
								back.pysim: fix behavior of initial cycle for sync processes.  
							
							... 
							
							
							
							The current behavior was introduced in 6570271912e04e4e657027191782b841 
							
						 
						
							2019-01-25 20:37:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1782b841b2 
								
							 
						 
						
							
							
								
								lib.fifo: in FIFOInterface.read(), check readable on the right cycle.  
							
							
							
						 
						
							2019-01-22 07:03:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								eeb023a7f5 
								
							 
						 
						
							
							
								
								compat.genlib.fifo: adjust _FIFOInterface shim to not require fwft=.  
							
							
							
						 
						
							2019-01-22 06:56:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2c80f35de4 
								
							 
						 
						
							
							
								
								lib.fifo: fix typo in AsyncFIFO documentation.  
							
							
							
						 
						
							2019-01-22 05:47:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e33580cf4c 
								
							 
						 
						
							
							
								
								lib.fifo: add AsyncFIFO and AsyncFIFOBuffered.  
							
							
							
						 
						
							2019-01-21 16:02:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								12e04e4ee5 
								
							 
						 
						
							
							
								
								back.pysim: wake up processes before ever committing any values.  
							
							... 
							
							
							
							Otherwise, the contract of the simulator to sync processes is not
always fulfilled. 
							
						 
						
							2019-01-21 16:00:25 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								52a9f818f1 
								
							 
						 
						
							
							
								
								compat.genlib.cdc: add missing import.  
							
							
							
						 
						
							2019-01-20 03:03:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c110fe6a9d 
								
							 
						 
						
							
							
								
								compat.genlib.cdc: add GrayCounter and GrayDecoder shims.  
							
							
							
						 
						
							2019-01-20 02:29:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b6cff2c098 
								
							 
						 
						
							
							
								
								lib.coding: add GrayEncoder and GrayDecoder.  
							
							... 
							
							
							
							Unlike the Migen ones, these are purely combinatorial. 
							
						 
						
							2019-01-20 02:20:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9757157fe2 
								
							 
						 
						
							
							
								
								lib.coding: add width as attribute to all coders.  
							
							
							
						 
						
							2019-01-20 01:59:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9de9272709 
								
							 
						 
						
							
							
								
								lib.fifo: use memory in the FIFO model.  
							
							... 
							
							
							
							This is unfortunately more complicated, but results in a much faster
proof. 
							
						 
						
							2019-01-19 09:27:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6ea0a12dd4 
								
							 
						 
						
							
							
								
								lib.fifo: use model equivalence to simplify formal specification.  
							
							... 
							
							
							
							This is unfortunately slow, and should probably be using theory
of arrays. 
							
						 
						
							2019-01-19 09:27:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								38b3c4af31 
								
							 
						 
						
							
							
								
								hdl.ast: implement shape for modulo operator.  
							
							
							
						 
						
							2019-01-19 09:27:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								5e2b46f727 
								
							 
						 
						
							
							
								
								hdl.ast: add Value.implies.  
							
							
							
						 
						
							2019-01-19 08:56:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c5d67b0461 
								
							 
						 
						
							
							
								
								hdl.xfrm: mark internal registers used in lowering Sample().  
							
							
							
						 
						
							2019-01-19 07:27:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e3b5b2acc8 
								
							 
						 
						
							
							
								
								fhdl.specials: add compatibility shim for Tristate.  
							
							
							
						 
						
							2019-01-19 02:20:40 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3ed519383c 
								
							 
						 
						
							
							
								
								lib.fifo: fix simulation read/write methods to take only one cycle.  
							
							
							
						 
						
							2019-01-19 01:38:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								45088f7824 
								
							 
						 
						
							
							
								
								compat.genlib.fifo: add aliases for SyncFIFO, SyncFIFOBuffered.  
							
							
							
						 
						
							2019-01-19 01:06:51 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								97b990272e 
								
							 
						 
						
							
							
								
								lib.fifo: formally verify FIFO contract.  
							
							
							
						 
						
							2019-01-19 00:52:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b50b47d984 
								
							 
						 
						
							
							
								
								hdl.ast: give Assert and Assume their own src_loc.  
							
							... 
							
							
							
							This helps with patterns like `Assert(fsm.ongoing("IDLE"))`, which
would otherwise point into nMigen internals. 
							
						 
						
							2019-01-19 00:08:51 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								66466a8a0e 
								
							 
						 
						
							
							
								
								back.rtlil: only emit each AnyConst/AnySeq cell once.  
							
							... 
							
							
							
							These are semantically like signals, not like constants. 
							
						 
						
							2019-01-18 01:34:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								60089db075 
								
							 
						 
						
							
							
								
								cli: add missing default for generate  
							
							
							
						 
						
							2019-01-17 20:45:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								5a831ce31c 
								
							 
						 
						
							
							
								
								lib.fifo: add basic formal specification.  
							
							
							
						 
						
							2019-01-17 05:40:25 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								fa8e876356 
								
							 
						 
						
							
							
								
								hdl.ast: allow sampling ClockSignal, ResetSignal.  
							
							
							
						 
						
							2019-01-17 05:23:06 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8c96675580 
								
							 
						 
						
							
							
								
								hdl.ast: add Past, Stable, Rose, Fell.  
							
							
							
						 
						
							2019-01-17 04:31:27 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								16f90d3585 
								
							 
						 
						
							
							
								
								formal: extract from toplevel module.  
							
							... 
							
							
							
							The nMigen formal language is about to get *much* larger and will
keep growing faster than the rest of nMigen language, so it makes
good sense to extract it. Further, this makes it easier to qualify
formal keywords like `formal.AnyConst()` without directly importing
hdl.ast. 
							
						 
						
							2019-01-17 01:43:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								198efcad31 
								
							 
						 
						
							
							
								
								hdl.xfrm: add SampleLowerer.  
							
							
							
						 
						
							2019-01-17 01:41:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b3de114d67 
								
							 
						 
						
							
							
								
								hdl.ast: add Sample.  
							
							
							
						 
						
							2019-01-17 01:36:27 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b78a2be9f6 
								
							 
						 
						
							
							
								
								lib.fifo: port sync FIFO queues from Migen.  
							
							
							
						 
						
							2019-01-16 17:20:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cb2f18ee37 
								
							 
						 
						
							
							
								
								hdl.ast: fix naming of Signal.like() signals when tracer fails.  
							
							
							
						 
						
							2019-01-16 17:20:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f2425001aa 
								
							 
						 
						
							
							
								
								back.rtlil: slightly nicer naming for $next signals. NFC.  
							
							
							
						 
						
							2019-01-16 17:20:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								935bf2d8cf 
								
							 
						 
						
							
							
								
								back.rtlil: rename \sig$next to $next$sig.  
							
							... 
							
							
							
							These used to serve a useful purpose being public, back when the RTLIL
backend was immature. Not anymore; now they merely clutter up views
in gtkwave and so on. 
							
						 
						
							2019-01-16 14:51:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6191760c30 
								
							 
						 
						
							
							
								
								Unbreak  655d02d5.  
							
							
							
						 
						
							2019-01-15 23:09:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								655d02d5b8 
								
							 
						 
						
							
							
								
								back.rtlil: Generate $anyconst and $anyseq cells.  
							
							
							
						 
						
							2019-01-15 22:52:45 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								77728c2dea 
								
							 
						 
						
							
							
								
								hdl.xfrm: Add on_AnyConst and on_AnySeq abstract methods for ValueVisitor and children.  
							
							
							
						 
						
							2019-01-15 22:52:45 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								6fdbc3d885 
								
							 
						 
						
							
							
								
								hdl.ast: Add AnyConst and AnySeq value types.  
							
							
							
						 
						
							2019-01-15 22:52:45 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c4276f7cf7 
								
							 
						 
						
							
							
								
								lib.io: pass pin to platform.get_tristate().  
							
							
							
						 
						
							2019-01-14 21:39:19 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b534e92dd5 
								
							 
						 
						
							
							
								
								hdl.ir: allow explicitly requesting flattening.  
							
							
							
						 
						
							2019-01-14 17:04:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6f66885c09 
								
							 
						 
						
							
							
								
								lib.io: lower to platform-independent tristate buffer.  
							
							
							
						 
						
							2019-01-14 16:50:04 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								011bf2258e 
								
							 
						 
						
							
							
								
								hdl: make ClockSignal and ResetSignal usable on LHS.  
							
							... 
							
							
							
							Fixes  #8 . 
						
							2019-01-14 15:38:16 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								664b4bcb3a 
								
							 
						 
						
							
							
								
								hdl.dsl: cases wider than switch test value are unreachable.  
							
							... 
							
							
							
							In 3083c1d6 
							
						 
						
							2019-01-13 08:51:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3083c1d6dd 
								
							 
						 
						
							
							
								
								hdl.dsl: accept (but warn on) cases wider than switch test value.  
							
							... 
							
							
							
							Fixes  #13 . 
						
							2019-01-13 08:46:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cbf7bd6e31 
								
							 
						 
						
							
							
								
								back.pysim: handle non-driven, non-port signals.  
							
							... 
							
							
							
							Fixes  #20 . 
						
							2019-01-13 08:31:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								06faeee357 
								
							 
						 
						
							
							
								
								back.verilog: better error message if Yosys is not found.  
							
							... 
							
							
							
							Fixes  #17 . 
						
							2019-01-13 08:10:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								307de722cb 
								
							 
						 
						
							
							
								
								back.verilog: remove undriven check.  
							
							... 
							
							
							
							This check no longer finds bugs and is prone to false positives.
Instead, we should do integration tests on the entire stack, from
fragments to Verilog.
Fixes  #23 . 
							
						 
						
							2019-01-08 22:43:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Adam Greig 
							
						 
						
							
							
							
							
								
							
							
								560bb007cc 
								
							 
						 
						
							
							
								
								Give the top level scope a name to fix VCD hierarchy.  
							
							
							
						 
						
							2019-01-06 00:10:37 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a2b04d71d0 
								
							 
						 
						
							
							
								
								hdl.ast: allow slicing [n:n] into n-bit value.  
							
							
							
						 
						
							2019-01-02 18:14:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ef1e0b8d55 
								
							 
						 
						
							
							
								
								back.rtlil: translate empty slices correctly.  
							
							
							
						 
						
							2019-01-02 18:14:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								f31055a4ef 
								
							 
						 
						
							
							
								
								back.rtlil: Generate RTLIL for Assert/Assume statements.  
							
							
							
						 
						
							2019-01-02 11:17:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								f77dc40256 
								
							 
						 
						
							
							
								
								hdl.xfrm: Add Assert and Assume abstract methods for StatementVisitor, implement for children.  
							
							
							
						 
						
							2019-01-02 11:17:39 +00:00