tarjeta de desarrollo spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfpermite...
TRANSCRIPT
![Page 1: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/1.jpg)
LAB 5Tarjeta de Desarrollo Spartan-3
Laboratorio de Sistemas DigitalesELO212Primer Semestre de 2010
![Page 2: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/2.jpg)
Objetivos Generales
Controlar dispositivos mediante una FPGA.Conocer la interfaz PS/2 para conexión de un teclado.Aprender el menejo de:
pulsadores, interruptores, leds, display de 7 segmentos.
![Page 3: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/3.jpg)
Interfaz PS/2
Permite conectar periféricos teclado y mouse.Protocolo de comunicación serial bidireccional.Para teclados se garantiza el conjunto 2 de los scan codes.Responden a todos los comandos enviados, sin embargo no actúan en todos ellos.
![Page 4: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/4.jpg)
Socket y Pinout
Pin 1: DataPin 2: ReservadoPin 3: GroundPin 4: Vcc (+5V)Pin 5: ClockPin 6: Reservado
![Page 5: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/5.jpg)
Comunicación Bidireccional
Estado IDLE: Data y Clock en alto
Estado INHIBIT:Data en alto y Clock en bajo
Estado REQUEST TO SEND: Data en bajo y Clock en alto
![Page 6: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/6.jpg)
PS/2 Frame (1)
1 bit de partida: siempre es 0.8 bits de datos: LSB a MSB.1 bit de paridad (impar)1 bit de parada: siempre es 1.1 bit de ack: sólo para comunicación host →teclado/mouse.
![Page 7: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/7.jpg)
PS/2 Frame (2)
![Page 8: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/8.jpg)
Scan Code (1)
Hay varios tipos de scan codes, el más popular (por omisión) es el número 2.Cada tecla tiene asociado un scan codecompuesto por:
make code, que se emite al presionar una teclabreake code, que se emite al soltar la tecla
![Page 9: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/9.jpg)
Scan Code (2): Ejemplos
49F0,4343I48F0,3333H47F0,3434G46F0,2B2BF45F0,2424E44F0,2323D43F0,2121C42F0,3232B41F0,1C1CAASCIIBreakMakeKey
![Page 10: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/10.jpg)
PS/2 Driver Verilog (1)
10 0
ShiftRegSig1
10 1
ShiftRegSig2
kd
kc
kbs
0 xxxxxxxxvalue
![Page 11: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/11.jpg)
PS/2 Driver Verilog (1)
0 x x x x x x x x x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc x x
kbs
0 xxxxxxxxvalue
![Page 12: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/12.jpg)
PS/2 Driver Verilog (1)
0 0 x x x x x x x x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc x x
kbs
0 xxxxxxxxvalue
![Page 13: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/13.jpg)
PS/2 Driver Verilog (1)
0 0 0 x x x x x x x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc x x
kbs
0 xxxxxxxxvalue
![Page 14: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/14.jpg)
PS/2 Driver Verilog (1)
0 0 0 0 x x x x x x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc x x
kbs
0 xxxxxxxxvalue
![Page 15: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/15.jpg)
PS/2 Driver Verilog (1)
0 0 0 0 0 x x x x x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc x x
kbs
0 xxxxxxxxvalue
![Page 16: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/16.jpg)
PS/2 Driver Verilog (1)
1 0 0 0 0 0 x x x x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc x x
kbs
0 xxxxxxxxvalue
![Page 17: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/17.jpg)
PS/2 Driver Verilog (1)
1 1 0 0 0 0 0 x x x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc x x
kbs
0 xxxxxxxxvalue
![Page 18: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/18.jpg)
PS/2 Driver Verilog (1)
1 1 1 0 0 0 0 0 x x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc x x
kbs
0 xxxxxxxxvalue
![Page 19: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/19.jpg)
PS/2 Driver Verilog (1)
1 1 1 1 0 0 0 0 0 x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc x x
kbs
0 xxxxxxxxvalue
![Page 20: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/20.jpg)
PS/2 Driver Verilog (1)
1 1 1 1 1 0 0 0 0 x10 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc 0 x
kbs
0 xxxxxxxxvalue
![Page 21: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/21.jpg)
PS/2 Driver Verilog (1)
1 1 1 1 1 1 0 0 0 010 0
ShiftRegSig1
x x x x x x x x x10 1
ShiftRegSig2
kd
kc 0 x
kbs
0 xxxxxxxxvalue
![Page 22: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/22.jpg)
PS/2 Driver Verilog (1)
0 1 1 1 1 1 1 0 0 010 0
ShiftRegSig1
0 x x x x x x x x10 1
ShiftRegSig2
kd
kc 0 x
kbs
0 xxxxxxxxvalue
![Page 23: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/23.jpg)
PS/2 Driver Verilog (1)
0 0 1 1 1 1 1 1 0 010 0
ShiftRegSig1
0 0 x x x x x x x10 1
ShiftRegSig2
kd
kc 0 x
kbs
0 xxxxxxxxvalue
![Page 24: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/24.jpg)
PS/2 Driver Verilog (1)
0 0 0 1 1 1 1 1 1 010 0
ShiftRegSig1
0 0 0 x x x x x x10 1
ShiftRegSig2
kd
kc 0 x
kbs
0 xxxxxxxxvalue
![Page 25: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/25.jpg)
PS/2 Driver Verilog (1)
1 0 0 0 1 1 1 1 1 010 0
ShiftRegSig1
0 0 0 0 x x x x x10 1
ShiftRegSig2
kd
kc 1 x
kbs
0 xxxxxxxxvalue
![Page 26: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/26.jpg)
PS/2 Driver Verilog (1)
1 1 0 0 0 1 1 1 1 110 0
ShiftRegSig1
0 0 0 0 0 x x x x10 1
ShiftRegSig2
kd
kc 1 x
kbs
0 xxxxxxxxvalue
![Page 27: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/27.jpg)
PS/2 Driver Verilog (1)
1 1 1 0 0 0 1 1 1 110 0
ShiftRegSig1
1 0 0 0 0 0 x x x10 1
ShiftRegSig2
kd
kc 1 x
kbs
0 xxxxxxxxvalue
![Page 28: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/28.jpg)
PS/2 Driver Verilog (1)
0 1 1 1 0 0 0 1 1 110 0
ShiftRegSig1
1 1 0 0 0 0 0 x x10 1
ShiftRegSig2
kd
kc 1 x
kbs
0 xxxxxxxxvalue
![Page 29: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/29.jpg)
PS/2 Driver Verilog (1)
0 0 1 1 1 0 0 0 1 110 0
ShiftRegSig1
1 1 1 0 0 0 0 0 x10 1
ShiftRegSig2
kd
kc 1 x
kbs
0 xxxxxxxxvalue
![Page 30: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/30.jpg)
PS/2 Driver Verilog (1)
0 0 0 1 1 1 0 0 0 110 0
ShiftRegSig1
1 1 1 1 0 0 0 0 010 1
ShiftRegSig2
kd
kc 1 x
kbs
0 xxxxxxxxvalue
![Page 31: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/31.jpg)
PS/2 Driver Verilog (1)
0 0 0 0 1 1 1 0 0 110 0
ShiftRegSig1
1 1 1 1 1 0 0 0 010 1
ShiftRegSig2
kd
kc 0 0
kbs
1 xxxxxxxxvalue
![Page 32: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/32.jpg)
PS/2 Driver Verilog (1)
1 0 0 0 0 1 1 1 0 010 0
ShiftRegSig1
1 1 1 1 1 1 0 0 010 1
ShiftRegSig2
kd
kc 0 0
kbs
0 1Cvalue
![Page 33: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/33.jpg)
PS/2 Driver Verilog (2a)
module kbd(rst, clk, kd, kc, kbs, value);input rst, clk, kd, kc; // reset, clock, k-data, k-clockoutput reg kbs; // keyboard stroke (negedge)output reg [7:0] value; // scan code
// ------------------------------------------------------------------// -- Signal Declarations// ------------------------------------------------------------------
reg kdi, kci;reg dff1, dff2;reg [10:0] ShiftRegSig1; reg [10:1] ShiftRegSig2;reg kbs_tmp;
![Page 34: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/34.jpg)
PS/2 Driver Verilog (2b)
// ------------------------------------------------------------------// -- Module Implementation// ------------------------------------------------------------------
// --Flip Flops used to condition signals coming from PS2--always @ (posedge clk or posedge rst)begin
if (rst == 1) begindff1 <= 0; dff2 <= 0; kdi <= 0; kci <= 0;
end else begindff1 <= kd; kdi <= dff1; dff2 <= kc; kci <= dff2;
endend
![Page 35: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/35.jpg)
PS/2 Driver Verilog (2c)
// --Shift Registers used to clock in scan codes from PS2--always @(negedge kci or posedge rst)begin
if (rst == 1) beginShiftRegSig1 <= 11'b00000000000;ShiftRegSig2 <= 10'b0000000000;
end else beginShiftRegSig1[10:0] <= {kdi, ShiftRegSig1[10:1]};ShiftRegSig2[10:1] <= {ShiftRegSig1[0], ShiftRegSig2[10:2]};
endend
![Page 36: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/36.jpg)
PS/2 Driver Verilog (2d)
// --Wait for scan codealways @(posedge rst or posedge kci)begin
if (rst == 1) beginvalue <= 8'b00000000; kbs_tmp <= 0;
end else if (ShiftRegSig2[9:2] == 8'b11110000) beginvalue <= value; kbs_tmp <= 1;
end else if (ShiftRegSig2[8:1] == 8'b11110000) beginvalue <= ShiftRegSig1[8:1]; kbs_tmp <= 0;
endend
always @(negedge clk) kbs <= kbs_tmp;
endmodule
![Page 37: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/37.jpg)
Ejemplo Uso Driver PS/2
module kbdUse(rst, clk, kd, kc, led);input rst, clk, kd, kc;output reg [7:0] led;
wire [7:0] value; kbd kbd0(rst, clk, kd, kc, kbs, value);
always @ (negedge rst or negedge kbs) if (rst == 0) led <= 0; else led <= led + 1;
endmodule
![Page 38: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/38.jpg)
Display 7 segmentos
4 dígitos (7 segmentos).No dispone de conversores BCD / 7 segmentos.Ánodo común.12 salidas para controlar el display.Se debe multiplexar en el tiempo para poder ver números de más de 1 dígito.
![Page 39: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/39.jpg)
Configuración del Display
![Page 40: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/40.jpg)
Conexiones
![Page 41: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/41.jpg)
Driver Verilog BCD/7Seg.
module ssdec(val, pt, type, ssg); input [3:0] val; // binary valueinput pt, type; // point, display type (0: anode, 1: cathode)output [7:0] ssg; // segments
assign ssg = ((type == 1) ? 8'h0 : 8'hff) ^ ((val == 0) ? {pt, 7'b0111111} :(val == 1) ? {pt, 7'b0000110} :(val == 2) ? {pt, 7'b1011011} :(val == 3) ? {pt, 7'b1001111} :// ……(val == 11) ? {pt, 7'b1111100} :(val == 12) ? {pt, 7'b1011000} :(val == 13) ? {pt, 7'b1011110} :(val == 14) ? {pt, 7'b1111001} : {pt, 7'b1110001});
endmodule
![Page 42: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/42.jpg)
Driver Verilog Display 7Seg. (1)
module display(clk, num, type, pts, sseg, an);input clk, type; input [3:0] pts; input [15:0] num;output [7:0] sseg; output reg [3:0] an;
// fill in ….
endmodule
![Page 43: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/43.jpg)
Contador BCD
module bcdcounter(rst, clk, value);input rst, clk; // reset, clockoutput reg [15:0] value; // 4 bcd digits
always @(negedge clk or posedge rst) beginif (rst == 1)
value <= 0; else begin
if (value[3:0] == 9) beginvalue[3:0] <= 0; if (value[7:4] == 9) begin
value[7:4] <= 0; if (value[11:8] == 9) begin
value[11:8] <= 0; if (value[15:12] == 9) value[15:12] <= 0; else value[15:12] <= value[15:12] + 1;
end else value[11:8] <= value[11:8] + 1; end else value[7:4] <= value[7:4] + 1;
end else value <= value + 1; end
endendmodule
![Page 44: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/44.jpg)
Uso de Pulsadores, Interruptores y ledsmodule (btn, swt, led);input [0:3] btn; input [0:7] swt; output [0:7] led;
assign led[0:3] = btn; assign led[4:7] = swt[0:3];
endmodule
![Page 45: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/45.jpg)
Trabajo Previo (1)
Diseño de un módulo para visualizar una cuenta en el display
Completar diseño del módulo display.Usar display para mostrar tiempo MM.SS.Hacer simulación funcional y temporal.
Módulo para uso de leds, interruptores y pulsadores.
Leds reflejan el estado del interruptor.Pulsador 0: enciende todos los leds.Pulsador 1: apaga todos los leds.Pulsador 2: invierte estado de los leds. Hacer simulación funcional.
![Page 46: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/46.jpg)
Trabajo Previo (2)
Diseño de un módulo que permita:Visualizar scan codes de teclado en display 7 segmentos, dígitos menos significativos.Visualizar el valor de teclas numéricas en los dígitos más significativos, o “FF” si no es número.
![Page 47: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/47.jpg)
En el Laboratorio
Revisión actividades previas.Sintetizar y demostrar el funcionamiento del módulo reloj en formato MM.SS.Sintetizar el módulo para uso de pulsadores, interruptores y leds.Demostrar el funcionamiento del módulo que despliega scan codes del teclado PS/2.Diseño de una máquina digital.
![Page 48: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/48.jpg)
Máquina Digital (1)
Cuenta el número de teclas presionadas.4
Contador descendente binario de Y Hz.3
Contador ascendente binario de X Hz.2
Contador BCD descendente Y Hz.1
Contador BCD ascendente X Hz.0
Contenido del display y ledsOp.
![Page 49: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/49.jpg)
Máquina Digital (2)
Comportamiento dinámico para leds y puntos.9
Leds pestañean X Hz, se mantienen las cuentas.8
Display off, se mantienen las cuentas.7
2MSD ⇒ op. 0, 2LSD ⇒ op. 1.6
Número de repeticiones de una tecla.5
Contenido del display y ledsOp.
![Page 50: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/50.jpg)
Máquina Digital (2)
Tiempo transcurrido en MM.SS.12
Tiempo [ms] entre 2 eventos PS/2, máx 9999.11
2LSD ⇒ último pulsador (0 - 3); mantiene cuentas.10
Contenido del display y ledsOp.
![Page 51: Tarjeta de Desarrollo Spartan-3ramos.elo.utfsm.cl/~elo212/docs/elo212-clase5-0110.pdfPermite conectar periféricos teclado y mouse. Protocolo de comunicación serial bidireccional](https://reader034.vdocumento.com/reader034/viewer/2022042221/5ec7797577ef7a10f31c6251/html5/thumbnails/51.jpg)
Máquina Digital (3)
Blinking leds at Y Hz. 3
Display rotate left (eg. 1): 1234 ⇒ 23412
Display rotate right (eg. 1): 1234 ⇒ 41231
Resetea todas las cuentas.0
Descripción operaciónPulsador