whitequark 
							
						 
						
							
							
							
							
								
							
							
								a7fbff94d8 
								
							 
						 
						
							
							
								
								hdl.{ast,cd,dsl,xfrm}: reject inappropriately used comb domain.  
							
							... 
							
							
							
							Fixes  #125 . 
						
							2019-07-08 10:26:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								5c63177fc2 
								
							 
						 
						
							
							
								
								test: generate examples to verilog as part of unit tests.  
							
							... 
							
							
							
							This is to make sure 806a62c2 doesn't happen again. 
							
						 
						
							2019-07-08 10:12:26 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								447bfa6ad5 
								
							 
						 
						
							
							
								
								compat.genlib.fsm: fix after commit  dac62754.  
							
							
							
						 
						
							2019-07-08 10:12:26 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ec7fcd3697 
								
							 
						 
						
							
							
								
								hdl.xfrm: don't overwrite source locations on ClockDomain signals.  
							
							... 
							
							
							
							On the sample of examples/basic/*.py, there are no remaining
incorrectly inferred locations. 
							
						 
						
							2019-07-08 09:58:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8c9fdf907f 
								
							 
						 
						
							
							
								
								hdl.{dsl,mem,xfrm}: inject appropriate source locations.  
							
							... 
							
							
							
							This primarily fixes the problem with source location precision in
Module (which used to trace locations from __exit__ of the context
managers, by which point everything interesting has been lost), but
also improves memory port and control inserter source locations.
On the sample of examples/basic/*.py, the only incorrectly inferred
remaining location is clk pointing to hdl/mem.py:166. 
							
						 
						
							2019-07-08 09:58:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								710a8d0bc1 
								
							 
						 
						
							
							
								
								back.rtlil: ignore empty source locations.  
							
							... 
							
							
							
							This was a bug introduced during refactoring in 2492f490 
							
						 
						
							2019-07-08 09:58:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								dac6275493 
								
							 
						 
						
							
							
								
								hdl.ast: use keyword-only arguments as appropriate.  
							
							... 
							
							
							
							As a motivation/related refactor, make sure each AST node exposes
src_loc_at in the constructor. 
							
						 
						
							2019-07-08 09:58:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								70f3563b5f 
								
							 
						 
						
							
							
								
								back.rtlil: attach source locations to switches, not processes.  
							
							... 
							
							
							
							This effectively reverts and reimplements half of commit 82903e49 
							
						 
						
							2019-07-08 09:10:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2492f490f5 
								
							 
						 
						
							
							
								
								back.rtlil: use a more principled approach to attributes. NFC.  
							
							... 
							
							
							
							This also refactors the RTLIL builder to use a more aspect-oriented
approach. 
							
						 
						
							2019-07-08 09:10:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								31c54d32ef 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: generate also binary bitfile.  
							
							... 
							
							
							
							Fixes  #139 . 
						
							2019-07-07 21:36:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								b404d603fb 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan_3_6: Add Spartan3A family support.  
							
							
							
						 
						
							2019-07-07 20:44:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cb02a452e9 
								
							 
						 
						
							
							
								
								vendor.lattice_ecp5: don't leave LUT inputs disconnected.  
							
							... 
							
							
							
							This causes YosysHQ/nextpnr#301.
Fixes  #136 . 
							
						 
						
							2019-07-07 02:34:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								da1f58b7ae 
								
							 
						 
						
							
							
								
								hdl.dsl: further clarify error message for incorrect nesting.  
							
							... 
							
							
							
							Fixes  #133 . 
						
							2019-07-07 01:03:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cb8be4a1b0 
								
							 
						 
						
							
							
								
								hdl.dsl: clarify error message for incorrect nesting.  
							
							... 
							
							
							
							Refs #133 . 
							
						 
						
							2019-07-07 00:59:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3388b5b085 
								
							 
						 
						
							
							
								
								hdl.dsl: gracefully handle FSM with no states.  
							
							
							
						 
						
							2019-07-07 00:59:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								146f3cb684 
								
							 
						 
						
							
							
								
								build.plat: source a script with toolchain environment.  
							
							... 
							
							
							
							Fixes  #131 . 
						
							2019-07-07 00:44:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								744154ebb5 
								
							 
						 
						
							
							
								
								build.run: only use os.path on the target OS.  
							
							... 
							
							
							
							Before this commit, BuildPlan.add_file would use os.path.normpath,
which would be the wrong thing for cross-builds. 
							
						 
						
							2019-07-07 00:18:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ba64eb2037 
								
							 
						 
						
							
							
								
								build.run: make BuildProducts abstract, add LocalBuildProducts.  
							
							... 
							
							
							
							This makes it clear that we plan to have remote builds as well.
Also, document everything in build.run. 
							
						 
						
							2019-07-07 00:09:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1ee21d2007 
								
							 
						 
						
							
							
								
								build.plat, vendor.*: don't join strings passed as _opts overrides.  
							
							... 
							
							
							
							Right now an array is expected in any _opts overrides, and if it is
actually a string (because it is passed via an environment variable,
usually), awkwardness results as each character is joined with ` `.
Fixes  #130 . 
							
						 
						
							2019-07-06 23:09:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b6b9f0fc21 
								
							 
						 
						
							
							
								
								build.run: make sure BuildProducts._root is not easily accessible.  
							
							
							
						 
						
							2019-07-06 18:52:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Staf Verhaegen 
							
						 
						
							
							
							
							
								
							
							
								2829d04033 
								
							 
						 
						
							
							
								
								vendor.xilinx_{7series,spartan6}: Support extra VHDL files.  
							
							
							
						 
						
							2019-07-04 21:13:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2e4cc47fcb 
								
							 
						 
						
							
							
								
								hdl.dsl: fix src_loc_at for FSM state signal.  
							
							
							
						 
						
							2019-07-03 16:34:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								82903e493a 
								
							 
						 
						
							
							
								
								back.rtlil: emit \src attributes for processes via Switch and Assign.  
							
							... 
							
							
							
							The locations are unfortunately not very precise, but they provide
some improvement over status quo. 
							
						 
						
							2019-07-03 16:27:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e351e27206 
								
							 
						 
						
							
							
								
								hdl.ast: fix src_loc_at for Mux().  
							
							
							
						 
						
							2019-07-03 15:25:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b471e33d7f 
								
							 
						 
						
							
							
								
								build.res: detect physical conflicts earlier.  
							
							... 
							
							
							
							This is useful for two reasons:
  1. nMigen can provide better error messages than the platform and
     do it earlier in the build pipeline.
  2. Many platforms handle diffpairs by only constraining the P pin;
     the N pin is completely ignored. If this is undetected,
     downstream users (human or software) can rely on this
     information assuming it is correct and introduce more errors.
     (Of course, this will not catch every mistake, but the most
     common is a copy-paste issue, and that will handle it.)
Fixes  #124 . 
							
						 
						
							2019-07-03 15:07:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								7059cb4931 
								
							 
						 
						
							
							
								
								hdl.rec: thread src_loc_at to all inner Signals and Records.  
							
							
							
						 
						
							2019-07-03 14:49:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								33f21628bb 
								
							 
						 
						
							
							
								
								vendor: give names to IO buffer instances.  
							
							... 
							
							
							
							Fixes  #123 . 
						
							2019-07-03 14:43:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								5800f00776 
								
							 
						 
						
							
							
								
								hdl.rec: accept Record(src_loc_at=...).  
							
							
							
						 
						
							2019-07-03 14:35:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								668ff40a75 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: mark CompatMemory as Elaboratable.  
							
							... 
							
							
							
							This suppresses a warning that is not useful in the compat context. 
							
						 
						
							2019-07-03 13:28:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								eeb6aca93d 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: use "sync" as default domain, not "sys".  
							
							... 
							
							
							
							In compat.fhdl.module, we already default to "sync" as the default
clocked domain. Using "sys" in memories only would be inconsistent
and result in more bugs. 
							
						 
						
							2019-07-03 13:25:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c98b8f7c07 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix Memory.get_port() after  94e8f479.  
							
							... 
							
							
							
							This also makes sure the native ports are instantiated for correct
clock domain. 
							
						 
						
							2019-07-03 13:24:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9eb81609d6 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: fix If/Elif/Else after  32446831.  
							
							
							
						 
						
							2019-07-03 13:19:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Sebastien Bourdeauducq 
							
						 
						
							
							
							
							
								
							
							
								9a1048af50 
								
							 
						 
						
							
							
								
								lattice_ecp5: fix get_input  
							
							
							
						 
						
							2019-07-03 10:25:32 +08:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0ab215e5ed 
								
							 
						 
						
							
							
								
								hdl.ast: recognize a Enum used as decoder and format it better.  
							
							
							
						 
						
							2019-07-02 19:34:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								7cc0b8cbf0 
								
							 
						 
						
							
							
								
								hdl.mem: fix naming of registers inside unnamed memories.  
							
							... 
							
							
							
							Before this commit, `None` would leak into the vcd file with pysim. 
							
						 
						
							2019-07-02 18:45:35 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								20553b1478 
								
							 
						 
						
							
							
								
								build.plat: add iter_extra_files method.  
							
							... 
							
							
							
							* vendor.*: employ iter_extra_files. 
							
						 
						
							2019-07-02 18:25:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ea25806971 
								
							 
						 
						
							
							
								
								back.rtlil: emit \sig$next wires instead of \$next\sig. NFC.  
							
							... 
							
							
							
							Just a bit more readable. 
							
						 
						
							2019-07-02 18:06:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								dd5e513e42 
								
							 
						 
						
							
							
								
								back.rtlil: do not emit $next wires for comb signals.  
							
							... 
							
							
							
							According to RTLIL semantics (that was undocumented before today),
the only purpose of `sync always` is to enable inference of latches,
because there is no other way to express them in terms of RTLIL
processes without ending up with a combinatorial loop. But, nMigen
specifically avoids latches, so this is not necessary.
This change results in major improvements in Verilog readability.
See also #98 . 
							
						 
						
							2019-07-02 18:05:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6b843b5be6 
								
							 
						 
						
							
							
								
								hdl.rec: implement slicing by component names.  
							
							... 
							
							
							
							Fixes  #121 . 
						
							2019-07-02 17:46:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								34f110100a 
								
							 
						 
						
							
							
								
								hdl.rec: implement Record.like.  
							
							... 
							
							
							
							Fixes  #120 . 
						
							2019-07-02 17:46:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								b67f5cfa65 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: read extra .xdc files.  
							
							
							
						 
						
							2019-07-02 08:23:37 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								94e8f479a5 
								
							 
						 
						
							
							
								
								hdl.mem: use read_port(domain="comb") for asynchronous read ports.  
							
							... 
							
							
							
							This avoids the absurdity of the combination of arguments that is
read_port(domain="sync", synchronous=True).
Fixes  #116 . 
							
						 
						
							2019-07-01 19:56:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f75a0163f9 
								
							 
						 
						
							
							
								
								back.rtlil: fix Array regression in  32446831.  
							
							... 
							
							
							
							Fixes  #117 . 
						
							2019-07-01 01:53:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9c54d0c061 
								
							 
						 
						
							
							
								
								back.pysim: create unique ResetSynchronizer internal domains.  
							
							... 
							
							
							
							Commit 300d47ca779f3ee9 
							
						 
						
							2019-06-28 08:34:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								300d47ca2e 
								
							 
						 
						
							
							
								
								back.pysim: override ResetSynchronizer implementation.  
							
							... 
							
							
							
							This was rewritten to use Yosys cells in 779f3ee9 
							
						 
						
							2019-06-28 07:49:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								779f3ee906 
								
							 
						 
						
							
							
								
								lib.cdc: avoid interior clock domains in ResetSynchronizer.  
							
							... 
							
							
							
							Such clock domains will "leak" into the enclosing scope, which is
generally undesirable. Also, this is instructive for a platform
overriding the behavior, since it provides guidance on how to
correctly instantiate platform-specific flops.
I've considered also doing this for MultiReg(), but it is very
challenging in presence of non-reset-less CDC FFs, since Yosys'
$dffsr primitive has separate set and clear inputs, and reshuffling
the reset value for those results in quite a bit of additional logic.
(That said, it might have to be done anyway, precisely because
letting Yosys generate this additional logic might prove too much
for the toolchain to cope with, and again, platform-independent
code should provide guidance to platform-specific code.) 
							
						 
						
							2019-06-28 07:34:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								21379dd44b 
								
							 
						 
						
							
							
								
								lib.cdc: eliminate no_retiming attributes.  
							
							... 
							
							
							
							See #115  for rationale. 
							
						 
						
							2019-06-28 07:22:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6454378fe7 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: fix instance of negedge FF due to a typo.  
							
							
							
						 
						
							2019-06-28 07:05:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								1609a5ba54 
								
							 
						 
						
							
							
								
								build.plat: fix dedent overrides.  
							
							
							
						 
						
							2019-06-28 06:52:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								32446831b4 
								
							 
						 
						
							
							
								
								hdl.{ast,dsl}, back.{pysim,rtlil}: allow multiple case values.  
							
							... 
							
							
							
							This means that instead of:
    with m.Case(0b00):
        <body>
    with m.Case(0b01):
        <body>
it is legal to write:
    with m.Case(0b00, 0b01):
        <body>
with no change in semantics, and slightly nicer RTLIL or Verilog
output.
Fixes  #103 . 
							
						 
						
							2019-06-28 04:37:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								48d4ee4031 
								
							 
						 
						
							
							
								
								hdl.ir, back.rtlil: allow specifying attributes on instances.  
							
							... 
							
							
							
							Fixes  #107 . 
						
							2019-06-28 04:14:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6f4e3156d8 
								
							 
						 
						
							
							
								
								back.pysim: fix scope screwup.  
							
							
							
						 
						
							2019-06-26 05:22:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2f7e52369c 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: fix typo.  
							
							
							
						 
						
							2019-06-25 22:01:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b1af0601fa 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: simplify handling of default case.  
							
							
							
						 
						
							2019-06-25 22:01:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e5e23644a4 
								
							 
						 
						
							
							
								
								hdl.{ast,dst}: directly represent RTLIL default case.  
							
							... 
							
							
							
							This makes RTLIL mildly nicer:
 casez ({ \$5 , \$3 , \$1  })
   3'bzz1:
       \$next\o  = \$7 ;
   3'bz1z:
       \$next\o  = \$9 ;
   3'b1zz:
       \$next\o  = \$11 ;
-  3'bz:
+  default:
       { \$next\co , \$next\o  } = \$13 ;
 endcase 
							
						 
						
							2019-06-25 22:01:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f60ceb349b 
								
							 
						 
						
							
							
								
								vendor.xilinx_{spartan6,7series}: speedgrade→speed.  
							
							... 
							
							
							
							For consistency with ECP5. 
							
						 
						
							2019-06-25 15:51:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0a145ed2d9 
								
							 
						 
						
							
							
								
								vendor.lattice_ecp5: implement.  
							
							... 
							
							
							
							Note that because of issues with Yosys and nextpnr, it is not yet
possible to use either SDR or DDR I/O. 
							
						 
						
							2019-06-25 15:48:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								23ed888857 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: use different --package for 4k devices.  
							
							
							
						 
						
							2019-06-19 06:09:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								b3c5ff7e95 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: fix IOB packing.  
							
							
							
						 
						
							2019-06-17 20:48:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3fc5f170e6 
								
							 
						 
						
							
							
								
								vendor.xilinx_{7series,spartan6}: emit IBUF/OBUF explicitly.  
							
							... 
							
							
							
							Do this to make sure all buffers, tristate/differential or not, are
instantiated the exact same way, and are subject to the same set of
toolchain bugs, if any. 
							
						 
						
							2019-06-17 15:47:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2a8e7bc6f2 
								
							 
						 
						
							
							
								
								vendor.xilinx_{7series,spartan6}: cleanup. NFC.  
							
							... 
							
							
							
							Eliminate some intermediate signals if they are not necessary.
Do not even return i, o, or t if the pin does not have them. 
							
						 
						
							2019-06-17 15:47:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8b34602d91 
								
							 
						 
						
							
							
								
								vendor.xilinx_{7series,spartan6}: connect FCDE and IOB directly.  
							
							... 
							
							
							
							Before this commit, in some cases there will be an inverter, which is
not allowed on an FDCE with IOB attribute set to true, as it will
interfere with packing. 
							
						 
						
							2019-06-17 15:47:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								04c07715b4 
								
							 
						 
						
							
							
								
								build.plat: dedent overrides.  
							
							
							
						 
						
							2019-06-16 12:40:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								70bbfecf6d 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: never place an inverter on global buffer output.  
							
							... 
							
							
							
							This would make `pin.i` not a global network anymore, which is likely
undesirable if an explicit Attrs(GLOBAL=1) is specified. 
							
						 
						
							2019-06-14 20:44:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								01a3101fd3 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: implement inverters.  
							
							
							
						 
						
							2019-06-13 15:14:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								412781e0c3 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan6: implement DDR I/O buffers and inverters.  
							
							
							
						 
						
							2019-06-13 15:13:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2566747061 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: fix Case().makedefault().  
							
							... 
							
							
							
							Fixes  #100 . 
						
							2019-06-13 03:56:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f689b777b4 
								
							 
						 
						
							
							
								
								compat.fhdl.structure: always order default case as the very last.  
							
							
							
						 
						
							2019-06-13 03:56:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f1174655b1 
								
							 
						 
						
							
							
								
								hdl.ast: tighten assertion in Switch().  
							
							
							
						 
						
							2019-06-13 03:56:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6beba3a48b 
								
							 
						 
						
							
							
								
								Simplify code by using Signal.like(name_suffix="..") appropriately.  
							
							
							
						 
						
							2019-06-12 22:28:45 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e52b15d236 
								
							 
						 
						
							
							
								
								hdl.ast: add name_suffix=".." option to Signal.like().  
							
							... 
							
							
							
							This simplifies creation of related signals with nice names during
metaprogramming, e.g.
  def make_ff(m, sig):
      sig_ff = Signal.like(sig, name_suffix="_ff")
      m.d.sync += sig_ff.eq(sig)
      return sig_ff 
							
						 
						
							2019-06-12 22:26:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								3b303c3334 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: implement DDR I/O buffers.  
							
							
							
						 
						
							2019-06-12 19:55:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								d3ed390b9d 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: fix typo.  
							
							
							
						 
						
							2019-06-12 17:38:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								efb2d773c3 
								
							 
						 
						
							
							
								
								build.{dsl,res,plat}: add PinsN and DiffPairsN.  
							
							
							
						 
						
							2019-06-12 14:42:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ad1a40c934 
								
							 
						 
						
							
							
								
								hdl.ast: implement values with custom lowering.  
							
							
							
						 
						
							2019-06-11 07:01:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								066dd799e8 
								
							 
						 
						
							
							
								
								back.pysim: check for a clock being added twice.  
							
							... 
							
							
							
							This commit adds a best-effort error for a common mistake of adding
a clock driving the same domain twice, such as a result of
a copy-paste error.
Fixes  #27 . 
							
						 
						
							2019-06-11 03:54:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								d2d8c2b8bf 
								
							 
						 
						
							
							
								
								back.rtlil: mask memory init values.  
							
							... 
							
							
							
							This handles both init values that are too wide, which happens if
their magnitude is too high, or if they're negative.
Fixes  #96 . 
							
						 
						
							2019-06-11 03:43:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								58e39f90ce 
								
							 
						 
						
							
							
								
								hdl.mem: coerce memory init values to integers.  
							
							... 
							
							
							
							The coercion is carefully chosen to accept (other than normal ints)
instances of e.g. np.int64, but reject instances of e.g. float.
See https://stackoverflow.com/a/48940855/254415  for details.
Fixes  #93 . 
							
						 
						
							2019-06-11 03:38:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Simon Kirkby 
							
						 
						
							
							
							
							
								
							
							
								2423eabc15 
								
							 
						 
						
							
							
								
								lib.cdc: fix typo.  
							
							
							
						 
						
							2019-06-09 10:24:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								d5ba26b174 
								
							 
						 
						
							
							
								
								vendor.xilinx_spartan6: implement.  
							
							
							
						 
						
							2019-06-07 08:58:41 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								2b3a0e9fa0 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: fix typos.  
							
							
							
						 
						
							2019-06-07 07:33:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								12e8fe484d 
								
							 
						 
						
							
							
								
								build.dsl: fix precondition check in Pins.  
							
							
							
						 
						
							2019-06-06 20:40:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								f26e612899 
								
							 
						 
						
							
							
								
								vendor.xilinx_7series: implement.  
							
							
							
						 
						
							2019-06-06 13:22:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b45c5119f5 
								
							 
						 
						
							
							
								
								build.res: allow querying frequency of a previously constrained clock.  
							
							
							
						 
						
							2019-06-05 12:51:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c9879c795b 
								
							 
						 
						
							
							
								
								build.{dsl,res,plat}: apply clock constraints to signals, not resources.  
							
							... 
							
							
							
							This adds the Clock() build DSL element, and adds a resource manager
function add_clock_constraint() that takes a Pin or a Signal.
Note that not all platforms, in particular not any nextpnr platforms
at the moment, can add constraints on arbitrary signals.
Fixes  #86 . 
							
						 
						
							2019-06-05 08:52:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ab3f103e5a 
								
							 
						 
						
							
							
								
								build.dsl: replace extras= with Attrs().  
							
							... 
							
							
							
							This change proved more tricky than expected due to downstream
dependencies, so it also includes some secondary refactoring. 
							
						 
						
							2019-06-05 07:02:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c52cd72d3e 
								
							 
						 
						
							
							
								
								Typos and style fixes. NFC.  
							
							
							
						 
						
							2019-06-05 02:48:41 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								452c4b380b 
								
							 
						 
						
							
							
								
								vendor.lattice_ice40: normalize device names.  
							
							... 
							
							
							
							Right now the device name in the board file is just the option
nextpnr uses, but that's overnormalized and doesn't quite match
the chip names used elsewhere. It is even worse for ECP5 in terms
of mismatch with chip names, and for ECP5 we need to support other
toolchains as well, so let's handle this uniformly everywhere. 
							
						 
						
							2019-06-04 16:09:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4379a5d6fe 
								
							 
						 
						
							
							
								
								hdl.ir: rephrase elaboratable warning to not look like an error.  
							
							
							
						 
						
							2019-06-04 13:11:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								537d91851d 
								
							 
						 
						
							
							
								
								compat.fhdl.module: silence "unused elaboratable" warnings.  
							
							
							
						 
						
							2019-06-04 13:09:36 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								38917e4523 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix platform lowering for TSTriple again.  
							
							
							
						 
						
							2019-06-04 13:03:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								79a3710255 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix platform lowering.  
							
							... 
							
							
							
							get_tristate only has O/OE; the triple is created by get_input_output. 
							
						 
						
							2019-06-04 12:26:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0cbb743df9 
								
							 
						 
						
							
							
								
								compat.fhdl.module: implement some TODO'd deprecation warnings.  
							
							
							
						 
						
							2019-06-04 12:00:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3adce21ce3 
								
							 
						 
						
							
							
								
								build.run: fix product extraction to work on Windows.  
							
							... 
							
							
							
							Before this commit, it would fail with a "Permission denied" error. 
							
						 
						
							2019-06-04 11:40:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								63c4123f6e 
								
							 
						 
						
							
							
								
								build.plat: hide executed commands in quiet builds on Windows.  
							
							
							
						 
						
							2019-06-04 11:34:18 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1d3e9c8331 
								
							 
						 
						
							
							
								
								build.plat: allow (easily) overriding with an empty string on Windows.  
							
							
							
						 
						
							2019-06-04 11:33:51 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								39ca0e6fa6 
								
							 
						 
						
							
							
								
								compat.fhdl.module: CompatModule should be elaboratable.  
							
							... 
							
							
							
							Fixes  #83 . 
						
							2019-06-04 11:11:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4310254103 
								
							 
						 
						
							
							
								
								build.res: use ConstraintError iff a constraint invariant is violated.  
							
							... 
							
							
							
							In particular don't use it for type errors. 
							
						 
						
							2019-06-04 11:00:11 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								51c03ca391 
								
							 
						 
						
							
							
								
								hdl.xfrm: handle empty lhs in LHSGroup{Analyzer,Filter}.  
							
							
							
						 
						
							2019-06-04 10:26:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1b54eb80da 
								
							 
						 
						
							
							
								
								vendor.board: split off into nmigen-boards package.  
							
							... 
							
							
							
							The iCE40 programmers are also moved, since they're board-specific.
(It looks like iceprog isn't, but it only works with Lattice
evaluation kits.)
Fixes  #80 . 
							
						 
						
							2019-06-04 09:52:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								316ba10207 
								
							 
						 
						
							
							
								
								build.run: simplify using build products locally, e.g. for programming.  
							
							
							
						 
						
							2019-06-04 09:13:24 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2763b403f1 
								
							 
						 
						
							
							
								
								build.res: simplify emission of port constraints on individual bits.  
							
							
							
						 
						
							2019-06-04 08:39:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9f643ce005 
								
							 
						 
						
							
							
								
								Clean up imports.  
							
							... 
							
							
							
							This commit:
  * moves lists of universally useful imports from `nmigen` to
    `nmigen.hdl` and `nmigen.lib`, reimporting them in `nmigen`;
  * replaces lots of imports from individual parts of `nmigen.hdl`
    with a star import from `nmigen.hdl`;
  * replaces imports in tests with what we expect downstream code
    to use;
  * adds some missing imports in `nmigen.formal`. 
							
						 
						
							2019-06-04 08:18:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3194b5c90b 
								
							 
						 
						
							
							
								
								build.run: extract from build.plat.  
							
							
							
						 
						
							2019-06-04 07:53:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c89c2ce941 
								
							 
						 
						
							
							
								
								vendor.board.tinyfpga_bx: clk16 pin does not have a global buffer.  
							
							... 
							
							
							
							Fixes  #82 . 
						
							2019-06-04 06:43:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								45d1dc1d54 
								
							 
						 
						
							
							
								
								vendor.board.tinyfpga_bx: fix typo.  
							
							
							
						 
						
							2019-06-04 06:20:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6426b90e4a 
								
							 
						 
						
							
							
								
								vendor.conn.pmod: implement.  
							
							... 
							
							
							
							Fixes  #79 . 
						
							2019-06-03 16:49:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0fa45b5e14 
								
							 
						 
						
							
							
								
								vendor.board: extract package.  
							
							
							
						 
						
							2019-06-03 16:14:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2ca0834d41 
								
							 
						 
						
							
							
								
								vendor.tinyfpga_bx: add connectors.  
							
							
							
						 
						
							2019-06-03 15:40:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								7c5461d210 
								
							 
						 
						
							
							
								
								vendor.icestick: add connectors.  
							
							
							
						 
						
							2019-06-03 15:15:45 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f351e2bd1e 
								
							 
						 
						
							
							
								
								vendor.ice40_hx1k_blink_evn: add (some) connectors.  
							
							... 
							
							
							
							I have no idea how to lay out the Arduino-like connectors best,
so they're just missing. 
							
						 
						
							2019-06-03 15:03:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ed64880cc4 
								
							 
						 
						
							
							
								
								build.{plat,res}: add support for connectors.  
							
							... 
							
							
							
							Fixes  #77 . 
						
							2019-06-03 15:02:15 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a013eb1f59 
								
							 
						 
						
							
							
								
								build.dsl: add support for connectors.  
							
							
							
						 
						
							2019-06-03 13:47:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4c443a7ef5 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: TSTriple is not an elaboratable.  
							
							
							
						 
						
							2019-06-03 09:39:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								639e64c388 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: implement differential output buffers.  
							
							
							
						 
						
							2019-06-03 09:28:27 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								41adcc3f97 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: implement differential input buffers.  
							
							
							
						 
						
							2019-06-03 08:38:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3116d4add2 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: allow instantiating SB_GB_IO via extras.  
							
							
							
						 
						
							2019-06-03 07:54:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								185abb492d 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: implement SDR and DDR I/O buffers.  
							
							
							
						 
						
							2019-06-03 07:43:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b42043f764 
								
							 
						 
						
							
							
								
								lib.io: add i_clk and o_clk to pin layout with xdr>=1.  
							
							
							
						 
						
							2019-06-03 07:43:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a1940c5528 
								
							 
						 
						
							
							
								
								hdl.rec: unbreak hasattr(rec, ...).  
							
							... 
							
							
							
							hasattr() requires that AttributeError be raised. Change __getitem__
to raise AttributeError, too, since it is fundamentally just sugar
for getattr(). 
							
						 
						
							2019-06-03 07:43:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6fae06aea9 
								
							 
						 
						
							
							
								
								build.{dsl,plat,res}: allow dir="oe".  
							
							... 
							
							
							
							Although a dir="oe" pin is generally equivalent to dir="io" pin with
the i* signal(s) disconnected, they are not equivalent, because some
pins may not be able to support input buffers at all, either because
there are no input buffers, or because the input buffers are consumed
by some other resource.
E.g. this can happen on iCE40 when the input buffer is consumed by
a PLL. 
							
						 
						
							2019-06-03 04:42:55 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1eee7cd76f 
								
							 
						 
						
							
							
								
								lib.io: allow dir="oe".  
							
							... 
							
							
							
							Although a dir="oe" pin is generally equivalent to dir="io" pin with
the i* signal(s) disconnected, they are not equivalent, because some
pins may not be able to support input buffers at all, either because
there are no input buffers, or because the input buffers are consumed
by some other resource.
E.g. this can happen on iCE40 when the input buffer is consumed by
a PLL. 
							
						 
						
							2019-06-03 04:28:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9ba2efd86b 
								
							 
						 
						
							
							
								
								build.{res,plat}: use xdr=0 as default, not xdr=1.  
							
							... 
							
							
							
							The previous behavior was semantically incorrect. 
							
						 
						
							2019-06-03 03:36:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cd6488c782 
								
							 
						 
						
							
							
								
								build.res: allow requesting raw ports, with dir="-".  
							
							... 
							
							
							
							This provides an escape hatch for the case where the nMigen platform
code is not flexible enough, and a IO buffer primitive needs to be
instantiated directly. 
							
						 
						
							2019-06-03 03:36:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c30617fc05 
								
							 
						 
						
							
							
								
								lib.io: allow Pin(xdr=0), representing a combinatorial I/O buffer.  
							
							
							
						 
						
							2019-06-03 03:36:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3327deae92 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: enable SystemVerilog when reading .sv files.  
							
							
							
						 
						
							2019-06-03 03:01:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f417725b10 
								
							 
						 
						
							
							
								
								build.res: if not specified, request resource  #0 .  
							
							... 
							
							
							
							This markedly differs from oMigen system, which would request
consecutive resources. The difference is deliberate; most resources
are singular, so it does not matter for them, and for resources where
it does matter, which pins are requested should not depend on order
of execution of `platform.request`. 
							
						 
						
							2019-06-03 02:54:17 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								dc17d06fe9 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: instantiate SB_IO and apply extras.  
							
							... 
							
							
							
							The PULLUP and PULLUP_RESISTOR extras are representable in the PCF
file. The IO_STANDARD extra, however, can only be an SB_IO parameter. 
							
						 
						
							2019-06-03 02:51:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c6a0761b3a 
								
							 
						 
						
							
							
								
								hdl.ir: accept LHS signals like slices as Instance io ports.  
							
							... 
							
							
							
							This is unlikely to work with anything except Slice and Cat, but
there's no especially good place to enforce it. (Maybe in Instance?) 
							
						 
						
							2019-06-03 02:39:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b8a61edc2f 
								
							 
						 
						
							
							
								
								hdl.dsl: allow adding submodules with computed name, like with domains.  
							
							
							
						 
						
							2019-06-03 02:22:55 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b64a31255c 
								
							 
						 
						
							
							
								
								hdl.ir: accept expanded (kind, name, value) tuples in Instance.  
							
							... 
							
							
							
							This is useful for e.g. programmatically generating parameters
without having to mess with kwargs dicts. 
							
						 
						
							2019-06-03 02:12:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								fb01854372 
								
							 
						 
						
							
							
								
								build.{res,plat}: propagate extras to pin fragment factories.  
							
							... 
							
							
							
							This is necessary because on some platforms, like iCE40, extras
become parameters on an IO primitive, since the constraint file
format is not expressive enough for all of them. 
							
						 
						
							2019-06-03 01:58:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								268fe6330e 
								
							 
						 
						
							
							
								
								build.res: simplify. NFC.  
							
							
							
						 
						
							2019-06-03 01:29:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								98497b2075 
								
							 
						 
						
							
							
								
								build.dsl: require a dict for extras instead of a stringly array.  
							
							... 
							
							
							
							Fixes  #72 . 
						
							2019-06-02 23:36:21 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e4ebe03115 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: use .bin suffix for bitstream tempfiles.  
							
							
							
						 
						
							2019-06-02 04:12:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								37152c733e 
								
							 
						 
						
							
							
								
								vendor.tinyfpga_{b→bx}  
							
							
							
						 
						
							2019-06-02 04:11:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								bff08c5016 
								
							 
						 
						
							
							
								
								vendor.tinyfpga_b: fix IO_STANDARD.  
							
							
							
						 
						
							2019-06-02 04:04:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Simon Kirkby 
							
						 
						
							
							
							
							
								
							
							
								358b98e5de 
								
							 
						 
						
							
							
								
								vendor.tinyfpga_b: implement.  
							
							
							
						 
						
							2019-06-02 01:20:09 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								39fad9a955 
								
							 
						 
						
							
							
								
								vendor.icestick: fix typo.  
							
							
							
						 
						
							2019-06-02 01:13:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ba0fcddb2c 
								
							 
						 
						
							
							
								
								vendor.ice40_hx1k_blink_evn: implement.  
							
							
							
						 
						
							2019-06-01 16:48:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								eab372383a 
								
							 
						 
						
							
							
								
								vendor.icestick: implement.  
							
							
							
						 
						
							2019-06-01 16:47:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								321d245e95 
								
							 
						 
						
							
							
								
								vendor.fpga.lattice_ice40: implement.  
							
							
							
						 
						
							2019-06-01 16:47:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b1eab9fb3b 
								
							 
						 
						
							
							
								
								build.plat: implement.  
							
							
							
						 
						
							2019-06-01 16:43:27 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								53ddff9f33 
								
							 
						 
						
							
							
								
								build.res: always return a Pin record.  
							
							... 
							
							
							
							In the simple cases, a Pin record consisting of exactly one field
is equivalent in every way to this single field. In the more complex
case however, it can be used as a record, making the code more robust
such that it works with both bidirectional and unidirectional pins. 
							
						 
						
							2019-06-01 16:41:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8c1b5a26b3 
								
							 
						 
						
							
							
								
								build.res: accept a list of clocks in ConstraintManager constructor.  
							
							
							
						 
						
							2019-06-01 15:41:41 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f17375a60b 
								
							 
						 
						
							
							
								
								back.rtlil: allow specifying platform for convert().  
							
							
							
						 
						
							2019-05-26 17:10:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								578dba263f 
								
							 
						 
						
							
							
								
								Add versioneer.  
							
							
							
						 
						
							2019-05-26 11:20:13 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b0ba960296 
								
							 
						 
						
							
							
								
								hdl.ir: silence unused elaboratable warning on interpreter crash.  
							
							
							
						 
						
							2019-05-26 10:48:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								d393c5ec64 
								
							 
						 
						
							
							
								
								build.res: add ConstraintManager.  
							
							
							
						 
						
							2019-05-26 01:26:58 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3a9fe31133 
								
							 
						 
						
							
							
								
								build.dsl: make Pins and DiffPairs iterable.  
							
							... 
							
							
							
							Returns pin names. 
							
						 
						
							2019-05-25 22:43:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								48145cee02 
								
							 
						 
						
							
							
								
								build.dsl: improve repr of Pins() and DiffPairs().  
							
							
							
						 
						
							2019-05-25 22:43:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2b7dc37ffe 
								
							 
						 
						
							
							
								
								hdl.rec: allow providing fields during construction.  
							
							... 
							
							
							
							This allows creating records populated with e.g. signals with custom
names, or sub-records that are instances of Record subclasses. 
							
						 
						
							2019-05-25 22:06:56 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3392708e2b 
								
							 
						 
						
							
							
								
								Consider Instances a part of containing fragment for use-def purposes.  
							
							... 
							
							
							
							Fixes  #70 . 
						
							2019-05-25 20:13:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Chris Osterwood 
							
						 
						
							
							
							
							
								
							
							
								699fe5a675 
								
							 
						 
						
							
							
								
								Add import so that Tristate.elaborate builds  
							
							
							
						 
						
							2019-05-20 16:34:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c337246fc5 
								
							 
						 
						
							
							
								
								hdl.ir: when adding sync domain to a design, also add it to ports.  
							
							... 
							
							
							
							Otherwise we end up in a situation where the examples don't have
clk and rst as ports, which is not nice.
Fixes  #67 . 
							
						 
						
							2019-05-15 06:44:50 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								39bc59c924 
								
							 
						 
						
							
							
								
								hdl.ir: during port propagation, defs should take priority over uses.  
							
							
							
						 
						
							2019-05-13 15:34:13 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								921f506e69 
								
							 
						 
						
							
							
								
								back.rtlil: assign undriven signals to their reset value.  
							
							... 
							
							
							
							Fixes  #35 . 
						
							2019-05-13 08:33:55 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								744e33f42d 
								
							 
						 
						
							
							
								
								hdl: make all public Value classes other than Record final.  
							
							... 
							
							
							
							In some cases, nMigen uses type() instead of isinstance() to dispatch
on types. Make sure all such uses of type() are robust; in addition,
make it clear that nMigen AST classes are not meant to be subclassed.
(Record is an exception.)
Fixes  #65 . 
							
						 
						
							2019-05-12 05:40:17 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								958cb18b88 
								
							 
						 
						
							
							
								
								hdl.ir: only pull explicitly specified ports to toplevel, if any.  
							
							... 
							
							
							
							Fixes  #30 . 
						
							2019-05-12 05:21:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								6a77122c2e 
								
							 
						 
						
							
							
								
								lib.io: add a name argument to the Pin constructor.  
							
							
							
						 
						
							2019-04-24 22:02:20 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a982fbe377 
								
							 
						 
						
							
							
								
								build.dsl: style. NFC.  
							
							
							
						 
						
							2019-04-24 15:02:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								dd5bd1c88d 
								
							 
						 
						
							
							
								
								build: add DSL for defining platform resources.  
							
							
							
						 
						
							2019-04-24 11:49:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								97af266645 
								
							 
						 
						
							
							
								
								back.verilog: allow stripping the src attribute, for cleaner output.  
							
							
							
						 
						
							2019-04-22 14:59:53 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								c8e92c0612 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix Tristate, TSTriple.  
							
							... 
							
							
							
							* fix TSTriple instance.
* TSTriple, Tristate: tag as Elaboratable 
							
						 
						
							2019-04-22 09:57:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Alain Péteut 
							
						 
						
							
							
							
							
								
							
							
								371dc8bebe 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix Tristate.  
							
							
							
						 
						
							2019-04-22 08:49:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								93d15abcf1 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix TSTriple.  
							
							
							
						 
						
							2019-04-22 08:15:03 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								585514e6ed 
								
							 
						 
						
							
							
								
								hdl.ir: rework named port handling for Instances.  
							
							... 
							
							
							
							The main purpose of this rework is cleanup, to avoid specifying
the direction of input ports in an implicit, ad-hoc way using
the named ports and ports dictionaries.
While working on this I realized that output ports can be connected
to anything that is valid on LHS, so this is now supported too. 
							
						 
						
							2019-04-22 07:46:47 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								44711b7d08 
								
							 
						 
						
							
							
								
								hdl.ir: detect elaboratables that are created but not used.  
							
							... 
							
							
							
							Requres every elaboratable to inherit from Elaboratable, but still
accepts ones that do not, with a warning.
Fixes  #3 . 
							
						 
						
							2019-04-21 08:52:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								85ae99c1b4 
								
							 
						 
						
							
							
								
								back.rtlil: emit nmigen.hierarchy attribute.  
							
							... 
							
							
							
							Fixes  #54 . 
						
							2019-04-21 07:55:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								360bc9b5b4 
								
							 
						 
						
							
							
								
								hdl.ast: improve tests for exceptional conditions.  
							
							
							
						 
						
							2019-04-21 07:20:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								33f9bd2a1d 
								
							 
						 
						
							
							
								
								hdl.ast: accept Signals with identical min/max bounds.  
							
							... 
							
							
							
							And produce a 0-bit signal.
Fixes  #58 . 
							
						 
						
							2019-04-21 07:16:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								083016d747 
								
							 
						 
						
							
							
								
								back.rtlil: only expand legalized values in Array/Part context on RHS.  
							
							... 
							
							
							
							Otherwise the following code fails to compile:
    index = Signal(1)
    array = Array(range(2))
    with m.If(0 == array[index]):
        m.d.sync += index.eq(0)
Fixes  #51 . 
							
						 
						
							2019-04-21 06:43:31 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ce1eff5464 
								
							 
						 
						
							
							
								
								hdl.rec: implement Record.connect.  
							
							... 
							
							
							
							Fixes  #31 . 
						
							2019-04-21 06:37:08 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f22106e5ef 
								
							 
						 
						
							
							
								
								back.rtlil: allow record slices on LHS.  
							
							
							
						 
						
							2019-04-20 08:12:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								611c25f909 
								
							 
						 
						
							
							
								
								hdl.rec: fix slicing of records.  
							
							
							
						 
						
							2019-04-19 19:55:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								dda8f34d39 
								
							 
						 
						
							
							
								
								hdl.xfrm: handle classes that inherit from Record.  
							
							
							
						 
						
							2019-04-18 17:06:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								287a0531b3 
								
							 
						 
						
							
							
								
								lib.io: rework TSTriple/Tristate interface to use pin_layout/Pin.  
							
							
							
						 
						
							2019-04-15 16:27:23 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								50fa2516fa 
								
							 
						 
						
							
							
								
								hdl.ast: fix some type checks.  
							
							
							
						 
						
							2019-04-10 04:33:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								0a2a7025a6 
								
							 
						 
						
							
							
								
								hdl.xfrm: allow using FragmentTransformer on any elaboratable.  
							
							... 
							
							
							
							Fixes  #29 . 
						
							2019-04-10 00:23:11 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								49eef77c53 
								
							 
						 
						
							
							
								
								hdl: remove deprecated get_fragment() and lower() methods.  
							
							
							
						 
						
							2019-04-09 23:53:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a74cacdc69 
								
							 
						 
						
							
							
								
								hdl.ast: handle a common typo, such as Signal(1, True).  
							
							
							
						 
						
							2019-04-03 14:59:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								c9c9307a5e 
								
							 
						 
						
							
							
								
								test_sim: add missing add_process().  
							
							... 
							
							
							
							Fixes  #43 . 
						
							2019-03-28 17:50:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Luke Wren 
							
						 
						
							
							
							
							
								
							
							
								23a07b955f 
								
							 
						 
						
							
							
								
								lib.cdc: add optional reset to MultiReg, and document its use cases.  
							
							
							
						 
						
							2019-03-28 05:21:48 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								a57c72d606 
								
							 
						 
						
							
							
								
								back.rtlil: fix off-by-one in Part legalization.  
							
							... 
							
							
							
							Fixes  #52 . 
						
							2019-03-28 05:12:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								anuejn 
							
						 
						
							
							
							
							
								
							
							
								3c95299c4e 
								
							 
						 
						
							
							
								
								hdl.rec: separate record and signal name with __, not _.  
							
							... 
							
							
							
							This makes names of signals within records less ambiguous, in case
they themselves have underscores within them. 
							
						 
						
							2019-03-25 14:26:00 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								81ee2db163 
								
							 
						 
						
							
							
								
								hdl.ast: fix typo.  
							
							... 
							
							
							
							Fixes  #49 . 
						
							2019-03-25 10:50:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4027317835 
								
							 
						 
						
							
							
								
								lib.fifo: register GrayEncoder output before CDC.  
							
							... 
							
							
							
							Without this register, static hazards in the encoder could cause
multiple encoder output bits to toggle, which would be incorrectly
sampled by the 2FF synchronizer.
Reported by @Wren6991. 
							
						 
						
							2019-03-03 18:23:51 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e93bf4bf4b 
								
							 
						 
						
							
							
								
								tracer: factor out get_var_name(default=).  
							
							
							
						 
						
							2019-03-03 18:21:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cac4b10b82 
								
							 
						 
						
							
							
								
								hdl.rec: remove __slots__.  
							
							... 
							
							
							
							Left in by mistake. 
							
						 
						
							2019-03-03 18:21:22 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8ee6bd80ff 
								
							 
						 
						
							
							
								
								hdl.ir: raise a more descriptive error on non-elaboratable object.  
							
							
							
						 
						
							2019-02-14 20:52:42 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								43e4833ddb 
								
							 
						 
						
							
							
								
								back.rtlil: accept ast.Const as cell parameter.  
							
							
							
						 
						
							2019-01-26 23:25:54 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								bc5a127fd2 
								
							 
						 
						
							
							
								
								hdl.ast: fix ValueKey for Cat.  
							
							
							
						 
						
							2019-01-26 23:25:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e844b0e095 
								
							 
						 
						
							
							
								
								compat.fhdl.module: fix typo.  
							
							
							
						 
						
							2019-01-26 23:08:55 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ce7ba70462 
								
							 
						 
						
							
							
								
								compat.fhdl.specials: fix __all__ list.  
							
							
							
						 
						
							2019-01-26 22:59:33 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								6cd9f7db19 
								
							 
						 
						
							
							
								
								compat.genlib.resetsync: add shim for AsyncResetSynchronizer.  
							
							
							
						 
						
							2019-01-26 18:24:36 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2fb85a6170 
								
							 
						 
						
							
							
								
								compat.fifo: fix _FIFOInterface deprecation wrapper.  
							
							
							
						 
						
							2019-01-26 18:23:58 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f44ca291c1 
								
							 
						 
						
							
							
								
								lib.cdc: add ResetSynchronizer.  
							
							
							
						 
						
							2019-01-26 18:07:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								e74dbc3377 
								
							 
						 
						
							
							
								
								back.pysim: support async reset.  
							
							
							
						 
						
							2019-01-26 18:07:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								8686e9aa06 
								
							 
						 
						
							
							
								
								back.pysim: give better names to unnamed fragments and their signals.  
							
							... 
							
							
							
							Was: top.#0, top.None_clk
Now: top.U0, top.U0_clk
(U for Unnamed, or similarly, an unit refdes.) 
							
						 
						
							2019-01-26 18:07:16 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b133eb735f 
								
							 
						 
						
							
							
								
								back.rtlil: accept any elaboratable, not just fragments.  
							
							
							
						 
						
							2019-01-26 16:11:29 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								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 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								2412650f56 
								
							 
						 
						
							
							
								
								hdl.dsl: Support Assert and Assume where an Assign can occur.  
							
							
							
						 
						
							2019-01-02 11:17:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								William D. Jones 
							
						 
						
							
							
							
							
								
							
							
								e6517a33c7 
								
							 
						 
						
							
							
								
								hdl.ast: Add Assert and Assign statements.  
							
							
							
						 
						
							2019-01-02 11:17:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ea7e19ed5c 
								
							 
						 
						
							
							
								
								hdl.ast: experimentally add Value._as_const.  
							
							... 
							
							
							
							Useful for writing e.g. decoders that accept Cat, etc as argument. 
							
						 
						
							2019-01-01 09:50:39 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1a9dcd2f28 
								
							 
						 
						
							
							
								
								back.rtlil: fix typo.  
							
							
							
						 
						
							2019-01-01 08:50:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3c07d8d52c 
								
							 
						 
						
							
							
								
								hdl.rec: include record name in error message.  
							
							
							
						 
						
							2019-01-01 03:39:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								031a9e2616 
								
							 
						 
						
							
							
								
								hdl.rec: use a helpful error on unknown field reference.  
							
							
							
						 
						
							2019-01-01 03:35:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								d78e6c155b 
								
							 
						 
						
							
							
								
								hdl.mem: add DummyPort, for testing and verification.  
							
							
							
						 
						
							2019-01-01 03:08:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								ae3c5834ed 
								
							 
						 
						
							
							
								
								back.rtlil: match shape of Array elements to ArrayProxy shape.  
							
							... 
							
							
							
							Fixes  #15 . 
						
							2018-12-31 03:43:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cdc40eaa9b 
								
							 
						 
						
							
							
								
								back.rtlil: fix typo.  
							
							
							
						 
						
							2018-12-31 03:37:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								39eb2e8fa7 
								
							 
						 
						
							
							
								
								lib.cdc: fix tests to actually run.  
							
							
							
						 
						
							2018-12-29 15:02:44 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								849c649259 
								
							 
						 
						
							
							
								
								back.pysim: warn if simulation is not run.  
							
							... 
							
							
							
							This would have prevented 3ea35b85 
							
						 
						
							2018-12-29 15:02:04 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								92a96e1644 
								
							 
						 
						
							
							
								
								hdl.rec: add basic record support.  
							
							
							
						 
						
							2018-12-28 13:22:10 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								d66bbb0df8 
								
							 
						 
						
							
							
								
								tracer: factor out get_src_loc().  
							
							
							
						 
						
							2018-12-28 01:31:24 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3ea35b8566 
								
							 
						 
						
							
							
								
								lib.coding: fix tests to actually run, and fix code to fix tests.  
							
							
							
						 
						
							2018-12-27 21:45:55 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								470d66934f 
								
							 
						 
						
							
							
								
								hdl.dsl: add support for fsm.ongoing().  
							
							
							
						 
						
							2018-12-27 16:19:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								de50ccec90 
								
							 
						 
						
							
							
								
								hdl.mem: add missing __all__.  
							
							
							
						 
						
							2018-12-27 16:19:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								Jean-François Nguyen 
							
						 
						
							
							
							
							
								
							
							
								73ed870309 
								
							 
						 
						
							
							
								
								compat.genlib.coding: fix import.  
							
							
							
						 
						
							2018-12-26 14:30:01 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								528747703d 
								
							 
						 
						
							
							
								
								lib.coding: port from Migen.  
							
							
							
						 
						
							2018-12-26 13:19:34 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								fe8cb55204 
								
							 
						 
						
							
							
								
								lib.cdc: add tests for MultiReg.  
							
							
							
						 
						
							2018-12-26 12:58:30 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								35a44f017f 
								
							 
						 
						
							
							
								
								hdl.dsl: forbid m.next= inside of FSM but outside of FSM state, too.  
							
							
							
						 
						
							2018-12-26 12:42:43 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								934546e633 
								
							 
						 
						
							
							
								
								hdl.dsl: provide generated values for FSMs.  
							
							
							
						 
						
							2018-12-26 12:39:05 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								040811c2e5 
								
							 
						 
						
							
							
								
								hdl.ir: add an API for retrieving generated values, like FSM signal.  
							
							... 
							
							
							
							This is useful for tests. 
							
						 
						
							2018-12-26 12:35:35 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								597d778cf6 
								
							 
						 
						
							
							
								
								examples: add an FSM usage example (UART receiver).  
							
							
							
						 
						
							2018-12-26 10:10:27 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								72039b6072 
								
							 
						 
						
							
							
								
								hdl.dsl: add signal decoder to FSM state signal.  
							
							
							
						 
						
							2018-12-26 09:45:12 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								54e3195dcb 
								
							 
						 
						
							
							
								
								hdl.dsl: implement FSM.  
							
							
							
						 
						
							2018-12-26 08:55:04 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								b4fbef65ca 
								
							 
						 
						
							
							
								
								back.rtlil: clarify $verilog_initial_trigger behavior. NFC.  
							
							
							
						 
						
							2018-12-26 06:45:57 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								010ddb96b5 
								
							 
						 
						
							
							
								
								back.rtlil: unbreak  d47c1f8a.  
							
							
							
						 
						
							2018-12-24 19:11:07 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								f05bd2a137 
								
							 
						 
						
							
							
								
								hdl.mem: allow omitting memory simulation logic.  
							
							... 
							
							
							
							Trying to transform very large arrays is slow. 
							
						 
						
							2018-12-24 11:53:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								d47c1f8a8a 
								
							 
						 
						
							
							
								
								back.rtlil: use one $meminit cell, not one per word.  
							
							... 
							
							
							
							This is *far* more efficient. 
							
						 
						
							2018-12-24 11:53:58 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								98f554aa08 
								
							 
						 
						
							
							
								
								hdl.xfrm, back.rtlil: implement and use LHSGroupFilter.  
							
							... 
							
							
							
							This is a refactoring to simplify reusing the filtering code in
simulation, and separate that concern from backends in general. 
							
						 
						
							2018-12-24 02:17:28 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								1c7c75a254 
								
							 
						 
						
							
							
								
								hdl.xfrm: implement SwitchCleaner, for pruning empty switches.  
							
							
							
						 
						
							2018-12-24 02:02:59 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								fc0fb9d89f 
								
							 
						 
						
							
							
								
								back.rtlil: always output negative values as two's complement.  
							
							... 
							
							
							
							- is valid in RTLIL but means something entirely different. 
							
						 
						
							2018-12-24 01:38:32 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								5702767263 
								
							 
						 
						
							
							
								
								back.rtlil: emit dummy logic to work around Verilog deficiencies.  
							
							
							
						 
						
							2018-12-23 10:14:42 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								9faa1d3742 
								
							 
						 
						
							
							
								
								back.rtlil: do not translate empty fragments.  
							
							... 
							
							
							
							The resulting Verilog confuses some frontends. 
							
						 
						
							2018-12-23 09:20:02 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								45a474788c 
								
							 
						 
						
							
							
								
								back.rtlil: only translate switch tests once.  
							
							... 
							
							
							
							This seems to affect synthesis with Yosys but only marginally.
It is mostly a speed and readability improvement. 
							
						 
						
							2018-12-23 07:17:52 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								4e49772f67 
								
							 
						 
						
							
							
								
								cli: generate: guess file type from extension.  
							
							
							
						 
						
							2018-12-23 07:13:17 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								2b6ddbb713 
								
							 
						 
						
							
							
								
								back.rtlil: fix swapped operands in mux codegen.  
							
							
							
						 
						
							2018-12-23 06:47:38 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								cf79738744 
								
							 
						 
						
							
							
								
								cli: new module, for basic design generaton/simulation.  
							
							
							
						 
						
							2018-12-23 00:06:58 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								621dddebfd 
								
							 
						 
						
							
							
								
								hdl.xfrm: avoid cycles in union-find graph in LHSGroupAnalyzer.  
							
							
							
						 
						
							2018-12-22 22:19:14 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								3448953f61 
								
							 
						 
						
							
							
								
								compat.genlib.fsm: fix naming for non-Signal LHS.  
							
							
							
						 
						
							2018-12-22 22:00:58 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								68dae9f50e 
								
							 
						 
						
							
							
								
								hdl.ir: flatten hierarchy based on memory accesses, too.  
							
							
							
						 
						
							2018-12-22 21:43:46 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								fd89d2fc9d 
								
							 
						 
						
							
							
								
								hdl.ir: factor out _merge_subfragment. NFC.  
							
							
							
						 
						
							2018-12-22 19:04:49 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								59c7540aeb 
								
							 
						 
						
							
							
								
								back.rtlil: split processes as finely as possible.  
							
							... 
							
							
							
							This makes simulation work correctly (by introducing delta cycles,
and therefore, making the overall Verilog simulation deterministic)
at the price of pessimizing mux trees generated by Yosys and Synplify
frontends, sometimes severely. 
							
						 
						
							2018-12-22 10:03:16 +00:00 
							
								 
							
						 
					 
				
					
						
							
							
								whitequark 
							
						 
						
							
							
							
							
								
							
							
								d29929912f 
								
							 
						 
						
							
							
								
								back.rtlil: remove useless condition. NFC.  
							
							
							
						 
						
							2018-12-22 07:24:15 +00:00