From 7ddaa08d93cc82da31bd675ac789dbb2686147e7 Mon Sep 17 00:00:00 2001 From: davrot <54365609+davrot@users.noreply.github.com> Date: Wed, 21 Aug 2019 16:36:06 +0200 Subject: [PATCH] Add files via upload --- Software_ZestET1/README.txt | 35 +++++++++++++++++++++++++ Software_ZestET1/Software_10042017.zip | Bin 0 -> 19728 bytes 2 files changed, 35 insertions(+) create mode 100644 Software_ZestET1/README.txt create mode 100644 Software_ZestET1/Software_10042017.zip diff --git a/Software_ZestET1/README.txt b/Software_ZestET1/README.txt new file mode 100644 index 0000000..3495b53 --- /dev/null +++ b/Software_ZestET1/README.txt @@ -0,0 +1,35 @@ +This archive contains the design and source files for our paper. We hope to inspire other developers and give them a starting point for their development. + +However, we expect the users of this collection to know what they are doing. Furthermore, we can not guarantee that everything works as it should or at all. It is up to you to test the design files and source codes before using them yourself. We are not liable for any problems caused by using these files in any way. + + +If questions arise please send us an email under davrot@neuro.uni-bremen.de. + + +Files for the Orange Tree Tech ZestET1 +====================================== + +The ZestET1 is a FPGA board made by the company Orange Tree Technologies (http://www.orangetreetech.com). + +It contains a Xilinx FPGA and a Gigabit Ethernet TCP/IP offload engine. We used it as computational heart for our base station. +The FPGA requires a firmware as well as software for establishing network communication between an external PC and a ZestET1. + +The part of our software tool collection, which was written for programming the FPGA via Ethernet, is an interpretation of the original software from Orange Tree Technologies. + +We optimized the software for the use with Linux (Scientific Linux 7.2). However, we also tested it with Windows and it seems to work there too. + +Furthermore, the part of the firmware concerning the communication with the Ethernet offload engine was taken from an Orange Tree Tech example file. + +We thank Orange Tree Technologies for allowing us to use this information and files in our software and firmware package. + + +MIT License +=========== + +Copyright (c) 2014 University of Bremen ZKW

+Permission is hereby granted, free of charge, to any person obtaining a copy of this hardware, software, and associated documentation files (the "Product"), to deal in the Product without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Product, and to permit persons to whom the Product is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Product. +THE PRODUCT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE PRODUCT OR THE USE OR OTHER DEALINGS IN THE PRODUCT. + + diff --git a/Software_ZestET1/Software_10042017.zip b/Software_ZestET1/Software_10042017.zip new file mode 100644 index 0000000000000000000000000000000000000000..986023b5f0c0a23a082963305287f4ba6e5dc113 GIT binary patch literal 19728 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 Cjjo0O literal 0 HcmV?d00001