Commit Graph
187 Commits
Author SHA1 Message Date
Javier Valenzuela ccfb94c062 fpga: x400: propagate pps_sync changes
Original-commit: ad17a3eba408db72803dde06fe0482b316c61e96
2023-10-17 10:18:17 -05:00
Javier Valenzuela 4d38451f2a fpga: x400: pps_sync cleanup
Original-commit: 4527a8f70d35d88f8cd75dd358fff07f29496f4f
2023-10-17 10:18:17 -05:00
Javier Valenzuela 4e26d6946f fpga: x440: remove extra synchronizer
Original-commit: a2f4fc49ac52b84593a8e529efa9c5ccbeacb325
2023-10-17 10:18:17 -05:00
Wade Fife c5a4ea2f0e fpga: x400: Update PL DRAM speed bin
Change DRAM speed grade from 075E to 075.


Original-commit: aaa92a16738a6bc2a7c76a4aadb2f0af573d4a38
2023-09-14 13:00:03 -05:00
Javier Valenzuela 72c3a524c7 fpga: x440: cpld: led control cleanup
Original-commit: 1024b69d0c6b32176adf5f6f2269149ef0c34837
2023-09-14 12:58:47 -05:00
Mark Eid b4c2aa0a40 fpga: x400: Fix SPI trigger clock crossing
Original-commit: 5da42f3542ed555623c73c7ce487b9960849f209
2023-07-31 17:35:44 -05:00
Wade Fife 88dd427a98 fpga: Fix RFNoC OOT Makefile inclusion
Original-commit: 4d73b966de307a59fe4b1cf3ad2e584d28f81e63
2023-07-26 15:13:50 -05:00
Javier Valenzuela a1058ba2e7 fpga: x440: fbx: clean up I2C triggers
Original-commit: 7ce1ed520de85c89f8cb5f50b277b90b34e01de6
2023-07-20 11:49:19 -05:00
Mark Eid 1b9a79381a fpga: x400: Fix PRC divider register map
Original-commit: 367adaa35e1f707be52011d491025193e4436eb1
2023-07-10 10:45:09 -06:00
Wade Fife cde17c060f fpga: x400: Add X440 to default make targets
Original-commit: c0504afce61790762b35ad381e8d97d182f5920c
2023-06-26 10:45:10 -05:00
Javier Valenzuela 3e55a7f988 fpga: x400: Fix DB1 timekeeper strobe
Original-commit: d13d1fc0e6ead509ee7d19e7a56c7e97283ed1dc
2023-06-16 12:36:40 -05:00
5cadf901c7 fpga: Add X440/FBX support
Co-authored-by: Martin Braun <martin.braun@ettus.com>
Co-authored-by: Wade Fife <wade.fife@ni.com>
Co-authored-by: Ryan Marlow <ryan@lmarlow.com>


Original-commit: 596760a12e4834e47589c12f8a4fd083aa2f7c25
2023-06-12 10:27:29 -05:00
Wade Fife a405111ce7 fpga: x400: sim: Add 10 GbE with wide CHDR
Adds simulation coverage for 10 GbE with 512-bit CHDR bus.


Original-commit: 0e50a37b5ec6039ed4e8947421dd333047e24408
2023-06-11 12:58:25 -05:00
adf6f576c6 mpm/fpga: x4xx: Major updates in preparation for future devices
FPGA:
- Split up MB registers that control daughterboard specific settings so
  that daughterboards 0 and 1 could have different setings, in
  preparation for future devices that require different settings.
  This requires a compat number bump to 8.0.
- Add registers for additional RFDC information, including the
  block/tile mapping of the individual channels, and information about
  resampling capabilities
- Identify sections of code that would be specific to X410/ZBX and move
  them to their own headers, so it's trivial to add device-specific
  sections of code instead for other devices in the future.
  - This includes constraints for clocks and I/O pins.
- Remove ability to do timed ctrlport transactions to the MB CPLD, this
  was unused and possibly broken.
- Move daughterboard-specific code into its own code location
  (dboards/zbx)
- Move X410-specific register documentation to its own location
  (doc/X410)
- Refactor Makefiles to split out X410/ZBX specific components and allow
  switching between device types
- Add 512-bit AXI interconnects
- Make number of timekeepers configurable (X410 keeps the single
  timekeeper)

MPM:
- Required compat is bumped to 8.0
- Now supports new registers for detecting DSP capabilities and
  multi-rate settings for the daughterboards
- Adds MMCM controls (currently unused)

Co-authored-by: Wade Fife <wade.fife@ni.com>
Co-authored-by: Ryan Marlow <ryan@lmarlow.com>
Co-authored-by: Martin Braun <martin.braun@ettus.com>
Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com>


Original-commit: c1d268917ea65dd9c5a42366014cb96d3c025223
2023-05-23 09:06:17 +02:00
Javier Valenzuela ffdcc016cc fpga: x4xx: Refactor MB CPLD code for future devices
Original-commit: e2a79712a7949ffec88135236c744dc5d8bde217
2023-05-23 09:05:27 +02:00
michael-west e9a6fe4e2e FPGA: Synchronize X300 RX frontends on time change
The frontend synchronization upon time change was removed, but is
required to synchronize the RX frontend modules when sharing LOs on
TwinRX.  This change restores the behavior.

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


Original-commit: c70b479007ab9f578577dfb5c2de6660e877d9a3
2023-05-10 14:22:42 -05:00
Martin Braun e49258d910 fpga: x4xx: Rename x410 -> x4xx for common DTS files
Original-commit: ce3fb34b4926a35abf2f109610dacb17c29577f9
2023-04-24 17:27:00 -05:00
Wade Fife cd3b980e25 fpga: x400: Set QSFP LEDs on startup
Original-commit: 977b842584a11f94bd635d1b4181e90494e0e8e1
2023-03-24 14:02:33 -05:00
Wade Fife 880f7b139b fpga: x400: Add X4C_200 RFNoC image cores
Original-commit: 214b41f11976cd5620d628e910d6dfb19fc8054c
2023-02-26 14:50:06 -06:00
Wade Fife abe4a63973 fpga: x400: Add CG_200 RFNoC image cores
Original-commit: 29e4b040e38d0682284b05255fae1c9add137a65
2023-02-26 14:40:50 -06:00
Wade Fife aeaf219f77 fpga: Update all RFNoC image core files
Original-commit: 0fca5d5ffda1f5f4f7c966c3e5f5200222a5a575
2023-02-24 08:07:17 -06:00
Wade Fife fae19151c4 fpga: x400: Add support for X4C, C1, and UC variants
Moves X4C_100, X4C_200, C1_100, and C1_200 from experimental to
available targets and makes the needed changes to allow them to build
successfully.

Adds support for "UC" FPGA variant. U indicates that QSFP0 is unused
and C indicates that QSFP1 is 100 GbE.

Adds experimental CG_200 variant.


Original-commit: cb9609c886b156e22ae9d879fffad8d060f2ca2d
2023-02-24 08:07:17 -06:00
Wade Fife 0e65ae3c86 fpga: x400: Add 1x64, 2x64, and 1x128 DRAM interconnect
Original-commit: daf1ed2ad2fbb72f16a9909fa75a0ba9e2879583
2023-02-24 08:07:17 -06:00
Wade Fife dd2b935f4b fpga: x400: Use x410_200 image core for x410_100 images
Original-commit: 23c856d4d9152153e34699e7507c4363c99b6124
2023-02-24 08:07:17 -06:00
Wade Fife 7fa7ce1f81 fpga: x400: Remove CPU_W parameter
Removes the CPU_W parameter from x4xx.v and the qsfp_wrapper files. The
value of this parameter depends on the axi_eth_dma IP and therefore
should not be changed.


Original-commit: 84c49f40adc980e2968a6a844b4bdbb2d2d38c9c
2023-02-24 08:07:17 -06:00
Wade Fife a97634a2b3 fpga: x400: Add ifdef to remove QSFP wrappers when unused
Original-commit: 4c085c2b5849913231a4d1403a4dff1d570b8d5d
2023-02-24 08:07:17 -06:00
Wade Fife 1fcf1ce3b3 fpga: x400: Make transport adapter width configurable
Original-commit: 8e08cfe1da494f8be185470810ee19fcc8ed98d7
2023-02-24 08:07:17 -06:00
Wade Fife aa9f88602d fpga: Update RFNoC YAML copyright
Original-commit: 69b0989397353560ad804a8d5a5171e481c84c7f
2023-02-22 21:55:02 -06:00
michael-west 4b6d01bf54 fpga: Reformat javascript in doc
The long lines were causing Debian lintian failures, so they have been
reformatted.  No functional changes.

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


Original-commit: 1b6c6d12fff4a6152595418a2ad54396ad8ae1f9
2023-02-10 11:48:12 -08:00
Wade Fife eec959f814 fpga: Add BUILD_BASE_DIR option to makefiles
Adds a BUILD_BASE_DIR makefile variable that allows you to specify the
base directory for FPGA build outputs. This allows you to put the
output from each run of make into a unique directory, or to run
multiple instances of make in parallel with each build's output being
put in a different directory. For example:

make X310_XG BUILD_BASE_DIR=/path/to/builds


Original-commit: bc6db8409ba756bbad0d0c158ffb00c614b58fd9
2023-02-09 07:38:49 -06:00
Wade Fife ab63d78a6c fpga: Add BUILD_SEED variable
Adds a BUILD_SEED make variable that can be set to a 32-bit integer,
and adds an FPGA read-only register initialized by this variable.
Changing this variable will randomly affect the FPGA build results.
This can be useful when your build fails timing by a small amount,
allowing you to build again and get different results with the same
code.

For example, you could run the following to produce an FPGA build with
different timing results from the default build:

make X310_XG BUILD_SEED=123


Original-commit: 3a3a03486f9221c2e59fa6d0826c23d17730956d
2023-02-07 23:04:12 -06:00
michael-west 2c0fea5d1e fpga: Update copyright
Update copyright on recently changed files.

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


Original-commit: 92c09f7f766586683ebd67bb3a57005250c4d81d
2023-01-19 15:55:56 -08:00
michael-west b8163da1d1 FPGA: Restore FIR filter in rx_frontend_gen3
The FIR filter applied gain.  Removing it caused incorrect scaling and
signals where every other sample was zero.  Also parameterized heterodyne
frontend processing so it would not use resources in images not
requiring it.

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


Original-commit: c27519624ec0f3a44ac1130635a03dafcf2e7f13
2023-01-19 10:05:27 -06:00
Martin Braun 292d31fc52 x300: Update firmware for TA control
- Bump firmware compat to 6.1
- Remove crossbar counter logic (the FPGA does *not* support crossbar
  counters anymore, so we remove it from the firmware as well)
- Remove crossbar programming control (this is now provided by RFNoC
  management packets)
- Remove UDP framing control (this is also provided by RFNoC management
  packets)
- Remove Ethernet link/activity LED control (this has been handled by
  the FPGA directly for years now)
- Add functionality to program transport adapter. The TA is programmed
  directly on the settings bus, so for the most part, this is already
  possible from the firmware. The only exception is the 'virtual'
  register to program IP address and MAC at the same time. In the
  firmware, it will perform an ARP lookup of the MAC address, and then
  write the "normal" IPv4 address register in the TA, as well as the MAC
  address registers.
- Updated bootram.coe


Original-commit: 89fb75288e151cd1e43af765618c0665e79801f9
2023-01-10 14:19:00 -08:00
Wade Fife 73ef818632 fpga: x300: Bump FPGA compat to 39.1
Original-commit: 2d7c8e0d08ae602a96c8b0105cba406d1707a170
2023-01-10 14:19:00 -08:00
Wade Fife fb4542e9ef fpga: x300: Support advanced transport adapter
Original-commit: adc938c0b6c9b045ad60c8f5297303495a96f0ca
2023-01-10 14:19:00 -08:00
Wade Fife 7dc93d0e8c fpga: e320 Change MIG arbitration to RD_PRI_REG
Original-commit: 2a27f72f86e74c569e5ea158a5ca9cde68c41a97
2022-11-08 08:20:48 -06:00
Wade Fife 104ae54542 fpga: x300: Change MIG arbitration to RD_PRI_REG
Original-commit: 27ebd95d29ed457ef032604b034b8326da0a20aa
2022-11-08 08:20:48 -06:00
Wade Fife 729aa788af fpga: Require AR76780 for X3xx and E3xx
Patch AR76780 was already listed as a requirement for X4xx and N3xx,
but was not listed as a requirement for X3xx and E3xx. This change
makes it required for all Vivado-based USRPs.


Original-commit: 5aa6bc4418a30d6e6fde80b80632f9f9115ea5c4
2022-09-23 15:09:35 -05:00
Wade Fife 5bb61528d9 fpga: x300: Cleanup MTU parameters
Original-commit: c781f753d6bbf1d22621fe905287b7842d986177
2022-09-01 14:41:55 -05:00
Wade Fife 1d9a3018db fpga: n3xx: Cleanup MTU parameters
Original-commit: 9e4c8cbbbb8677eecbab66ab01a02375664ad4a2
2022-09-01 14:41:55 -05:00
Wade Fife 521c7684fc fpga: e320: Cleanup MTU parameters
Original-commit: a6a76002ead284815d9337e30c50f590466eb429
2022-09-01 14:41:55 -05:00
Wade Fife 2f677eddda fpga: e31x: Cleanup MTU parameters
Original-commit: 55a1ef7e50d271459f44b98d55860bfb2bbe2d19
2022-09-01 14:41:55 -05:00
Wade Fife 354b59e430 fpga: n3xx: Add PROTOVER to n3xx_mgt_wrapper
Original-commit: 936965c104696b7883674a713d457042eaeb249f
2022-09-01 14:41:55 -05:00
Wade Fife 21091fb07c fpga: e31x: Add PROTOVER to eth_internal
Original-commit: 4d85a77d5f1a97020a7ad7d06a1ce75d94964309
2022-09-01 14:41:55 -05:00
Wade Fife 92abd3945a fpga: n3xx: Remove unused USE_REPLAY parameter
Original-commit: 244b0a575fce2eb9e489b7f46c6e6cd13ec7a0bd
2022-09-01 14:41:55 -05:00
Wade Fife a23ff16c07 fpga: n3xx: Bump FPGA compat to 8.1
Original-commit: 65671437c81fe0395dd2400a1e36bbc5fd934b40
2022-08-29 17:01:45 -05:00
Wade Fife e087a3c12b fpga: e320: Bump FPGA compat to 6.1
Original-commit: 50949d28d47100aea4ebc0563f6c1092a3b9b57e
2022-08-29 17:01:45 -05:00
Wade Fife 5f4d53eacb fpga: e320: Support advanced transport adapter
- Fix NODE_INST
- Fix RFNOC_PROTOVER
- Add option to use SystemVerilog transport adapter for raw UDP


Original-commit: 0114e108af63d9ac785649c8099a042299624943
2022-08-29 17:01:45 -05:00
Wade Fife a270cb29d6 fpga: n3xx: Support advanced transport adapter
- Fix NODE_INST
- Fix RFNOC_PROTOVER
- Add option to use SystemVerilog transport adapter for raw UDP


Original-commit: 693ec2c896306bcba3686385e5861593040d4cbd
2022-08-29 17:01:45 -05:00