Difference between revisions of "BeagleBoard/GSoC/2022 Proposal/TaliaXu"
(→About you) |
(→About your project) |
||
Line 48: | Line 48: | ||
The above cores can be used as a starting point and reference to quickly implement a working RISC-V core on the current BeagleWire cape. Once the cores are able to be run on the BeagleWire, the goal is to focus on the following improvements: | The above cores can be used as a starting point and reference to quickly implement a working RISC-V core on the current BeagleWire cape. Once the cores are able to be run on the BeagleWire, the goal is to focus on the following improvements: | ||
#Interface between BeagleWire PRU cores and BBB: to create an interface for the BBB to manage both the PRU on the BBB and the PRU on the BeagleWire simultaneously | #Interface between BeagleWire PRU cores and BBB: to create an interface for the BBB to manage both the PRU on the BBB and the PRU on the BeagleWire simultaneously | ||
− | #To measure and improve the I/O latency of the PRU cores: to identify any bottlenecks in the implementation of PRU cores for communicating with peripherals and look into ways to improve them if any | + | #To measure and improve the I/O latency of the PRU cores: to identify any bottlenecks in the implementation of PRU cores for communicating with peripherals and look into ways to improve them if any. The I/O latencites of PRU cores on BBB will be used as a reference. |
− | #To fit as many PRU cores as possible on the iCE40: to run multiple cores simultaneously on the BeagleWire with shared access to SDRAM | + | #To fit as many PRU cores as possible on the iCE40: to run multiple cores simultaneously on the BeagleWire with shared access to SDRAM. I also plan on looking into the components that are not necessary for BeagleWire to maximize the PRU cores on BeagleWire |
=====For PolarFire:===== | =====For PolarFire:===== | ||
Line 55: | Line 55: | ||
The approach of supporting PRU on PolarFire is less sort out, but the goal is to start with the official support of RISC-V on PolarFire. | The approach of supporting PRU on PolarFire is less sort out, but the goal is to start with the official support of RISC-V on PolarFire. | ||
+ | |||
===Timeline=== | ===Timeline=== |
Revision as of 15:00, 4 April 2022
Contents
Proposal for Beaglewire PRU and Support
About
Student: Talia Xu
Mentors: Michael Welling, Bhilare
Proposal:Xu BeagleWire Software
Proposal
- Completed All the requirements listed on the ideas page.
- The PR request for cross-compilation task: #162.
Status
This project is currently just a proposal.
About you
Github: taliaxu09
School: [Technical University Delt]
Country: The Netherlands
Primary language : English
Typical work hours: 12PM-8PM European Central Time
Previous GSoC participation: This is my first time applying to participate for GSoC. I want to patricipate in GSoC with BeagleBoard because I think this is a great opportunity to gain a deeper knowledge of the code repository of BeagleBoard and explore how to use it together with different peripherals. I also think the BeagleWire could be a promising candidate for some of the topics I wish to look into in my study on visible light communication.
About your project
Project name: RISC-V Based PRU on FPGA and Beglewire Updates
Main Goals:
- Create RISC-V PRU on BeagleWire
- Create examples with PRU cores on BeagleWire
- Improving the stability and implement testbenches for subsystems in standalone cores,
- Extensive documentation,
Description
Introduction
The BeagleWire is an FPGA cape with the Lattice iCE40HX that can be connected to and interfaced with the BeagleBoard. There are two main goals in this project, the first one is to implement a programmable real-time unit on BeagleWire to allow low-latency I/O control between the main CPU and peripherals. The second one is to revisit and improve the software support for standalone cores, such as the (SDRAM, UART, SPI, PWM).
RISC-V Cores on FPGA
Several open-sourced PRU cores can be leveraged to implement on the BeagleWire
For iCE40:
- https://github.com/olofk/serv
- https://github.com/stnolting/neorv32
- https://github.com/sylefeb/Silice/tree/draft/projects/ice-v
The above cores can be used as a starting point and reference to quickly implement a working RISC-V core on the current BeagleWire cape. Once the cores are able to be run on the BeagleWire, the goal is to focus on the following improvements:
- Interface between BeagleWire PRU cores and BBB: to create an interface for the BBB to manage both the PRU on the BBB and the PRU on the BeagleWire simultaneously
- To measure and improve the I/O latency of the PRU cores: to identify any bottlenecks in the implementation of PRU cores for communicating with peripherals and look into ways to improve them if any. The I/O latencites of PRU cores on BBB will be used as a reference.
- To fit as many PRU cores as possible on the iCE40: to run multiple cores simultaneously on the BeagleWire with shared access to SDRAM. I also plan on looking into the components that are not necessary for BeagleWire to maximize the PRU cores on BeagleWire
For PolarFire:
The approach of supporting PRU on PolarFire is less sort out, but the goal is to start with the official support of RISC-V on PolarFire.
Timeline
Date | Status | Details | |
---|---|---|---|
Presubmission |
|
||
May 20th - June 12th | Community Bonding |
| |
June 13th | Milestone #1 |
| |
June 20th | Milestone #2 |
| |
June 27th | Milestone #3 |
| |
July 4th | Milestone #4 |
| |
July 11th | Milestone #5 |
| |
July 18th | Milestone #6 |
| |
July 25th | Milestone #7 |
| |
August 1st | Milestone #8 |
| |
August 8th | Milestone #9 |
| |
August 15th | Milestone #10 |
| |
August 22nd | Milestone #11 |
| |
August 29th | Milestone #12 |
| |
Sep. 5th | Milestone #13 |
|