Also need: Verilator, Yosys, Yices2, SymbiYosys
sudo apt install libsfml-dev extra-cmake-modules libboost-dev libboost-stacktrace-dev
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 autoconf libboost-stacktrace-dev libboost-program-options-dev
gperf libgmp-dev cmake
sudo pacman -S sfml extra-cmake-modules
TODO fill out.
memelang ./src/memepile/{integral,memory,pointer,stdintf,vector,string,token,main}.meme
Run run.py to run the tests for both SCHEMATIC and non-SCHEMATIC verilog configurations.
Process for adding a new leaf module for verymeme:
- Decide which Kicad symbol to use. If it's a new symbol, add data to pcb/kicadtools/ and generate using that.
- Write a verilog module corresponding to that symbol
- Write a mapping in memecad_map.json for the verilog module and kicad symbol.
- Add it as a verilator module in verymeme/verilog/CMakeLists.txt
- Add it to the SymbiYosys file in verymeme/verilog/formally_verify.sby
Build with:
export PFX=./
cmake -DUSE_AFL=yes -DCMAKE_BUILD_TYPE=Release $PFX/verymeme
AFL_SKIP_CPUFREQ=yes AFL_PRELOAD=/usr/local/lib/afl/libdislocator.so
afl-fuzz -m 1024M -i $PFX/verymeme/test_data/memelang/parsing -o memelang_fuzz
-x $PFX/verymeme/assets/afl/memelang.dict -- ./memelang @@
Or for persistent mode: cmake -DUSE_AFL=clang -DCMAKE_BUILD_TYPE=Release $PFX/verymeme
AFL_SKIP_CPUFREQ=yes AFL_PRELOAD=/usr/local/lib/afl/libdislocator.so
afl-fuzz -m 1024M -i $PFX/verymeme/test_data/memelang/parsing -o memelang_fuzz
-x $PFX/verymeme/assets/afl/memelang.dict -t 100 -- ./memelang