Difference between revisions of "BeagleBoard/GSoC/2022 Proposal/TaliaXu"
(→Experience and Approach) |
(→Benefit) |
||
Line 146: | Line 146: | ||
===Benefit=== | ===Benefit=== | ||
+ | (I am reusing last year's benefit - because the goal of the project and thus the benefit is essentially similar) | ||
+ | ''The completed project will provide the BeagleBoard.org community with easy to implement and powerful tools for the realization of projects based on Programmable Logic Device(FPGA), which will surely increase the number of applications based on it. The developed software will be easy and, at the same time, efficient tool for communication with FPGA. At this point, FPGA will be able to meet the requirements of even more advanced applications. The BeagleWire creates a powerful and versatile digital cape for users to create their imaginative digital designs.'' |
Revision as of 05:38, 6 April 2022
Proposal for Beaglewire PRU and Support
About
Student: Talia Xu
Mentors: Michael Welling, Bhilare
Proposal: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.
Improving the stand-alone cores on BeagleWire
The previous issues on several subsystems of BeagleWire have been addressed with LiteDRAM, but the issues with the standalone cores are left unresolved. As part of my project, I would like to take a further look into the standalone subsystems.
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 |
|
Experience and approach
- I have working experience with Verilog and embedded systems from previous internships & research projects. I also have some expriences working with low latency I/Os on FPGA boards.
- I have working experience with designing PCBs in Altium and Kicad up to 8 layers, including with RF traces.
Contingency
if I get stuck on my project and my mentor isn’t around, I will use the following resources:
- Getting Started Guide for BeagleBone by derek molloy: http://derekmolloy.ie/beaglebone
- PRU Cookbook: [1]
- BeagleWire Repo:
- Documentation and Repo on RISC-V cores:
- https://github.com/olofk/serv
- https://github.com/stnolting/neorv32
- https://github.com/sylefeb/Silice/tree/draft/projects/ice-v
Benefit
(I am reusing last year's benefit - because the goal of the project and thus the benefit is essentially similar) The completed project will provide the BeagleBoard.org community with easy to implement and powerful tools for the realization of projects based on Programmable Logic Device(FPGA), which will surely increase the number of applications based on it. The developed software will be easy and, at the same time, efficient tool for communication with FPGA. At this point, FPGA will be able to meet the requirements of even more advanced applications. The BeagleWire creates a powerful and versatile digital cape for users to create their imaginative digital designs.