18-07-2012, 12:02 PM
Digital VLSI Slot Machine Project Documentation
Digital VLSI Slot.pdf (Size: 354.18 KB / Downloads: 21)
INTRODUCTION
THIS project involves the design of a digital VLSI chip that
operates as a slot machine. Slot machines are relatively
simple state machines: they accept input (which includes
money), generate random numbers (reel positions) and reward
money based off of that number (payout). Commercial slot
machines are nearly all controlled by computer chips;
mechanical features like spinning reels and pull-handles exist
solely for entertainment value.
At the core of slot machines the main computer chips are
responsible for forcing the machines to abide by a certain
“payout,” that is, the long-term percentage of wins to losses,
nearly always less than 100%, but by law, usually greater than
90%. The concept of payout-percentage is a combination of
winning-combination odds and the amount paid out by a
winning-combination. Payout computations are the most basic
part of any slot machine, and what make nearly all slot
machines act the same with few exceptions.
Reel Animation
Slot machines attract users through lights, sounds, and also
movement. A slot machine would be boring without reels to
spin and keep the user in anticipation. The reel animator
module controls reel animation. Animation comes in the form
of vertical scrolling of reels, much like the mechanical
versions. This requires a vertical offset to be computed for
each of the reels. Each reel rotates independently of the
others; however, all reels rotate at the same speed. The reel
results are revealed when the reels stop. To make the slot
machine animation more attractive and coordinated, reels are
stopped from left-to-right, and money is only awarded (or
taken) after all the reels have fully revealed.
DESIGN APPROACH AND IMPLEMENTATION
The design approach for this project, in terms of actual chip
design is centered on independent module operation; that is,
the various modules that make up the entire chip should be
able to be implemented without depending on other modules.
This approach allows different parts of a chip to be designed in
parallel, and therefore speeds up the process of implementing
chips.
Another important aspect of our design approach is that we
used other programming languages, in this case Matlab, to
generate code for our project. A lot of the data, notably
graphics, needed to be converted from raw form (bitmaps) into
Verilog code, which could then be added to the chip. The use
of code-generating programs also ensures that errors can be
fixed on a global basis, instead of requiring a group member to
hand-edit mistakes out of the individual blocks.
INTEGRATION INTO A SYSTEM
The chip requires a 50Mhz clock to operate. Other clock
speeds will affect the VGA controller in adverse ways and
cause animation timing-problems as well.
The slot machine chip requires outside components to
operate correctly. Depending on the implementation, the chip
may need access to an external EEPROM for reel graphics
data, or may stand alone without the EEPROM if enough chip
space is available for fabrication, or if the internal color
function (no symbol graphics) is used instead of reel graphics.
The slot machine does, however, depend on resistor ladders to
produce color output to the screen.
RESULTS & CONCLUSION
Our team has successfully implemented a working slot
machine as a digital chip. We are happy to acknowledge that
we have achieved the aims of the project with a high level of
standards. Additional work could have be done on the design
to make the slot machine even better; however, time, notably,
space constraints dictated otherwise. Presented below are the
results of implemented circuit board and further conclusions.
The fabricated chip worked when tested, but we have not
been able to make it work correctly in its functional
environment. After implementing the circuit board presented
above, the result was a blank monitor screen.