All Matches
Solution Library
Expert Answer
Textbooks
Search Textbook questions, tutors and Books
Oops, something went wrong!
Change your search query and then try again
Toggle navigation
FREE Trial
S
Books
FREE
Tutors
Study Help
Expert Questions
Accounting
General Management
Mathematics
Finance
Organizational Behaviour
Law
Physics
Operating System
Management Leadership
Sociology
Programming
Marketing
Database
Computer Network
Economics
Textbooks Solutions
Accounting
Managerial Accounting
Management Leadership
Cost Accounting
Statistics
Business Law
Corporate Finance
Finance
Economics
Auditing
Hire a Tutor
AI Study Help
New
Search
Search
Sign In
Register
study help
business
rapid prototyping of digital systems
Questions and Answers of
Rapid Prototyping Of Digital Systems
3. Expand the C program in the previous problem to display the elapsed time in hours, minutes, and seconds on the LCD (or seven-segment displays). Have one pushbutton reset the time to zero and
2. Write a C program that displays a count of the seconds that the program has been running in the LCD display on the DE2 board or on the seven-segment displays on the DE1 board. Demonstrate the
1. Write a C program to blink the eight green LEDs in a reversing shift pattern on the DE board. After the last LED in each direction turns on, reverse the direction of the shift.Run and demonstrate
19. Develop a VHDL synthesis model for another RISC processor’s instruction set. Possible choices include the Nios, Microblaze, Picoblaze, PowerPC, ARM, SUN SPARC, the DEC ALPHA, and the HP PARISC.
18. The MIPS VHDL model was designed to be easy to understand. Investigate various techniques to increase the clock rate such as using two dual-port memory blocks for the register file, moving
17. Add programmed keyboard input and video output to the sort program from the previous problem using the keyboard, vga_sync, and char_rom FPGAcores. Use a dedicated memory location to interface to
16. Add the required instructions to the model to run the MIPS bubble sort program from Chapter 3 of Computer Organization and Design The Hardware/Software Interface
15. Investigate using two Altsyncram memory blocks to implement the register file in IDECODE. A single Altsyncram block can be configured to do a read and write in one clock cycle (dual port). To
14. Add the overflow exception hardware suggested at the end of Chapter 6 in Figure 6.42 of Computer Organization and Design The Hardware/Software Interface by Patterson and Hennessy. Add an overflow
13. Redesign the pipelined MIPS VHDL model so that branch instructions have 1 delay slot as seen in Figure 6.40 (i.e. one instruction after the branch is executed even when the branch is taken).
12. Use the timing analyzer to determine the maximum clock rate for the pipelined MIPS implementation, verify correct operation at this clock rate in a simulation, and compare the clock rate to the
11. When a branch is taken, several of the instructions that follow a branch have already been loaded into the pipeline. A process called flushing is used to prevent the execution of these
10. Add LW/SW forwarding to the pipelined model. This will allow an LW to be followed by an SW that uses the same register. It is possible since the MEM/WB register contains the load instruction
9. Once the MIPS is pipelined as in problem 8, data hazards can occur between the five instructions present in the pipeline. As an example consider the following program:
8. Pipeline the MIPS VHDL simulation. Test your VHDL model by running a simulation of the example program shown in Figure 6.21 using the pipeline hardware shown in Figure 6.27 in Computer
7. Add and test the R-format SLT, set if less than, instruction. As an example SLT $1, $2,$3 performs the operation, If $2
6. Add and test the I-format ADDIU, add immediate unsigned, instruction. Modifications to the existing VHDL MIPS model will be required.
5. Add and test the BNE, branch if not equal, instruction. Modifications to the existing VHDL MIPS model will be required. Hint: Follow the implementation details of the existing BEQ, branch if
4. Add and test the JMP instruction. The JMP or jump instruction is not PC-relative like the branch instructions. The J-format JMP instruction loads the PC with the low 26 bits of the instruction.
3. Write a MIPS test program for the AND, OR, and SUB instructions and run it on the VHDL MIPS simulation. These are all R-format instructions just like the ADD instruction. Modifications to the
2. Recompile the MIPS model using the VIDEO_MIPS.VHD file, which generates video output. Download the design to the FPGA board. Attach a VGA monitor to the FPGA board. Single step through the program
1. Use VHDL to synthesize the MIPS single clock cycle design in the file TOP_SPIM.VHD. After synthesis and simulation perform the following steps:Display and print the timing diagram from the
Robots that detect mines
Robots that collect objects
Fire Fighting Robots
Robot Laser Tag
Robot Soccer Teams
Sumo Wrestling
Robot Dance Contest
Robot Maze Solving
22. Develop and hold a FPGA-bot design contest. Information on previous and current robotics contests can be found online at various web sites. Here are some ideas that have been used for other robot
21. Use a Nios processor to control the robot with C code using the UP3 Nios II reference design in Chapters 16 & 17.
20. Use the μP 3 computer from Chapter 8 to implement a microcontroller to control the robot instead of a custom state machine. Write a μP 3 assembly language program to solve one of the previous
19. Interface additional sensors, switches, etc., to the FPGA-bot so that it can navigate a maze. If several robots are being developed, consider a contest such as best time through the maze or best
18. Attach several IR ranging sensors to the FPGA-bot and use the sensor data to develop a wall following robot.
17. Attach the Sonar transducer to an unmodified servo’s output shaft. Use the new servo to scan the area and locate the closest object. To sweep the unmodified servo back and forth, a timing pulse
Move close to the object and stop.
Locate the nearest object.
Scan the immediate area 360 degrees by rotating the robot
16. Interface a Sonar-ranging module to the FPGA-bot and perform the following operation:
Move forward 4 seconds.
Turn North.
15. Interface the a magnetic or electronic compass module to the FPGA-bot, and design a state machine that performs the following operation:
14. Using a standard IR remote control unit from a television or VCR and an IR sensor interfaced to the FPGA-bot, implement a remote control for the FPGA-bot. Different buttons on the remote control
13. Interface the line-following module to the FPGA-bot, and design a state machine that follows a line. The line-following module has three sensor signals, left, center, and right. If the line
12. With two FPGA-bots facing each other, develop a serial communications protocol using the IR LEDs and sensors. Assume the serial data is fixed in length and always starts with a known pattern at a
11. Once the IR proximity sensor module from problem 8 is interfaced, design a state machine for the robot that moves forward and avoids obstacles. If it sees an obstacle to the left, turn right, and
10. Use motor speed control and a state machine with a timer to perform a small figure eight with the FPGA-bot.
9. Using IR sensor input, develop a design for the FPGA-bot that follows a person. The person must be within a foot or so of the FPGA-bot. When a left signal is present turn left, when a right signal
8. Interface an IR proximity sensor module to the FPGA-bot using jumpers connected to the Cyclone male header socket. Attach the module in front of the header socket using foam tape. Alternate
7. Using the keyboard FPGAcore, design an interface to the keyboard that allows the keyboard to be used as a remote control device to move the robot. Pick at least five different keys to command to
6. Using a ROM, develop a ROM-based state machine that reads a motor direction and time from the ROM. Put a complex pattern such as a dance step in the ROM using a MIF file. For looping, another
Stop, pause for 2 seconds, turn 180 degrees, and start over.Determine the amount of time required for 90- and 180-degree turns by trial and error. A 10Hz or 100Hz clock should be used for the timer.
Turn left and go forward for 2 seconds.
Turn right and go forward for 4 seconds (do not count the time it takes to turn).
Move forward for 6 seconds.
5. Design a state machine using a counter/timer that will move the robot in the following fixed pattern:
4. Use an IR LED and IR sensor to add position feedback to the motors. You can build it yourself or a similar servo wheel encoder kit built by Nubotics is available from Acroname. Some sensor modules
3. Develop a speed controller for the robot drive motors by pulsing the drive motors on and off. The motors are sent a pulse of 1ms for reverse and 2ms for forward at full speed. If no pulse is sent
2. Using the dead zone settings from problem 1, design a motor speed controller. Settings within around .2ms of the dead zone will make the motor run slower. The closer to the dead zone the slower
1. Develop a counter design to find the dead zone of a converted R/C servo motor. The dead or null zone is the time near 1.5ms that actually makes the servo motor stop moving. As in the example motor
21. Blue Loctite, Cyanoacrylate (CA) Glue, and Clear Silicone RTV. These adhesives and glues are useful to secure screws, servos, and wheels. The mechanical vibration on moving robots tends to shake
20. Four 4-40 Screws 5/16-inch or slightly longer. The screws are used to attach the UP3 board to Plexiglas. The screws thread into the hex spacers attached to the UP3 board.
19. Approximately 8 inches of 1-inch wide double-sided 3M foam tape. This is used to attach servos, skids, and optional sensor boards to the base. Be sure to clean surfaces to remove any grease or
18. One 8-inch long strip of 2-inch wide sticky-back Velcro. Two 8-inch long strips, 1 inch wide can also be used. The Velcro is used to attach the battery to the bottom of the Plexiglas base. Since
17. 3/16-inch thick Plexiglas cut into a 10.5-inch diameter circle. This part is the base of the robot. Colored Plexiglas such as opaque white, will not show scratches as easy as clear. Holes to
16. Four, 1-inch hex spacers with 4-40 threads or use the shorter spacers that come with the board. These are used to mount the UP3 board to the Plexiglas base using the holes in the UP3 board.
15. An assortment of small wire jumpers and connectors to attach wires to the male headers on the UP3. These are the jumper wires commonly used for protoboards. Two short jumpers are used to connect
14. A Coaxial DC Power Plug with 5mm O.D. and 2.1mm I.D., Radio Shack Number 274-1567 or equivalent. This power plug fits the power socket on the UP3 board. A different size plug is needed for the
13. A 1-inch piece of small heat shrink tubing or electrical tape. This part is used to insulate a splice in the twin-lead power wire.
12. Approximately 9 inches of small-gauge twin-lead speaker wire. This part is used to connect power to the UP3 board. The wire must fit into the DC power plug (part# 11).Typically, 20-22 gauge wire
11. A miniature toggle switch with solder lug connections. The switch should have a contact rating of more than two amps (Radio Shack #275-635B or equivalent). Only two contacts or single pole single
10. A small wire wrap protoboard with holes on .1” centers cut down to 2” by 2.8”. A This is used to make a protoboard for use with the UP3 board. The protoboard contains connectors for servos
9. A 2 to 3 inch strip of .1” single row breakaway headers. DigiKey #S1021-36 or equivalent These headers are used to make custom servo and sensor connectors on the protoboard. They can be soldered
8. Three 40-pin .1-inch double row PC board mount female header sockets, DigiKey#S4310 or equivalent. These sockets are soldered into a small 0.1” center wire wrap protoboard that fits into the
7. A charger for the 7.2V or 8.4V battery pack. An adjustable DC power supply can be used to charge the battery if it is properly adjusted and timed so that the battery is not overcharged.
6. A Castering Wheel or Two small Teflon or Nylon Furniture Slides. There is a bit too much mechanical play in common furniture casters for a small robot and they tend to randomly deflect the robots
5. Two Acroname or Lynxmotion servo wheels. These wheels are 2 ¾ plastic wheels that are designed to attach to the servo’s output shaft spline. Prather Products 2¼-inch aluminum racing wheels
4. Kyosho Female Battery connector with wire leads, Duratrax or Tower Hobbies#DTXC2280. This is used to connect to battery. A connector is needed so that the battery can be disconnected from the
3. Two modified R/C Servomotors. Two identical model servos are required so that the motors run at the same speed. Servo modifications are described in section 13.3. Any servo should work. The
2. A 7.2V to 8.4V 1300-1700mAh Rechargeable NiCAD battery pack with the standard Kyosho battery connector. This is a standard R/C car part, and it is used to power the FPGA-bot. For a small
1. An Altera FPGA Board. The FPGA board serves as the controller for the FPGA-bot. It is attached to the FPGA-bot body with screws. No modifications are required to the board. Any of the Altera FPGA
4. Obtain an IC chip with an SPI or I2 C interface and design an interface for it on the FPGA board. Chips with SPI interfaces include analog-to-digital converters, digital-to-analog converters and
3. Design an I2 C interface for the UP3 board’s real-time clock chip. Display the time from the chip on the UP3 board’s LCD display. Don’t forget to check the UP3 board’s jumper settings and
2. Interface the FPGA board’s serial port (DE1, DE2 or UP3) to a PC serial port using a serial cable. Run a serial communications program on the PC. Send a short message to the PC from the FPGA and
1. Interface a printer with a parallel port to the UP3 board’s parallel port. Connect the two devices using a printer cable. Design logic using a state machine or a processor core for the FPGA to
9. Write a mouse driver in Verilog. Use the mouse information provided in sections 11.2 and 11.3.
8. Use the mouse as an input device in another design with video output or a simple video game such as pong, breakout, or Tetris.
7. Use the mouse as input to a video etch-a-sketch. Use a monochrome 128 by 128 1-bit pixel RAM with the VGA_Sync core in your video design. Display a cursor. To draw a line, the left mouse button
6. Generate a video display that has a moving cursor controlled by the mouse using the Mouse and VGA_Sync FPGAcores. Use the mouse buttons to change the color of the cursor.
5. Use the keyboard as a new input device for a video game, the μP1 computer, or another application.
4. Write the keyboard module in another HDL such as Verilog.
3. Develop a keyboard module that uses the alternate scan code set used by the PC.
2. After reading the section on the PS/2 mouse, design an interface that can also send commands to the keyboard. Demonstrate that the design works correctly by changing the status of the keyboard
1. Write a VHDL module to read a keyboard scan code and display the entire scan code string in hexadecimal on the VGA display using the VGA_SYNC and CHAR_ROM FPGAcores. It will require the use of the
11. Modify the VGA Sync core to support a higher screen resolution and demonstrate it using one of the earlier example video designs.
10. Add color mixing or dithering with more than 8 colors to the previous problem. The 3-bit color code in the RLE encoded memory can be used to map into a color palette. The color palette contains
9. Using Matlab or C, write a program to convert a color bitmap into a *.mif file with runlength encoding. Design a state machine to read out the memory and generate the RGB color signals to display
8. Use the character font ROM and the ideas from the MIPS character output example to add video character output to another complex design.
7. Design your own video game with graphics. Some ideas include breakout, space invaders, Tetris, a slot machine, poker, craps, blackjack, pinball, and roulette. Keep the ?
Showing 200 - 300
of 385
1
2
3
4