aboutsummaryrefslogtreecommitdiffstats
path: root/backends/firrtl/firrtl.cc
Commit message (Collapse)AuthorAgeFilesLines
* Add flooring modulo operatorXiretza2020-05-281-0/+1
| | | | | | | | | | | The $div and $mod cells use truncating division semantics (rounding towards 0), as defined by e.g. Verilog. Another rounding mode, flooring (rounding towards negative infinity), can be used in e.g. VHDL. The new $modfloor cell provides this flooring modulo (also known as "remainder" in several languages, but this name is ambiguous). This commit also fixes the handling of $mod in opt_expr, which was previously optimized as if it was $modfloor.
* Merge pull request #2031 from epfl-vlsc/masterwhitequark2020-05-281-1/+40
|\ | | | | Add extmodule support to firrtl backend
| * Formatting fixesSahand Kashani2020-05-061-14/+7
| |
| * Add extmodule support to firrtl backendSahand Kashani2020-05-061-1/+47
| | | | | | | | | | | | | | | | | | The current firrtl backend emits blackboxes as standard modules with an empty body, but this causes the firrtl compiler to optimize out entire circuits due to the absence of any drivers. Yosys already tags blackboxes with a (*blackbox*) attribute, so this commit just propagates this change to firrtl's syntax for blackboxes.
* | firrtl: Accept techmapped cell types in FIRRTL backend.Alberto Gonzalez2020-05-171-10/+12
| |
* | Add YS_FALLTHROUGH macro to mark case fall-throughXiretza2020-05-071-2/+2
|/ | | | | C++17 introduced [[fallthrough]], GCC and clang had their own vendored attributes before that. MSVC doesn't seem to have such a warning at all.
* ast, rpc: record original name of $paramod\* as \hdlname attribute.whitequark2020-04-181-11/+2
| | | | | | | | | | The $paramod name mangling is not invertible (the \ character, which separates the module name from the parameters, is valid in the module name itself), which does not stop people from trying to invert it. This commit makes it easy to invert the name mangling by storing the original name explicitly, and fixes the firrtl backend to use the newly introduced attribute.
* Fix indentationSahand Kashani2020-04-091-3/+3
|
* Remove dependency on ilang backend since we no longer use itSahand Kashani2020-04-081-1/+0
|
* Merge branch 'master' of github.com:YosysHQ/yosys into firrtl_backend_fileinfoSahand Kashani2020-04-081-112/+112
|\
| * kernel: big fat patch to use more ID::*, otherwise ID(*)Eddie Hung2020-04-021-88/+88
| |
| * kernel: use more ID::*Eddie Hung2020-04-021-23/+23
| |
* | Remove unnecessary pruning of double-quotingSahand Kashani2020-04-081-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | In the past I was calling the ILANG_BACKEND::dump_const() to dump values to an output stream. When these values were strings, the function used to add quotes around them. The firrtl compiler, in turn, escaped these quotes and the result was double-quoted strings which were hard to read. However I'm now calling design_entity->get_src_attribute() directly and there is no additional quote being put around it, so we can safely remove the unnecessary call to str.erase() here.
* | Remove use of auto for simple types + simplify src attribute computationSahand Kashani2020-03-241-10/+5
| |
* | Refactor to directly call ILANG_BACKEND::dump_const() + directly lookup src ↵Sahand Kashani2020-03-241-68/+15
| | | | | | | | attribute
* | Indentation conventionsSahand Kashani2020-03-231-5/+6
| |
* | Const parameter in function (backends/firrtl/firrtl.cc)Sahand Kashani-Akhavan2020-03-231-1/+1
| | | | | | Co-Authored-By: Alberto Gonzalez <61295559+boqwxp@users.noreply.github.com>
* | Strip quotes around fileinfo stringsSahand Kashani2020-03-211-1/+5
| | | | | | | | | | | | Yosys puts quotes around the string that represents the fileinfo whereas firrtl does not. So when firrtl sees quotes, it escapes them with an extra backslash which makes it hard to read afterwards.
* | Add fileinfo to firrtl backend for assignments and non-instance cellsSahand Kashani2020-03-211-21/+30
| |
* | Refactor fileinfo emission characters to single locationSahand Kashani2020-03-201-6/+8
| |
* | Add fileinfo to firrtl backend for instancesSahand Kashani2020-03-191-2/+3
| |
* | Add fileinfo to firrtl backend for modules and wiresSahand Kashani2020-03-191-12/+20
| |
* | Add fileinfo to firrtl backend for top-level circuitSahand Kashani2020-03-191-1/+62
|/
* remove include where not usedMiodrag Milanovic2020-03-131-1/+0
|
* Merge pull request #1258 from YosysHQ/eddie/cleanupClifford Wolf2019-08-101-5/+5
|\ | | | | Cleanup a few barnacles across codebase
| * substr() -> compare()Eddie Hung2019-08-071-1/+1
| |
| * Merge remote-tracking branch 'origin/master' into eddie/cleanupEddie Hung2019-08-071-93/+203
| |\
| * | Use IdString::begins_with()Eddie Hung2019-08-061-2/+2
| | |
| * | Use State::S{0,1}Eddie Hung2019-08-061-2/+2
| | |
* | | Merge branch 'master' into firrtl_err_on_unsupported_cellJim Lawson2019-08-071-93/+203
|\ \ \ | | |/ | |/| | | | | | | # Conflicts: # backends/firrtl/firrtl.cc
| * | Support explicit FIRRTL properties for better accommodation of ↵Jim Lawson2019-07-311-93/+203
| |/ | | | | | | | | | | | | | | | | FIRRTL/Verilog semantic differences. Use FIRRTL spec vlaues for definition of FIRRTL widths. Added support for '$pos`, `$pow` and `$xnor` cells. Enable tests/simple/operators.v since all operators tested there are now supported. Disable FIRRTL tests of tests/simple/{defvalue.sv,implicit_ports.v,wandwor.v} since they currently generate FIRRTL compilation errors.
* / Call log_error() instead of log_warning() on unsupported cell type in FIRRTL ↵Jim Lawson2019-07-241-1/+1
|/ | | | backend.
* Fix static shift operands, neg result type, minor formattingJim Lawson2019-05-211-3/+7
| | | | | | Static shift operands must be constants. The result of FIRRTL's neg operator is signed. Fix poor indentation for gen_read().
* Fix all warnings that occurred when compiling with gcc9Kristoffer Ellersgaard Koch2019-05-081-1/+2
|
* Re-indent firrtl.cc:struct memory - no functional change.Jim Lawson2019-05-011-25/+25
|
* Fix #938 - Crash occurs in case when use write_firrtl commandJim Lawson2019-05-011-4/+41
| | | | | | Add missing memory initialization. Sanity-check memory parameters. Add Cell pointer to memory object (for error reporting).
* Refine memory support to deal with general Verilog memory definitions.Jim Lawson2019-04-011-30/+173
|
* Ensure fid() calls make_id() for consistency; tests/simple/dff_init.v failsJim Lawson2019-03-041-2/+1
| | | | Mark dff_init.v as expected to fail since it uses "initial value".
* Fix FIRRTL to Verilog process instance subfield assignment.Jim Lawson2019-02-251-8/+20
| | | | | | Don't emit subfield assignments: bits(x, y, z) <= ... - but instead, add them to the reverse-wire-map where they'll be treated at the end of the module. Enable tests which were disabled due to incorrect treatment of subfields. Assume the `$firrtl2verilog` variable contains any additional switches to control verilog generation (i.e. `--no-dedup -X mverilog`)
* Removed unused variables, functions.Jim Lawson2019-02-151-20/+0
|
* Update cells supported for verilog to FIRRTL conversion.Jim Lawson2019-02-151-48/+225
| | | | | | | | | | | | | Issue warning messages for missing parameterized modules and attempts to set initial values. Replace simple "if (cell-type)" with "else if" chain. Fix FIRRTL shift handling. Add support for parameterized modules, $shift, $shiftx. Handle default output file. Deal with no top module. Automatically run pmuxtree pass. Allow EXTRA_FLAGS and SEED parameters to be set in the environment for tests/tools/autotest.mk. Support FIRRTL regression testing in tests/tools/autotest.sh Add xfirrtl files to test directories to exclude files from FIRRTL regression tests that are known to fail.
* added prefix to FDirection constants, fixing windows buildMiodrag Milanovic2018-09-211-11/+11
|
* Remove unused functions.Jim Lawson2018-08-271-10/+0
|
* Add support for module instances.Jim Lawson2018-08-231-17/+122
| | | | | | | Don't pad logical operands to one bit. Use operand width and signedness in $reduce_bool. Shift amounts are unsigned and shouldn't be padded. Group "is invalid" with the wire declaration, not its use (otherwise it is incorrectly wired to 0).
* 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)
* More progress on Firrtl backend.Adam Izraelevitz2017-02-131-5/+117
| | | | | Chisel -> Firrtl -> Verilog -> Firrtl -> Verilog is successful for a simple rocket-chip design.
* Bugfix: include assign to write-maskAdam Izraelevitz2016-11-181-0/+1
|
* More progress in FIRRTL back-endClifford Wolf2016-11-181-0/+96
|
* Progress in FIRRTL back-endClifford Wolf2016-11-181-5/+28
|
* Added first draft of FIRRTL back-endClifford Wolf2016-11-171-0/+350