OpenCores
URL https://opencores.org/ocsvn/rtf65002/rtf65002/trunk

Subversion Repositories rtf65002

[/] [rtf65002/] [trunk/] [rtl/] [verilog/] [byte_rts.v] - Blame information for rev 5

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 robfinch
// Eight bit mode RTS/RTL states
2
//
3
BYTE_RTS1:
4
        if (unCachedData) begin
5
                cyc_o <= 1'b1;
6
                stb_o <= 1'b1;
7
                sel_o <= 4'hF;
8
                adr_o <= {radr,2'b00};
9
                state <= BYTE_RTS2;
10
        end
11
        else if (dhit) begin
12
                radr <= {26'h1,sp_inc[7:2]};
13
                radr2LSB <= sp_inc[1:0];
14
                sp <= sp_inc;
15
                pc[7:0] <= rdat8;
16
                state <= BYTE_RTS3;
17
        end
18
        else
19
                dmiss <= `TRUE;
20
BYTE_RTS2:
21
        if (ack_i) begin
22
                cyc_o <= 1'b0;
23
                stb_o <= 1'b0;
24
                sel_o <= 4'h0;
25
                adr_o <= 34'h0;
26
                radr <= {26'h1,sp_inc[7:2]};
27
                radr2LSB <= sp_inc[1:0];
28
                sp <= sp_inc;
29
                pc[7:0] <= dati;
30
                state <= BYTE_RTS3;
31
        end
32
BYTE_RTS3:
33
        if (unCachedData) begin
34
                cyc_o <= 1'b1;
35
                stb_o <= 1'b1;
36
                sel_o <= 4'hF;
37
                adr_o <= {radr,2'b00};
38
                state <= BYTE_RTS4;
39
        end
40
        else if (dhit) begin
41
                if (ir[7:0]==`RTL) begin
42
                        radr <= {26'h1,sp_inc[7:2]};
43
                        radr2LSB <= sp_inc[1:0];
44
                        sp <= sp_inc;
45
                end
46
                pc[15:8] <= rdat8;
47
                state <= BYTE_RTS5;
48
        end
49
        else
50
                dmiss <= `TRUE;
51
BYTE_RTS4:
52
        if (ack_i) begin
53
                cyc_o <= 1'b0;
54
                stb_o <= 1'b0;
55
                sel_o <= 4'h0;
56
                adr_o <= 34'h0;
57
                pc[15:8] <= dati;
58
                if (ir[7:0]==`RTL) begin
59
                        radr <= {26'h1,sp_inc[7:2]};
60
                        radr2LSB <= sp_inc[1:0];
61
                        sp <= sp_inc;
62
                end
63
                state <= BYTE_RTS5;
64
        end
65
BYTE_RTS5:
66
        if (ir[7:0]!=`RTL) begin
67
                pc <= pc + 32'd1;
68
                state <= IFETCH;
69
        end
70
        else begin
71
                if (unCachedData) begin
72
                        cyc_o <= 1'b1;
73
                        stb_o <= 1'b1;
74
                        sel_o <= 4'hF;
75
                        adr_o <= {radr,2'b00};
76
                        state <= BYTE_RTS6;
77
                end
78
                else if (dhit) begin
79
                        radr <= {26'h1,sp_inc[7:2]};
80
                        radr2LSB <= sp_inc[1:0];
81
                        sp <= sp_inc;
82
                        pc[23:16] <= rdat8;
83
                        state <= BYTE_RTS7;
84
                end
85
                else
86
                        dmiss <= `TRUE;
87
        end
88
BYTE_RTS6:
89
        if (ack_i) begin
90
                cyc_o <= 1'b0;
91
                stb_o <= 1'b0;
92
                sel_o <= 4'h0;
93
                adr_o <= 34'h0;
94
                pc[23:16] <= dati;
95
                radr <= {26'h1,sp_inc[7:2]};
96
                radr2LSB <= sp_inc[1:0];
97
                sp <= sp_inc;
98
                state <= BYTE_RTS7;
99
        end
100
BYTE_RTS7:
101
        if (unCachedData) begin
102
                cyc_o <= 1'b1;
103
                stb_o <= 1'b1;
104
                sel_o <= 4'hF;
105
                adr_o <= {radr,2'b00};
106
                state <= BYTE_RTS8;
107
        end
108
        else if (dhit) begin
109
                pc[31:24] <= rdat8;
110
                state <= BYTE_RTS9;
111
        end
112
        else
113
                dmiss <= `TRUE;
114
BYTE_RTS8:
115
        if (ack_i) begin
116
                cyc_o <= 1'b0;
117
                stb_o <= 1'b0;
118
                sel_o <= 4'h0;
119
                adr_o <= 34'h0;
120
                pc[31:24] <= dati;
121
                state <= BYTE_RTS9;
122
        end
123
BYTE_RTS9:
124
        begin
125
                pc <= pc + 32'd1;
126
                state <= IFETCH;
127
        end

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.