Inspiration

We were inspired to use Field Programmable Gate Arrays (FPGAs) to create a system that simulates a moving pattern on a monitor.

What it does

Two blocks move in a trajectory that bounces upon hitting the monitor edges and avoids getting lost in ancillary space.

How we built it

We built this program in Quartus using SystemVerilog to configure procedural and behavioural aspects of the video. We used a coordinate system, made with two counters that keep track of the horizontal and vertical positions.

Challenges we ran into

A major technical challenge we had was setting a coordinate system to ensure that we could configure the pixels corresponding to the moving boxes. To resolve this issue, we implemented two counters: one that counts the vertical pixels and another that counts the horizontal lines. This allowed us to configure the coordinate system that would be the basis of our boundary-setting and edge detection. Another challenge we had was getting the box to continue bouncing rather than halting after one period. By carefully analyzing the conditional statements, we noticed an error in our logic that was preventing the boxes from moving in opposite directions upon collision with the boundaries. This issue was resolved after switching the order of our conditional statements.

Accomplishments that we're proud of

We are proud of having been able to complete this challenge despite having no prior experience in the technology involved.

Built With

  • quartus
  • systemverilog
Share this project:

Updates