1
ザイリンクス社利用可能なDMA PCIe IPcoreで作業するためのいくつかのプログラムをリリースした。here。これらのプログラムでは、C2Hを実行するプログラム、または高速処理を行うプログラムがあります。DMAを使用してPCIeと通信する
これは基本的にホスト側でDMAを使用していますか、またはこれらのコードに冗長なものを記述する必要がありますか?次のように例えば、AXI-STモードで読み込み/書き込みを行うコードスニペットは、次のとおりです。
void do_transfers_in_parallel(unsigned index, device_file& h2c, device_file& c2h,
std::array<uint32_t, array_size>& h2c_data,
std::array<uint32_t, array_size>& c2h_data) {
std::cout << " Initiating H2C_" << index << " transfer of " << h2c_data.size() * sizeof(uint32_t) << " bytes...\n";
std::thread read_thread(&device_file::write, &h2c, (void*)h2c_data.data(),
h2c_data.size() * sizeof(uint32_t));
std::cout << " Initiating C2H_" << index << " transfer of " << c2h_data.size() * sizeof(uint32_t) << " bytes...\n";
std::thread write_thread(&device_file::read, &c2h, (void*)c2h_data.data(),
c2h_data.size() * sizeof(uint32_t));
write_thread.join();
read_thread.join();
}