Department of Computer Science and Technology

Course pages 2017–18

ECAD and Architecture Practical Classes

Additional material and further reading

Relevant course notes

Computer Design lectures.

Part IB Unix Tools, a useful reference for those unfamiliar with the Unix command line.

Further reading

SignalTap tutorial: SignalTap is a logic analyser that Quartus can build inside your FPGA, that allows you to record signals at any point in your design and download waveforms to view on your PC. It is very handy for debugging when you can't tell what's going on inside your FPGA from the external pins or how it behaves.

Bluespec SystemVerilog (BSV), a higher level hardware description derived from Haskell and based on the principle of Guarded Atomic Actions. Can make writing hardware considerably quicker and less error-prone than writing SystemVerilog. See also the Cambridge Bluespec online tutor.

DE1-SoC resources

Shift register documentation for reading buttons and other inputs.

Manufacturer Terasic's product page for the DE1-SoC board.

Terasic's resources for the DE1-SoC (worth downloading the 'CD-ROM' which is really a zip of source code and documents for the board). Our boards are Rev F.

RocketBoards, Altera's software development site for the Cyclone V SoC platform. Includes a number of useful tutorials and other resources.

Cambridge display board

Display board schematic

The LCD is an ER-TFT050-2 from EastRising ( See their product page. We have also downloaded their collection of datasheets (in case their site goes away).

The touch panel is driven by the GSL1680 - see the minimalist datasheet. More information is given on the Linux-sunxi (which also describes Linux support), a blog post (Weatherhelge) and forum thread.

The LEDs are the Shenzhen Worldsemi WS2812B (datasheet), which have been nicknamed 'NeoPixels' by Adafruit - they also describe the protocol better than the datasheet.

Linux on the SoC ARM Core

It is fairly to straightforward to run Linux on the ARM core on the SoC. Many prebuilt images are available from Terasic here. Getting Linux on the board is explained between the readme file of whatever image you have downloaded, and the DE1-SoC user manual. You will need a microSD card 8GB or larger to carry the Linux image, and a mini-USB cable in order to connect to the board via USB JTAG. In order to get at the MSEL DIP switches on the board to configure the boot behaviour, you will need to use a Philips-head scredriver in order to remove the screen from the board.

The image I have used specifically is the Ubuntu image from Terasic. The steps I followed were:

  1. Download and unzip the image. The image unzips to de1soc_ubuntu_1604.img and a readme file into the present working directory.
  2. Write the image onto a micro SD card. We recommend that you use the tool Etcher. This has a GUI, does not carry the risk of trashing your hard disk, and verifies the file after writing.
  3. If you are using the recommended Ubuntu image, make sure that the DIP switches on the back of the board labelled MSEL are all in the '0' position. Other distros and images may require these switches to be set to different positions.
  4. Insert the micro SD card into the reader on the board, plug the mini-USB cable into the port on the board labelled 'UART to USB'.
  5. Connect a Serial client (eg minicom, PuTTY) to the board, with a baud rate of 115200, no partiy bit, 1 stop bit, and no flow control settings.
  6. Press the on-off button on the board.

With the Ubunutu image, you can also connect a VGA monitor and USB keyboard and mouse to the board, and use a graphical desktop.