=====================
GPCIe Development Kit
=====================

GPCIe is a PCI Express IP core developed by K&F Computing Research Co.
It provides a simple interface to the backend logic designed by the
user. Combining GPCIe with the backend logic, the user can easily
implement an interface to other PCI Express devices without detailed
knowledge about PCI Express protocol.

This package includes the following three logic designs
(all logic designs are provided as VHDL sources):

  1) Host Interface Bridge (HIB) at the topmost layer of GPCIe design
     hierarchy. It provides a simple interface to the backend logic
     designed by the user.

  2) GPCIe core, which implements the Transaction layer, the Data Link
     layer, and the PHY MAC sub layer defined by the PCI Express
     Specification, as well as the "Application layer" built over
     these three layers. PCI configuration registers and DMA
     controllers are built in this layer.

  3) PHY, which implements the PHY PCS and PHY PMA sub layers using
     embedded Gigabit transceiver of Altera's FPGA devices.


This package also includes a reference design (i.e. a sample logic) to
show usage of HIB, as well as its device driver and control library
which run on Linux OS.

This package contains the following items:

gpciepkg/
  00readme                       -- This file.
  00readme-j                     -- Japanese translation of this file.
  00license                      -- License agreement of this package.
  00license-j                    -- Japanese translation of 00license.
  doc/                           -- User's guide and other documents.
  hib.vhd                        -- Logic design of HIB.
  gpcie.vhd                      -- Logic design of GPCIe core.
  phy.vhd                        -- Logic design of PHY.
  ifpga_{agx,s2gx}{8,4,1}.vhd    -- A reference design.
  synth/                         -- Files used for synthesis of the reference design (.qpf, .qsf, .sdc).
  Makefile                       -- A makefile to generate hib.vhd, gpcie.vhd, and phy.vhd from VHDL source template.
  templates/                     -- VHDL source template.
  scripts/                       -- Utilities to install/uninstall HIB control softwares.
  include/                       -- Header files for HIB control library (for Linux).
  lib/                           -- HIB control library (for Linux).
  driver/                        -- A source code of the HIB device driver (for Linux).
  hibutil/                       -- A source code of the HIB control library (for Linux).
  sample/                        -- A sample program to show usage of HIB control library.

For usage of GPCIe, see gpciepkg/doc/userguide.txt.

Before start using this package, please read the license agreement in
gpciepkg/00license. We may accept a usage which partly violates the
license agreement (e.g. use with a vendor ID other than 1B1Ah). Please
consult us for necessary payment for such a case.

Contact address for questions and bug reports:
K&F Computing Research Co. (support@kfcr.jp)

--------------------------------------------------------------------------------------------------
version       date        author               note
--------------------------------------------------------------------------------------------------
0.8           17-Nov-2008 AK                   logic optimized to satisfy timing constraint.

0.7           09-Oct-2008 AK                   x1 supported.

0.6           28-Sep-2008 AK                   DMA read function added.

0.5           28-Jul-2008 AK                   DMA write performance improved.
                                               English documents added.

0.1           10-Jul-2008 AK                   restructured.

0.0           09-Jul-2008 A. Kawai             created.
--------------------------------------------------------------------------------------------------
