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 | ||