VHDL Challenge
Open, HighPublic

Description

Complete this task as part of your GSoC 2020 application if you are applying for any FPGA related task.
This challenge is mandatory if you apply for T728, T731, T887, T1130 or T1131.


Please choose at least one of the following tasks and make sure to adhere to the VHDL coding style used in the AXIOM Beta codebase.

Task 1:
Create VHDL code for a serial to parallel converter (SERDES) which can be switched between 8, 10 and 12 bit.
Make sure that the implementation works at high serial speeds (600 MHz) and that the data word can be adjusted (bitslip).

  • You can assume a clock with 100MHz and a fixed phase relation.
  • You may use existing hardened units like PLL, DDR or SERDES to simplify the task.
  • Test the resulting SERDES with simulation or on real hardware.

Task 2:
Create an UART - SPI bridge consisting of a simple UART and SPI master.
Make both separate and isolated entities which work together as a bidirectional bridge.

  • Select a set of UART commands and responses to control generic SPI slaves.
  • Make sure to handle different slave widths (e.g. 8 and 16 bit).
  • Prepare for several (at least four) slave select signals.

Task 3:
Create a high speed link (>500MHz) between two FPGAs utilizing SERDES and coding.

  • Utilize a common clock (e.g. 25MHz) between both FPGAs.
  • Use PRNGs to test the link at real time and to estimate BER.
  • Make sure to provision for a link reset and some kind of link training.

Note: Use timing reports and post-route simulation to verify that the implementation can actually work at the desired frequencies.


Useful Links:


Example scenario for task 1:
An 8/10/12 bit serial ADC is connected to the FPGA over LVDS with a common 100MHz clock. The bitdepth can be selected via two control signals.
When the ADC is idle, it sends a test pattern 0xBAF (which is truncated to 8/10 bit in the 8 and 10bit modes) for link training and adjustment (bitslip).
When active, the ADC sends 50Msps for 12bit, 60Msps for 10bit and 75Msps for 8bit over the serial link.

To get in touch with any mentor check the Mentor Contact List.

sebastian updated the task description. (Show Details)
sebastian raised the priority of this task from to High.
sebastian moved this task to FPGA / HDL on the Google Summer of Code 2022 board.
sebastian updated the task description. (Show Details)
sebastian added a subscriber: sebastian.
Bertl renamed this task from FPGA Challenge to VHDL Challenge.Jan 23 2018, 11:48 AM
Bertl updated the task description. (Show Details)
Bertl changed the edit policy from "All Users" to "Administrators".Jan 23 2018, 12:23 PM
Bertl updated the task description. (Show Details)Jan 23 2018, 2:11 PM
Bertl updated the task description. (Show Details)
Bertl updated the task description. (Show Details)Jan 28 2018, 4:35 PM
Bertl updated the task description. (Show Details)Jan 28 2018, 7:00 PM
arun13e added a subscriber: arun13e.Mar 7 2018, 1:05 AM
This comment was removed by arun13e.
sebastian updated the task description. (Show Details)Mar 8 2018, 8:25 PM
Bertl updated the task description. (Show Details)Mar 13 2018, 5:41 PM
Bertl changed the edit policy from "Administrators" to "All Users".Mar 20 2018, 10:51 PM
MK added a subscriber: MK.Mar 22 2018, 7:34 AM
MK updated the task description. (Show Details)Mar 22 2018, 1:42 PM
rahulvyas updated the task description. (Show Details)Mar 27 2018, 12:22 AM
URZ added a subscriber: URZ.Apr 18 2018, 1:32 PM
BAndiT1983 updated the task description. (Show Details)Feb 5 2019, 8:19 AM
Bertl updated the task description. (Show Details)Feb 6 2019, 10:01 AM
Bertl added a subscriber: Bertl.Mar 4 2019, 1:38 PM
Bertl updated the task description. (Show Details)Mar 11 2019, 12:44 PM
Bertl updated the task description. (Show Details)Mar 11 2019, 12:46 PM
Bertl updated the task description. (Show Details)Mar 11 2019, 12:48 PM
Bertl updated the task description. (Show Details)Mar 14 2019, 7:18 PM
Bertl updated the task description. (Show Details)Mar 17 2019, 3:07 PM
Bertl updated the task description. (Show Details)Mar 26 2019, 6:38 AM
Bertl updated the task description. (Show Details)Feb 25 2020, 3:43 PM
Bertl updated the task description. (Show Details)Mar 24 2020, 8:35 PM
Bertl updated the task description. (Show Details)Mar 26 2020, 3:47 PM
Bertl updated the task description. (Show Details)Mar 26 2020, 3:50 PM
sebastian updated the task description. (Show Details)Feb 18 2021, 6:49 PM