| |
| List of major changes and improvements between releases |
| ======================================================= |
| |
| |
| Yosys 0.9 .. Yosys 0.9-dev |
| -------------------------- |
| |
| * Various |
| - Added "write_xaiger" backend |
| - Added "abc9" pass for timing-aware techmapping (experimental, FPGA only, no FFs) |
| - Added "synth_xilinx -abc9" (experimental) |
| - Added "synth_ice40 -abc9" (experimental) |
| - Added "synth -abc9" (experimental) |
| - Added "script -scriptwire" |
| - Added "synth_xilinx -nocarry" |
| - Added "synth_xilinx -nowidelut" |
| - Added "synth_ecp5 -nowidelut" |
| - "synth_xilinx" to now infer wide multiplexers (-widemux <min> to enable) |
| - Renamed labels/options in synth_ice40 (e.g. dram -> map_lutram; -nodram -> -nolutram) |
| - Renamed labels/options in synth_ecp5 (e.g. dram -> map_lutram; -nodram -> -nolutram) |
| - Renamed labels in synth_intel (e.g. bram -> map_bram) |
| - Renamed labels/options in synth_xilinx (e.g. dram -> map_lutram; -nodram -> -nolutram) |
| - Added automatic gzip decompression for frontends |
| - Added $_NMUX_ cell type |
| - Added automatic gzip compression (based on filename extension) for backends |
| - Improve attribute and parameter encoding in JSON to avoid ambiguities between |
| bit vectors and strings containing [01xz]* |
| - Added "clkbufmap" pass |
| - Added "extractinv" pass and "invertible_pin" attribute |
| - Added "synth_xilinx -family xc6s" for Spartan 6 support (experimental) |
| - Added "synth_xilinx -ise" (experimental) |
| - Added "synth_xilinx -iopad" |
| - "synth_xilinx" now automatically inserts clock buffers (add -noclkbuf to disable) |
| - Improvements in pmgen: subpattern and recursive matches |
| - Added "opt_share" pass, run as part of "opt -full" |
| - Added "ice40_wrapcarry" to encapsulate SB_LUT+SB_CARRY pairs for techmapping |
| - Removed "ice40_unlut" |
| - Improvements in pmgen: slices, choices, define, generate |
| - Added "xilinx_srl" for Xilinx shift register extraction |
| - Removed "shregmap -tech xilinx" (superseded by "xilinx_srl") |
| - Added "_TECHMAP_WIREINIT_*_" attribute and "_TECHMAP_REMOVEINIT_*_" wire for "techmap" pass |
| - Added "-match-init" option to "dff2dffs" pass |
| - Added "techmap_autopurge" support to techmap |
| - Added "add -mod <modname[s]>" |
| - Added +/mul2dsp.v for decomposing wide multipliers to custom-sized ones |
| - Added "ice40_dsp" for Lattice iCE40 DSP packing |
| - Added "xilinx_dsp" for Xilinx DSP packing |
| - "synth_xilinx" to now infer DSP blocks (-nodsp to disable) |
| - "synth_ecp5" to now infer DSP blocks (-nodsp to disable, experimental) |
| - "synth_ice40 -dsp" to infer DSP blocks |
| - Added latch support to synth_xilinx |
| - Added "check -mapped" |
| - Added checking of SystemVerilog always block types (always_comb, |
| always_latch and always_ff) |
| - Added support for SystemVerilog wildcard port connections (.*) |
| |
| Yosys 0.8 .. Yosys 0.9 |
| ---------------------- |
| |
| * Various |
| - Many bugfixes and small improvements |
| - Added support for SystemVerilog interfaces and modports |
| - Added "write_edif -attrprop" |
| - Added "opt_lut" pass |
| - Added "gate2lut.v" techmap rule |
| - Added "rename -src" |
| - Added "equiv_opt" pass |
| - Added "flowmap" LUT mapping pass |
| - Added "rename -wire" to rename cells based on the wires they drive |
| - Added "bugpoint" for creating minimised testcases |
| - Added "write_edif -gndvccy" |
| - "write_verilog" to escape Verilog keywords |
| - Fixed sign handling of real constants |
| - "write_verilog" to write initial statement for initial flop state |
| - Added pmgen pattern matcher generator |
| - Fixed opt_rmdff handling of $_DFFSR_???_ and $_DLATCHSR_???_ |
| - Added "setundef -params" to replace undefined cell parameters |
| - Renamed "yosys -D" to "yosys -U", added "yosys -D" to set Verilog defines |
| - Fixed handling of defparam when default_nettype is none |
| - Fixed "wreduce" flipflop handling |
| - Fixed FIRRTL to Verilog process instance subfield assignment |
| - Added "write_verilog -siminit" |
| - Several fixes and improvements for mem2reg memories |
| - Fixed handling of task output ports in clocked always blocks |
| - Improved handling of and-with-1 and or-with-0 in "opt_expr" |
| - Added "read_aiger" frontend |
| - Added "mutate" pass |
| - Added "hdlname" attribute |
| - Added "rename -output" |
| - Added "read_ilang -lib" |
| - Improved "proc" full_case detection and handling |
| - Added "whitebox" and "lib_whitebox" attributes |
| - Added "read_verilog -nowb", "flatten -wb" and "wbflip" |
| - Added Python bindings and support for Python plug-ins |
| - Added "pmux2shiftx" |
| - Added log_debug framework for reduced default verbosity |
| - Improved "opt_expr" and "opt_clean" handling of (partially) undriven and/or unused wires |
| - Added "peepopt" peephole optimisation pass using pmgen |
| - Added approximate support for SystemVerilog "var" keyword |
| - Added parsing of "specify" blocks into $specrule and $specify[23] |
| - Added support for attributes on parameters and localparams |
| - Added support for parsing attributes on port connections |
| - Added "wreduce -keepdc" |
| - Added support for optimising $dffe and $_DFFE_* cells in "opt_rmdff" |
| - Added Verilog wand/wor wire type support |
| - Added support for elaboration system tasks |
| - Added "muxcover -mux{4,8,16}=<cost>" |
| - Added "muxcover -dmux=<cost>" |
| - Added "muxcover -nopartial" |
| - Added "muxpack" pass |
| - Added "pmux2shiftx -norange" |
| - Added support for "~" in filename parsing |
| - Added "read_verilog -pwires" feature to turn parameters into wires |
| - Fixed sign extension of unsized constants with 'bx and 'bz MSB |
| - Fixed genvar to be a signed type |
| - Added support for attributes on case rules |
| - Added "upto" and "offset" to JSON frontend and backend |
| - Several liberty file parser improvements |
| - Fixed handling of more complex BRAM patterns |
| - Add "write_aiger -I -O -B" |
| |
| * Formal Verification |
| - Added $changed support to read_verilog |
| - Added "read_verilog -noassert -noassume -assert-assumes" |
| - Added btor ops for $mul, $div, $mod and $concat |
| - Added yosys-smtbmc support for btor witnesses |
| - Added "supercover" pass |
| - Fixed $global_clock handling vs autowire |
| - Added $dffsr support to "async2sync" |
| - Added "fmcombine" pass |
| - Added memory init support in "write_btor" |
| - Added "cutpoint" pass |
| - Changed "ne" to "neq" in btor2 output |
| - Added support for SVA "final" keyword |
| - Added "fmcombine -initeq -anyeq" |
| - Added timescale and generated-by header to yosys-smtbmc vcd output |
| - Improved BTOR2 handling of undriven wires |
| |
| * Verific support |
| - Enabled Verific flags vhdl_support_variable_slice and veri_elaborate_top_level_modules_having_interface_ports |
| - Improved support for asymmetric memories |
| - Added "verific -chparam" |
| - Fixed "verific -extnets" for more complex situations |
| - Added "read -verific" and "read -noverific" |
| - Added "hierarchy -chparam" |
| |
| * New back-ends |
| - Added initial Anlogic support |
| - Added initial SmartFusion2 and IGLOO2 support |
| |
| * ECP5 support |
| - Added "synth_ecp5 -nowidelut" |
| - Added BRAM inference support to "synth_ecp5" |
| - Added support for transforming Diamond IO and flipflop primitives |
| |
| * iCE40 support |
| - Added "ice40_unlut" pass |
| - Added "synth_ice40 -relut" |
| - Added "synth_ice40 -noabc" |
| - Added "synth_ice40 -dffe_min_ce_use" |
| - Added DSP inference support using pmgen |
| - Added support for initialising BRAM primitives from a file |
| - Added iCE40 Ultra RGB LED driver cells |
| |
| * Xilinx support |
| - Use "write_edif -pvector bra" for Xilinx EDIF files |
| - Fixes for VPR place and route support with "synth_xilinx" |
| - Added more cell simulation models |
| - Added "synth_xilinx -family" |
| - Added "stat -tech xilinx" to estimate logic cell usage |
| - Added "synth_xilinx -nocarry" |
| - Added "synth_xilinx -nowidelut" |
| - "synth_xilinx" to now infer hard shift registers (-nosrl to disable) |
| - Added support for mapping RAM32X1D |
| |
| Yosys 0.7 .. Yosys 0.8 |
| ---------------------- |
| |
| * Various |
| - Many bugfixes and small improvements |
| - Strip debug symbols from installed binary |
| - Replace -ignore_redef with -[no]overwrite in front-ends |
| - Added write_verilog hex dump support, add -nohex option |
| - Added "write_verilog -decimal" |
| - Added "scc -set_attr" |
| - Added "verilog_defines" command |
| - Remember defines from one read_verilog to next |
| - Added support for hierarchical defparam |
| - Added FIRRTL back-end |
| - Improved ABC default scripts |
| - Added "design -reset-vlog" |
| - Added "yosys -W regex", "yosys -w regex", and "yosys -e regex" |
| - Added Verilog $rtoi and $itor support |
| - Added "check -initdrv" |
| - Added "read_blif -wideports" |
| - Added support for SystemVerilog "++" and "--" operators |
| - Added support for SystemVerilog unique, unique0, and priority case |
| - Added "write_edif" options for edif "flavors" |
| - Added support for resetall compiler directive |
| - Added simple C beck-end (bitwise combinatorical only atm) |
| - Added $_ANDNOT_ and $_ORNOT_ cell types |
| - Added cell library aliases to "abc -g" |
| - Added "setundef -anyseq" |
| - Added "chtype" command |
| - Added "design -import" |
| - Added "write_table" command |
| - Added "read_json" command |
| - Added "sim" command |
| - Added "extract_fa" and "extract_reduce" commands |
| - Added "extract_counter" command |
| - Added "opt_demorgan" command |
| - Added support for $size and $bits SystemVerilog functions |
| - Added "blackbox" command |
| - Added "ltp" command |
| - Added support for editline as replacement for readline |
| - Added warnings for driver-driver conflicts between FFs (and other cells) and constants |
| - Added "yosys -E" for creating Makefile dependencies files |
| - Added "synth -noshare" |
| - Added "memory_nordff" |
| - Added "setundef -undef -expose -anyconst" |
| - Added "expose -input" |
| - Added specify/specparam parser support (simply ignore them) |
| - Added "write_blif -inames -iattr" |
| - Added "hierarchy -simcheck" |
| - Added an option to statically link abc into yosys |
| - Added protobuf back-end |
| - Added BLIF parsing support for .conn and .cname |
| - Added read_verilog error checking for reg/wire/logic misuse |
| - Added "make coverage" and ENABLE_GCOV build option |
| |
| * Changes in Yosys APIs |
| - Added ConstEval defaultval feature |
| - Added {get,set}_src_attribute() methods on RTLIL::AttrObject |
| - Added SigSpec::is_fully_ones() and Const::is_fully_ones() |
| - Added log_file_warning() and log_file_error() functions |
| |
| * Formal Verification |
| - Added "write_aiger" |
| - Added "yosys-smtbmc --aig" |
| - Added "always <positive_int>" to .smtc format |
| - Added $cover cell type and support for cover properties |
| - Added $fair/$live cell type and support for liveness properties |
| - Added smtbmc support for memory vcd dumping |
| - Added "chformal" command |
| - Added "write_smt2 -stbv" and "write_smt2 -stdt" |
| - Fix equiv_simple, old behavior now available with "equiv_simple -short" |
| - Change to Yices2 as default SMT solver (it is GPL now) |
| - Added "yosys-smtbmc --presat" (now default in SymbiYosys) |
| - Added "yosys-smtbmc --smtc-init --smtc-top --noinit" |
| - Added a brand new "write_btor" command for BTOR2 |
| - Added clk2fflogic memory support and other improvements |
| - Added "async memory write" support to write_smt2 |
| - Simulate clock toggling in yosys-smtbmc VCD output |
| - Added $allseq/$allconst cells for EA-solving |
| - Make -nordff the default in "prep" |
| - Added (* gclk *) attribute |
| - Added "async2sync" pass for single-clock designs with async resets |
| |
| * Verific support |
| - Many improvements in Verific front-end |
| - Added proper handling of concurent SVA properties |
| - Map "const" and "rand const" to $anyseq/$anyconst |
| - Added "verific -import -flatten" and "verific -import -extnets" |
| - Added "verific -vlog-incdir -vlog-define -vlog-libdir" |
| - Remove PSL support (because PSL has been removed in upstream Verific) |
| - Improve integration with "hierarchy" command design elaboration |
| - Added YOSYS_NOVERIFIC for running non-verific test cases with verific bin |
| - Added simpilied "read" command that automatically uses verific if available |
| - Added "verific -set-<severity> <msg_id>.." |
| - Added "verific -work <libname>" |
| |
| * New back-ends |
| - Added initial Coolrunner-II support |
| - Added initial eASIC support |
| - Added initial ECP5 support |
| |
| * GreenPAK Support |
| - Added support for GP_DLATCH, GP_SPI, GP_DCMx, GP_COUNTx, etc. |
| |
| * iCE40 Support |
| - Add "synth_ice40 -vpr" |
| - Add "synth_ice40 -nodffe" |
| - Add "synth_ice40 -json" |
| - Add Support for UltraPlus cells |
| |
| * MAX10 and Cyclone IV Support |
| - Added initial version of metacommand "synth_intel". |
| - Improved write_verilog command to produce VQM netlist for Quartus Prime. |
| - Added support for MAX10 FPGA family synthesis. |
| - Added support for Cyclone IV family synthesis. |
| - Added example of implementation for DE2i-150 board. |
| - Added example of implementation for MAX10 development kit. |
| - Added LFSR example from Asic World. |
| - Added "dffinit -highlow" for mapping to Intel primitives |
| |
| |
| Yosys 0.6 .. Yosys 0.7 |
| ---------------------- |
| |
| * Various |
| - Added "yosys -D" feature |
| - Added support for installed plugins in $(DATDIR)/plugins/ |
| - Renamed opt_const to opt_expr |
| - Renamed opt_share to opt_merge |
| - Added "prep -flatten" and "synth -flatten" |
| - Added "prep -auto-top" and "synth -auto-top" |
| - Using "mfs" and "lutpack" in ABC lut mapping |
| - Support for abstract modules in chparam |
| - Cleanup abstract modules at end of "hierarchy -top" |
| - Added tristate buffer support to iopadmap |
| - Added opt_expr support for div/mod by power-of-two |
| - Added "select -assert-min <N> -assert-max <N>" |
| - Added "attrmvcp" pass |
| - Added "attrmap" command |
| - Added "tee +INT -INT" |
| - Added "zinit" pass |
| - Added "setparam -type" |
| - Added "shregmap" pass |
| - Added "setundef -init" |
| - Added "nlutmap -assert" |
| - Added $sop cell type and "abc -sop -I <num> -P <num>" |
| - Added "dc2" to default ABC scripts |
| - Added "deminout" |
| - Added "insbuf" command |
| - Added "prep -nomem" |
| - Added "opt_rmdff -keepdc" |
| - Added "prep -nokeepdc" |
| - Added initial version of "synth_gowin" |
| - Added "fsm_expand -full" |
| - Added support for fsm_encoding="user" |
| - Many improvements in GreenPAK4 support |
| - Added black box modules for all Xilinx 7-series lib cells |
| - Added synth_ice40 support for latches via logic loops |
| - Fixed ice40_opt lut unmapping, added "ice40_opt -unlut" |
| |
| * Build System |
| - Added ABCEXTERNAL and ABCURL make variables |
| - Added BINDIR, LIBDIR, and DATDIR make variables |
| - Added PKG_CONFIG make variable |
| - Added SEED make variable (for "make test") |
| - Added YOSYS_VER_STR make variable |
| - Updated min GCC requirement to GCC 4.8 |
| - Updated required Bison version to Bison 3.x |
| |
| * Internal APIs |
| - Added ast.h to exported headers |
| - Added ScriptPass helper class for script-like passes |
| - Added CellEdgesDatabase API |
| |
| * Front-ends and Back-ends |
| - Added filename glob support to all front-ends |
| - Added avail (black-box) module params to ilang format |
| - Added $display %m support |
| - Added support for $stop Verilog system task |
| - Added support for SystemVerilog packages |
| - Fixed procedural assignments to non-unique lvalues, e.g. {y,y} = {a,b} |
| - Added support for "active high" and "active low" latches in read_blif and write_blif |
| - Use init value "2" for all uninitialized FFs in BLIF back-end |
| - Added "read_blif -sop" |
| - Added "write_blif -noalias" |
| - Added various write_blif options for VTR support |
| - write_json: also write module attributes. |
| - Added "write_verilog -nodec -nostr -defparam" |
| - Added "read_verilog -norestrict -assume-asserts" |
| - Added support for bus interfaces to "read_liberty -lib" |
| - Added liberty parser support for types within cell decls |
| - Added "write_verilog -renameprefix -v" |
| - Added "write_edif -nogndvcc" |
| |
| * Formal Verification |
| - Support for hierarchical designs in smt2 back-end |
| - Yosys-smtbmc: Support for hierarchical VCD dumping |
| - Added $initstate cell type and vlog function |
| - Added $anyconst and $anyseq cell types and vlog functions |
| - Added printing of code loc of failed asserts to yosys-smtbmc |
| - Added memory_memx pass, "memory -memx", and "prep -memx" |
| - Added "proc_mux -ifx" |
| - Added "yosys-smtbmc -g" |
| - Deprecated "write_smt2 -regs" (by default on now) |
| - Made "write_smt2 -bv -mem" default, added "write_smt2 -nobv -nomem" |
| - Added support for memories to smtio.py |
| - Added "yosys-smtbmc --dump-vlogtb" |
| - Added "yosys-smtbmc --smtc --dump-smtc" |
| - Added "yosys-smtbmc --dump-all" |
| - Added assertpmux command |
| - Added "yosys-smtbmc --unroll" |
| - Added $past, $stable, $rose, $fell SVA functions |
| - Added "yosys-smtbmc --noinfo and --dummy" |
| - Added "yosys-smtbmc --noincr" |
| - Added "yosys-smtbmc --cex <filename>" |
| - Added $ff and $_FF_ cell types |
| - Added $global_clock verilog syntax support for creating $ff cells |
| - Added clk2fflogic |
| |
| |
| Yosys 0.5 .. Yosys 0.6 |
| ---------------------- |
| |
| * Various |
| - Added Contributor Covenant Code of Conduct |
| - Various improvements in dict<> and pool<> |
| - Added hashlib::mfp and refactored SigMap |
| - Improved support for reals as module parameters |
| - Various improvements in SMT2 back-end |
| - Added "keep_hierarchy" attribute |
| - Verilog front-end: define `BLACKBOX in -lib mode |
| - Added API for converting internal cells to AIGs |
| - Added ENABLE_LIBYOSYS Makefile option |
| - Removed "techmap -share_map" (use "-map +/filename" instead) |
| - Switched all Python scripts to Python 3 |
| - Added support for $display()/$write() and $finish() to Verilog front-end |
| - Added "yosys-smtbmc" formal verification flow |
| - Added options for clang sanitizers to Makefile |
| |
| * New commands and options |
| - Added "scc -expect <N> -nofeedback" |
| - Added "proc_dlatch" |
| - Added "check" |
| - Added "select %xe %cie %coe %M %C %R" |
| - Added "sat -dump_json" (WaveJSON format) |
| - Added "sat -tempinduct-baseonly -tempinduct-inductonly" |
| - Added "sat -stepsize" and "sat -tempinduct-step" |
| - Added "sat -show-regs -show-public -show-all" |
| - Added "write_json" (Native Yosys JSON format) |
| - Added "write_blif -attr" |
| - Added "dffinit" |
| - Added "chparam" |
| - Added "muxcover" |
| - Added "pmuxtree" |
| - Added memory_bram "make_outreg" feature |
| - Added "splice -wires" |
| - Added "dff2dffe -direct-match" |
| - Added simplemap $lut support |
| - Added "read_blif" |
| - Added "opt_share -share_all" |
| - Added "aigmap" |
| - Added "write_smt2 -mem -regs -wires" |
| - Added "memory -nordff" |
| - Added "write_smv" |
| - Added "synth -nordff -noalumacc" |
| - Added "rename -top new_name" |
| - Added "opt_const -clkinv" |
| - Added "synth -nofsm" |
| - Added "miter -assert" |
| - Added "read_verilog -noautowire" |
| - Added "read_verilog -nodpi" |
| - Added "tribuf" |
| - Added "lut2mux" |
| - Added "nlutmap" |
| - Added "qwp" |
| - Added "test_cell -noeval" |
| - Added "edgetypes" |
| - Added "equiv_struct" |
| - Added "equiv_purge" |
| - Added "equiv_mark" |
| - Added "equiv_add -try -cell" |
| - Added "singleton" |
| - Added "abc -g -luts" |
| - Added "torder" |
| - Added "write_blif -cname" |
| - Added "submod -copy" |
| - Added "dffsr2dff" |
| - Added "stat -liberty" |
| |
| * Synthesis metacommands |
| - Various improvements in synth_xilinx |
| - Added synth_ice40 and synth_greenpak4 |
| - Added "prep" metacommand for "synthesis lite" |
| |
| * Cell library changes |
| - Added cell types to "help" system |
| - Added $meminit cell type |
| - Added $assume cell type |
| - Added $_MUX4_, $_MUX8_, and $_MUX16_ cells |
| - Added $tribuf and $_TBUF_ cell types |
| - Added read-enable to memory model |
| |
| * YosysJS |
| - Various improvements in emscripten build |
| - Added alternative webworker-based JS API |
| - Added a few example applications |
| |
| |
| Yosys 0.4 .. Yosys 0.5 |
| ---------------------- |
| |
| * API changes |
| - Added log_warning() |
| - Added eval_select_args() and eval_select_op() |
| - Added cell->known(), cell->input(portname), cell->output(portname) |
| - Skip blackbox modules in design->selected_modules() |
| - Replaced std::map<> and std::set<> with dict<> and pool<> |
| - New SigSpec::extend() is what used to be SigSpec::extend_u0() |
| - Added YS_OVERRIDE, YS_FINAL, YS_ATTRIBUTE, YS_NORETURN |
| |
| * Cell library changes |
| - Added flip-flops with enable ($dffe etc.) |
| - Added $equiv cells for equivalence checking framework |
| |
| * Various |
| - Updated ABC to hg rev 61ad5f908c03 |
| - Added clock domain partitioning to ABC pass |
| - Improved plugin building (see "yosys-config --build") |
| - Added ENABLE_NDEBUG Makefile flag for high-performance builds |
| - Added "yosys -d", "yosys -L" and other driver improvements |
| - Added support for multi-bit (array) cell ports to "write_edif" |
| - Now printing most output to stdout, not stderr |
| - Added "onehot" attribute (set by "fsm_map") |
| - Various performance improvements |
| - Vastly improved Xilinx flow |
| - Added "make unsintall" |
| |
| * Equivalence checking |
| - Added equivalence checking commands: |
| equiv_make equiv_simple equiv_status |
| equiv_induct equiv_miter |
| equiv_add equiv_remove |
| |
| * Block RAM support: |
| - Added "memory_bram" command |
| - Added BRAM support to Xilinx flow |
| |
| * Other New Commands and Options |
| - Added "dff2dffe" |
| - Added "fsm -encfile" |
| - Added "dfflibmap -prepare" |
| - Added "write_blid -unbuf -undef -blackbox" |
| - Added "write_smt2" for writing SMT-LIBv2 files |
| - Added "test_cell -w -muxdiv" |
| - Added "select -read" |
| |
| |
| Yosys 0.3.0 .. Yosys 0.4 |
| ------------------------ |
| |
| * Platform Support |
| - Added support for mxe-based cross-builds for win32 |
| - Added sourcecode-export as VisualStudio project |
| - Added experimental EMCC (JavaScript) support |
| |
| * Verilog Frontend |
| - Added -sv option for SystemVerilog (and automatic *.sv file support) |
| - Added support for real-valued constants and constant expressions |
| - Added support for non-standard "via_celltype" attribute on task/func |
| - Added support for non-standard "module mod_name(...);" syntax |
| - Added support for non-standard """ macro bodies |
| - Added support for array with more than one dimension |
| - Added support for $readmemh and $readmemb |
| - Added support for DPI functions |
| |
| * Changes in internal cell library |
| - Added $shift and $shiftx cell types |
| - Added $alu, $lcu, $fa and $macc cell types |
| - Removed $bu0 and $safe_pmux cell types |
| - $mem/$memwr WR_EN input is now a per-data-bit enable signal |
| - Added $_NAND_ $_NOR_ $_XNOR_ $_AOI3_ $_OAI3_ $_AOI4_ $_OAI4_ |
| - Renamed ports of $lut cells (from I->O to A->Y) |
| - Renamed $_INV_ to $_NOT_ |
| |
| * Changes for simple synthesis flows |
| - There is now a "synth" command with a recommended default script |
| - Many improvements in synthesis of arithmetic functions to gates |
| - Multipliers and adders with many operands are using carry-save adder trees |
| - Remaining adders are now implemented using Brent-Kung carry look-ahead adders |
| - Various new high-level optimizations on RTL netlist |
| - Various improvements in FSM optimization |
| - Updated ABC to hg 5b5af75f1dda (from 2014-11-07) |
| |
| * Changes in internal APIs and RTLIL |
| - Added log_id() and log_cell() helper functions |
| - Added function-like cell creation helpers |
| - Added GetSize() function (like .size() but with int) |
| - Major refactoring of RTLIL::Module and related classes |
| - Major refactoring of RTLIL::SigSpec and related classes |
| - Now RTLIL::IdString is essentially an int |
| - Added macros for code coverage counters |
| - Added some Makefile magic for pretty make logs |
| - Added "kernel/yosys.h" with all the core definitions |
| - Changed a lot of code from FILE* to c++ streams |
| - Added RTLIL::Monitor API and "trace" command |
| - Added "Yosys" C++ namespace |
| |
| * Changes relevant to SAT solving |
| - Added ezSAT::keep_cnf() and ezSAT::non_incremental() |
| - Added native ezSAT support for vector shift ops |
| - Updated MiniSAT to git 37dc6c67e2 (from 2013-09-25) |
| |
| * New commands (or large improvements to commands) |
| - Added "synth" command with default script |
| - Added "share" (finally some real resource sharing) |
| - Added "memory_share" (reduce number of ports on memories) |
| - Added "wreduce" and "alumacc" commands |
| - Added "opt -keepdc -fine -full -fast" |
| - Added some "test_*" commands |
| |
| * Various other changes |
| - Added %D and %c select operators |
| - Added support for labels in yosys scripts |
| - Added support for here-documents in yosys scripts |
| - Support "+/" prefix for files from proc_share_dir |
| - Added "autoidx" statement to ilang language |
| - Switched from "yosys-svgviewer" to "xdot" |
| - Renamed "stdcells.v" to "techmap.v" |
| - Various bug fixes and small improvements |
| - Improved welcome and bye messages |
| |
| |
| Yosys 0.2.0 .. Yosys 0.3.0 |
| -------------------------- |
| |
| * Driver program and overall behavior: |
| - Added "design -push" and "design -pop" |
| - Added "tee" command for redirecting log output |
| |
| * Changes in the internal cell library: |
| - Added $dlatchsr and $_DLATCHSR_???_ cell types |
| |
| * Improvements in Verilog frontend: |
| - Improved support for const functions (case, always, repeat) |
| - The generate..endgenerate keywords are now optional |
| - Added support for arrays of module instances |
| - Added support for "`default_nettype" directive |
| - Added support for "`line" directive |
| |
| * Other front- and back-ends: |
| - Various changes to "write_blif" options |
| - Various improvements in EDIF backend |
| - Added "vhdl2verilog" pseudo-front-end |
| - Added "verific" pseudo-front-end |
| |
| * Improvements in technology mapping: |
| - Added support for recursive techmap |
| - Added CONSTMSK and CONSTVAL features to techmap |
| - Added _TECHMAP_CONNMAP_*_ feature to techmap |
| - Added _TECHMAP_REPLACE_ feature to techmap |
| - Added "connwrappers" command for wrap-extract-unwrap method |
| - Added "extract -map %<design_name>" feature |
| - Added "extract -ignore_param ..." and "extract -ignore_parameters" |
| - Added "techmap -max_iter" option |
| |
| * Improvements to "eval" and "sat" framework: |
| - Now include a copy of Minisat (with build fixes applied) |
| - Switched to Minisat::SimpSolver as SAT back-end |
| - Added "sat -dump_vcd" feature |
| - Added "sat -dump_cnf" feature |
| - Added "sat -initsteps <N>" feature |
| - Added "freduce -stop <N>" feature |
| - Added "freduce -dump <prefix>" feature |
| |
| * Integration with ABC: |
| - Updated ABC rev to 7600ffb9340c |
| |
| * Improvements in the internal APIs: |
| - Added RTLIL::Module::add... helper methods |
| - Various build fixes for OSX (Darwin) and OpenBSD |
| |
| |
| Yosys 0.1.0 .. Yosys 0.2.0 |
| -------------------------- |
| |
| * Changes to the driver program: |
| - Added "yosys -h" and "yosys -H" |
| - Added support for backslash line continuation in scripts |
| - Added support for #-comments in same line as command |
| - Added "echo" and "log" commands |
| |
| * Improvements in Verilog frontend: |
| - Added support for local registers in named blocks |
| - Added support for "case" in "generate" blocks |
| - Added support for $clog2 system function |
| - Added support for basic SystemVerilog assert statements |
| - Added preprocessor support for macro arguments |
| - Added preprocessor support for `elsif statement |
| - Added "verilog_defaults" command |
| - Added read_verilog -icells option |
| - Added support for constant sizes from parameters |
| - Added "read_verilog -setattr" |
| - Added support for function returning 'integer' |
| - Added limited support for function calls in parameter values |
| - Added "read_verilog -defer" to suppress evaluation of modules with default parameters |
| |
| * Other front- and back-ends: |
| - Added BTOR backend |
| - Added Liberty frontend |
| |
| * Improvements in technology mapping: |
| - The "dfflibmap" command now strongly prefers solutions with |
| no inverters in clock paths |
| - The "dfflibmap" command now prefers cells with smaller area |
| - Added support for multiple -map options to techmap |
| - Added "dfflibmap" support for //-comments in liberty files |
| - Added "memory_unpack" command to revert "memory_collect" |
| - Added standard techmap rule "techmap -share_map pmux2mux.v" |
| - Added "iopadmap -bits" |
| - Added "setundef" command |
| - Added "hilomap" command |
| |
| * Changes in the internal cell library: |
| - Major rewrite of simlib.v for better compatibility with other tools |
| - Added PRIORITY parameter to $memwr cells |
| - Added TRANSPARENT parameter to $memrd cells |
| - Added RD_TRANSPARENT parameter to $mem cells |
| - Added $bu0 cell (always 0-extend, even undef MSB) |
| - Added $assert cell type |
| - Added $slice and $concat cell types |
| |
| * Integration with ABC: |
| - Updated ABC to hg rev 2058c8ccea68 |
| - Tighter integration of ABC build with Yosys build. The make |
| targets 'make abc' and 'make install-abc' are now obsolete. |
| - Added support for passing FFs from one clock domain through ABC |
| - Now always use BLIF as exchange format with ABC |
| - Added support for "abc -script +<command_sequence>" |
| - Improved standard ABC recipe |
| - Added support for "keep" attribute to abc command |
| - Added "abc -dff / -clk / -keepff" options |
| |
| * Improvements to "eval" and "sat" framework: |
| - Added support for "0" and "~0" in right-hand side -set expressions |
| - Added "eval -set-undef" and "eval -table" |
| - Added "sat -set-init" and "sat -set-init-*" for sequential problems |
| - Added undef support to SAT solver, incl. various new "sat" options |
| - Added correct support for === and !== for "eval" and "sat" |
| - Added "sat -tempinduct" (default -seq is now non-induction sequential) |
| - Added "sat -prove-asserts" |
| - Complete rewrite of the 'freduce' command |
| - Added "miter" command |
| - Added "sat -show-inputs" and "sat -show-outputs" |
| - Added "sat -ignore_unknown_cells" (now produce an error by default) |
| - Added "sat -falsify" |
| - Now "sat -verify" and "sat -falsify" can also be used without "-prove" |
| - Added "expose" command |
| - Added support for @<sel_name> to sat and eval signal expressions |
| |
| * Changes in the 'make test' framework and auxiliary test tools: |
| - Added autotest.sh -p and -f options |
| - Replaced autotest.sh ISIM support with XSIM support |
| - Added test cases for SAT framework |
| |
| * Added "abbreviated IDs": |
| - Now $<something>$foo can be abbreviated as $foo. |
| - Usually this last part is a unique id (from RTLIL::autoidx) |
| - This abbreviated IDs are now also used in "show" output |
| |
| * Other changes to selection framework: |
| - Now */ is optional in */<mode>:<arg> expressions |
| - Added "select -assert-none" and "select -assert-any" |
| - Added support for matching modules by attribute (A:<expr>) |
| - Added "select -none" |
| - Added support for r:<expr> pattern for matching cell parameters |
| - Added support for !=, <, <=, >=, > for attribute and parameter matching |
| - Added support for %s for selecting sub-modules |
| - Added support for %m for expanding selections to whole modules |
| - Added support for i:*, o:* and x:* pattern for selecting module ports |
| - Added support for s:<expr> pattern for matching wire width |
| - Added support for %a operation to select wire aliases |
| |
| * Various other changes to commands and options: |
| - The "ls" command now supports wildcards |
| - Added "show -pause" and "show -format dot" |
| - Added "show -color" support for cells |
| - Added "show -label" and "show -notitle" |
| - Added "dump -m" and "dump -n" |
| - Added "history" command |
| - Added "rename -hide" |
| - Added "connect" command |
| - Added "splitnets -driver" |
| - Added "opt_const -mux_undef" |
| - Added "opt_const -mux_bool" |
| - Added "opt_const -undriven" |
| - Added "opt -mux_undef -mux_bool -undriven -purge" |
| - Added "hierarchy -libdir" |
| - Added "hierarchy -purge_lib" (by default now do not remove lib cells) |
| - Added "delete" command |
| - Added "dump -append" |
| - Added "setattr" and "setparam" commands |
| - Added "design -stash/-copy-from/-copy-to" |
| - Added "copy" command |
| - Added "splice" command |
| |