```
yosys -- Yosys Open SYnthesis Suite
Copyright (C) 2012 - 2020 Claire Wolf <claire@symbioticeda.com>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
```
yosys – Yosys Open SYnthesis Suite
===================================
This is a framework for RTL synthesis tools. It currently has
extensive Verilog-2005 support and provides a basic set of
synthesis algorithms for various application domains.
Yosys can be adapted to perform any synthesis job by combining
the existing passes (algorithms) using synthesis scripts and
adding additional passes as needed by extending the yosys C++
code base.
Yosys is free software licensed under the ISC license (a GPL
compatible license that is similar in terms to the MIT license
or the 2-clause BSD license).
Web Site and Other Resources
============================
More information and documentation can be found on the Yosys web site:
- http://www.clifford.at/yosys/
The "Documentation" page on the web site contains links to more resources,
including a manual that even describes some of the Yosys internals:
- http://www.clifford.at/yosys/documentation.html
The file `CodingReadme` in this directory contains additional information
for people interested in using the Yosys C++ APIs.
Users interested in formal verification might want to use the formal verification
front-end for Yosys, SymbiYosys:
- https://symbiyosys.readthedocs.io/en/latest/
- https://github.com/YosysHQ/SymbiYosys
Setup
======
You need a C++ compiler with C++11 support (up-to-date CLANG or GCC is
recommended) and some standard tools such as GNU Flex, GNU Bison, and GNU Make.
TCL, readline and libffi are optional (see ``ENABLE_*`` settings in Makefile).
Xdot (graphviz) is used by the ``show`` command in yosys to display schematics.
For example on Ubuntu Linux 16.04 LTS the following commands will install all
prerequisites for building yosys:
$ sudo apt-get install build-essential clang bison flex \
libreadline-dev gawk tcl-dev libffi-dev git \
graphviz xdot pkg-config python3 libboost-system-dev \
libboost-python-dev libboost-filesystem-dev zlib1g-dev
Similarily, on Mac OS X Homebrew can be used to install dependencies (from within cloned yosys repository):
$ brew tap Homebrew/bundle && brew bundle
or MacPorts:
$ sudo port install bison flex readline gawk libffi \
git graphviz pkgconfig python36 boost zlib tcl
On FreeBSD use the following command to install all prerequisites:
# pkg install bison flex readline gawk libffi\
git graphviz pkgconf python3 python36 tcl-wrapper boost-libs
On FreeBSD system use gmake instead of make. To run tests use:
% MAKE=gmake CC=cc gmake test
For Cygwin use the following command to install all prerequisites, or select these additional packages:
setup-x86_64.exe -q --packages=bison,flex,gcc-core,gcc-g++,git,libffi-devel,libreadline-devel,make,pkg-config,python3,tcl-devel,boost-build,zlib-devel
There are also pre-compiled Yosys binary packages for Ubuntu and Win32 as well
as a source distribution for Visual Studio. Visit the Yosys download page for
more information: http://www.clifford.at/yosys/download.html
To configure the build system to use a specific compiler, use one of
$ make config-clang
$ make config-gcc
For other compilers and build configurations it might be
necessary to make some changes to the config section of the
Makefile.
$ vi Makefile # ..or..
$ vi Makefile.conf
To build Yosys simply type 'make' in this directory.
$ make
$ sudo make install
Note that this also downloads, builds and installs ABC (using yosys-abc
as executable name).
Tests are located in the tests subdirectory and can be executed using the test target. Note that you need gawk as well as a recent version of iverilog (i.e. build from git). Then, execute tests via:
$ make test
To use a separate (out-of-tree) build directory, provide a path to the Makefile.
$ mkdir build; cd build
$ make -f ../Makefile
Out-of-tree builds require a clean source tree.
Getting Started
===============
Yosys can be used with the interactive command shell, with
synthesis scripts or with command line arguments. Let's perform
a simple synthesis job using the interactive command shell:
$ ./yosys
yosys>
the command ``help`` can be used to print a list of all available
commands and ``help <command>`` to print details on the specified command:
yosys> help help
reading and elaborating the design using the Verilog frontend:
yosys> read -sv tests/simple/fiedler-cooley.v
yosys> hierarchy -top up3down5
writing the design to the console in Yosys's internal format:
yosys> write_ilang
convert processes (``always`` blocks) to netlist elements and perform
some simple optimizations:
yosys> proc; opt
display design netlist using ``xdot``:
yosys> show
the same thing using ``gv`` as postscript viewer:
yosys> show -format ps -viewer gv
translating netlist to gate logic and perform some simple optimizations:
yosys> techmap; opt
write design netlist to a new Verilog file:
yosys> write_verilog synth.v
or using a simple synthesis script:
$ cat synth.ys
read -sv tests/simple/fiedler-cooley.v
hierarchy -top up3down5
proc; opt; techmap; opt
write_verilog synth.v
$ ./yosys synth.ys
If ABC is enabled in the Yosys build configuration and a cell library is given
in the liberty file ``mycells.lib``, the following synthesis script will
synthesize for the given cell library:
# read design
read -sv tests/simple/fiedler-cooley.v
hierarchy -top up3down5
# the high-level stuff
proc; fsm; opt; memory; opt
# mapping to internal cell library
techmap; opt
# mapping flip-flops to mycells.lib
dfflibmap -liberty mycells.lib
# mapping logic to mycells.lib
abc -liberty mycells.lib
# cleanup
clean
If you do not have a liberty file but want to test this synthesis script,
you can use the file ``examples/cmos/cmos_cells.lib`` from the yosys sources
as simple example.
Liberty file downloads for and information about free and open ASIC standard
cell libraries can be found here:
- http://www.vlsitechnology.org/html/libraries.html
- http://www.vlsitechnology.org/synopsys/vsclib013.lib
The command ``synth`` provides a good default synthesis script (see
``help synth``):
read -sv tests/simple/fiedler-cooley.v
synth -top up3down5
# mapping to target cells
dfflibmap -liberty mycells.lib
abc -liberty mycells.lib
clean
The command ``prep`` provides a good default word-level synthesis script, as
used in SMT-based formal verification.
Unsupported Verilog-2005 Features
=================================
The following Verilog-2005 features are not supported by
Yosys and there are currently no plans to add support
for them:
- Non-synthesizable language features as defined in
IEC 62142(E):2005 / IEEE Std. 1364.1(E):2002
- The ``tri``, ``triand`` and ``trior`` net types
- The ``config`` and ``disable`` keywords and library map files
Verilog Attributes and non-standard features
============================================
- The ``full_case`` attribute on case statements is supported
(also the non-standard ``// synopsys full_case`` directive)
- The ``parallel_case`` attribute on case statements is supported
(also the non-standard ``// synopsys parallel_case`` directive)
- The ``// synopsys translate_off`` and ``// synopsys translate_on``
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
作为全球首款开源形式验证工具,“灵验”在用户输入RTL设计和SystemVerilog断言描述设计规范的情况下,可以自动进行语法解析、设计综合、断言解析,并且基于分布式计算理论自动调度引擎求解断言,加速验证收敛,从而降低形式验证工具的使用门槛。
资源推荐
资源详情
资源评论
收起资源包目录
基于分布式计算理论自动调度引擎求解断言,加速验证收敛 (2000个子文件)
libmca_common_monitoring.so.50.10.0 34KB
libompitrace.so.40.20.0 18KB
libmca_common_sm.so.40.20.0 14KB
orterun.1 57KB
mpirun.1 57KB
mpiexec.1 57KB
mpifort.1 8KB
mpicxx.1 8KB
mpic++.1 8KB
mpicc.1 8KB
ompi_info.1 8KB
orte-info.1 4KB
orte-clean.1 3KB
ompi-clean.1 3KB
orte-server.1 2KB
ompi-server.1 2KB
opal_wrapper.1 2KB
orted.1 1KB
mpif77.1 1022B
mpif90.1 1022B
libmca_common_dstore.so.1 29B
mpiCC.1 8B
libmca_common_dstore.so.1.0.2 78KB
libmca_common_ompio.so.41.19.3 55KB
MPI_Reduce.3 16KB
MPI_Comm_spawn.3 13KB
MPI_Gatherv.3 13KB
MPI_Comm_spawn_multiple.3 12KB
MPI_Reduce_local.3 11KB
MPI.3 9KB
MPI_Grequest_start.3 8KB
MPIX_Barrier_init.3 8KB
MPI_Scatterv.3 7KB
MPI_T_pvar_get_info.3 7KB
MPI_Op_create.3 7KB
MPI_Gather.3 7KB
MPI_Neighbor_alltoallv.3 7KB
MPI_File_open.3 6KB
MPI_Neighbor_alltoall.3 6KB
MPI_Put.3 6KB
MPI_Get_accumulate.3 6KB
MPI_Alltoallw.3 6KB
MPI_Pack_external.3 6KB
MPI_Alltoallv.3 6KB
MPI_Neighbor_alltoallw.3 6KB
MPI_Keyval_create.3 6KB
MPI_Scatter.3 6KB
MPI_Unpack_external.3 6KB
MPI_Publish_name.3 6KB
MPI_Dist_graph_create.3 6KB
MPI_Allgather.3 6KB
MPI_Unpack.3 6KB
MPI_File_set_view.3 6KB
MPI_Scan.3 6KB
MPI_Type_create_darray.3 5KB
OMPI_Affinity_str.3 5KB
MPI_Waitsome.3 5KB
MPI_Allgatherv.3 5KB
MPI_Accumulate.3 5KB
MPI_Alltoall.3 5KB
MPI_Type_create_subarray.3 5KB
MPI_Win_create.3 5KB
MPI_Recv.3 5KB
MPI_Init_thread.3 5KB
MPI_T_cvar_get_info.3 5KB
MPI_Type_get_contents.3 5KB
MPI_Dist_graph_create_adjacent.3 5KB
MPI_Testsome.3 5KB
MPI_Allreduce.3 5KB
MPI_Neighbor_allgatherv.3 5KB
MPI_Probe.3 5KB
MPI_Exscan.3 5KB
MPI_Comm_split.3 4KB
MPI_Comm_create_keyval.3 4KB
MPI_Win_allocate_shared.3 4KB
MPI_Type_create_keyval.3 4KB
MPI_File_get_info.3 4KB
MPI_Comm_split_type.3 4KB
MPI_Type_indexed.3 4KB
MPI_Type_create_f90_complex.3 4KB
MPI_Type_create_f90_real.3 4KB
MPI_Waitall.3 4KB
MPI_Reduce_scatter.3 4KB
MPI_Request_free.3 4KB
MPI_Neighbor_allgather.3 4KB
MPI_File_set_info.3 4KB
MPI_Register_datarep.3 4KB
MPI_Type_struct.3 4KB
MPI_Graph_create.3 4KB
MPI_Cancel.3 4KB
MPI_Wait.3 4KB
MPI_Reduce_scatter_block.3 4KB
MPI_Waitany.3 4KB
MPI_Get_elements.3 4KB
MPI_Win_create_keyval.3 4KB
MPI_Cart_shift.3 4KB
MPI_Testany.3 4KB
MPI_Finalize.3 4KB
MPI_Sendrecv.3 4KB
MPI_Type_vector.3 4KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 7362
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功