path: root/CodingReadme
diff options
authorRuben Undheim <>2018-08-30 20:46:20 +0200
committerRuben Undheim <>2018-08-30 20:46:20 +0200
commit5033b51947a6ef02cb785b5622e993335efa750a (patch)
tree7bed18c526bd94917fa2f08e3df12209863698a1 /CodingReadme
parentfefe0fc0430f4f173a25e674708aa0f4f0854b31 (diff)
New upstream version 0.7+20180830git0b7a184
Diffstat (limited to 'CodingReadme')
1 files changed, 97 insertions, 1 deletions
diff --git a/CodingReadme b/CodingReadme
index cbe1fb8b..b64e7917 100644
--- a/CodingReadme
+++ b/CodingReadme
@@ -21,7 +21,7 @@ Here is a the C++ code for a "hello_world" Yosys command (
struct HelloWorldPass : public Pass {
HelloWorldPass() : Pass("hello_world") { }
- virtual void execute(vector<string>, Design*) {
+ void execute(vector<string>, Design*) override {
log("Hello World!\n");
} HelloWorldPass;
@@ -373,6 +373,7 @@ Finally run all tests with "make config-{clang,gcc,gcc-4.8}":
cd ~yosys
make clean
make test
+ make ystests
make vloghtb
make install
@@ -411,3 +412,98 @@ Updating the website:
git commit -am update
make push
+Cross-Building for Windows with MXE
+Check and install all missing requirements.
+As root (or other user with write access to /usr/local/src):
+ cd /usr/local/src
+ git clone
+ cd mxe
+ make -j$(nproc) MXE_PLUGIN_DIRS="plugins/" \
+ MXE_TARGETS="i686-w64-mingw32.static" \
+ gcc tcl readline
+Then as regular user in some directory where you build stuff:
+ git clone yosys-win32
+ cd yosys-win32
+ make config-mxe
+ make -j$(nproc) mxebin
+How to add unit test
+Unit test brings some advantages, briefly, we can list some of them (reference
+* Tests reduce bugs in new features;
+* Tests reduce bugs in existing features;
+* Tests are good documentation;
+* Tests reduce the cost of change;
+* Tests allow refactoring;
+With those advantages in mind, it was required to choose a framework which fits
+well with C/C++ code. Hence, it was chosen (google test)
+[], because it is largely used and it is
+relatively easy learn.
+Install and configure google test (manually)
+In this section, you will see a brief description of how to install google
+test. However, it is strongly recommended that you take a look to the official
+repository ( and refers to that if you
+have any problem to install it. Follow the steps below:
+* Install: cmake and pthread
+* Clone google test project from: and
+ enter in the project directory
+* Inside project directory, type:
+* After compilation, copy all "*.so" inside directory "googlemock" and
+ "googlemock/gtest" to "/usr/lib/"
+* Done! Now you can compile your tests.
+If you have any problem, go to the official repository to find help.
+Ps.: Some distros already have googletest packed. If your distro supports it,
+you can use it instead of compile.
+Create new unit test
+If you want to add new unit tests for Yosys, just follow the steps below:
+* Go to directory "yosys/test/unit/"
+* In this directory you can find something similar Yosys's directory structure.
+ To create your unit test file you have to follow this pattern:
+ fileNameToImplementUnitTest + E.g.: if you want to implement the
+ unit test for kernel/, you will need to create a file like this:
+ tests/unit/kernel/;
+* Implement your unit test
+Run unit test
+To compile and run all unit tests, just go to yosys root directory and type:
+make unit-test
+If you want to remove all unit test files, type:
+make clean-unit-test