aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rtlil.h
Commit message (Collapse)AuthorAgeFilesLines
* Add YOSYS_NO_IDS_REFCNT configuration macroClifford Wolf2019-08-111-1/+22
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Use ID() in kernel/*, add simple ID:: hack (to be improved upon later)Clifford Wolf2019-08-111-3/+11
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* More improvements and cleanups in IdString subsystemClifford Wolf2019-08-111-36/+52
| | | | | | | | | - better use of "inline" keyword - deprecate "sticky" IDs feature - improve handling of empty ID - add move constructor Signed-off-by: Clifford Wolf <clifford@clifford.at>
* RTLIL::S{0,1} -> State::S{0,1} for headersEddie Hung2019-08-071-1/+1
|
* Merge remote-tracking branch 'origin/master' into eddie/cleanupEddie Hung2019-08-071-0/+2
|\
| * Add SigSpec::extract_end() convenience functionEddie Hung2019-08-061-0/+1
| |
| * Merge remote-tracking branch 'origin/master' into eddie/wreduce_addEddie Hung2019-08-061-3/+21
| |\
| * | Add an SigSpec::at(offset, defval) convenience methodEddie Hung2019-07-191-0/+1
| | |
* | | Fix typosEddie Hung2019-08-061-2/+2
| | |
* | | Use IdString::begins_with()Eddie Hung2019-08-061-3/+7
| |/ |/|
* | Add $_NMUX_, add "abc -g cmos", add proper cmos cell costsClifford Wolf2019-08-061-0/+2
| | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | replaced std::iterator with using statementsJakob Wenzel2019-07-251-6/+6
| |
* | made ObjectIterator extend std::iteratorJakob Wenzel2019-07-241-2/+18
|/ | | | this makes it possible to use std algorithms on them
* Allow attributes on individual switch cases in RTLIL.whitequark2019-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The parser changes are slightly awkward. Consider the following IL: process $0 <point 1> switch \foo <point 2> case 1'1 assign \bar \baz <point 3> ... case end end Before this commit, attributes are valid in <point 1>, and <point 3> iff it is immediately followed by a `switch`. (They are essentially attached to the switch.) But, after this commit, and because switch cases do not have an ending delimiter, <point 3> becomes ambiguous: the attribute could attach to either the following `case`, or to the following `switch`. This isn't expressible in LALR(1) and results in a reduce/reduce conflict. To address this, attributes inside processes are now valid anywhere inside the process: in <point 1> and <point 3> a part of case body, and in <point 2> as a separate rule. As a consequence, attributes can now precede `assign`s, which is made illegal in the same way it is illegal to attach attributes to `connect`. Attributes are tracked separately from the parser state, so this does not affect collection of attributes at all, other than allowing them on `case`s. The grammar change serves purely to allow attributes in more syntactic places.
* Undo iterator based Module::remove() for cells, as containers will notEddie Hung2019-06-271-1/+0
| | | | invalidate
* Fix leak removing cells during ABC integration; also preserve attrEddie Hung2019-06-171-0/+1
|
* Further cleanup based on @daveshah1Eddie Hung2019-06-141-0/+6
|
* Merge remote-tracking branch 'origin/master' into xaigEddie Hung2019-06-121-1/+65
|\
| * Refactor hierarchy wand/wor handlingClifford Wolf2019-05-281-0/+1
| | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
| * Add rewrite_sigspecs2, Improve remove() wiresClifford Wolf2019-05-151-0/+60
| | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
| * Merge pull request #991 from kristofferkoch/gcc9-warningsClifford Wolf2019-05-081-0/+3
| |\ | | | | | | Fix all warnings that occurred when compiling with gcc9
| | * Fix all warnings that occurred when compiling with gcc9Kristoffer Ellersgaard Koch2019-05-081-0/+3
| | |
| * | Improve write_verilog specify supportClifford Wolf2019-05-041-1/+1
| |/ | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | Merge remote-tracking branch 'origin/master' into xaigEddie Hung2019-04-221-1/+26
|\|
| * Merge pull request #905 from christian-krieg/feature/python_bindingsClifford Wolf2019-04-221-1/+26
| |\ | | | | | | Feature/python bindings
| | * Merge remote-tracking branch 'origin/master' into feature/python_bindingsBenedikt Tutzer2019-03-281-6/+74
| | |\
| | * | Deleted duplicate DestructorBenedikt Tutzer2018-08-211-1/+0
| | | |
| | * | added some checks if python is enabled to make sure everything compiles if ↵Benedikt Tutzer2018-08-201-0/+1
| | | | | | | | | | | | | | | | python is disabled in the makefile
| | * | Added Wrappers for:Benedikt Tutzer2018-08-131-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -IdString -Const -CaseRule -SwitchRule -SyncRule -Process -SigChunk -SigBit -SigSpec With all their member functions as well as the remaining member functions for Cell, Wire, Module and Design and static functions of rtlil.h
| | * | added destructors for wires and cellsBenedikt Tutzer2018-07-101-1/+2
| | | |
| | * | multiple designs can now exist independent from each other. ↵Benedikt Tutzer2018-07-091-0/+16
| | | | | | | | | | | | | | | | Cells/Wires/Modules can now move to a different parent without referencing issues
* | | | Merge remote-tracking branch 'origin/master' into xaigEddie Hung2019-04-201-1/+1
|\| | |
| * | | Add "wbflip" commandClifford Wolf2019-04-201-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
| * | | Ignore 'whitebox' attr in flatten with "-wb" optionEddie Hung2019-04-181-2/+2
| | | |
* | | | Ignore 'whitebox' attr in flatten with "-wb" optionEddie Hung2019-04-181-2/+2
| | | |
* | | | Merge remote-tracking branch 'origin/clifford/whitebox' into xaigEddie Hung2019-04-181-0/+4
|\| | |
| * | | Add "whitebox" attribute, add "read_verilog -wb"Clifford Wolf2019-04-181-0/+4
| | | | | | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | | Merge branch 'master' into xaigEddie Hung2019-04-081-5/+68
|\| | |
| * | | Add "read_ilang -lib"Clifford Wolf2019-04-051-0/+1
| | |/ | |/| | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
| * | Add RTLIL::Const::ext[su](), fix RTLIL::SigSpec::extend_u0 for 0-size signalsClifford Wolf2019-03-231-0/+8
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
| * | Improve determinism of IdString DB for similar scriptsClifford Wolf2019-03-111-5/+59
| | | | | | | | | | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* | | Add IdString::ends_with()Eddie Hung2019-02-261-0/+6
|/ /
* | proc_clean: remove any empty cases if all cases use all-def compare.whitequark2018-12-231-0/+4
| |
* | Support for 'modports' for System Verilog interfacesRuben Undheim2018-10-121-1/+1
| |
* | Synthesis support for SystemVerilog interfacesRuben Undheim2018-10-121-0/+2
| | | | | | | | This time doing the changes mostly in AST before RTLIL generation
* | Consistent use of 'override' for virtual methods in derived classes.Henner Zeller2018-07-201-1/+1
|/ | | | | | | | | 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 $allconst and $allseq cell typesClifford Wolf2018-02-231-0/+2
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Bugfix in hierarchy handling of blackbox module portsClifford Wolf2018-01-051-1/+1
| | | | Signed-off-by: Clifford Wolf <clifford@clifford.at>
* Add RTLIL::Const::is_fully_ones()Clifford Wolf2017-12-141-0/+1
|
* Add SigSpec::is_fully_ones()Clifford Wolf2017-12-141-0/+1
|