Skip to content

sellicott/sellicott_fib_seq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fibonacci Sequence Generator for Columbus SSCS/CAS Workshop

This is a demonstration Tiny Tapeout project for the workshop series held by the Columbus chapter of IEEE SSCS/CAS. The goal of this project is to demonstrate the Tiny Tapeout flow starting from a Verilog design to build a GDS file for manufacturing. The project itself is quite simple, it generates the Nth number from the Fibonacci sequence by iteratively building the sequence each time. For more information look in info.md, but a schematic of the design is shown here.

The design is quite simple and only uses about 9.5% of the avalible Tiny Tapeout tile area as shown in the GDS render.

Testbenches

The project includes two methods to test its functionality; with testbenches written in Python cocotb cocotb testbench (for Github action based simulation) and Icarus Verilog simulation testbench code for use on local computers.

Note

Icarus Verilog is used for local simulation since the OSS-CAD-Suite don't currently install a working cocotb implementation on Windows. As we desire to have participants build custom testbenches on their local computers in future workshops, we needed a testbench platform that can be easily used without installing additional tools beyond the basic ones provided in the binary distribution. For Verilog syntax highlighting, I'm using the Verilog-HDL/SytemVerilog/Bluespec SystemVerilog Extension

Getting Started

The following instructions describe how to get the tools needed to simulate this project locally on your computer

Tip

We assume that the reader has a basic understanding of how to use git and and have a text editor with reasonable syntax hilighting. If you don't, I recommend using VS Code and following their tutorial on using git within VS Code.

  1. Clone this repo: Use git to download this project to somewhere on your computer.
git clone https://github.com/sellicott/sellicott_fib_seq.git

Note

If you plan on modifying the design instead of just looking at it, you should "fork" the repo instead of cloning it. This will allow you to push your own changes to Github to run the tests and OpenLane in Github actions.

  1. Install OSS-CAD-Suite: This process will be slightly different depending on your OS. The basic instructions are to download one of the. pre-compiled releases for your operating system/processor type, then extract the file to a location of your choosing.

Caution

On Windows, make sure to extract the binaries to a path without spaces. Some of the tools are picky about this. I recommend C:\oss-cad-suite

  1. Startup the CAD Tools: Open up a terminal window (on Windows this is "Command Prompt") and activate the OSS-CAD-Suite environment by calling the activate script for your OS. For Linux/Mac this will be:
source <extracted_location>/oss-cad-suite/environment

For Windows it will be

<extracted_location>\oss-cad-suite\environment.bat

If you installed to the recommended location for Windows:

C:\oss-cad-suite\environment.bat

At this point your command prompt should change to either (OSS CAD Suite) <prompt> or [OSS CAD Suite] <prompt> for Linux/Mac and Windows respectively. At this point you can access any tools provided by the suite.

About

Tiny Tapeout Fibonacci sequence generator example project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published