From f5af2532d9d7de635e154ad416af42695f6d96ea Mon Sep 17 00:00:00 2001 From: Bert Lange Date: Thu, 13 Oct 2011 12:33:03 +0200 Subject: add: performance measurement for Xilinx FPGAs --- zpu/docs/zpu_arch.html | 97 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 20 deletions(-) diff --git a/zpu/docs/zpu_arch.html b/zpu/docs/zpu_arch.html index ac6b182..9506811 100644 --- a/zpu/docs/zpu_arch.html +++ b/zpu/docs/zpu_arch.html @@ -1068,55 +1068,112 @@ For now if you are starting a design, zpu4 or zealot are probably the safest. z

Performance Summary

-TODO fill in performance table. +TODO fill in performance table for Altera and Lattice. +

+Tests are done with the Zealot + SoC-System and Xilinx ISE 12.2 with standard settings.

- - - + + + + + + - + + + - + + + + - +

CORE/Config

Spartan3e

Cyclone3

DMIPS @ 50MHz

Spartan-3

Spartan-3E

Spartan-6

Virtex-5

Cyclone-3

DMIPS

+

zpu4 small -maxAddrBit=? -... +maxAddrBit=16 +

+
+591 LUT
+389 REG
+  0 MULT18x18
+ 16 BRAM
+ 90 fmax
 
-? LUT
-? REG
-? MULT18x18
-? BRAM
-? fmax
+
+626 LUT
+389 REG
+  0 MULT18x18
+ 16 BRAM
+100 fmax
+
+
+639 LUT
+372 REG
+  0 MULT18x18
+ 16 BRAM
+100 fmax
+
+
+560 LUT
+388 REG
+  0 MULT18x18
+  8 BRAM (RAMB36)
+140 fmax
 
+
 ? LUT
 ? REG
 ? MULT18x18
 ? M4K
 ? fmax
 

???

0.5

zpu4 medium

-? LUT
-? REG
-? MULT18x18
-? BRAM
-? fmax
+
+1760 LUT
+ 514 REG
+   3 MULT18x18
+  16 BRAM (RAMB16)
+  75 fmax
+
+
+1754 LUT
+ 509 REG
+   3 MULT18x18
+  16 BRAM (RAMB16)
+  75 fmax
+
+
+1162 LUT
+ 481 REG
+   3 MULT (DSP48A1)
+  16 BRAM (RAMB16)
+  80 fmax
+
+
+1292 LUT
+ 490 REG
+   3 MULT (DSP48E)
+   8 BRAM (RAMB36)
+ 125 fmax
 
+
 ? LUT
 ? REG
 ? MULT18x18
 ? M4K
 ? fmax
 

???

2.6

@@ -1128,7 +1185,7 @@ Found in zpu/zpu/hdl/zpu4/core/zpu The small ZPU4 implements the minimum instruction set. It is optimized for size and simplicity serving as a reference in both regards.

-It uses a BRAM (dual port RAM w/read/write to both ports) as data & code storage and +It uses a RAM (dual port RAM w/read/write to both ports) as data & code storage and is implemented as a simple state machine.

Essentially it has three states: -- cgit v1.1