In the previous post, I have given a brief introduction on physical design and the steps needed to manufacture a hardware circuit. In this post, I will showcase the use of OpenROAD tools to perform the tasks discussed in the physical design process.
To follow up with this tutorial, we recommend the use of a machine with 4GB+ of RAM to build and run the tools. However, if you are using big designs, more memory is required for the tools to perform their computations in a timely manner.
In digital design, a circuit is described in a hardware description language (e.g. Verilog) and the goal is to manufacture it. To get the actual layout of the circuit that is manufacturable, it needs to pass through a number of steps before handing it over to a fabrication lab. In this post, I briefly give an overview of the steps and show how to perform them using open-source tools in OpenROAD.
Continuous Integration (CI) proved to be of extreme importance to developer productivity. Implementing a CI pipeline sets the framework for code contributors to make sure their new additions/deletions improve the code base and don’t fall back to a non-ending journey of debugging. When it comes to implementing the pipeline, there are many cloud-based tools that can make this automation easier. For example, CircleCI, Travis CI, GitLab CI and the newly-introduced (at the time of writing) GitHub Actions. However, there are some cases where a project needs to self-host its automation server, and this is where Jenkins comes as a well-developed and well-maintained automation server.
In this post, I show how to correctly set up a prodcution-level master Jenkins server. This demo is implemented on Google Cloud Platform as it offers unlimited free (forever or until further notification) Compute Engine instance. It is a small instance (F-1 micro), but should be fine for small tasks. If you have builds that take longer times, or requires a large amount of memory, you should start a bigger server on any cloud provider. Also, we will use Debian GNU/Linux 9 as the OS on whichever instance you choose.
Description: Yosys is an open-source Logic Synthesis tool. It takes a circuit design written in Register-Transfer-Level (RTL) and synthesize it to produce a netlist ready for placement and routing. The project is written in C++. The tool is used in an end-to-end silicon compilation flow, called OpenROAD. The complete flow unifies a build platform to use
CentOS. Therefore, it was ideal to introduce a
Docker build for it to ensure portability.
Today, I was asked by a friend who is a new comer to a graduate-level program: Can you give me any guidance about taxes? Do we have any sort of treaties for reduction, or how did you manage taxes here? What should I expect to pay in general?
Rephrasing his question, What is the deal with all this tax bullshit they told us about in the student orientation?
So, I replied to his email and my reply looked so long that I thought it would benefit some confused new comer out there. While this is not a financial advice, I just describe what the terms you will hear/read everywhere mean.
Don’t get scared and don’t worry about taxes. You will know when it is time to take action.
Some Types of Taxes
If you are coming from a country that didn’t require you to sort out your taxes (just like my country - Egypt), you will most probably be confused similar to how I was in my first few days in the US. You go to a grocery store to buy something, and at the cashier, you find yourself paying a little bit more than the price tag on the item. Welcome to Sales Taxes.