README.txt: obsah archivu
Copyright (C) 2014 Vysoké učení technické v Brně
Autor: Jiří Matoušek <imatousek@fit.vutbr.cz>


Tento archiv obsahuje firmware a software k funkčnímu vzorku platformy na bázi
FPGA pro sítě do rychlosti 100 Gb/s.

Firmwarová část platformy
=========================

Tato část platformy se skládá ze tří uživatelských komponent (IP cores)
a jejich obálek pro snadné použití ve vývojovém nástroji Vivado Design Suite
2014.3 od společnosti Xilinx:

   1) host_int
      IP core realizující připojení uživatelské aplikace k hostitelskému
      počítači prostřednictvím vysokorychlostních DMA přenosů přes sběrnici
      PCI Express.
      Vyvinuto ve spolupráci s CESNET, z. s. p. o.

   2) eth100g
      IP core realizující připojení uživatelské aplikace k síťvému rozhraní
      podporujícímu technologii 100 Gb/s Ethernet.
      Vyvinuto ve spolupráci s CESNET, z. s. p. o.

   3) application_filter
      Příklad uživatelské aplikace pro vyvinutou platformu. Ukázková aplikace
      realizuje filtraci příchozího provozu podle zadaných pravidel.

Součastí archivu je také projekt ve vývojovém nástroji Vivado, ve kterém jsou
výše popsané uživatelské komponenty zapojeny do společného designu, ze kterého
je možné vygenerovat konfigurační soubor pro FPGA na akcelerační kartě.

Softwarová část platformy
=========================

Součástí přiloženého software jsou řadiče pro operační systém Linux, knihovny
funkcí pro práci s akcelerační kartou a designem v jejím FPGA čipu a také
softwarové nástroje pro ovládání jednotlivých částí designu v FPGA. Archiv
obsahuje následující softwarové nástroje:

   1) afilterctl
      Nástroj pro ovládání filtru implementovaného jako příklad uživatelské
      aplikace.

   2) csboot
      Nástroj pro nahrání konfigurace FPGA do akcelerační karty.

   3) csbus
      Nástroj pro nízkoúrovňový přístup na konkrétní adresu v rámci adresního
      prostoru designu v FPGA na akcelerační kartě.

   4) csid
      Nástroj pro výpis identifikačních údajů designu nahraného v FPGA na
      akcelerační kartě.

   5) ibufctl
      Nástroj pro ovládání vstupního síťového bufferu v rámci komponenty
      eth100g.

   6) obufctl
      Nástroj pro ovládání výstupního síťového buffferu v rámci komponenty
      eth100g.

   7) sze2read
      Nástroj vyčítání dat zaslaných z FPGA na akcelerační kartě do paměti
      hostitelského počítače prostřednictvím DMA přenosu.

   8) sze2write
      Nástroj pro zápis dat do FPGA na akcelerační kartě prostřednictvím DMA
      přenosu.

Způsob použití jednotlivých nástrojů je popsaný v rámci jejich nápovědy
přístupné typicky při stuštění s přepínačem "-h". Některé nástroje vyžadují
jako vstup XML soubor popisující adresní prostor designu v FPGA na akcelerační
kartě. Příslušný XML soubor pro implementovanou frmwarovou část platformy je
rovněž součástí tohoto archivu.

Struktura archivu
=================

|-- bitstream ............................... konfigurace pro FPGA
|   |-- netcope_platform.bit ................ konfigurace FPGA ve formátu .bit
|   |-- netcope_platform.mcs ................ konfigurace FPGA ve formátu .mcs
|   `-- netcope_platform.xml ................ popis adresního prostoru designu
|-- ipcores ................................. vyvinuté IP cores
|   |-- but_application_filter_core_1.0.zip . IP core application_filter
|   |-- cesnet_netcope_eth100g_1.0.zip ...... IP core eth100g
|   |-- cesnet_netcope_host_int_1.0.zip ..... IP core host_int
|   `-- interfaces .......................... definice rozhraní pro IP cores
|-- sw ...................................... softwarová část platformy
|   |-- drivers ............................. řadiče pro operační systém Linux
|   |-- lib ................................. knihovny pro práci s kartou
|   `-- tools ............................... SW nástroje pro práci s designem
|       |-- afilterctl ...................... nástroj afilterctl
|       |-- csboot .......................... nástroj csboot
|       |-- csbus ........................... nástroj csbus
|       |-- csid ............................ nástroj csid
|       |-- ibufctl ......................... nástroj ibufctl
|       |-- obufctl ......................... nástroj obufctl
|       |-- sze2read ........................ nástroj sze2read
|       `-- sze2write ....................... nástroj sze2write
|-- netcope_platform._project.zip ........... archiv projektu
`-- README.txt .............................. tento soubor
