Module: vin_ps2


Ports:

DirectionSizeName
inputclk
output[15:0]code
inputps2_clk
inputps2_data

Parameter:

ParameterDefault
SPEED0x1824
[ZOOM]
G vinps2 vin_ps2 PORTS clk code[15:0] ps2_clk ps2_data vin_ps2.v pins PINS output PIN_3 input PIN_87 output PIN_86 input PIN_88 input PIN_91 input PIN_90 input PIN_89 input PIN_132 input PIN_99 input PIN_98 output PIN_129 input PIN_128 output PIN_127 output PIN_85 output PIN_137 output PIN_135 output PIN_136 output PIN_133 output PIN_143 output PIN_144 output PIN_1 output PIN_141 output PIN_142 output PIN_138 output PIN_2 input PIN_24 rio rio PORTS BLINK_LED INTERFACE_UART_RX INTERFACE_UART_TX SW_S1 SW_S2 SW_S3 SW_S4 VIN5_IR VIN6_CLK VIN6_DATA VIN7_CS VIN7_MISO VIN7_SCLK VOUT4_FREQUENCY VOUT8_7SEG_EN1 VOUT8_7SEG_EN2 VOUT8_7SEG_EN3 VOUT8_7SEG_EN4 VOUT8_7SEG_SEG_A VOUT8_7SEG_SEG_B VOUT8_7SEG_SEG_C VOUT8_7SEG_SEG_D VOUT8_7SEG_SEG_E VOUT8_7SEG_SEG_F VOUT8_7SEG_SEG_G sysclk blink1     uart1     vin_ir5     vin_ps26 sysclk PV6 VIN6_CLK VIN6_DATA     vin_tlc549c7     vout_7seg8     vout_frequency4 rio.v pins:PIN_3->rio:BLINK_LED pins:PIN_87->rio:INTERFACE_UART_RX pins:PIN_86->rio:INTERFACE_UART_TX pins:PIN_88->rio:SW_S1 pins:PIN_91->rio:SW_S2 pins:PIN_90->rio:SW_S3 pins:PIN_89->rio:SW_S4 pins:PIN_132->rio:VIN5_IR pins:PIN_99->rio:VIN6_CLK pins:PIN_98->rio:VIN6_DATA pins:PIN_129->rio:VIN7_CS pins:PIN_128->rio:VIN7_MISO pins:PIN_127->rio:VIN7_SCLK pins:PIN_85->rio:VOUT4_FREQUENCY pins:PIN_137->rio:VOUT8_7SEG_EN1 pins:PIN_135->rio:VOUT8_7SEG_EN2 pins:PIN_136->rio:VOUT8_7SEG_EN3 pins:PIN_133->rio:VOUT8_7SEG_EN4 pins:PIN_143->rio:VOUT8_7SEG_SEG_A pins:PIN_144->rio:VOUT8_7SEG_SEG_B pins:PIN_1->rio:VOUT8_7SEG_SEG_C pins:PIN_141->rio:VOUT8_7SEG_SEG_D pins:PIN_142->rio:VOUT8_7SEG_SEG_E pins:PIN_138->rio:VOUT8_7SEG_SEG_F pins:PIN_2->rio:VOUT8_7SEG_SEG_G pins:PIN_24->rio:sysclk rio:vin_ps26_clk->vinps2:clk rio:vin_ps26_code->vinps2:code rio:vin_ps26_ps2_clk->vinps2:ps2_clk rio:vin_ps26_ps2_data->vinps2:ps2_data
G vinps2 vin_ps2 PORTS clk code[15:0] ps2_clk ps2_data vin_ps2.v pins PINS output PIN_3 input PIN_87 output PIN_86 input PIN_88 input PIN_91 input PIN_90 input PIN_89 input PIN_132 input PIN_99 input PIN_98 output PIN_129 input PIN_128 output PIN_127 output PIN_85 output PIN_137 output PIN_135 output PIN_136 output PIN_133 output PIN_143 output PIN_144 output PIN_1 output PIN_141 output PIN_142 output PIN_138 output PIN_2 input PIN_24 rio rio PORTS BLINK_LED INTERFACE_UART_RX INTERFACE_UART_TX SW_S1 SW_S2 SW_S3 SW_S4 VIN5_IR VIN6_CLK VIN6_DATA VIN7_CS VIN7_MISO VIN7_SCLK VOUT4_FREQUENCY VOUT8_7SEG_EN1 VOUT8_7SEG_EN2 VOUT8_7SEG_EN3 VOUT8_7SEG_EN4 VOUT8_7SEG_SEG_A VOUT8_7SEG_SEG_B VOUT8_7SEG_SEG_C VOUT8_7SEG_SEG_D VOUT8_7SEG_SEG_E VOUT8_7SEG_SEG_F VOUT8_7SEG_SEG_G sysclk blink1     uart1     vin_ir5     vin_ps26 sysclk PV6 VIN6_CLK VIN6_DATA     vin_tlc549c7     vout_7seg8     vout_frequency4 rio.v pins:PIN_3->rio:BLINK_LED pins:PIN_87->rio:INTERFACE_UART_RX pins:PIN_86->rio:INTERFACE_UART_TX pins:PIN_88->rio:SW_S1 pins:PIN_91->rio:SW_S2 pins:PIN_90->rio:SW_S3 pins:PIN_89->rio:SW_S4 pins:PIN_132->rio:VIN5_IR pins:PIN_99->rio:VIN6_CLK pins:PIN_98->rio:VIN6_DATA pins:PIN_129->rio:VIN7_CS pins:PIN_128->rio:VIN7_MISO pins:PIN_127->rio:VIN7_SCLK pins:PIN_85->rio:VOUT4_FREQUENCY pins:PIN_137->rio:VOUT8_7SEG_EN1 pins:PIN_135->rio:VOUT8_7SEG_EN2 pins:PIN_136->rio:VOUT8_7SEG_EN3 pins:PIN_133->rio:VOUT8_7SEG_EN4 pins:PIN_143->rio:VOUT8_7SEG_SEG_A pins:PIN_144->rio:VOUT8_7SEG_SEG_B pins:PIN_1->rio:VOUT8_7SEG_SEG_C pins:PIN_141->rio:VOUT8_7SEG_SEG_D pins:PIN_142->rio:VOUT8_7SEG_SEG_E pins:PIN_138->rio:VOUT8_7SEG_SEG_F pins:PIN_2->rio:VOUT8_7SEG_SEG_G pins:PIN_24->rio:sysclk rio:vin_ps26_clk->vinps2:clk rio:vin_ps26_code->vinps2:code rio:vin_ps26_ps2_clk->vinps2:ps2_clk rio:vin_ps26_ps2_data->vinps2:ps2_data

Child-Modules



Source

Filename: vin_ps2.v
2 module vin_ps2
3     #(parameter SPEED = 24)
4     (
5         input  clk,
6         input  ps2_clk,
7         input  ps2_data,
8         output reg [15:0]code
9     );
10 
11     reg [7:0] data_curr;
12     reg [7:0] data_pre;
13     reg [3:0] b;
14     reg flag;
15 
16     initial begin
17         b <= 4'h1;
18         flag <= 1'b0;
19         data_curr <= 8'hf0;
20         data_pre <= 8'hf0;
21     end
22 
23     always @(negedge ps2_clk) begin
24         case(b)
25             1: ; //first bit
26             2: data_curr[0] <= ps2_data;
27             3: data_curr[1] <= ps2_data;
28             4: data_curr[2] <= ps2_data;
29             5: data_curr[3] <= ps2_data;
30             6: data_curr[4] <= ps2_data;
31             7: data_curr[5] <= ps2_data;
32             8: data_curr[6] <= ps2_data;
33             9: data_curr[7] <= ps2_data;
34             10: flag <= 1'b1; //Parity bit
35             11: flag <= 1'b0; //Ending bit
36         endcase
37         if (b <= 10) begin
38             b <= b + 1;
39         end else if (b == 11) begin
40             code <= code<<8;
41             code[7:0] <= data_curr;
42             b <= 1;
43         end
44     end
45 
46     always @(posedge flag) begin
47         if (data_curr == 8'hf0) begin
48             //code <= data_pre;
49         end else begin
50             data_pre <= data_curr;
51         end
52     end
53 
54 
55 endmodule