cvw/fpga
Ross Thompson 1c6ebb86a3 Added some debug code to count frames sent to the ethernet mac and frames sent to the phy.
Removed the external reset of the phy and now it always reliably starts in the same way.  The first 0x117 frames are always captured.
2024-06-20 12:54:12 -07:00
..
constraints Merge branch 'main' into rvvi 2024-06-10 18:10:23 -07:00
generator Merge branch 'main' into rvvi 2024-06-10 18:10:23 -07:00
rvvidaemon Added some debug code to count frames sent to the ethernet mac and frames sent to the phy. 2024-06-20 12:54:12 -07:00
sim Fpga simualtion files. 2021-10-11 10:24:40 -05:00
src Added some debug code to count frames sent to the ethernet mac and frames sent to the phy. 2024-06-20 12:54:12 -07:00
zsbl Added true bootloader to fpga/zsbl directory. 2024-05-31 15:28:25 -05:00
comport.setup Added comport.setup to remind how to configure com port for xilinx fpga. 2022-01-25 14:54:38 -06:00
debug_notes.org Modified FPGA to add additional signals to ILA. Created advanced trigger for ILA using vivado's tsm language. 2021-12-12 17:21:44 -06:00
probe Added Wally github address to header comments 2024-01-29 05:38:11 -08:00
proberange Added Wally github address to header comments 2024-01-29 05:38:11 -08:00
probes Added Wally github address to header comments 2024-01-29 05:38:11 -08:00
README.md Removed pipelined level of hierarchy 2023-02-02 14:14:11 -08:00
renumber.py The vcu108 works again. Added renumber.py script that renumbers probes in an xdc file. 2024-05-30 15:48:27 -05:00
trigger_issues.tsm Renamed wallypipelinedhart to wallypipelinedcore 2022-01-20 16:02:08 +00:00

The FPGA currently only targets the VCU118 board.

  • Build Process

cd generator make

  • Description

The generator makefile creates 4 IP blocks; proc_sys_reset, ddr4, axi_clock_converter, and ahblite_axi_bridge. Then it reads in the 4 IP blocks and builds wally. fpga/src/fpgaTop.v is the top level which instanciates wallypipelinedsoc.sv and the 4 IP blocks. The FPGA include and ILA (In logic analyzer) which provides the current instruction PCM, instrM, etc along with a large number of debuging signals.

  • Programming the flash card You'll need to write the linux image to the flash card. Use the convert2bin.py script in linux-testgen/linux-testvectors/ [*** moved?] to convert the ram.txt file from QEMU's preload to generate the binary. Then to copy sudo dd if=ram.bin of=.

  • Loading the FPGA

After the build process is complete about 2 hrs on an i9-7900x. Launch vivado's gui and open the WallyFPGA.xpr project file. Open the hardware manager under program and debug. Open target and then program with the bit file.

  • Test Run

Once the FPGA is programed the 3 MSB LEDs in the upper right corner provide status of the reset and ddr4 calibration. LED 7 should always be lit. LED 6 will light if the DDR4 is not calibrated. LED 6 will be lit once wally begins running.

Next the bootloader program will copy the flash card into the DDR4 memory. When this done the lower 5 LEDs will blink 5 times and then try to boot the program loaded in the DDR4 memory at physical address 0x8000_0000.

  • Connecting uart You'll need to connect both usb cables. The first connects the FPGA programer while the connect connects UART. UART is configured to use 57600 baud with no parity, 8 data bits, and 1 stop bit. sudo screen /dev/ttyUSB1 57600 should let you view the com port.