cbus.vh 1.62 KB
// 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