Rev 1062 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1062 | Rev 1064 | ||
---|---|---|---|
Line 34... | Line 34... | ||
34 | input wire i_vpix, |
34 | input wire i_vpix, |
35 | 35 | ||
36 | input wire v_init, |
36 | input wire v_init, |
37 | input wire h_init, |
37 | input wire h_init, |
38 | input wire h_step, |
38 | input wire h_step, |
- | 39 | input wire h_char, |
|
- | 40 | ||
- | 41 | ||
- | 42 | ||
- | 43 | // char/attr memory read |
|
- | 44 | output wire char_r_rdena, // marks valid char_r_addr |
|
- | 45 | output wire [11:0] char_r_addr, |
|
- | 46 | input wire [ 7:0] char_r_data, // 1 cycle latency |
|
- | 47 | ||
- | 48 | // font memory read |
|
- | 49 | output wire [ 9:0] font_r_addr, |
|
- | 50 | input wire [ 7:0] font_r_data, // 1 cycle latency |
|
- | 51 | ||
39 | ); |
52 | ); |
40 | 53 | ||
41 | localparam CHAR_ADDR_INIT = 12'h000; |
54 | localparam CHAR_ADDR_INIT = 12'h000; |
- | 55 | localparam CHAR_LINE_ADD = 12'd60; |
|
- | 56 | ||
42 | localparam ATTR_ADDR_INIT = 12'h9C0; |
57 | localparam ATTR_ADDR_INIT = 12'h9C0; |
43 | localparam ATTR_ADDR_ADD = 12'h028; |
58 | localparam ATTR_LINE_ADD = 12'd40; |
44 | 59 | ||
45 | reg [11:0] char_addr; |
60 | reg [11:0] char_line_addr; |
46 | reg [11:0] attr_line_addr; |
61 | reg [11:0] attr_line_addr; |
47 | 62 | ||
- | 63 | reg [11:0] char_addr; |
|
- | 64 | ||
- | 65 | reg [11:0] attr_addr; |
|
- | 66 | reg [2:0] attr_phase; |
|
48 | 67 | ||
49 | 68 | ||
50 | 69 | ||
51 | 70 | ||
52 | always @(posedge clk) |
71 | always @(posedge clk) |
53 | if( pix_stb ) |
72 | if( pix_stb ) |
54 | begin |
73 | begin |
- | 74 | if( v_init ) |
|
55 | char_addr <= CHAR_ADDR_INIT; |
75 | char_line_addr <= CHAR_ADDR_INIT; |
- | 76 | else if( h_step ) |
|
- | 77 | char_line_addr <= char_line_addr + CHAR_LINE_ADD; |
|
- | 78 | end |
|
- | 79 | // |
|
- | 80 | always @(posedge clk) |
|
- | 81 | if( pix_stb ) |
|
- | 82 | begin |
|
- | 83 | if( h_init ) |
|
- | 84 | char_addr <= char_line_addr; |
|
- | 85 | else if( h_char ) |
|
- | 86 | char_addr <= char_addr + 12'd1; |
|
56 | end |
87 | end |
57 | 88 | ||
- | 89 | ||
58 | always @(posedge clk) |
90 | always @(posedge clk) |
59 | if( pix_stb ) |
91 | if( pix_stb ) |
60 | begin |
92 | begin |
- | 93 | if( v_init ) |
|
61 | attr_line_addr <= ATTR_ADDR_INIT; |
94 | attr_line_addr <= ATTR_ADDR_INIT; |
- | 95 | else if( h_step ) |
|
- | 96 | attr_line_addr <= attr_line_addr + ATTR_LINE_ADD; |
|
62 | end |
97 | end |
63 | 98 | ||
64 | 99 | ||
- | 100 | ||
- | 101 | ||
65 | endmodule |
102 | endmodule |
66 | 103 |