advanced digital circuits ecet 146 week 9 professor iskandar hack et 221g, 481-5733 [email protected]
TRANSCRIPT
![Page 1: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/1.jpg)
Advanced Digital CircuitsECET 146
Week 9
Professor Iskandar Hack
ET 221G, 481-5733
![Page 2: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/2.jpg)
This Week’s Goals
Introduction to Keyboards Development of Scan Function Development of Decode Function Incorporating Keyboard into an example
design Lab 8 – Keypad to Seven-Segment-Display
![Page 3: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/3.jpg)
Introduction to Keyboards
Almost always built from a array of rows and columns Most use momentary close push-button switches When a switch is closed this causes a short between
one column and one row Either the rows or columns are taken high (or low for
an active low system) one at a time and the lines for the columns or rows are monitored for a high (or low if active low system)
![Page 4: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/4.jpg)
An Example Keyboard
Row Lines are on Pins 1-4 Column Lines are on Pins 5-8
![Page 5: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/5.jpg)
What happens when a button is Pressed If the ‘6’ button is pressed then there will be a
short between the 2nd row (pin 2) and the 3rd column (pin 7)
![Page 6: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/6.jpg)
Scan Function
The purpose of the scan function is to drive the input lines (we’ll use the rows as the inputs in this example) with a high during each clock cycle
Take the first row high Then 2nd row Then 3rd Last row Repeat cycle
![Page 7: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/7.jpg)
Scan Function Designed in AHDL (note in cut and paste format)
SUBDESIGN scan( clk, reset : INPUT; scanlines[3..0] : OUTPUT;
)VARIABLE
ss: MACHINE OF BITS (scanlines[3..0])
WITH STATES ( s0 = B"0001", s1 = B"0010", s2 = B"0100", s3 = B"1000");
BEGIN ss.clk = clk; ss.reset = reset;
TABLE ss => ss;
s0 => s1; s1 => s2; s2 => s3; s3 => s0; END TABLE;END;
Note in this case I’m assigning theOutputs for each state in the declaration.Not always the most best for optimization,But makes the design a bit simpler.
![Page 8: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/8.jpg)
Symbol for Scan Function
![Page 9: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/9.jpg)
Decode Function
First of all it must look for a high on ANY of the four return lines (this are the rows in this example)
If any input is high then we know a key has been pressed. Then we look at what scan line is high and what return line are
high (note there will always a high scan line because of the way we designed the scan function) and decode what key has been pressed.
The decode function is unique for every keyboard and the way it’s used in the circuit – for example if we chose to have the scan lines go to the columns and the return lines go to the rows we would have a different table for the decode function.
We will have two four bit inputs for this function – scan and return. We’ll have a four bit output for the keycode and an one bit output for active keypress.
![Page 10: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/10.jpg)
Decode Table Guidelines
First look at the keyboard layout and what keys are at each row/column position
For each position you’ll output that key value when that row/column position is high
You only have to include in the table the values for the row/columns of 1, 2, 4 and 8 since only one line can be high (we’re ignoring multiple key presses) at a time
![Page 11: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/11.jpg)
Decode Table
Column
Value (scan)
Row Value (return)
KeyCode
1 1 1
1 2 4
1 4 7
1 8 CLEAR (10)
2 1 2
2 2 5
2 4 8
2 8 0
4 1 3
4 2 6
4 4 9
4 8 Help (11)
8 1 Up (12)
8 2 Down (13)
8 4 2nd (14)
8 8 Enter (15)
3rd column has a value of 4 and 3nd row hasa value of 4
![Page 12: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/12.jpg)
Decode Function AHDL (cut and paste format)
SUBDESIGN decode( scan[3..0], return[3..0] : input;
keycode[3..0], keypress : output;)
BEGIN
TABLE scan[], return[] => keycode[], keypress;
x, 0 => 0, gnd; 1, 1 => 1, vcc;
1, 2 => 4, vcc; 1, 4 => 7, vcc; 1, 8 => 10, vcc; 2, 1 => 2, vcc; 2, 2 => 5, vcc; 2, 4 => 8, vcc; 2, 8 => 0, vcc; 4, 1 => 3, vcc; 4, 2 => 6, vcc; 4, 4 => 9, vcc; 4, 8 => 11, vcc; 8, 1 => 12, vcc; 8, 2 => 13, vcc; 8, 4 => 14, vcc; 8, 8 => 15, vcc;
END TABLE;END;
![Page 13: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/13.jpg)
Symbol for Decode Function
![Page 14: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/14.jpg)
Complete Keypad System
The complete system will have a scan function that will drive the columns (also go into the decode function) and the decode function
Of course you’ll need the keypad itself One important point – you will need to place pull-
down resistors on the return lines. Whenever there is no key pressed then the return
lines are floating (neither high or low), thus we need to place a 1K resistor between the return lines and ground to ensure that when there no connection to VCC (through the scan lines)
![Page 15: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/15.jpg)
Altera Keypad Project Keypad and pull-down resistors are external from the Altera Part
Note the names of the nets and I/O
![Page 16: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/16.jpg)
Symbol for Altera Keypad Project
![Page 17: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/17.jpg)
Drawing of Connections between Altera and Keypad
Note – Pulldown Resistors
![Page 18: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/18.jpg)
Lab 8 (Will be demonstrated – Don’t Do) Using the Keyboard data sheet on the next
page design a keypad system that will display whatever key is pressed (it will display 0 when no key is pressed)
Note that this keypad is different from the example, so the decode table will be different
Output ‘E’ for a # and ‘F’ for a * Save this project (no report due) for inclusion
in Lab 9
![Page 19: Advanced Digital Circuits ECET 146 Week 9 Professor Iskandar Hack ET 221G, 481-5733 hack@ipfw.edu](https://reader036.vdocument.in/reader036/viewer/2022081603/56649f165503460f94c2c718/html5/thumbnails/19.jpg)
Keypad Data Sheet