de     

This is an old revision of the document!


JOP - Java Optimized Processor

JOP is one way to use a configurable Java processor in small embedded real-time systems. It shall help to increase the acceptance of Java for these systems.

Now JOP processor works on ZTEX boards. With DDR SDRAM support (but 16Mb, yet). FPGA is only used by 23% so you can make multiple cores in CMP JOP

Download the fresh Source

The latest version can be obtained from with following Git command:

git clone git://www.soc.tuwien.ac.at/jop.git

Create the needed directories with:

make directories

Tools

The tools are built with following make command:

make tools

Assemble the Microcode JVM, Compile the Processor

The JVM configured to download the Java application from the serial interface is built with:

make jopser

Create the Spartan-6 DDR memory interface

Use Coregen/MIG 3.7 (or 3.61 for ISE 12.4) to create the controller. You may use file xilinx/ztex/mig_37/mig_37.xco for Coregen

  • Component Name: mig_37
  • Bank 3 Memory Type DDR SDRAM
  • Frequency: 200MHz
  • Memory Part: MT46V32M16XX-5B-IT
  • Configuration Selection: One 32-bit bi-directional port
  • Memory Address Mapping Selection: Row, Bank, Column

Once the controller is generated copy all the vhdl files from the user_design/rtl directory to xilinx/ztex/mig_37 directory and apply patch:

patch < memc3_infrastructure.patch

Build bitstream

Run make in directory xilinx/ztex or load project xilinx/ztex/ise_13/ise_13.xise to ISE

Load bitstream

Use FWLoader or Xilinx impact

Connect serial console

Connect serial cable to line “A”

  • tx PIN 12
  • rx PIN 13

Compiling and Downloading the Java Application

From root dir of jop make:

make japp -e P1=bench P2=jbe P3=DoAll

Copy file java/target/dist/bin/DoAll.jop to root jop dir and load it:

  • for Win:
    down.exe -e DoAll.jop com3
  • for Linux:
    ./down -e DoAll.jop /dev/ttyUSB0

Provide your correct port!

Result:

Parsed JOP file ok.
* 11656 words of Java bytecode (45 KB)
* 20315 words external RAM (79 KB)

Transmitting data via serial...
[########################################################### ] 20224 / 20315
Done.
JOP start V 20110107
93 MHz, 16384 KB RAM, 1 CPUs
JavaBenchEmbedded V1.1
Micro Benchmarks:
iload_3 iadd 46091000 1/s
iinc 23172000 1/s
ldc 4629000 1/s
if_icmplt taken 15477000 1/s
if_icmplt not taken 15477000 1/s
getfield 2699000 1/s
getstatic 5084000 1/s
iaload 2122000 1/s
invoke 521679 1/s
invokestatic 667033 1/s
invokeinterface 413802 1/s
Kernel Benchmarks:
Sieve 3663 1/s
Application benchmarks:
Kfl 8555 1/s
UdpIp 3980 1/s
Lift 9346 1/s
 
en/projects/jop.1309909070.txt.gz · Last modified: 2011/07/05 23:37 by 109.230.136.10
 
Recent changes RSS feed Creative Commons License Powered by PHP Debian Driven by DokuWiki
[ZTEX Home] [Imprint] [Privacy policy]