Inspiration
Who doesn't like happy memories from their past? Leveraging the newest marketing tool used by the world's biggest corporations: nostalgia. Equipped with modern twists to keep things interesting.
See: Samsung bringing back the flip phone.
What it does
A simple -- but not so simple -- bouncing ROSS logo. At the click of a button:
- Swap between red and blue.
- Cause letters to collapse and come back together.
How we built it
We began by understanding the theory behind blanking space and how the object needed to be set up to avoid it. We ran the original code to help us analyze the signal diagram and determine when the x and y coordinates should increment. As we gained clarity on how things worked, we began adding and adjusting code to see how it affected the output. Initially, we struggled with setting up the y coordinate, as the x worked fine, but the y failed to provide the correct bounds. After extensive debugging and rethinking our approach, we resolved the issue and created simple objects, like a moving square. Once confident, we moved on to designing the iconic DVD screensaver, starting by drawing the letters and selecting their thickness and appearance. After finalizing the letters, we focused on experimenting with color changes and movement, achieving the desired dynamic display.
Challenges we ran into
Along the way we faced many challenges, specifically with setting up our signal correctly to trigger the x and y coordinates to increment properly when it was a new line and not in the blanking area. The y coordinate in particular gave us trouble because it did not get recognized when we tried to use it to give our moving objects bounds. Additionally, configuring the letters to change colours on the screen, and have them separate then join back together provided more challenges. These challenges pushed us to carefully setup and understand our signal timing and logic conditions.
What we learned
We learned how to perform vector manipulation and gained experience using SystemVerilog, a language most of us were unfamiliar with at the start. This required us to quickly understand its syntax and functionality. We also discovered the importance of accounting for blanking spaces when outputting video, as they play a key role in signal timing. The choice of variable types in SystemVerilog proved crucial, as it directly impacts how you manipulate and utilize them. One of our biggest takeaways was understanding how colors work, specifically the CR and CB values that flip quickly to generate the chosen color. Lastly, we improved our ability to analyze signal diagrams, learning how to use them to trigger specific actions, such as moving to a new row when something enters the blanking space.
What's next for Bouncing ROSS - Back to Simpler Times
Bouncing ROSS has big challenges ahead! First, the complex digital logic driving it must be optimized to for performance, code readability, and very minor bug fixes. Next, it must be added to every device sold by ROSS.
Built With
- fpga
- verilog
Log in or sign up for Devpost to join the conversation.