From 0553c4839c06011bd044f69b4913e5c793fdd2ec Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sun, 27 Feb 2022 17:21:05 -0800 Subject: Initial commit. --- hdl/defs.svh | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 hdl/defs.svh (limited to 'hdl/defs.svh') diff --git a/hdl/defs.svh b/hdl/defs.svh new file mode 100644 index 0000000..ea8dbc1 --- /dev/null +++ b/hdl/defs.svh @@ -0,0 +1,58 @@ +`define RAM_ADDRESS_BITS 23 +`define RAM_BYTE_BITS 8 +`define RAM_WORD_BYTES 2 +`define RAM_LINE_WORDS 1 + +`define PDP_ADDRESS_BITS 15 + +`define UART_BYTE_BITS 8 + +`define TAG_BITS 1 + +typedef bit [`RAM_ADDRESS_BITS-1:0] ram_word_address_t; +typedef bit [`RAM_ADDRESS_BITS-1:$clog2(`RAM_LINE_WORDS)] ram_line_address_t; +typedef bit [`RAM_BYTE_BITS-1:0] ram_byte_t; +typedef ram_byte_t [`RAM_WORD_BYTES-1:0] ram_word_t; +typedef ram_word_t [`RAM_LINE_WORDS-1:0] ram_line_t; +typedef bit [$clog2(`RAM_WORD_BYTES):0] ram_word_mask_t; +typedef ram_word_mask_t [`RAM_LINE_WORDS-1:0] ram_line_mask_t; + +typedef bit [$clog2(`RAM_WORD_BYTES+1):0] ram_byte_count_t; +typedef bit [$clog2(`RAM_LINE_WORDS+1):0] ram_word_count_t; + +typedef bit [`RAM_ADDRESS_BITS-1:`PDP_ADDRESS_BITS] ram_pdp_address_space_t; + +typedef bit [`PDP_ADDRESS_BITS-1:0] pdp_word_address_t; +typedef bit [`PDP_ADDRESS_BITS-1:$clog2(`RAM_LINE_WORDS)] pdp_line_address_t; + +typedef bit [`TAG_BITS-1:0] tag_t; + +typedef bit [`UART_BYTE_BITS-1:0] uart_byte_t; + +typedef struct { + ram_line_address_t address; + bit write; + ram_line_t data; + ram_line_mask_t mask; + tag_t tag; +} ram_command_t; + +typedef struct { + ram_line_address_t address; + ram_line_t data; + tag_t tag; +} ram_read_response_t; + +typedef struct { + pdp_line_address_t address; + bit write; + ram_line_t data; + ram_line_mask_t mask; + tag_t tag; +} pdp_command_t; + +typedef struct { + pdp_line_address_t address; + ram_line_t data; + tag_t tag; +} pdp_read_response_t; -- cgit v1.2.3