Engineering Homework Help

Engineering Homework Help. this is a verilog assigment and needs to be coded in vivado versin 2019.2

Start assignment as soon as possible. Work individually, but you can ask your classmates for help when you get stuck, with consideration to the course collaboration policy (please read it in the course website).

Before getting started, you should go through the Verilog notes located under Course Readings on the course home page.

Notes:

 Clearly state whether your design is fully functional, and state the failing sections if any exist.

 Make sure your design and code are easily readable and understandable (clear and well commented).

You are going to create a simple video game using the LEDs and push buttons to simulate saving prisoners of war (POWs).

The games will go as follows:

– To start the game, press RESET. Three or Four random LEDs should be lit indicating the positions of the POWs. However, there is also a blinking LED at a random position representing your position.

– As you press the left button or the right button, your position, represented by the blinking cursor, moves.

– Move towards one of the POWs. Once you have reached them, press the center button. This rescues the POW and the corresponding the LED no longer stays lit after the cursor is moved.

– When all the POWs are saved (3 or 4 on the initial randomization), the game is over. You must make the RGB LEDs turn red while the game is going on and turn green when you have won. When reset is pressed, the game should reset.

Your Part

 To store the POW position(s), create an 16-bit flip flop module.

– The declaration should be as follows: pow_position (pos,clk,rst ,init,d

 pos is 16 bit output

 init and d are 16 bit inputs

– One every clock, load _init if rst is pressed and load d otherwise

 init should be provided from random2 – YOU MUST USE THE ALWAYS BLOCK WITH NO ASSIGN STATEMENTS OR INSTANTIATIONS

 To store your position, create an 16-bit shift register module.

– The declaration should be as follows: position_shifter(pos,clk,rst,sr,sl);

– On every clock, it should initialize to POS[15:0]= 16’b0….00000001 when rst is high and otherwise it should right shift when shift_right is high and left when shift_left is high

– You need to make sure you don’t accidentally move off the board Right or Left – YOU MUST USE THE ALWAYS BLOCK WITH NO ASSIGN STATEMENTS OR INSTANTIATIONS  To create the LED display:

– AND each of the 16 bits from the position register with the output of the pulser to create a blinking indicator. Then XOR this result with the output of the POW position flipflop. – The pulser will have a duty cycle less than 50% so that the cursor is shown as short blinks of light when not over a POW and the inverse when over a POW.

– YOU CAN USE WHATEVER YOU LIKE TO ACHIEVE THIS. (Hint: a clock divider wouldn’t be a bad idea)

 You need to figure out what to provide to the d input of the pow position flip flop (  You need to figure out to create the effect of clearing some bits if the cursor position is the same as a POW position

 Use a NOR (of the LED outputs) to figure out when the game is over  Remember to set the RGB LEDs correctly. Turn in  Full design compile and verification in Artix board hardware

 Create and submit one or multiple Verilog testbench modules that tests your submodule designs.  Create a report that explains your design and your testing in software and hardware  Include the output of your Verilog test bench(s).  Include screen shot of your working design in hardware and possibly a video link for your design (optional) to help the grade

Engineering Homework Help

 
"Our Prices Start at $11.99. As Our First Client, Use Coupon Code GET15 to claim 15% Discount This Month!!"