[Day12] Simulating memory on a Wishbone Bus

Reading from memory This post follows tutorial on https://vivonomicon.com/2020/04/14/learning-fpga-design-with-nmigen/ On the iCESugar-pro, there is a Winbond w25q256jv which is a 3V 256M-bit serial flash memory with dual/quad spi. Here is a document https://github.com/wuxx/icesugar-pro/blob/master/doc/w25q256jv.pdf of the SPI module. Using this module, we can program the FPGA by writing the bitstream into flash memory.

[Day11]New toy iCESugar-Pro!

iCESugar-pro Offical github site: https://github.com/wuxx/icesugar-pro Install Project Trellis The FPGA use EPC5 chips from lattice. We can use Trellis+ yosys+ nextpnr to develope our design. https://github.com/SymbiFlow/prjtrellis This section will takes more than an hour to make it all done. Install the dependencies for Project Trellis Install Boost 1 2 3 sudo apt-get install libboost-all-dev sudo apt install build-essential libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-test-dev sudo apt install libboost-filesystem1.

[Day10] Clock domain simulation!

Cycle accurate simulation In previous session, we use combinational circuit design. Now, it is time for some sequential circuits! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 from typing import List from nmigen.

[Day09] Formal verification on adder

Perform formal verification What is a “formal verification” ? Formal verification is a process of checking whether a design satisfies some requirements. Example Here is an adder. It is different from previous one on day 8. In order to make sure the adder in the design satisfies “addition”.

[Day08] First fight with nMigen on simply an adder!

Prerequisites If you would like to perform simulation with GTKwave, a opensource free waveform viewer. Download the software here and put it under C:/gtkwave. Go to the windows path setting and add it under the $path variable. The main function We create a simple 8-bit adder