Hello All. Im working on a final project for my freshman engineering class and my team and we chose to recreate the game breakout in verilog and implemented on an LED Matrix. However, we just started to dive into what we need to do to get this to work, and we are already slightly lost. So I just want to ask a general question about what modules we will need. So we'll need the following modules (correct me if im wrong): 1. a module to control the ball movement 2. a module to control the paddle movement. 3. a module to control what happens when blocks are hit 4. a timing module 5. a module to actually implement the game on the matrix. 6. a counter module 7. a module for the state machine (which basically has three states, when you win, when you lose, and when youre playing) Does this sound okay? Thank you.
There are a lot of ways to do it. So what are your proposed block doing and how do they interconnect to realize the game? First you should be clear on the representation of the game logic in your verilog model, then you can start to divide this into meaningful blocks. A simple approach could be: Write an LED matrix control module that takes a two-dimensional bit-array as input and updates the (monocolor?) LED matrix (as fast as possible). This is totally separated from the game logic. The two dimensional bit-array is your game board and the whole game logic may be handled in one module that updates this array. A 1 in the array means, there is sth. (ball or paddle or block or outer borders or ground). Your game logic module updates the bit-array. Internally, it may have a structure of a two-dimensional multi-bit array (e.g. 5 bit one-hot-encoding to know internally what is the ball and what is the paddle and what is a block and so on) that can be easily mapped to the bit-array for the LED module. In your game logic module you can create several counters. For example, you could process the paddle input any 10 ms and trigger a bit-array update accordingly (depends on how fast you allow to move the paddles). A second counter of e.g. 1 s moves the ball. The interesting thing in the game logic module is the game logic. The ball has to be reflected from the paddle, the blocks and the outer borders with a certain degree. So if your game logic module updates the array, it has to check if an array element is used by more than one element (i.e. more than one bit is 1 in the multi-bit one-hot representation) and what happens then. Your checks are a lot faster (if you run the verilog design on some MHz) than the LED output, so you have enough time to "loop" through the array and trigger the according actions.
Just re-implement the original schematics in verilog: http://www.arcade-museum.com/manuals-videogames/B/Breakout.pdf p.35 The circuit count should be optimal, because is a Woz-design :-) http://en.wikipedia.org/wiki/Breakout_%28video_game%29 Best regards,
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.