aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/rfnoc
Commit message (Collapse)AuthorAgeFilesLines
* formatting: remove vim hints in headersBrent Stapleton2019-01-164-4/+0
| | | | | Remove trailing vim hints in header files. This functionality will be replaced by clang-format.
* RFNoC: Fix stream command propagationmichael-west2018-12-201-1/+1
| | | | | | - Corrects parameter from output port to input port of node - Fixes issue on nodes with different number of input and output connections
* RFNoC: Fix graph traversalmichael-west2018-12-193-14/+16
| | | | | | - Allows different TX sample rates on separate channels - Prevents stream commands from being issued on wrong ports - Prevents some receive timeout errors
* Device3: Fix block control flushingBrent Stapleton2018-12-171-18/+25
| | | | | | | | | | | | | | | | | | | - Factor out the _start_drain helper function, which starts flushing data out of the block. We should always be disabling flow control after we write to the flushing registers. - Always attempt to flush when calling the _flush function. Previously, we would check if data appeared to be moving when _flush was called, and only write to the flush registers if data was moving. However, if data is stuck for some reason (for example, the block ran out of flow control credits), this check will give us a false positive, and we won't flush. Instead, we need to always begin the flushing process, then check those counters, and return once the counters stop changing. Note: we need to start flushing before disabling flow control so that the flushed data isn't flooded onto the crossbar. Co-authored-by: michael-west <michael.west@ettus.com> Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* Device3: Set default block control response SIDsBrent Stapleton2018-12-171-0/+4
| | | | | | | | | | | In the block controllers, set the default response SIDs for input and output ports. If we don't do this, the blocks may send their responses to other blocks' responses ports. For example, without this change, the DDC may send an error packet to port 0x0000, which is assigned to the DmaFIFO. With this change, the DDC would send that packet to 0xFFFF, which isn't assigned to any other block.
* rfnoc: Add halt to replay APIWade Fife2018-11-271-0/+4
| | | | | The HALT feature allows a command that takes a long time to run to be stopped while it is in progress.
* rfnoc: Fix default SPP for replayWade Fife2018-11-271-4/+3
| | | | Consolidate two constants for default replay packet size down to one.
* cmake: Update coding style to use lowercase commandsMartin Braun2018-11-141-4/+4
| | | | | | | | | | | | | | | | | Also updates our coding style file. Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code (with GNU compliant sed): cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done > convert.sed \ && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \ '*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed (Make sure the backslashes don't get mangled!)
* rfnoc: Replace some [] with .at() in radio_ctrl_implMartin Braun2018-11-131-8/+8
| | | | | This makes it easier to detect errors in derived classes that expect getters in radio_ctrl_impl to also do error checking.
* block_ctrl_base: add UHD_SAFE_CALL to destructorTrung Tran2018-10-241-13/+15
| | | | | This will stop the exception throw during destructor of E310 where new FPGA image(idle image) is load.
* uhd: Add traffic counter to null source sinkCiro Nishiguchi2018-10-111-0/+19
|
* uhd: Fix rounding in ddc/duc rate calculationCiro Nishiguchi2018-10-052-2/+2
| | | | | | | | The DDC and DUC convert the requested rate to an integer before selecting a decimated / interpolated rate. This causes the selection to select a lower rate than requested in some corner cases. The effect is more pronounced when the input rate of the DDC or the output rate of the DUC is very small.
* uhd: rfnoc: add async message handlerTrung Tran2018-09-143-4/+201
|
* radio_ctrl: add disable time stampTrung Tran2018-09-141-0/+8
|
* RFNoC: Add Replay API and exampleWade Fife2018-08-292-0/+184
|
* RFNoC: Convert SR_READBACK_REG_FIFOSIZE to bytesTrung N Tran2018-08-221-3/+1
| | | | | Change the RB_FIFOSIZE register to store the FIFO size in bytes instead of log2 of bytes.
* X300: Change Ethernet bufferingMichael West2018-07-253-9/+10
| | | | | | | Ethernet buffering is now done so that most of the buffering is done in the socket buffers and multiple frames are only used to support the receive side offload of the socket I/O. Eliminates dropped packets at high full duplex rates.
* Device3: Change packet-based flow control to byte-based flow controlMartin Braun2018-07-255-41/+47
|
* rfnoc: Enabled SW flush mechanism impl'd in noc_shellAshish Chaudhari2018-07-241-2/+84
| | | | | | | | | | | - UHD will now "disconnect" the noc_block data-path from the crossbar when the block's dtor is invoked. This allows long running or slow blocks to empty out rapidly during teardown. - UHD will also attempt to flush at init time in case a block is destroyed abnormally. The goal of the flush mechanism is to not lock up the FPGA - noc_shell compat number is now 3
* rfnoc: legacy_compat: Remove superfluous variableMartin Braun2018-07-231-1/+0
|
* legacy_compat: Fix tx/rx channel map initialization for all channelsSugandha Gupta2018-07-091-5/+14
| | | | | | | | This will populate tx/rx channel map (radio and port index) considering number of channels, radios and mboards. On TwinRX and N310, the default subdev spec will now include all available channels.
* UHD: Make ctrl_iface_impl deconstructor virtualMartin Braun2018-06-221-1/+1
|
* UHD: Update copyright datesMartin Braun2018-06-222-2/+2
|
* RFNoC: Add FIR, Null, and Window block controllersMartin Braun2018-06-224-0/+282
|
* RFNoC: Add Siggen block controllerSugandha Gupta2018-06-221-0/+49
|
* rfnoc: Warn when a block key is not found in the registryMartin Braun2018-06-081-4/+7
| | | | | | | Before, a block description file could specify a block controlley key which was not mapped to a registered block controller, and it would fall back to the default. While that behaviour is desired, it was lacking a warning when it made that decision.
* X300/TwinRX: Fix for RuntimeError: Could not find block in list for device ↵Michael West2018-05-151-5/+5
| | | | 0, radio 0, and port 1
* X300: Temporary suppression of warning regarding number of input buffersMichael West2018-05-151-8/+8
|
* legacy_compat: skip fifo ports size checkTrung N Tran2018-05-091-15/+23
| | | | | | We don't need to assert error if there are not enough fifo ports to connect to radio. Radio ports still can be connected to all available fifo ports until they're running out.
* lib: Purge use of boost::assign, except for uhd::dictMartin Braun2018-05-023-18/+15
| | | | | | | Replaced with initialization lists. Note: uhd::dict does not work with initializer lists without making changes to said data structure. This commit has no functional changes, so keeping the boost::assigns for uhd::dict.
* lib: Purge all references to boost::this_thread::sleep()Martin Braun2018-04-302-3/+6
| | | | Replace with std::this_thread::sleep_for().
* fixup! rfnoc: ctrl_iface cleanupmichael-west2018-04-301-4/+0
|
* fixup! rfnoc: ctrl_iface cleanupmichael-west2018-04-301-1/+0
|
* fixup! legacy: fix legacy compat to work with 2TX radio blockmichael-west2018-04-061-23/+9
|
* fixup! rfnoc: Update logging in some blocksTrung N Tran2018-03-301-1/+1
|
* rfnoc: Update logging in some blocksMartin Braun2018-03-305-43/+52
| | | | | | | | | | Updated the following blocks and components: Radio, DmaFIFO, block_ctrl_base and node_ctrl_base, blockdef_xml_impl, device3_impl. No functional changes. - Demoted some log messages - Consistent log style (use unique_id()) - Some adaptation of coding style where close to log statements
* fixup! rfnoc radio: Improve warning for too many samples requestedMartin Braun2018-03-271-1/+2
|
* rfnoc radio: Improve warning for too many samples requestedMartin Braun2018-03-271-1/+11
| | | | | | | | | | When doing a NUM_SAMPS_AND_DONE stream command, there is a limit to the number of samples that can be requested (as of now, there's 28 bits for this counter). When the number was exceeded, the previous error message was not helpful. Note that the DDC block will multiply the number of requested samples by the decimation rate. This means the number of samples requested from the radio is higher than the number of samples requested by the application.
* DDC/DUC: switch CORDIC -> DDS for all relevant variable namesRyan Marlow2018-03-222-22/+16
| | | | - Bump compat number for DDC/DUC to 2.0
* rfnoc: ctrl_iface cleanupMartin Braun2018-03-165-246/+154
| | | | | | | | | | - ctrl_iface is now longer a wb_iface. All it can do now is send command packets, and receive responses to those. - ctrl_iface does not store command time or tick rate - wb_iface_adapter is no longer a set of functors, but a wrapper around ctrl_iface. Command times are stored once, in the block. - DMA FIFO and radio block controllers have an easier time getting access to a timed_wb_iface
* rfnoc/x300: Make sure peek32() and peek64() are called with actual addressesMartin Braun2018-03-162-9/+5
| | | | Before, we were calling peeks with the number of the readback register.
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-1426-800/+19
| | | | | | | | | | | | | | | | To avoid the proliferation of additional include directories and multiple ways of including project-local headers, we now default to moving all headers that are used across UHD into the uhdlib/ subdirectory. Some #include statements were also reordered as they were modified for closer compliance with the coding guidelines. Internal cpp source files should now include files like this: #include <uhdlib/rfnoc/ctrl_iface.hpp> Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* legacy: fix legacy compat to work with 2TX radio blockTrung N Tran2018-03-131-89/+230
| | | | | | | This change will allow legacy compat connect any in/out ports radios/ddcs/ducs/dmafifo block connect together in a legacy graph: [HOST]=>DFIFO/SFIFO=>DUC=>RADIO=>DDC=>[HOST]
* uhd: Fix some log statementsAndrej Rode2018-03-071-1/+0
| | | | Some log statements were incorrectly using multi-line log statements.
* fixup! rfnoc: Refactor radio_ctrl_impl, remove some BoostAshish Chaudhari2018-02-201-5/+5
|
* uhd: Update license headersMartin Braun2018-02-1945-43/+85
| | | | | | | All copyright is now attributed to "Ettus Research, a National Instruments company". SPDX headers were also updated to latest version 3.0.
* rfnoc: Check noc_shell compat number at runtimeMartin Braun2018-02-191-7/+19
|
* ddc: duc: Factor out usage of boost::bind()Martin Braun2018-02-192-32/+54
| | | | Replace with lambdas.
* rfnoc: Factor out ceil_log2() into central locationMartin Braun2018-02-192-13/+7
| | | | - New file: uhdlib/utils/math.hpp
* rfnoc: Factored out FPGA compat checkMartin Braun2018-02-192-89/+89
| | | | | - Applied changes to DUC and DDC blocks - Fixed minor formatting