Commit Graph
106 Commits
Author SHA1 Message Date
Andrew Moch 6606757fa7 fpga: lib: Update AxiLiteIf
This fixes a bug on wrstb in AxiLiteIf and adds a new AxiLiteIf_v that
can be used to stitch onto Verilog port_maps.


Original-commit: 6ef642e3ac44c52b98b124f30dc84b1683859989
2020-07-31 11:55:47 -05:00
Andrew Moch 4313178af4 fpga: lib: Fix chdr_mgmt_pkt_handler when CHDR_W != 64
Original-commit: 3beb450e2ab29e6021f4091fd1a3cc6522f994c4
2020-07-30 15:28:35 -05:00
Andrew Moch 77cadca8a9 fpga: tools: RESOLVE_PATH checks for an empty path
Original-commit: ffdce1c3fc229579b9d30afe489d2749c0c956ed
2020-07-30 15:00:06 -05:00
Wade Fife 2eb71626fb fpga: rfnoc: Add Signal Generator RFNoC block
Original-commit: 1e94f85b8bafc3f9acab7ef35d2675fa7e61f6f4
2020-07-30 12:51:41 -05:00
Wade Fife 3e1e0be3bc fpga: lib: Add axis_packetize module
This module takes an AXI-Stream without TLAST and outputs the
same AXI-Stream with TLAST based on the provided packet size
input.


Original-commit: b0b3849a18e1f2d3cb255a507b01ac5e7a9416a0
2020-07-30 12:51:41 -05:00
Jesse Zhang 0c67c21d6c fpga: Add Switchboard RFNoC block
Original-commit: 8db024d43bbb7cd05f5b18dd3d7cec09cac6ec4b
2020-07-30 12:50:30 -05:00
RobertWalstab 84a9230183 fpga, mpm: Bump FPGA compat number
Original-commit: 54d698e3707cf1be5d38537db783ebadd850e729
2020-07-24 15:24:14 -05:00
michael-west 4c7ee1eb8e TwinRX: Fix increased noise floor
- Fixed bus width from 25 to 24 bits

Signed-off-by: michael-west <michael.west@ettus.com>


Original-commit: fdd576cda1bab000745af66e565f4eb8c6272942
2020-07-21 11:47:20 -05:00
RobertWalstab 6dfa273771 fpga: remove liberio
Original-commit: 83a4756c957dd7698baeb56e13260d8edaa7bc2e
2020-07-20 16:01:03 -05:00
Wade Fife dce6ce8063 fpga: rfnoc: Fix testbenches to run under ModelSim
This updates the makefiles for the testbenches so they can be run using
"make modelsim" without any additional hacks. The "xsim" and "vsim"
simulation targets also still work.


Original-commit: e962cc4a5e51e2326eb656ee2a779ea26774687b
2020-07-20 15:33:22 -05:00
Martin Braun 2f517134cd fpga: e31x: Add gitignore file
Original-commit: dc32aa5cd4fb174ee3c616f854f499a53137aa75
2020-07-18 13:33:42 -05:00
Martin Braun b923e1bb2c e31x: Minor cleanup on top-level e31x.v module
- Fixed some incorrect comments
- Fixed some missing wire declarations for internal NIC
- Fix wire declarations for GPIO (they were declared too late)


Original-commit: b18eaa75de2d1dcba2a1be0ee0b862a57e976cca
2020-07-18 13:33:42 -05:00
RobertWalstab 8ad22c51e3 e31x: Swap out liberio for internal ethernet in the idle image
Original-commit: 74d157c8f67a413239c01fdfc78088623880f28f
2020-07-18 11:52:58 -05:00
RobertWalstab 51841521f8 e31x: fpga: connect device_id
Original-commit: 4d9c4749c1591bf416aacd429eea2a9d5a9bc5e6
2020-07-18 11:52:58 -05:00
Wade Fife d2febe93a8 fpga: rfnoc: Add RFNoC Moving Average block
Original-commit: b3c74a712a08c54e48713427bf46ea498b8e899b
2020-07-16 12:15:21 -05:00
RobertWalstab 0ab98653b2 n32x: Swap out liberio for internal Ethernet
Original-commit: cdb4a357284a0dd29d1120e2b6f7594f5f934f88
2020-07-16 10:00:12 -05:00
RobertWalstab b196be8d42 n3xx: Swap out liberio for internal Ethernet
Original-commit: 3555ab052e231905df2a47ee107dfdfc9cd8e4e9
2020-07-16 10:00:12 -05:00
RobertWalstab 0361a8fa3b e31x: Swap out liberio for internal Ethernet
Original-commit: 3f823004600472c7f4b173a0da83a3bd53968c40
2020-07-16 10:00:12 -05:00
Alex Williams 08c24691a9 e320: Swap out liberio for internal Ethernet
Original-commit: d01e091c4c7ccc323d305580a27754918b02974b
2020-07-16 10:00:12 -05:00
Max Köhler c33435c1b9 fpga: lib: modify ctrlport decoder to Verilog 2001 compatible syntax
Original-commit: 4f2148e7cada5a66ce5eee92ca956cb22b31b98b
2020-07-10 15:12:55 -05:00
Wade Fife 9ce170e4d5 fpga: n3xx: Fix White Rabbit images
Unused CHDR port was not being drained of discovery packets.


Original-commit: 8d57586d61356c42a80408b6bd71e8f74a8d40e2
2020-07-01 15:49:13 -05:00
Andrew Moch 05eb1bc2f1 fpga: lib: Add width agnostic version of Ethernet Interface
The rnfoc/xport section is refactored in System Verilog to allow the
following improvements
(1) CPU_W - Sets the size of the c2e and e2c pipes.  This can be run
    at a different clock rate than the main ethernet pipe
(2) CHDR_W - Sets the size of the v2e and e2v pipes. This can be run
    at a different clock rate than the main ethernet pipe
(3) ENET_W - Sets the size of the eth_tx and eth_rx pipes.

eth_interface_tb runs traffic from e2c,e2v,v2e,c2e simultaneously
against the original xport_sv implementation, and against the new
implementation with widths of 64/128/512. A chdr_management node
info request queries the port info of the node0 in the eth_interface.

eth_ifc_synth_test.sv can be compiled with the make xsim target to test
out the size of various configurations.


Original-commit: eed4988cc266a63370a4332351d02fadedde3a3b
2020-06-30 10:29:35 -05:00
Wade Fife cbe5e99e17 fpga: rfnoc: Add Log-Power block
Original-commit: cf82b36388880237fe7b690c16dde46afc1a3da3
2020-06-29 14:03:17 -05:00
Wade Fife c3f45a92a0 fpga: rfnoc: Fix chdr_update_length function
Original-commit: 1cef9d62d698a7cc33f936ab3df32e6dcd933487
2020-06-29 14:03:17 -05:00
Wade Fife 9ee2157f52 fpga: rfnoc: Add RFNoC Window block
Original-commit: 38caced6946243f0390c541df54160c45e4959cc
2020-06-29 13:41:15 -05:00
Wade Fife 5f792ad48e fpga: tools: Highlight suppressible errors from vlint
Original-commit: 5244c06ae71589a08f337371d91798a6ac3d292b
2020-06-29 13:41:15 -05:00
Wade Fife 9e0f859bb6 fpga: lib: Fix axi_packet_gate RAM dib width
Original-commit: ed1b58053c53bfbd3f3b667a0ebe0aa8066e2b0e
2020-06-29 13:41:15 -05:00
Andrew Moch 9b0e42678f fpga: lib: Add features to axi_lite.vh
Contains a fix for the AXI4LITE_ASSIGN macro, and adds
AXI4LITE_PORT_ASSIGN, AXI4LITE_PORT_ASSIGN_NR, and
AXI4LITE_DEBUG_ASSIGN macros.


Original-commit: c718faf3387a07a9a1b86ab473f6ed7ac4cb493a
2020-06-26 10:36:37 -05:00
Andrew Moch 23be04661f fpga: lib: Add synthesizable AXI4-Stream SV components
Components are connected together with AxiStreamIfc. Some features
include:
  (1) Add bytes to the start of a packet
  (2) Remove bytes from a packet
  (3) Wrappers for some older components
      a.  fifo - buffer but imediately pass a packet
      b.  packet_gate - buffer and hold till end of packet
      c.  width_conv - cross clock domains and change width of axi bus

The AxiStreamIf was moved from PkgAxiStreamBfm to its own file. It can
be used to connect to ports with continuous assignment.
AxiStreamPacketIf must be used procedurally but allows the following
new methods:
  - reached_packet_byte - notify when tdata contains a paritcular byte
  - get_packet_byte/get_packet_field - extract a byte or field from axi
  - put_packet_byte/put_packet_field - overwrite a byte or field onto axi


Original-commit: c3bca6c87700054c96320de119a58f6a688dbd5a
2020-06-25 14:44:04 -05:00
Wade Fife 6940db90e3 fpga: rfnoc: Fix read suppression test in rfnoc_block_axi_ram_fifo_tb
Original-commit: 8661f46df66329511ccb3cf083830e19d65ea402
2020-06-25 14:44:04 -05:00
Andrew Moch e008853357 fpga: lib: Add interface and model for AXI4-Lite
(1) Synthesizable AxiLiteIf
(2) Simulation model for AxiLite contains an AxiLiteTransaction class
    and an AxiLiteBfm class.

Important Methods
  a. wr - performs non-blocking write and checks for expected response
  b. wr_block - performs a blocking write and provides response
  c. rd - performs a non-blocking read and checks for expected response
  d. rd_block - persforms a blocking read  and provides response

The model allows parallel execution of reads and writes, but enforces
rd and write ordering when using the above methods.  When transactions
are posted directly, ordering is not guaranteed, and reads and writes
are put on the interface immediately.


Original-commit: afee1888dd7c2d9d95e537f505ce7ab36252763a
2020-06-24 09:56:31 -05:00
Andrew Moch b76ad2aef5 fpga: lib: Pipeline and add clken to ip_hdr_checksum
Adds LATENCY parameter to control the ammount of pieplineing. Adds a
clock enable to control the advance of the pipeline.

Used in xport when calculating new UDP headers for CHDR traffic.


Original-commit: dd9847c5c3c3fac17658b526a7d8894711af086e
2020-06-24 09:55:14 -05:00
Wade Fife 7b1174ffd9 fpga: tools: Fix ModelSim return status
Original-commit: 05137529261bf9eae2a8b72cdf67e86a8ff96927
2020-06-18 15:26:07 -05:00
Andrew Moch 55881469ac fpga: rfnoc: Add support for 512-bit CHDR widths
This fixes the rfnoc_null_src_sink, chdr_crossbar_nxn, and
chdr_stream_endpoint blocks so that wider CHDR widths are properly
supported. It also updates PkgChdrBfm to able to properly test these
blocks. The testbenches have been updated to test both 64 and 512-bit
widths.


Original-commit: 3af8dcaacfa4bf36dcae3bdbf0b353385b7063c6
2020-06-18 09:09:34 -05:00
Max Köhler 8875582763 fpga: lib: add extended spi core for 64bit
The existing SPI core (simple_spi_slave.v) was limited to 32 bit. This
commit adds a second spi core with capability to transfer up to 64 bits
while keeping the same amount of resources when using generic setting
MAX_BITS = 32. Furthermore, the new module aligns mosi and miso with the
edges of sclk. The register stages were not aligned in the existing
version.


Original-commit: 366cab1fef44f1132a2acf8046ecaeac80793ccc
2020-06-17 07:13:20 -05:00
Max Köhler 2a8ec5df90 fpga: tools: remove temporary Xilinx directories for BD recreation
During recreation of block diagrams any RTL modules will be kept in
hidden directories within the build directory. Updates of the RTL
sources might not be taken into account. Solution is to remove Xilinx's
hidden project directories before calling vivado.


Original-commit: f17a5113e228ac1bc5312193eb8f687e127184a3
2020-06-15 13:54:35 -05:00
Wade Fife d16d1e121c fpga: Update RFNOC_EDGE_TBL_FILE for Cygwin
Original-commit: 7f5f771796de590c4ed4bba7b09cda3a906535c6
2020-06-12 15:50:16 -05:00
Wade Fife 523414b4ae fpga: tools: Allow multiple top modules with ModelSim
Original-commit: 5cda86b7e09be7865807700a58e41ec021bf3c74
2020-06-11 09:53:00 -05:00
Max Köhler 750317582d fpga: lib: extend wb_spi ability to limit transmission length
Original-commit: 427a3939da459d6fb786a274ee04e28c950b71fd
2020-06-04 14:46:19 -05:00
Andrew Moch cb90fe98ef fpga: lib: Fix writes in axil_regport_master
Previously, if a write occurred before the FIFO was ready then a
write could hang as the data channel would complete but leave the
address channel in a state where it would never complete. The fix is
to hold off acknowledging on the data channel until the FIFO is ready.


Original-commit: 3f6ad749b06094b0e16b412a791ba3f2ac509600
2020-06-04 11:53:10 -05:00
Wade Fife 3cb320fae0 fpga: rfnoc: Add defaults for rate changing
Add DEFAULT_M and DEFAULT_N parameters for rate changing cores.
This allows the host to not need to configure fixed rate change
cores.


Original-commit: 983fad664436301c31c3bc8c81b538a41537598b
2020-05-28 15:12:20 -05:00
Wade Fife 76a1cfa60e fpga: tools: Improve detection of setupenv sourcing
This change allows detection of attempting to execute setupenv.sh
rather than sourcing it, which is required.


Original-commit: 6faec1d4a14a1af52681aabf19c9040dcee772ff
2020-05-28 15:11:29 -05:00
Wade Fife a46e351a65 fpga: rfnoc: Add RFNoC Add/Sub block
Original-commit: 5134b6caea58da825c4da1888a4d26888acc126a
2020-05-28 15:04:05 -05:00
Wade Fife 859accafb3 fpga: sim: Add packet_info_equal function
Original-commit: 902c6f4488d5a75cf7a83cc1dc998d42703b0929
2020-05-28 15:04:05 -05:00
Wade Fife 6a5a23a7a2 rfnoc: Add Split Stream RFNoC block
Original-commit: c27c8db011ea6ad1d0682ee06eede75989622b95
2020-05-28 14:49:32 -05:00
Wade Fife d3615aefe0 fpga: tools: Improve native ModelSim support
This adds support for colored output and support for directories added
to the list of source files (for HLS support).


Original-commit: 5b3d66e5b7cedb7098de3e4dbbee70af04a3626e
2020-05-26 13:36:55 -05:00
Wade Fife 98463e99d0 fpga: tools: Add contents of directories for HDL source
For HLS builds, the output file names aren't known in advance. This
makes it difficult to write the Makefile to pull in the files and pass
them to the build tools. This change allows you to add a directory as
your HDL source so that all files in the directory will be pulled in by
the build process.


Original-commit: 90933d9b2faf392fd26f3f7ca32f73719614a40a
2020-05-26 13:36:55 -05:00
Wade Fife af2aeccdc8 fpga: rfnoc: Add Vector IIR RFNoC block
Original-commit: a40f2a4a5d04aad3ef3e222033fbacc521233782
2020-05-19 14:22:55 -05:00
Martin Braun 17bafa621e fpga: tools: Remove uhd_image_builder
The image builder was replaced by rfnoc_image_builder, and has been
obsolete since then.


Original-commit: 676c3a37867f0e19476e9dc8495127bb3208a1a0
2020-05-18 17:57:38 -05:00
Wade Fife cb04b641a3 x300: Expand DRAM address space to 1G
The address ranges configured for the AXI interconnect IP limited the
amount of accessible DRAM to two 32 MB regions. This change makes the
full 1G available to all DRAM ports.


Original-commit: bba0cddfadcb744e8a6fae27d57ba8d3995eaf64
2020-05-18 17:50:38 -05:00