OpenCores
URL https://opencores.org/ocsvn/zpu/zpu/trunk

Subversion Repositories zpu

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 78 to Rev 79
    Reverse comparison

Rev 78 → Rev 79

/trunk/zpu/ChangeLog Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
/trunk/zpu/hdl/zealot/roms/hello_dbram.vhdl Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
trunk/zpu/hdl/zealot/roms/hello_dbram.vhdl Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/zpu/hdl/zealot/roms/dmips_dbram.vhdl =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/zpu/hdl/zealot/roms/dmips_dbram.vhdl =================================================================== --- trunk/zpu/hdl/zealot/roms/dmips_dbram.vhdl (nonexistent) +++ trunk/zpu/hdl/zealot/roms/dmips_dbram.vhdl (revision 79)
trunk/zpu/hdl/zealot/roms/dmips_dbram.vhdl Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/zpu/hdl/zealot/zpu_small.vhdl =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/zpu/hdl/zealot/zpu_small.vhdl =================================================================== --- trunk/zpu/hdl/zealot/zpu_small.vhdl (nonexistent) +++ trunk/zpu/hdl/zealot/zpu_small.vhdl (revision 79)
trunk/zpu/hdl/zealot/zpu_small.vhdl Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/zpu/hdl/zealot/testbenches/small1_tb.vhdl =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/zpu/hdl/zealot/testbenches/small1_tb.vhdl =================================================================== --- trunk/zpu/hdl/zealot/testbenches/small1_tb.vhdl (nonexistent) +++ trunk/zpu/hdl/zealot/testbenches/small1_tb.vhdl (revision 79)
trunk/zpu/hdl/zealot/testbenches/small1_tb.vhdl Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/zpu/hdl/zealot/0README.txt =================================================================== --- trunk/zpu/hdl/zealot/0README.txt (revision 78) +++ trunk/zpu/hdl/zealot/0README.txt (revision 79) @@ -19,6 +19,9 @@ zpu_medium.vhdl ZPU CPU, medium version. +zpu_small.vhdl +ZPU CPU, small version (Dual Port RAM only!). + zpu_pkg.vhdl Package containing the declarations for the ZPU library. @@ -57,6 +60,9 @@ simulation or hardware implementations. The code assumes a 50 MHz clock to compute the benchmark. The minimum size for this block should be 32 kB. +roms/dmips_dbram.vhdl +Same as roms/dmips_bram.vhdl, but dual ported. Suitable for the small ZPU. + roms/hello_bram.vhdl A memory that maps to Xilinx BRAMs and contains a simple "Hello World!" program (C compiled). This memory can be connected to the ZPU for @@ -63,28 +69,44 @@ simulation or hardware implementations. The minimum size for this block should be 16 kB. +roms/hello_dbram.vhdl +Same as roms/hello_bram.vhdl, but dual ported. Suitable for the small ZPU. helpers/zpu_med1.vhdl This is a helper that connects a ZPU to its memory and the PHI I/O space. testbenches/dmips_med1_tb.vhdl -A simple testbench to simulate the ZPU (behavior). +A simple testbench to simulate the medium ZPU (behavior). +testbenches/small1_tb.vhdl +A simple testbench to simulate the small ZPU (behavior). + fpga/dmips_med1.vhdl -A wrapper to implement the ZPU in an FPGA. This example was designed for a -GR-XC3S board from Pender, but should be easily adapted to other boards. +A wrapper to implement the medium ZPU in an FPGA. This example was designed +for a GR-XC3S board from Pender, but should be easily adapted to other +boards. +fpga/hello_med1.vhdl +Same as fpga/dmips_med1.vhdl, but uses less memory, enough for the "Hello +Wold!" test. +fpga/dmips_small1.vhdl +Same as fpga/dmips_med1.vhdl, but for the small ZPU. + +fpga/hello_small1.vhdl +Same as fpga/hello_med1.vhdl, but for the small ZPU. + + ZPU library? ------------ The following files are part of a library I called ZPU: -zpu_pkg.vhdl, zpu_medium.vhdl, txt_util.vhdl, timer.vhdl, rx_unit.vhdl, -tx_unit.vhdl, br_gen.vhdl, phi_io.vhdl and trace.vhdl. +zpu_pkg.vhdl, zpu_medium.vhdl, zpu_small.vhdl, txt_util.vhdl, timer.vhdl, +rx_unit.vhdl, tx_unit.vhdl, br_gen.vhdl, phi_io.vhdl and trace.vhdl. -You should group them inside a library called zpu. This procedure is tool-chain -dependent. In the ISE tool you must add a library and them move these files to -the library. +You should group them inside a library called zpu. This procedure is +tool-chain dependent. In the ISE tool you must add a library and them move +these files to the library. If you don't know how to do it with your tools you can just replace all the: @@ -105,6 +127,9 @@ roms/rom_pkg.vhdl and roms/dmips_bram.vhdl 2) A testbench (including the memory and I/O interconnections): aux/zpu_med1.vhdl and testbenches/dmips_med1_tb.vhdl +3) Be careful to include only the medium or the small ZPU. Also note that +the small uses dual port BRAMs, i.e. roms/dmips_dbram.vhdl The testbench +for the small ZPU is small1_tb.vhdl Which files are needed for synthesis? @@ -121,6 +146,8 @@ The DMIPS benchmarks needs aprox (Xilinx Spartan 3): +Medium ZPU: + Flip Flops: 498 LUTs: 1877 Slices: 1032 @@ -130,11 +157,27 @@ The hello world example needs less memory: Flip Flops: 496 -LUTs: 1872 +LUTs: 1871 Slices: 1027 BRAMs: 8 Multipliers: 3 + +Small ZPU: + +Flip Flops: 373 +LUTs: 706 +Slices: 434 +BRAMs: 16 + +The hello world example needs less memory: + +Flip Flops: 371 +LUTs: 701 +Slices: 431 +BRAMs: 8 + + The board should contain an RS-232 transceiver. A push button (active when pressed) is also used, for reset.
/trunk/zpu/hdl/zealot/zpu_pkg.vhdl Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
/trunk/zpu/hdl/zealot/fpga/dmips_small1.vhdl Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
trunk/zpu/hdl/zealot/fpga/dmips_small1.vhdl Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/zpu/hdl/zealot/fpga/hello_small1.vhdl =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: trunk/zpu/hdl/zealot/fpga/hello_small1.vhdl =================================================================== --- trunk/zpu/hdl/zealot/fpga/hello_small1.vhdl (nonexistent) +++ trunk/zpu/hdl/zealot/fpga/hello_small1.vhdl (revision 79)
trunk/zpu/hdl/zealot/fpga/hello_small1.vhdl Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: trunk/zpu/docs/zpu_arch.html =================================================================== --- trunk/zpu/docs/zpu_arch.html (revision 78) +++ trunk/zpu/docs/zpu_arch.html (revision 79) @@ -1634,11 +1634,12 @@
  • The ZPU can be customized using generics. It allows the use of more than one core in the same project without problems.
  • Implements the lshiftright instruction in hardware, this gives around -10% boost in the DMIPS benchmark.
  • +10% boost in the DMIPS benchmark (Medium version).
  • You can disable various instructions groups and let them to the emulation soft, so you can experiment with various LUTs vs DMIPS -configurations.
  • -
  • Provides aprox. 2.6 DMIPS @ 50 MHz.
  • +configurations (Medium version). +
  • The medium version provides aprox. 2.6 DMIPS @ 50 MHz and the small +0.5 DMIPS @ 50 MHz.
  • Enhanced trace module, it includes the assembler for the executed instruction and can also meassure how much stack was consumed during the execution.
  • @@ -1648,8 +1649,9 @@ Simulation and implementation files are provided. You need 16 kB of BRAMs -for the "hello world" example and 32 kB for the DMIPS benchmark. The design -takes around 1030 slices and 3 multipliers.

    +for the "hello world" example and 32 kB for the DMIPS benchmark. The medium +version takes around 1030 slices and 3 multipliers and the small version +around 430 slices.

    The generics for the Zealot Medium ZPU are:

    powered by: WebSVN 2.1.0

    © copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.