IC tests

General Overview

Since Our fpga was designed to be implemented in an easily constrctable circuit, that is exactly what we did. We constructed the circuit on a proto-design board, with a 68 pin socket for the fpga. We tested parts of the circuit as we built it. The only major design change was changing the RC oscillator to a 555 timer, as documented in the frequency determiner portion of this report.

Frequency determiner

Once the output module 7 segment displays were hooked up and verified, we were able to test the control and data path portion of the design dealing with the determination of the current humidity. Before hooking up the oscillator, we used a signal generator to represent the input frequency. Starting the frequency at 406 KHz (minimum humidity at 10%), and moving gradually down to 325 Khz (maximum humidity at 85%), we saw the output go from 10 to 90. The signal generator was very difficult to tune at such high frequencies, however, since we saw the humdity value increase between these two values, we knew that this portion of the design worked as planned. We also noticed that upon reset, the output on the display was either an even or odd value of humidity, and from there, it would only increase or decrease by 2. This was exactly as planned.

We then built the 555 timer circuit, and hooked it up to the humidity frequency input. Our first test put the humidity at 65%. We tested the sensor by measuring its capacitance, predicting the humidity, and then obtaining the humidity from our design. This test also proved successful. As well, by breathing on the sensor numerous times, we saw the output on the 7 segment display rise slowly from 65% to 71% (in increments of 2 as it should). The value then very slowly decreased down to 65% again.

These tests verified the design of the controller and datapath.

Keypad Tests

The keypad circuit was then built and hooked up to the fpga. This circuit also has 7 segment displays which show the keys which are pressed. Thus testing of the keypad was simple. When the first key was pressed, the output should show up on the most significant digit display, and when the next key is pressed, the value should appear on the least significant digit display. Then, the process repeats itself. Everything worked mainly as planned, except that it is obvious that we do not debounce for long enough. When a key is pressed, the display shows that the value is latched, however, when we let go of the key, the output sometimes disappears (error condition occured). Everything continues to function as normal after that, showing that the keypad module continues to function normally. Thus, we determined that we must not debounce long enough for the release of a key press. Adding capacitors did not help enough to completely eliminate the problem.

Since the keypad module did latch and output the correct values quite regularly, we could test the whole design. Upon reset, the current humidity was 65%. We then entered the desired value at 68% on the keypad. Both values were output correctly to displays. The humid LED, representing the humidifier, went on as it should. When we breathed upon the sensor, the humidity rose. When it reached 69%, the humid LED, representing the humidifier, went out as we expected. The humidity continued to rise until it hit 72%. The humidity later started to decrease again. When it hit 67%, the humid light went on again, as expected. The humidity continued to drop to 65%, and the humid light stayed on.

All of the above tests verified the correct operation of our complete design.


Back to project home page