The E31x has the advantage that it can be targeted from the free tier of
Vivado, which means users can start writing blocks and running
testbenches without having to purchase a Vivado license. This is already
possible today by specifying -DUHD_FPGA_DEFAULT_DEVICE=e31x when running
cmake, but we think this will further lower the entry level for RFNoC
developers by making the free-tier option the default.
Improving user experience with examples.
- added example's functionality and intent in --help
- added each arg help description in --help
- added summary to each function module
- added more prints in during operation
Boost.Process 1.88.0 will make `boost::process::v2` the default which
breaks compilation of rx_samples_to_file.cpp. This change uses v1
headers and inline namespace to fix build.
Request queue should always contain items if we receive responses.
To ensure we do not assert on front() call for empty request queue
we check for empty first and print a warning otherwise.
If start_time is far in the future (acutally bigger that the default
timeout of 0.1s) we have to increase the initial timout by that time
interval to ensure we do not timeout because the transmission did not start yet.
This change sets StdArithNoWarnings and NumericStdNoWarnings by
default for ModelSim simulations. Without this, an excessive number of
warnings can be generated by Xilinx IP during simulation.
This changes the -onfinish setting from "stop" to "final" for Questa
and ModelSim. The "final" setting is required so that SystemVerilog
final blocks run. This also has the same effect as "stop" in that it
won't ask you in the GUI if you want to exit the simulator when
$finish() is called.
- Some DPDK methods were not checking their return values; now they do
and trigger exceptions upon failure.
- cstdbool was included, despite us using C++17 which makes that
obsolete.
This tool was originally written to aid with X3x0 development, prior to
the development of current-day RFNoC. Basically, it's a poor-man's
version of Wireshark.
However, it implements an old version of the network protocol, which is
currently not in use. The tool is therefore obsolete, and our Wireshark
dissectors are a perfectly reasonable substitute. We therefore remove it
from UHD.
UHD_SAFE_CALL macro had no semicolon after the code part. This
force the code using the macro to write something like
UHD_SAFE_CALL(some_func(););
which looks bit awkward. Adding a semicolon to allow writing
on liners like
UHD_SAFE_CALL(some_func());
Multi line code could still use a semicolon after the last
statement, as the compiler does not bother about double semicolon.
This commit addresses several issues that can occur with different
simulators. It changes the following:
- Update documentation
- Ignore testbenches in build-ip folders
- Tolerate extra lines in the testbench results regular expression
- Match numbers using \d instead of + to avoid ValueError exceptions
- Only fetch the start_time if it exists
- Allow any simulator make target (don't limit it to specific choices)