vervangen ps / 2 naar RS-232 module?

G

ggniy

Guest
hi ppl!

hoe te vervangen ps / 2 module op RS-232 module in deze code?

********
module top (clk, PS2_Clk, PS2_Data, VGA_Red, VGA_Green, VGA_Blue, VGA_Hsync, VGA_Vsync);
"definiëren COLS 100 / / 100x37 karakters van grootte 8x16 past in 800x600 scherm
"definiëren RIJEN 37
(* LOC = "T9", periode = "50MHz" *) input clk; / / oscillator ingang
(* LOC = "M16" *) inout PS2_Clk / / toetsenbord klok
(* LOC = "M15" *) inout PS2_Data / / toetsenbord gegevens
reg kbd_reset = 1;
draad rx_extended, rx_released;
wire [7:0] rx_ascii;
draad rx_data_ready;
draad rx_read = rx_data_ready;
reg write_char = 0; / / write strobe
reg [6:0] ram [0:4095]; / / RAM tekst buffer
reg [5:0] wrow = 0; / / RAM schrijven rij
reg [6:0] wcol = 0; / / RAM schrijven kolom
reg [11:0] waddr = 0; / / RAM schrijven adres
reg [6:0] wdata = 0; / / RAM schrijven
reg [10:0] hcount = 0; / / horizontale counter
reg hlast = 0, hgate = 1, hsync = 0;
reg [9:0] vcount = 0; / / verticale counter
reg vgate = 1, vsync = 0, poort = 0;
reg [11:0] raddr = 0; / / RAM lezen adres
reg [6:0] rdata = 0; / / RAM data te lezen
wire [10:0] romaddr = (rdata, vcount [3:0]) / / karakter rom adres
wire [7:0] romdata / / karakter rom met gegevens
reg [7:0] shift = 0; / / pixel shift register
(* LOC = "R9" *) output reg VGA_Hsync = 0; / / VGA output signalen
(* LOC = "T10" *) output reg VGA_Vsync = 0;
(* LOC = "R12" *) output reg VGA_Red = 0;
(* LOC = "T12" *) output reg VGA_Green = 0;
(* LOC = "R11" *) output reg VGA_Blue = 0;

ps2_keyboard_interface KBD (. clk (clk),. reset (kbd_reset),. ps2_clk (PS2_Clk),. ps2_data (PS2_Data),. tx_write (1'b0),. rx_extended (rx_extended),. rx_released (rx_released),. rx_ascii ( rx_ascii),. rx_data_ready (rx_data_ready),. rx_read (rx_read));

altijd @ (posedge clk) beginnen
/ / Toetsenbord reset
kbd_reset <= 0;

/ / Schrijf tekens in de tekst buffer
write_char <= rx_data_ready & &! rx_extended & &! rx_released;
wdata <= rx_ascii;
if (write_char) beginnen
ram [waddr] <= wdata;
wcol <= (wcol == "COLS-1)?0: wcol 1;
wrow <= (wcol == "COLS-1)?(wrow == "RIJEN-1)?0: wrow 1: wrow;
eindigen
waddr <= wrow * `COLS wcol;

/ / Video timing voor 800x600 op 72Hz
hlast <= (hcount == 1040-2);
hcount <= hlast?0: hcount 1;
hgate <= hlast?1: (hcount == 800-1)?0: hgate;
hsync <= (hcount == 856-1)?1: (hcount == 856 120-1)?0: hsync;
vcount <=! hlast?vcount: (vcount == 666-1)?0: vcount 1;
vgate <=! hlast?vgate: (vcount == 666-1)?1: (vcount == 600-1)?0: vgate;
vsync <=! hlast?vsync: (vcount == 637-1)?1: (vcount == 637 6-1)?0: vsync;
VGA_Hsync <= hsync;
VGA_Vsync <= vsync;

/ / Scan de tekst buffer, en de output pixels op het scherm
raddr <= (vcount>> 4) * "COLS (hcount>> 3);
rdata <= ram [raddr];
Shift <= (hcount [2:0] == 3)?romdata: verschuiving <<1 / / tekst pixels
gate <= (hcount [2:0] == 3)?hgate & vgate: hek; / / unblanking gate
VGA_Red <= 0;
VGA_Green <= gate & verschuiving [7];
VGA_Blue <= 0;
eindigen

/ / Teken de vorm rom
RAMB16_S9 rom (. CLK (clk),. ADDR (romaddr),. NL (1'b1),. WE (1'b0),. DO (romdata));
defparam rom.INIT_00 = 256'h000000000076DCD8D8DC76000000000000000000000000000000000000000000;
defparam rom.INIT_01 = 256'h0000000000C0C0C0C0C0C0C6C6FE000000000040C0C0FCC6C6FCC6C67C000000;
defparam rom.INIT_02 = 256'h0000000000FEC66030183060C6FE000000000000006C6C6C6C6C6CFE00000000;
defparam rom.INIT_03 = 256'h000000C0C0F6CCCCCCCCCC0000000000000000000070D8D8D8D87E0000000000;
defparam rom.INIT_04 = 256'h00000000003C187EDBDBDB7E183C000000000000001818181818D87E00000000;
defparam rom.INIT_05 = 256'h0000000000EE6C6CC6C6C6C66C3800000000000000386CC6C6FEC6C66C380000;
defparam rom.INIT_06 = 256'h000000000000007EDBDB7E000000000000000000003C6666663C1830361C0000;
defparam rom.INIT_07 = 256'h00000000001C30607C60301C00000000000000000018187EDBDBDB7E18180000;
defparam rom.INIT_08 = 256'h000000000000FE0000FE0000FE0000000000000000C6C6C6C6C6C6C67C000000;
defparam rom.INIT_09 = 256'h00000000007E0030180C060C1830000000000000007E000018187E1818000000;
defparam rom.INIT_0A = 256'h00000000000000180CFE0C180000000000000000007E000C18306030180C0000;
defparam rom.INIT_0B = 256'h0000000000001818007E001818000000000000000000003060FE603000000000;
defparam rom.INIT_0C = 256'h0000000000000000000000386C6C380000000000000000DC7600DC7600000000;
defparam rom.INIT_0D = 256'h0000000000183C7EDB1818181818000000000000001818181818DB7E3C180000;
defparam rom.INIT_0E = 256'h000000000000000000006C6C6C6C6CD80000000000183878D818181818181F00;
defparam rom.INIT_0F = 256'h00000000000000000070D8183018D870000000000000000000F8C8603018D870;
defparam rom.INIT_10 = 256'h000000000018180018183C3C3C18000000000000000000000000000000000000;
defparam rom.INIT_11 = 256'h00000000006C6CFE6C6C6CFE6C6C000000000000000000000000002466666600;
defparam rom.INIT_12 = 256'h0000000000C66630180CC6C20000000000000018187CC686067CC0C2C67C1818;
defparam rom.INIT_13 = 256'h00000000000000000000006030303000000000000076CCCCDC76386C6C380000;
defparam rom.INIT_14 = 256'h000000000030180C0C0C0C0C1830000000000000000C183030303030180C0000;
defparam rom.INIT_15 = 256'h0000000000000018187E18180000000000000000000000663CFF3C6600000000;
defparam rom.INIT_16 = 256'h000000000000000000FE00000000000000000000301818180000000000000000;
defparam rom.INIT_17 = 256'h000000000080C06030180C060200000000000000001818000000000000000000;
defparam rom.INIT_18 = 256'h00000000007E1818181818783818000000000000007CC6C6C6C6C6C6C67C0000;
defparam rom.INIT_19 = 256'h00000000007CC606063C0606C67C00000000000000FEC66030180C06C67C0000;
defparam rom.INIT_1A = 256'h00000000007CC60606FCC0C0C0FE000000000000001E0C0CFECC6C3C1C0C0000;
defparam rom.INIT_1B = 256'h000000000030303030180C06C6FE000000000000007CC6C6C6FCC0C060380000;
defparam rom.INIT_1C = 256'h0000000000780C06067EC6C6C67C000000000000007CC6C6C67CC6C6C67C0000;
defparam rom.INIT_1D = 256'h0000000000301818000000181800000000000000000018180000001818000000;
defparam rom.INIT_1E = 256'h000000000000007E00007E00000000000000000000060C18306030180C060000;
defparam rom.INIT_1F = 256'h000000000018180018180CC6C67C000000000000006030180C060C1830600000;
defparam rom.INIT_20 = 256'h0000000000C6C6C6FEC6C66C3810000000000000007CC0DCDEDEDEC6C67C0000;
defparam rom.INIT_21 = 256'h00000000003C66C2C0C0C0C2663C00000000000000FC6666667C666666FC0000;
defparam rom.INIT_22 = 256'h0000000000FE66626878686266FE00000000000000F86C66666666666CF80000;
defparam rom.INIT_23 = 256'h00000000003A66C6DEC0C0C2663C00000000000000F060606878686266FE0000;
defparam rom.INIT_24 = 256'h00000000003C181818181818183C00000000000000C6C6C6C6FEC6C6C6C60000;
defparam rom.INIT_25 = 256'h0000000000E6666C6C786C6C66E60000000000000078CCCC0C0C0C0C0C1E0000;
defparam rom.INIT_26 = 256'h0000000000C6C6C6C6D6FEFEEEC600000000000000FE66626060606060F00000;
defparam rom.INIT_27 = 256'h0000000000386CC6C6C6C6C66C3800000000000000C6C6C6CEDEFEF6E6C60000;
defparam rom.INIT_28 = 256'h000000000E0C7CDED6C6C6C6C67C00000000000000F06060607C666666FC0000;
defparam rom.INIT_29 = 256'h00000000007CC6C60C3860C6C67C00000000000000E666666C7C666666FC0000;
defparam rom.INIT_2A = 256'h00000000007CC6C6C6C6C6C6C6C6000000000000003C18181818185A7E7E0000;
defparam rom.INIT_2B = 256'h00000000006C7CFED6D6C6C6C6C60000000000000010386CC6C6C6C6C6C60000;
defparam rom.INIT_2C = 256'h00000000003C1818183C6666666600000000000000C6C66C3838386CC6C60000;
defparam rom.INIT_2D = 256'h00000000003C303030303030303C00000000000000FEC6C26030188CC6FE0000;
defparam rom.INIT_2E = 256'h00000000003C0C0C0C0C0C0C0C3C0000000000000002060C183060C080000000;
defparam rom.INIT_2F = 256'h000000FF0000000000000000000000000000000000000000000000C66C381000;
defparam rom.INIT_30 = 256'h000000000076CCCC7C0C78000000000000000000000000000000001830303000;
defparam rom.INIT_31 = 256'h00000000007CC6C0C0C67C000000000000000000007C6666666C786060E00000;
defparam rom.INIT_32 = 256'h00000000007CC6C0FEC67C0000000000000000000076CCCCCC6C3C0C0C1C0000;
defparam rom.INIT_33 = 256'h00000078CC0C7CCCCCCC7600000000000000000000F0606060F060646C380000;
defparam rom.INIT_34 = 256'h00000000003C181818183800181800000000000000E6666666766C6060E00000;
defparam rom.INIT_35 = 256'h0000000000E6666C786C666060E000000000003C6666060606060E0006060000;
defparam rom.INIT_36 = 256'h0000000000C6D6D6D6FEEC000000000000000000003C18181818181818380000;
defparam rom.INIT_37 = 256'h00000000007CC6C6C6C67C000000000000000000006666666666DC0000000000;
defparam rom.INIT_38 = 256'h0000001E0C0C7CCCCCCC760000000000000000F060607C666666DC0000000000;
defparam rom.INIT_39 = 256'h00000000007CC61C70C67C00000000000000000000F060606676DC0000000000;
defparam rom.INIT_3A = 256'h000000000076CCCCCCCCCC000000000000000000001C36303030FC3030100000;
defparam rom.INIT_3B = 256'h00000000006CFED6D6C6C600000000000000000000183C666666660000000000;
defparam rom.INIT_3C = 256'h000000F80C067EC6C6C6C600000000000000000000C66C38386CC60000000000;
defparam rom.INIT_3D = 256'h00000000000E181818701818180E00000000000000FE663018CCFE0000000000;
defparam rom.INIT_3E = 256'h0000000000701818180E18181870000000000000001818181800181818180000;
defparam rom.INIT_3F = 256'h000000000000000000004A4A4EEA0000000000000000000000000000DC760000;
endmodule

****************

 
Hallo,

de PS2 kbd-interface is niet opgenomen in de code, alleen geïnstantieert als een module, waarschijnlijk uit een extern bestand:
Code:

ps2_keyboard_interface KBD (. clk (clk),. reset (kbd_reset),. ps2_clk (PS2_Clk),. ps2_data (PS2_Data),. tx_write (1'b0),. rx_extended (rx_extended),. rx_released (rx_released),. rx_ascii ( rx_ascii),. rx_data_ready (rx_data_ready),. rx_read (rx_read));
 
THz ok ..

hmm .. dan doet iemand NOE hoe te controleren en de vga delcare timing voor de VHDL-of C-code dan? coz I need a moment zelf te weten wanneer een pixel weer te geven wanneer ive getypt een teken op de HyperTerminal en weer te geven op de VGA scherm.

=)

 

Welcome to EDABoard.com

Sponsor

Back
Top