diff --git a/fpga/include/villas/fpga/utils.hpp b/fpga/include/villas/fpga/utils.hpp index 6de366f1c..4adeed10e 100644 --- a/fpga/include/villas/fpga/utils.hpp +++ b/fpga/include/villas/fpga/utils.hpp @@ -28,12 +28,12 @@ public: void parseString(std::string& connectString); int portStringToInt(std::string &str) const; + void configCrossBar(std::shared_ptr dma, + std::vector> + &switch_channels) const; - void configCrossBar(std::shared_ptr dma, - std::vector>& aurora_channels) const; - - bool isBidirectional() const { return bidirectional; }; - bool isDmaLoopback() const { return dmaLoopback; }; + bool isBidirectional() const { return bidirectional; }; + bool isDmaLoopback() const { return dmaLoopback; }; bool isSrcStdin() const { return srcIsStdin; }; bool isDstStdout() const { return dstIsStdout; }; int getSrcAsInt() const { return srcAsInt; }; diff --git a/fpga/lib/dma.cpp b/fpga/lib/dma.cpp index 6e175be61..e6ef22b23 100644 --- a/fpga/lib/dma.cpp +++ b/fpga/lib/dma.cpp @@ -55,18 +55,19 @@ villasfpga_handle villasfpga_init(const char *configFile) auto handle = new villasfpga_handle_t; handle->card = fpga::setupFpgaCard(configFile, fpgaName); - std::vector> aurora_channels; - for (int i = 0; i < 4; i++) { + std::vector> switch_channels; + for (int i = 0; i < 4; i++) { auto name = fmt::format("aurora_8b10b_ch{}", i); auto id = fpga::ip::IpIdentifier("xilinx.com:ip:aurora_8b10b:", name); - auto aurora = std::dynamic_pointer_cast(handle->card->lookupIp(id)); - if (aurora == nullptr) { + auto aurora = std::dynamic_pointer_cast( + handle->card->lookupIp(id)); + if (aurora == nullptr) { logger->error("No Aurora interface found on FPGA"); return nullptr; } - aurora_channels.push_back(aurora); - } + switch_channels.push_back(aurora); + } handle->dma = std::dynamic_pointer_cast (handle->card->lookupIp(fpga::Vlnv("xilinx.com:ip:axi_dma:"))); @@ -81,15 +82,16 @@ villasfpga_handle villasfpga_init(const char *configFile) } if (dumpAuroraChannels) { - for (auto aurora : aurora_channels) - aurora->dump(); + for (auto aurora : switch_channels) + aurora->dump(); } // Configure Crossbar switch const fpga::ConnectString parsedConnectString(connectStr); - parsedConnectString.configCrossBar(handle->dma, aurora_channels); + parsedConnectString.configCrossBar(handle->dma, + switch_channels); - return handle; + return handle; } catch (const RuntimeError &e) { logger->error("Error: {}", e.what()); return nullptr; diff --git a/fpga/lib/utils.cpp b/fpga/lib/utils.cpp index 99b42eeb3..28af178e3 100644 --- a/fpga/lib/utils.cpp +++ b/fpga/lib/utils.cpp @@ -110,38 +110,38 @@ int fpga::ConnectString::portStringToInt(std::string &str) const // parses a string like "1->2" or "1<->stdout" and configures the crossbar accordingly -void fpga::ConnectString::configCrossBar(std::shared_ptr dma, - std::vector>& aurora_channels) const -{ - if (dmaLoopback) { - log->info("Configuring DMA loopback"); - dma->connectLoopback(); - return; - } +void fpga::ConnectString::configCrossBar( + std::shared_ptr dma, + std::vector> &switch_channels) const { + if (dmaLoopback) { + log->info("Configuring DMA loopback"); + dma->connectLoopback(); + return; + } - log->info("Connecting {} to {}, {}directional", - (srcAsInt==-1 ? "stdin" : std::to_string(srcAsInt)), - (dstAsInt==-1 ? "stdout" : std::to_string(dstAsInt)), - (bidirectional ? "bi" : "uni")); + log->info("Connecting {} to {}, {}directional", + (srcAsInt == -1 ? "stdin" : std::to_string(srcAsInt)), + (dstAsInt == -1 ? "stdout" : std::to_string(dstAsInt)), + (bidirectional ? "bi" : "uni")); - std::shared_ptr src; - std::shared_ptr dest; - if (srcIsStdin) { - src = dma; - } else { - src = aurora_channels[srcAsInt]; - } + std::shared_ptr src; + std::shared_ptr dest; + if (srcIsStdin) { + src = dma; + } else { + src = switch_channels[srcAsInt]; + } - if (dstIsStdout) { - dest = dma; - } else { - dest = aurora_channels[dstAsInt]; - } + if (dstIsStdout) { + dest = dma; + } else { + dest = switch_channels[dstAsInt]; + } - src->connect(src->getDefaultMasterPort(), dest->getDefaultSlavePort()); - if (bidirectional) { - dest->connect(dest->getDefaultMasterPort(), src->getDefaultSlavePort()); - } + src->connect(src->getDefaultMasterPort(), dest->getDefaultSlavePort()); + if (bidirectional) { + dest->connect(dest->getDefaultMasterPort(), src->getDefaultSlavePort()); + } } void fpga::setupColorHandling() diff --git a/fpga/src/villas-fpga-ctrl.cpp b/fpga/src/villas-fpga-ctrl.cpp index 38d24afe8..4dd9d815a 100644 --- a/fpga/src/villas-fpga-ctrl.cpp +++ b/fpga/src/villas-fpga-ctrl.cpp @@ -212,18 +212,18 @@ int main(int argc, char *argv[]) { auto card = fpga::setupFpgaCard(configFile, fpgaName); - std::vector> aurora_channels; + std::vector> switch_channels; for (int i = 0; i < 4; i++) { auto name = fmt::format("aurora_aurora_8b10b_ch{}", i); auto id = fpga::ip::IpIdentifier("xilinx.com:ip:aurora_8b10b:", name); auto aurora = - std::dynamic_pointer_cast(card->lookupIp(id)); + std::dynamic_pointer_cast(card->lookupIp(id)); if (aurora == nullptr) { logger->error("No Aurora interface found on FPGA"); return 1; } - aurora_channels.push_back(aurora); + switch_channels.push_back(aurora); } auto dma = std::dynamic_pointer_cast( @@ -239,7 +239,7 @@ int main(int argc, char *argv[]) { } if (dumpAuroraChannels) { - for (auto aurora : aurora_channels) + for (auto aurora : switch_channels) aurora->dump(); } bool dstIsStdout = false; @@ -247,7 +247,7 @@ int main(int argc, char *argv[]) { // Configure Crossbar switch for (std::string str : connectStr) { const fpga::ConnectString parsedConnectString(str); - parsedConnectString.configCrossBar(dma, aurora_channels); + parsedConnectString.configCrossBar(dma, switch_channels); dstIsStdout = dstIsStdout || parsedConnectString.isDstStdout(); srcIsStdin = srcIsStdin || parsedConnectString.isSrcStdin(); }