From 2e339b406d2176d175bae9b28bf2d420b6beaf82 Mon Sep 17 00:00:00 2001 From: Daniel Krebs Date: Mon, 4 Jun 2018 14:01:14 +0200 Subject: [PATCH] lib/ips: add data fifo IP needed for stream routing --- fpga/include/villas/fpga/ips/fifo.hpp | 25 +++++++++++++++++++++++++ fpga/lib/ips/fifo.cpp | 7 +++++++ 2 files changed, 32 insertions(+) diff --git a/fpga/include/villas/fpga/ips/fifo.hpp b/fpga/include/villas/fpga/ips/fifo.hpp index 0cfb15f67..f73e7d654 100644 --- a/fpga/include/villas/fpga/ips/fifo.hpp +++ b/fpga/include/villas/fpga/ips/fifo.hpp @@ -82,6 +82,31 @@ public: { return {"xilinx.com:ip:axi_fifo_mm_s:"}; } }; + +class FifoData : public IpNode { + friend class FifoDataFactory; +}; + + +class FifoDataFactory : public IpNodeFactory { +public: + FifoDataFactory(); + + IpCore* create() + { return new FifoData; } + + std::string + getName() const + { return "FifoData"; } + + std::string + getDescription() const + { return "Xilinx's AXI4 data stream FIFO"; } + + Vlnv getCompatibleVlnv() const + { return {"xilinx.com:ip:axis_data_fifo:"}; } +}; + } // namespace ip } // namespace fpga } // namespace villas diff --git a/fpga/lib/ips/fifo.cpp b/fpga/lib/ips/fifo.cpp index f0d86f59d..e00905fbf 100644 --- a/fpga/lib/ips/fifo.cpp +++ b/fpga/lib/ips/fifo.cpp @@ -38,6 +38,7 @@ namespace ip { // instantiate factory to make available to plugin infrastructure static FifoFactory factory; +static FifoDataFactory factoryData; FifoFactory::FifoFactory() : @@ -46,6 +47,12 @@ FifoFactory::FifoFactory() : // nothing to do } +FifoDataFactory::FifoDataFactory() : + IpNodeFactory(getName()) +{ + // nothing to do +} + bool Fifo::init() {