aboutsummaryrefslogtreecommitdiffstats
path: root/backends/verilog
Commit message (Collapse)AuthorAgeFilesLines
...
* Add $specify2/$specify3 support to write_verilogClifford Wolf2019-04-231-0/+47
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add support for $assert/$assume/$cover to write_verilogClifford Wolf2019-04-231-0/+10
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add support for zero-width signals to Verilog back-end, fixes #948Clifford Wolf2019-04-221-0/+8
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add "whitebox" attribute, add "read_verilog -wb"Clifford Wolf2019-04-181-1/+1
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Improve determinism of IdString DB for similar scriptsClifford Wolf2019-03-111-0/+4
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add "write_verilog -siminit"Clifford Wolf2019-02-281-2/+11
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Instead of INIT param on cells, use initial statement with hier ref asEddie Hung2019-02-171-18/+13
| | | | per @cliffordwolf
* Merge https://github.com/YosysHQ/yosys into dff_initEddie Hung2019-02-171-38/+41
|\
| * write_verilog: correctly emit asynchronous transparent ports.whitequark2019-01-291-38/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes two related issues: * For asynchronous ports, clock is no longer added to domain list. (This would lead to absurd constructs like `always @(posedge 0)`. * The logic to distinguish synchronous and asynchronous ports is changed to correctly use or avoid clock in all cases. Before this commit, the following RTLIL snippet (after memory_collect) cell $memrd $2 parameter \MEMID "\\mem" parameter \ABITS 2 parameter \WIDTH 4 parameter \CLK_ENABLE 0 parameter \CLK_POLARITY 1 parameter \TRANSPARENT 1 connect \CLK 1'0 connect \EN 1'1 connect \ADDR \mem_r_addr connect \DATA \mem_r_data end would lead to invalid Verilog: reg [1:0] _0_; always @(posedge 1'h0) begin _0_ <= mem_r_addr; end assign mem_r_data = mem[_0_]; Note that there are two potential pitfalls remaining after this change: * For asynchronous ports, the \EN input and \TRANSPARENT parameter are silently ignored. (Per discussion in #760 this is the correct behavior.) * For synchronous transparent ports, the \EN input is ignored. This matches the behavior of the $mem simulation cell. Again, see #760.
* | Remove check for cell->name[0] == '$'Eddie Hung2019-02-061-1/+1
| |
* | RefactorEddie Hung2019-02-061-21/+5
| |
* | write_verilog to cope with init attr on q when -noexprEddie Hung2019-02-061-2/+32
|/
* Merge pull request #800 from whitequark/write_verilog_tribufClifford Wolf2019-01-271-0/+12
|\ | | | | write_verilog: write $tribuf cell as ternary
| * write_verilog: write $tribuf cell as ternary.whitequark2019-01-271-0/+12
| |
* | write_verilog: escape names that match SystemVerilog keywords.whitequark2019-01-271-0/+27
|/
* Fix handling of $shiftx in Verilog back-endClifford Wolf2019-01-151-3/+6
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Fix typographical and grammatical errors and inconsistencies.whitequark2019-01-021-1/+1
| | | | | | | | | | | | The initial list of hits was generated with the codespell command below, and each hit was evaluated and fixed manually while taking context into consideration. DIRS="kernel/ frontends/ backends/ passes/ techlibs/" DIRS="${DIRS} libs/ezsat/ libs/subcircuit" codespell $DIRS -S *.o -L upto,iff,thru,synopsys,uint More hits were found by looking through comments and strings manually.
* write_verilog: handle the $shift cell.whitequark2018-12-161-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation corresponds to the following Verilog, which is lifted straight from simlib.v: module \\$shift (A, B, Y); parameter A_SIGNED = 0; parameter B_SIGNED = 0; parameter A_WIDTH = 0; parameter B_WIDTH = 0; parameter Y_WIDTH = 0; input [A_WIDTH-1:0] A; input [B_WIDTH-1:0] B; output [Y_WIDTH-1:0] Y; generate if (B_SIGNED) begin:BLOCK1 assign Y = $signed(B) < 0 ? A << -B : A >> B; end else begin:BLOCK2 assign Y = A >> B; end endgenerate endmodule
* Merge pull request #736 from whitequark/select_assert_listClifford Wolf2018-12-161-1/+1
|\ | | | | select: print selection if a -assert-* flag causes an error
| * write_verilog: add a missing newline.whitequark2018-12-161-1/+1
| |
* | write_verilog: correctly map RTLIL `sync init`.whitequark2018-12-071-0/+2
|/
* adding offset info to memoriesrafaeltp2018-10-181-1/+1
|
* adding offset info to memoriesrafaeltp2018-10-181-2/+3
|
* Fixed typo in "verilog_write" help messageacw12512018-09-181-3/+3
|
* Add $lut support to Verilog back-endClifford Wolf2018-09-061-0/+13
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Consistent use of 'override' for virtual methods in derived classes.Henner Zeller2018-07-201-2/+2
| | | | | | | | | o Not all derived methods were marked 'override', but it is a great feature of C++11 that we should make use of. o While at it: touched header files got a -*- c++ -*- for emacs to provide support for that language. o use YS_OVERRIDE for all override keywords (though we should probably use the plain keyword going forward now that C++11 is established)
* Add $dlatch support to write_verilogClifford Wolf2018-04-221-0/+38
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add $shiftx support to verilog front-endClifford Wolf2017-10-071-0/+17
|
* Rename "write_verilog -nobasenradix" to "write_verilog -decimal"Clifford Wolf2017-10-031-16/+13
|
* Fixed wrong declaration in Verilog backenddh732017-10-011-3/+3
|
* Adding Cyclone IV (E, GX), Arria 10, Cyclone V and LPM functions (ALTPLL and ↵dh732017-10-011-3/+16
| | | | M9K); M9K is not finished yet. Achronix Speedster also in this commit. Both Arria10 and Speedster-i are still experimental due complexity, but you can experiment around those devices right now
* Add $_ANDNOT_ and $_ORNOT_ gatesClifford Wolf2017-05-171-4/+6
|
* Cleanups and fixed in write_verilog regarding reg initClifford Wolf2016-11-161-15/+61
|
* Added hex constant support to write_verilogClifford Wolf2016-11-031-4/+62
|
* Adde "write_verilog -renameprefix -v"Clifford Wolf2016-11-011-5/+23
|
* Bugfix in partial mem write handling in verilog back-endClifford Wolf2016-08-201-42/+26
|
* Added missing support for mem read enable ports to verilog back-endClifford Wolf2016-08-181-6/+14
|
* Fixed upto handling in verilog back-endClifford Wolf2016-08-151-0/+3
|
* Added "write_verilog -defparam"Clifford Wolf2016-07-301-2/+21
|
* Added "write_verilog -nodec -nostr"Clifford Wolf2016-07-301-4/+27
|
* Added "yosys -D" featureClifford Wolf2016-04-211-1/+1
|
* Bugfix in write_verilog for RTLIL processesClifford Wolf2016-03-141-9/+20
|
* Bugfixes in writing of memories as VerilogClifford Wolf2015-09-251-7/+8
|
* Another block of spelling fixesLarry Doolittle2015-08-141-2/+2
| | | | Smaller this time
* Re-created command-reference-manual.tex, copied some doc fixes to online helpClifford Wolf2015-08-141-3/+3
|
* Spell check (by Larry Doolittle)Clifford Wolf2015-08-141-1/+1
|
* Fixed trailing whitespacesClifford Wolf2015-07-021-4/+4
|
* $mem cell in verilog backend : grouped writes by clockluke whittlesey2015-06-081-54/+108
|
* Bug fix in $mem verilog backend + changed tests/bram flow of make test.luke whittlesey2015-06-041-14/+16
|
* Some fixes for $mem in verilog back-endClifford Wolf2015-05-201-19/+23
|