User`s manual
memory, and has a single read/write cycle latency, as opposed to the multi-
cycle latency of ZBT memory. However, the amount of block memory available
on the FPGA is only 2.5 Mbits. This required sacrifice on image quality. We
chose a combination of image down-sampling and color depth reduction. More
specifically, we chose a 320x240 sized memory, with 12 bits per line (4 bit R, 4
bit G, 4 bit B). This results in approximately 1 Mbit per buffer, and we use 2
buffers, leaving us with nearly 512k for the accel lut ROM. That is more than
sufficient for our accel lut. It is certainly possible to squeeze some more color
depth, e.g a 14 bit asymmetrical division among R, G, and B. This should help
the image quality, but our visual tests indicated no substantial improvement,
and hence we omitted this.
4.4 Choice of clocks
A technically noteworthy design decision is our choice of clocks. To avoid clock
domain issues, as much as possible we used multiples of a common system clock.
Using the Xilinx DCM (Digital Clock Manager), we synthesized a 50 MHz clock
from the labkit’s standard 27 MHz clock. We used this as a global sys clk.
640 × 480 @60Hz needs to be driven at nearly 25 MHz, and was thus obtained
by multiplying the time period of sys clk by 2. The NTSC camera must be
driven at around 27 MHz, and the appropriate clock is already generated by
the labkit - clock 27mhz. To avoid change of the perspective parameters mid-
frame, we also needed a slow clk signal, i.e one who’s time period is on the
order of seconds. This can’t be accomplished through the use of DCM that
easily. Moreover, since actual timing violations for this signal are not really
that important, we implemented a simple “flip clock on reaching a count” style
“clock divider”.
The audio system used the native clock 27mhz for all logic excluding provid-
ing data to the AC97 audio codec hardware. The operation of providing audio
samples to the AC97 operated on the AC97’s external clock. This is required
because the AC97 plays back audio at a 48kHz rate, a common audio sampling
rate. On spare cycles between the AC97’s external clock and the native clock,
the system performed all other operations, including track queueing and track
switching.
4.5 User interface considerations
An important factor in the quality of the projected image is the percentage
of pixels used. The more correction is applied to the image, the more image
quality suffers and the dimmer the resulting projection. We wanted to provide
the user of the system this information. They could act on this feedback by
further adjusting the projector if possible. We realized only power users would
be able to make use of this feedback, so we wanted to provide it in a non-
intrusive manner - audio was the most natural candidate. The decision to use
audio was not without drawbacks. Hearing-impaired users would unfortunately
not be able to make use of the feedback. Since the labkit’s on-board display
10