This repository is designed for the Yosys + (Optional) Verific support. The open-source Yosys has extensive Verilog-2005 support while Verific adds complete support for SystemVerilog IEEE-1800, UPF IEEE-1801 and VHDL IEEE-1076 standards. The repository contains yosys_rs, and open-source HDL projects as submodules, which are going to be used for the Synthesis and Verification. It also contains Yosys template scripts which can be used in the OpenFPGA tasks for the yosys_vpr flow. These scripts are designed to be used only with Yosys with Verific enabled. Contact Verific directly to subscribe the optional Verific License. Contact zarin.said@rapidsilicon.com for support with the Verific integration in this repo.
The list of dependencies:
.
|-- analyze
|-- RTL_Benchmark
|-- benchmarks
|-- logic_synthesis-rs
|-- scripts
|-- suites
|-- Raptor_Tools
|-- yosys
|-- yosys-plugins
`-- yosys-rs-plugin
    
The repository has the following submodules:
- yosys
- yosys-plugins
- yosys-rs-plugin
- Raptor_Tools
- logic_synthesis-rs
- RTL_Benchmark
The directory structure is the following:
- analyzedirectory contains analyze tool and it's unit tests.
- benchmarksdirectory contains benchmark open-source designs - SHOULD BE REMOVED:- verilogholds Verilog language desings.
- mixed_languagesholds mixed language desings.
- vhdlholds VHDL submodule designs.
 
- suites directory contains benchmark suites which can be automatically run by the automation scripts available at scripts/synth.
- scriptsdirectory contains automation scripts:- benchmarksholds Yosys synthesis scripts for the available benchmarks.
- log_automationholds the automation scripts to extract metrics from tools output log files.
- synthholds the automation scripts to run synthesis on different tools.
- task_generatorholds the OpenFPGA tasks generator script and it's default settings JSON file.
- yosys_templatesholds the OpenFPGA Yosys template scripts which are written to use the- verificfrontend.
 
- Raptor_Toolsdirectory contains Raptor_Tools submodule which has Flex_LM library and verific_rs submodule.
- yosysdirectory contains Yosys submodule.
- yosys-pluginsdirectory contains yosys-symbiflow-plugins submodule.
- yosys-rs-plugindirectory contains yosys-rs-plugin submodule.
- logic_synthesis-rsdirectory contains logic_synthesis-rs submodule which has DE and abc_rs submodule.
- RTL_Benchmarkdirectory contains RTL_Benchmark submodule.
Run release Makefile target to build Yosys with Verific enabled:
make releaseProvide PRODUCTION_BUILD=ON option to build in production mode:
make release PRODUCTION_BUILD=ONRun install Makefile target to build and install Yosys with Verific enabled:
make install PREFIX=<INSTALL_DIR>All available Makefile targets can be seen running help target:
make helpNote: If you would like to update your local repository and build, then run the following commands.
  cd yosys_verific_rs
  git pull
  make UPDATE_SUBMODULES=ONInitialize/update RTL_Benchmark submodule:
git submodule update --init --recursive --progress RTL_BenchmarkExecute python script to run suite of benchmarks:
python3 scripts/synth/synthesis.py --config_files suites/Golden/Golden_synth_rs_ade_with_bram_with_dsp.jsonTo generate tasks with default configurations/settings the following command should be run:
python3 scripts/task_generator/run_task_generator.py PATH_TO_OPENFPGA_ROOT --debugTo generate tasks with specific configurations/settings the following command should be run:
python3 scripts/task_generator/run_task_generator.py PATH_TO_OPENFPGA_ROOT --settings_file SPECIFIC_SETTINGS.json --debugDetailed information regarding OpenFPGA tasks generation can be found here.