cbus.vh
1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// cbus.vh v1 Frank Berndt
// cbus definitions;
// cbus command;
// driven by cbus master;
`define CBUS_CMD_IDLE 3'd0
`define CBUS_CMD_DMA 3'd1
`define CBUS_CMD_WRITE 3'd2
`define CBUS_CMD_READ 3'd3
`define CBUS_CMD_RSP 3'd4
`define CBUS_CMD_SIZE 3
// cbus select: address, length, or data;
// driven by arbiter to all units;
`define CBUS_SEL_ADDR 2'b00
`define CBUS_SEL_LEN 2'b01
`define CBUS_SEL_DATA 2'b10
`define CBUS_SEL_SIZE 2
// cbus address spaces;
// cbus address bits [31:20] determine cbus space;
`define CBUS_DRAM36 12'h00x // 16MB DRAM x36;
`define CBUS_DRAM64_1 12'h01x // 16MB DRAM x64;
`define CBUS_DRAM64_2 12'h02x // 16MB DRAM x64;
`define CBUS_RSVD_1 12'h03x // 16MB reserved;
`define CBUS_SP 12'h040 // sp;
`define CBUS_CMD 12'h041 // cmd;
`define CBUS_SPAN 12'h042 // span;
`define CBUS_MI 12'h043 // mi;
`define CBUS_VI 12'h044 // vi;
`define CBUS_AI 12'h045 // ai;
`define CBUS_PI 12'h046 // pi;
`define CBUS_RI 12'h047 // ri;
`define CBUS_SI 12'h048 // si registers;
`define CBUS_USB0 12'h049 // usb0;
`define CBUS_USB1 12'h04a // usb1;
`define CBUS_BOOT 12'h1fc // mi boot & pif ram;
`define CBUS_DRAM64 12'b1xxx_xxxx_xxxx // all of dram x64;
// cbus length encodings;
// [19:16] dma device;
// [15:8] delay, XXX eliminated in new ri;
// [7] 1=read;
// [6:0] length;
// dma device master/slace codes;
`define CBUS_DEV_SP 4'h0
`define CBUS_DEV_CMD 4'h1
`define CBUS_DEV_SPAN 4'h2
`define CBUS_DEV_MI 4'h3
`define CBUS_DEV_VI 4'h4
`define CBUS_DEV_SI 4'h5
`define CBUS_DEV_PI 4'h6
`define CBUS_DEV_RI 4'h7
`define CBUS_DEV_AI 4'h8
`define CBUS_DEV_MEM 4'h9
`define CBUS_DEV_UI 4'hA