Course pages 2012–13
Advanced Computer Design
Assessed Exercises
- Week 1: Divider in Bluespec
- Week 2: Cyan Processor
- Week 3: Using the Altera NIOS processor and Qsys tool
- Week 4: MIPS - use and analysis
- Week 5: Analysis of an on-chip network
- There is then a mini research project
- See the assessment information for deadlines, etc.
Additional Bluespec Examples
- FibSimple - example modules to calculate Fibbonaci numbers (used in week 1)
- FibServer - example Servers to calculate Fibbonaci numbers (used in week 1)
- ServerFarm - create multiple copies of a Server and multiplex requests and responses to make them look like one server (which should be faster if the server takes multiple clock cycles)
- NIOS Custom Instruction - an example of a NIOS custom instruction together with abstract interface
- Altera ROM - example of a ROM as an Altera block RAM preloaded with the contents. It is also an example of how to embed Verilog in Bluespec.
Notes on tools and machines
- Initialise paths to the tools:
source /usr/groups/ecad-labs/ACS-ACD/scripts/tools-setup.bash
- Initialise paths and tools for Bluesim when simulating the Cyan
processor (works around a bug in gcc version 4.6):
source /usr/groups/ecad-labs/ACS-ACD-1213/scripts/tools-setup-cyan-bluespec.bash
- To use Bluespec, begin with the Bluespec walk through
- To use Altera's Quartus tools, begin with the Part 1b ECAD+Arch lab pages
- Information on remote access and machines
- Syntax highlighting provided by Bluespec for emacs, jedit and vim
- see
/usr/groups/ecad/bluespec/current/util
- jedit syntax highlighting for Bluespec
(from Steve Marsh) -
see the two files
in:
/usr/groups/ecad-labs/ACS-ACD/misc/jedit
which need to be copied to:- for unix: ~/.jedit/modes
- for mac: ~/Library/jEdit/modes
- gedit syntax highlighting for Bluespec and Verilog (from Philip
Withnall) - see the two files in:
/usr/groups/ecad-labs/
External Links
- Bluespec wiki including examples
- Bluespec course at MIT
- Course at MIT on computer architecture
- Notes on generating Mandelbrots (an example of simple parallel computation):