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

Subversion Repositories rtf65002

[/] [rtf65002/] [trunk/] [rtl/] [verilog/] [byte_ix.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 and indirect X addressing mode eg. LDA ($12,x) : (zp)
2
BYTE_IX1:
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_IX2;
9
        end
10
        else if (dhit) begin
11
                radr <= radr34p1[33:2];
12
                radr2LSB <= radr34p1[1:0];
13
                ia[7:0] <= rdat8;
14
                state <= BYTE_IX3;
15
        end
16
        else
17
                dmiss <= `TRUE;
18
BYTE_IX2:
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_IX3;
28
        end
29
BYTE_IX3:
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_IX4;
36
        end
37
        else if (dhit) begin
38
                ia[15:8] <= rdat8;
39
                ia[31:16] <= 16'h0000;
40
                state <= BYTE_IX5;
41
        end
42
        else
43
                dmiss <= `TRUE;
44
BYTE_IX4:
45
        if (ack_i) begin
46
                cyc_o <= 1'b0;
47
                stb_o <= 1'b0;
48
                sel_o <= 4'h0;
49
                adr_o <= 34'h0;
50
                ia[15:8] <= dati;
51
                ia[31:16] <= 16'h0000;
52
                state <= BYTE_IX5;
53
        end
54
BYTE_IX5:
55
        begin
56
                radr <= ia[31:2];
57
                radr2LSB <= ia[1:0];
58
                state <= LOAD1;
59
                if (ir[7:0]==`STA_IX || ir[7:0]==`STA_I) begin
60
                        wadr <= ia[31:2];
61
                        wadr2LSB <= ia[1:0];
62
                        wdat <= {4{acc8}};
63
                        state <= STORE1;
64
                end
65
        end

powered by: WebSVN 2.1.0

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