Subversion Repositories pentevo

Rev

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