Analyze the Simpleton Basic App: Difference between revisions

From Cpre584
Jump to navigation Jump to search
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
Download the simpleton app:
== Overview ==
Simpleton is a minimalist Convey personality that has two custom instructions.  The first increments a value in an AEG register.  The second uses a single memory controller to increment a value in coprocessor memory.
 
Advantages of using Simpleton as the start of your project include:
* It's minimalist
* It's well commented
* The top level module, personality.v, replaces cae_pers.v with awesomeness:
** The port declaration is only 50 lines and no longer scary (cae_pers.v is >150 lines)
** It wraps the memory controller interfaces in to unpacked arrays so you can easily use generate loops
** It hides unnecessary instruction decode and clock logic
** It gets rid of the CSR interface (because, honestly, you weren't going to use it anyway)
** Adds a console bell at the end of the run and runcp scripts
 
== Download ==
All of Chad's Convey projects are located on the RCL SVN.  To checkout all projects, or just a tar.gz of simpleton:


  <nowiki>
  <nowiki>
  svn co http://svn.chaddington.com/simpleton</nowiki>
  svn co svn://rcl-1.ece.iastate.edu/projects/convey/
 
svn co svn://rcl-1.ece.iastate.edu/projects/convey/cae_simpleton/simpleton.tar.gz</nowiki>
Follow the [[Running the Vector Adder Example Application | vector adder example]] for how to make and run the project.


Open and analyze the following files, learn the directory structure, etc:
Open and analyze the following files, learn the directory structure, etc:


* /README
* /cae_simpleton/src/run
* /cae_simpleton/src/run
* /cae_simpleton/src/runcp
* /cae_simpleton/src/runcp
* /cae_simpleton/src/Userapp.c
* /cae_simpleton/src/UserApp.c
* /cae_simpleton/src/cp.s
* /cae_simpleton/src/cp.s
* /cae_simpleton/sim/CaeIsa.cpp
* /cae_simpleton/sim/CaeIsa.cpp

Latest revision as of 01:22, 20 February 2013

Overview

Simpleton is a minimalist Convey personality that has two custom instructions. The first increments a value in an AEG register. The second uses a single memory controller to increment a value in coprocessor memory.

Advantages of using Simpleton as the start of your project include:

  • It's minimalist
  • It's well commented
  • The top level module, personality.v, replaces cae_pers.v with awesomeness:
    • The port declaration is only 50 lines and no longer scary (cae_pers.v is >150 lines)
    • It wraps the memory controller interfaces in to unpacked arrays so you can easily use generate loops
    • It hides unnecessary instruction decode and clock logic
    • It gets rid of the CSR interface (because, honestly, you weren't going to use it anyway)
    • Adds a console bell at the end of the run and runcp scripts

Download

All of Chad's Convey projects are located on the RCL SVN. To checkout all projects, or just a tar.gz of simpleton:

 svn co svn://rcl-1.ece.iastate.edu/projects/convey/
 svn co svn://rcl-1.ece.iastate.edu/projects/convey/cae_simpleton/simpleton.tar.gz

Open and analyze the following files, learn the directory structure, etc:

  • /README
  • /cae_simpleton/src/run
  • /cae_simpleton/src/runcp
  • /cae_simpleton/src/UserApp.c
  • /cae_simpleton/src/cp.s
  • /cae_simpleton/sim/CaeIsa.cpp
  • /cae_simpleton/verilog/personality.v
  • /cae_simpleton/coregen/README
  • /cae_simpleton/phys
  • /cae_simpleton/makefile.include
  • /personalities/customdb
  • /personalities/65100.1.1.0/