This readme tells you everthing you need to know about the N_105 16
bit soft core processor and the stuff we have created to go with it.

The programs talked about in the documentation scattered around this
directry are Quartus, Modelsim for Quartus and SOPC "System On a
Programmable Chip" Builder. If you are reading this and have not heard
of Quartus - stop reading now : you are lost! SOPC Builder can be
found in Quartus->Tool->SOPCBuilder. If you have ModelSIm installed
you can run it from SOPC Builder and it will set up the project nicely
for you.

To run the project in simulation type 's', 'w', 'run 20 us' in
Modelsim to compile the project files, set up the wave form and run it
for 20 micro seconds. It will be quite pretty. The wave form should be
set up with signals specified in the class.ptf file. You can ad
signals by typing 'view signals' and dragging and dropping the ones
you want.

To run the project on the board, plug it in and program it with the
programming file. If you dont know how to do this you are probably
lost as well and ignored the first direction!

For information about the N-105 processor see Documntation\manual

To set up your own project see uoccl_n105\readme

The instruction memory in simulation is filled from
N_105_system_sim\onchip_rom_lane0.dat and setup on the board with the
contents of onchip_rom_lane0.mif. These files can be generated using
Assembler_mif and Assembler_dat in the programs directory. When the
program is generated by SOPC Builder they are set to blank. Setting
the contents to a file in SOPC Builder doesn't work. You will also
find lots of cool programs I wrote in there.

The project in this directory is set up to work in ModelSim and on the
Excalibur EPXA1 with the 2x16 LCD display.

The code for the processor is in uoccl_n105\cpu.v, and this file is
copied to your project directory when the core is added as a component
to the project in SOPC Builder. The component's specifications are
contained in the class.ptf so don't alter it unless you know what you
are doing!

To get the cpu running on the board after it has been programmed
(using this project) you will need to press SW2 which is assigned to
reset_n. This will reset the pc etc. If you run display.s on it it
should print out "HELLO WORLD" on the LCD display.

There are some code generators in programs\testing. These can generate
a variety of large programs for testing instructions and can be easily
adapted to test you own add on instructions. See the readme in that
folder for more info.

Suggested modes of use
-write code for it
-run it on an fpga
-create an N_105 cluster
-add on your own custom instructions by editing the verilog.
eg LDB, STB (ld/st a byte not a half word)
	
If you want to change stuff please copy cpu.v and the uoccl_n105
directory to somewhere else and creat a new project with that. You
should create the system in SOPC Builder (you will need the .ptf in
the uoccl directory in order to be able to add the N-105 processor)
then add it to the Quartus project by creating a block diagram file
and adding the system as a symbol to it (try double clicking some to
get the symbols dialog up). You can then add pin symbols to make a
wrapper for the system and connect these to the pins on the board in
settings->pin assignments.


Happy playing...

Rosemary Francis 
2004
