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

Subversion Repositories rtf65002

[/] [rtf65002/] [trunk/] [rtl/] [verilog/] [byte_iy.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
// Indirect Y addressing mode eg. LDA ($12),y
2
BYTE_IY1:
3
        if (unCachedData) begin
4
                cyc_o <= 1'b1;
5
                stb_o <= 1'b1;
6
                sel_o <= 4'hf;
7
                adr_o <= {radr,2'b00};
8
                state <= BYTE_IY2;
9
        end
10
        else if (dhit) begin
11
                ia[7:0] <= rdat8;
12
                radr <= radr34p1[33:2];
13
                radr2LSB <= radr34p1[1:0];
14
                state <= BYTE_IY3;
15
        end
16
        else
17
                dmiss <= `TRUE;
18
BYTE_IY2:
19
        if (ack_i) begin
20
                cyc_o <= 1'b0;
21
                stb_o <= 1'b0;
22
                sel_o <= 4'h0;
23
                adr_o <= 34'h0;
24
                ia[7:0] <= dati;
25
                radr <= radr34p1[33:2];
26
                radr2LSB <= radr34p1[1:0];
27
                state <= BYTE_IY3;
28
        end
29
BYTE_IY3:
30
        if (unCachedData) begin
31
                cyc_o <= 1'b1;
32
                stb_o <= 1'b1;
33
                sel_o <= 4'hf;
34
                adr_o <= {radr,2'b00};
35
                state <= BYTE_IY4;
36
        end
37
        else if (dhit) begin
38
                ia[15:8] <= rdat8;
39
                ia[31:16] <= 16'h0000;
40
                radr <= radr34p1[33:2];
41
                radr2LSB <= radr34p1[1:0];
42
                state <= BYTE_IY5;
43
        end
44
        else
45
                dmiss <= `TRUE;
46
BYTE_IY4:
47
        if (ack_i) begin
48
                cyc_o <= 1'b0;
49
                stb_o <= 1'b0;
50
                sel_o <= 4'h0;
51
                adr_o <= 34'h0;
52
                ia[15:8] <= dati;
53
                ia[31:16] <= 16'h0000;
54
                radr <= radr34p1[33:2];
55
                radr2LSB <= radr34p1[1:0];
56
                state <= BYTE_IY5;
57
        end
58
BYTE_IY5:
59
        begin
60
                radr <= iapy8[31:2];
61
                radr2LSB <= iapy8[1:0];
62
                $display("IY addr: %h", iapy8);
63
                if (ir==`STA_IY) begin
64
                        wadr <= iapy8[31:2];
65
                        wadr2LSB <= iapy8[1:0];
66
                        wdat <= {4{acc8}};
67
                        state <= STORE1;
68
                end
69
                else
70
                        state <= LOAD1;
71
        end
72
 

powered by: WebSVN 2.1.0

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