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 
							
								 
							
						 
					 
				
					
						
							
							
								Sebastien Bourdeauducq 
							
						 
						
							
							
							
							
								
							
							
								56fe329e0c 
								
							 
						 
						
							
							
								
								README: update nMigen libs paragraph  
							
							
							
						 
						
							2019-06-24 10:05:25 +08:00 
							
								 
							
						 
					 
				
					
						
							
							
								Sebastien Bourdeauducq 
							
						 
						
							
							
							
							
								
							
							
								67c06b4540 
								
							 
						 
						
							
							
								
								README: add clarification about HLS  
							
							
							
						 
						
							2019-06-24 10:00:31 +08: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