| Dalton Project University of California Dept. of Computer Science Riverside, CA 92521 [email protected] |
This page is still under construction and at the moment intended for internal use. You are welcomed to look at it, but we do NOT provided any support. We do not , nor does the University of Califronia at Riverside, provide any kind of warrantee for anything you read or download from this page.
Introduction to LEON
LEON is a 32-bit sparc-like open source processor core developed at the European Space Agency control and data systems division. LEON has a 5 stage RISC processor with cache, interrupt controller, external memory controller, UART, Amba bus, and has seperate I-cache and D-cache. It is fully synthesizeable (we use Synopsys but the original code supports several other tools as well). The LEON VHDL model is provided under the GNU LGPL liscense.
Block Diagram

Synthesis, Simulation, and Power Evaluation
We have modified the some of the code obtained from
Gaisler Research
to conform to the tools we have available. Several
scripts/makefiles are included to streamline the process.
Behavior Model
|
entity syncram_abits7_dbits25_0 is port( address : in std_logic_vector (0 to 6); clk : in std_logic; datain : in std_logic_vector (0 to 24); dataout : out std_logic_vector (0 to 24); enable, write : in std_logic); end syncram_abits7_dbits25_0; architecture SYN of syncram_abits7_dbits25_0 is component generic_syncram_param_1_2 port( address : in std_logic_vector (0 to 6); clk : in std_logic; datain : in std_logic_vector (0 to 24); dataout : out std_logic_vector (0 to 24); enable, write : in std_logic); end component; begin u0 : generic_syncram_param_1_2 port map( address(0) => address(0), .... |
|
entity syncram_abits7_dbits25_0 is port( address : in std_logic_vector (0 to 6); clk : in std_logic; datain : in std_logic_vector (0 to 24); dataout : out std_logic_vector (0 to 24); enable, write : in std_logic); end syncram_abits7_dbits25_0; architecture SYN of syncram_abits7_dbits25_0 is component generic_syncram generic ( abits : integer := 10; dbits : integer := 8 ); port( address : in std_logic_vector (0 to 6); clk : in std_logic; datain : in std_logic_vector (0 to 24); dataout : out std_logic_vector (0 to 24); enable, write : in std_logic); end component; begin u0 : generic_syncram generic map(7,25) port map( address(0) => address(0), ... |
Cross-compiler
For the tools we have available we had to install Cywin. This may not be necessary to run the cross compiler, dependng on the environment available.
Test Cases
Loading the application
| leon/device.vhd configuration for programs with output |
| --
constant conf : config_type := fpga_2k2k; constant conf : config_type := fpga_2k2k_ud; -- constant conf : config_type := fpga_2k2k_v8; ... |
| leon/device.vhd configuration for program without output |
|
constant conf : config_type := fpga_2k2k; -- constant conf : config_type := fpga_2k2k_ud; -- constant conf : config_type := fpga_2k2k_v8; ... |
| Name | RAM File | Description |
| leon_test.tar.gz | ram.dat | Default test program provided with LEON to test processor components. |
| hello.tar.gz | ram.dat | Simple Hello World program. |
| paranoia.c | rom.dat | pending |
Downloads
File
Description
leon-2.3.5.tar.gz
The original Leon VHDL model obtained from
Gaisler Research.
leon-2.3.5.pdf
Documentation on LEON
leon.tar.gz
The model currently being used for research
References