URL
https://opencores.org/ocsvn/layer2/layer2/trunk
Subversion Repositories layer2
Compare Revisions
- This comparison shows the changes necessary to convert path
/layer2
- from Rev 6 to Rev 7
- ↔ Reverse comparison
Rev 6 → Rev 7
/trunk/README
1,4 → 1,174
+------------------------------------------------------------------------------+ |
+------------------------------------------------------------------------------+ |
| | |
| layer[2] SoC for Spartan-3E Starter Kit | |
| | |
+------------------------------------------------------------------------------+ |
Comming soon... |
|
The layer[2] system-on-a-chip combines to the greatest possible extent a |
MIPS I(tm) compatible CPU with various memories and I/O-controllers. |
The spectrum of supported memories includes (inter alia) adjacent to an |
internal 16 kB memory, a flash-memory of 16 MB. |
The input/output capabilities of the system are realized by a PS/2 keyboard |
controller for handling the input and a VGA-textmode-controller responsible |
for output purposes. |
For the communication with other computer systems a RS-232 interface is used. |
|
The implementation of the hardware components was accomplished by the usage |
of the VHDL hardware description language and furthermore these components |
were synthesised for the Spartan-3E Starter Kit. |
Because of the compatibility with the MIPS I(tm) ISA, it is additionally |
possible to compile software with the GCC for layer[2]. |
|
+------------------------------------------------------------------------------+ |
| Toolchain Setup | |
+------------------------------------------------------------------------------+ |
This Section helps you with setting up the toolchain appropriatly. |
|
+---------------------------------------------------------------------------+ |
| cygwin | |
+---------------------------------------------------------------------------+ |
Installing cygwin is pretty easy. Just download the Installer from the |
cygwin homepage. |
|
After you have selected a download mirror, you will be prompted a |
"Select Packages" Window. We need Python for the upload script |
<sw/common/upload.py> and the memory file generator script |
<sw/common/vhd.py>, so check if its node is set to Default |
(This should suffice). |
|
The Devel node contains 'make', 'subversion', 'binutils' and the 'gcc'. |
These packages should be selected by default. |
|
+---------------------------------------------------------------------------+ |
| ISE WebPack | |
+---------------------------------------------------------------------------+ |
You can download the WebPack here if you haven't already installed it. |
|
The hardware build script xilinx/Makefile assumes that you have installed |
the WebPack at "C:\Xilinx". If your installation is located somewhere |
else, don't forget to adjust the build script. |
|
+---------------------------------------------------------------------------+ |
| pySerial | |
+---------------------------------------------------------------------------+ |
Download and extract pySerial. Open cygwin and navigate into the pySerial |
directory. Type |
|
python setup.py install |
|
If you still get some error when using the upload script, you probably |
need to install pyWin as well. |
|
+---------------------------------------------------------------------------+ |
| GCC Cross Compiler | |
+---------------------------------------------------------------------------+ |
Go to Cygwin Mirror Sites and download the newest source packages |
'binutils-*-src.tar.bz', 'gcc-core-*-src.tar.bz' as well as |
'mpfr-*-src.tar.bz'. First we define some global variables. In cygwin type |
line-by-line: |
|
export TARGET=mips-elf |
export PREFIX=/usr/local/$TARGET |
export PATH=$PATH:$PREFIX/bin |
|
Extract the archives into the directories 'binutils', 'gcc' and 'mpfr' |
respectively. In cygwin go to your directory that contains the extracted |
directories and type line-by-line: |
|
mkdir build-binutils |
cd build-binutils |
../binutils/configure --target=$TARGET --prefix=$PREFIX |
make |
make install |
cd .. |
|
Next, we compile MPFR which is a prerequisite for GCC: |
|
mkdir build-mpfr |
cd build-mpfr |
|
make |
make install |
cd .. |
|
And finally, GCC: |
|
mkdir build-gcc |
cd build-gcc |
../gcc/configure --with-newlib --without-headers \ |
--enable-languages="c" --target=$TARGET --prefix=$PREFIX \ |
--with-gnu-ld --with-gnu-as --disable-libssp --with-mpfr=$PREFIX |
make |
make install |
cd .. |
|
If the compilation ends with an error, search 'build-gcc' for the binaries |
'mips-elf-cc1.exe' and 'mips-elf-gcc.exe' and copy them manually into the |
directory </usr/local/mips-elf/bin> |
|
|
+------------------------------------------------------------------------------+ |
| User Guide | |
+------------------------------------------------------------------------------+ |
The following section describes how to build and upload the hardware, the |
bootloader and the demo software. |
|
+---------------------------------------------------------------------------+ |
| Hardware | |
+---------------------------------------------------------------------------+ |
To build the hardware just navigate to <xilinx/> and enter |
|
make build |
|
Once completed, you can upload it onto your Starter Kit with |
|
make upload |
|
This just loads it directly onto your Spartan-3E. If you wish to load the |
design to the Plattform Flash type |
|
make prom |
|
If nothing shows up on the display, you might accidetally erased the CPLD. |
Start the iMPACT GUI and upload <xilinx/CPLD_bypass_logic.jed> to the |
CPLD. |
|
+---------------------------------------------------------------------------+ |
| Building the Bootloader | |
+---------------------------------------------------------------------------+ |
The source for the 'void Bootloader' is located at <sw/void>. You can |
build it with |
|
make standalone |
|
This will create the binary and translates it into the VHDL memory file |
<sw/bin/data.vhd>. You need to rebuild the hardware subsequently. |
|
+---------------------------------------------------------------------------+ |
| Configuring 'upload.py' | |
+---------------------------------------------------------------------------+ |
The serial port number of the upload script <sw/common/upload.py> needs to |
be adjusted. |
|
34] port = 4, # 'COM5', |
|
+---------------------------------------------------------------------------+ |
| Uploading images | |
+---------------------------------------------------------------------------+ |
Start layer[2] and select 'Upload image ...'. You can navigate with the |
'ARROW UP' and 'ARROW DOWN' keys. The system now waits for some incomming |
serial transmission. |
In cygwin switch to the directory where <sw/tennmino/> resides and type |
|
make upload |
|
This will build and upload the application. If everything went well, |
you'll see the 'void Bootloader' start-up screen again. |
|
If you select 'View memory contents ...', you can monitor the contents of |
the StrataFlash and the DDR. 'ARROW UP' and 'ARROW DOWN' increases or |
decreases the starting address of the displayed memory contents |
respectively. Press 'ESC' to return. |
|
With 'Start ...' the contents of the StrataFlash will be loaded to the DDR |
and the system starts the execution of the uploaded program. |