Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| software:flink [2014-12-04 18:45] – graf | software:flink [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== flink, Universal Serial Interface to FPGA's ====== | ||
| - | |||
| - | <box blue right 38% | **Downloads**> | ||
| - | * [[https:// | ||
| - | </ | ||
| - | flink is .. | ||
| - | * an universal serial interface to FPGA's | ||
| - | * is open-source | ||
| - | * is highly flexibel | ||
| - | * is real-time capable | ||
| - | |||
| - | flink can be read as //fast link// or as the German " | ||
| - | |||
| - | ===== Overview ===== | ||
| - | <box green right 38% | **flink Modules**> | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | </ | ||
| - | |||
| - | flink can be used on a multitude of targets and with various setups. \\ | ||
| - | flink includes the following modules | ||
| - | * flinkVHDL: Configuration for an external FPGA toghether with a suitable hardware link | ||
| - | * flinkLinux: Kernel Modules | ||
| - | * flinkLib: Userspace library for C/C++ | ||
| - | * flinkLibLite: | ||
| - | * flinkUtils: Utilities and test programs for the flink library | ||
| - | * flinkDeep: Library for Java | ||
| - | |||
| - | === Typical use with C/C++ under an operating system === | ||
| - | <box red right 38% | **First Steps and Examples**> | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | </ | ||
| - | |||
| - | Implement all necessary hardware modules with [[.: | ||
| - | [{{ .: | ||
| - | |||
| - | ===== System Architecture ===== | ||
| - | An external FPGA contains hardware modules, which provide certain functions such as a pwm generator or an analog input channel. Such an external FPGA is represented by a '' | ||
| - | * **device**: An external FPGA, group of subdevices. | ||
| - | * **subdevice**: | ||
| - | * **channel**: | ||
| - | |||
| - | [{{ .: | ||
| - | |||
| - | ===== Memory Mapping ===== | ||
| - | Every subdevice which is specified in a device offers a standardised memory interface towards the driver library. The first 16 bytes comprise the header information which is read-only. | ||
| - | |||
| - | ^Offset^Size [byte] ^Name^r/ | ||
| - | |0x00|4|function|r|yes|function, | ||
| - | |0x04|4|memory size|r|yes|total memory size of this device, including header, subheader and subdevice specific information| | ||
| - | |0x08|4|nof channels|r|yes|number of channels of this subdevice| | ||
| - | |0x0c|4| | | |reserved| | ||
| - | |||
| - | The field '' | ||
| - | |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16| | ||
| - | | function id |||||||||||||||| | ||
| - | |15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0| | ||
| - | | subfunction id |||||||| | ||
| - | |||
| - | All the available functions can be found in [[.: | ||
| - | |||
| - | ^Offset^Size [byte] ^Name^r/ | ||
| - | |0x10|4|status|r|no|status of subdevice| | ||
| - | |0x14|4|configuration |r/ | ||
| - | |0x18|4| | | |reserved| | ||
| - | |0x1c|4| | | |reserved| | ||
| - | |||
| - | Header and subheader is followed by a subdevice specific part. The content varies according to the function and is listed in [[.: | ||