Random Number Generators and Hardware Sorters

Posted by: Dave Vandenbout 4 years, 4 months ago


Just a short post to alert you to some things I've done that are FPGA-related but don't appear on this site.

First, I released a Jupyter notebook about building random number generators (RNGs). For those that aren't familiar with it, Jupyter gives us a way to build executable documents that are displayed in a browser. My notebook uses Python and MyHDL to explore several methods for building RNGs. The neat thing is you can change the RNG parameters, simulate the effects, and visualize the results right in the browser. Then you can dump out Verilog or VHDL code to run in an FPGA.

Second, I released another Jupyter + MyHDL notebook showing how I built two FPGA-based circuits to sort lists of numbers. One of the sorters was recently discussed on the Hackaday site, and the other is an IBM design that I first built back in 1983 for a VLSI design class. The notebook generates a random list of numbers and you can see the progress as each sorter works through it. And just like the previous notebook, you can dump out the HDL code to make your own sorter.

The links I gave above go to static documents, but if you want to interact with the documents, you'll need the following:

  • A Python interpreter. (Anaconda is a popular choice for this, and it already has Jupyter bundled in.)
  • The Jupyter notebook (if you aren't using Anaconda).
  • The MyHDL Python package (easily installed by pip install myhdl ).

Once you have those installed, you can download notebook files with the .ipynb extension to your computer and open them with Jupyter.

The combination of Jupyter and MyHDL provides some unique advantages for exploring, documenting, and disseminating designs of digital systems. It's definitely worth checking out!

Current rating: 5


  • There are currently no comments

New Comment

required (not published)

Recent Posts






RSS / Atom