diff options
author | Siddarth Suresh <155843085+SiddarthSuresh98@users.noreply.github.com> | 2025-04-12 13:04:10 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-12 13:04:10 -0400 |
commit | 561f7a6e6c24b05383b6db86b48125ee80a8355f (patch) | |
tree | 6acbfd27652c2b83686df93c21918a877a0451e8 /inc/pipe_spec.h | |
parent | c9e35a8f3aa2047701e87a50f12b4bed23d5e7db (diff) | |
parent | 3ae113c7d6f1b6f46d8960b284837a44fbeb2e77 (diff) |
Merge pull request #50 from bdunahu/bdunahu
Move storage to a separate git repository.
Diffstat (limited to 'inc/pipe_spec.h')
-rw-r--r-- | inc/pipe_spec.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/inc/pipe_spec.h b/inc/pipe_spec.h new file mode 100644 index 0000000..772314e --- /dev/null +++ b/inc/pipe_spec.h @@ -0,0 +1,68 @@ +#ifndef PIPE_SPEC_H +#define PIPE_SPEC_H +#include "logger.h" +#include <cmath> + +/** + * The number of bits to specify a word in a line + */ +#define LINE_SPEC 2 +/** + * The total number of words in a line + */ +#define LINE_SIZE static_cast<int>(pow(2, 2)) + +/** + * The number of general purpose registers + */ +#define GPR_NUM 16 + +/** + * The number of vector registers + */ +#define V_NUM 8 + +/** + * The number of bits to specify an instruction type + */ +#define TYPE_SIZE 2 + +/** + * The number of bits to specify a register + */ +#define REG_SIZE 5 + +/** + * The number of bits to specify an R-Type opcode. + */ +#define R_OPCODE_SIZE 5 + +/** + * The number of bits to specify an opcode. + */ +#define OPCODE_SIZE 4 + +/** + * The maximum value an integer can hold. + * The minimum is always this number plus one negated. + */ +#define MAX_INT 2147483647 + +/** + * Return the N least-significant bits from integer K using a bit mask + * @param the integer to be parsed + * @param the number of bits to be parsed + * @return the N least-significant bits from K + */ +#define GET_LS_BITS(k, n) ((k) & ((1 << (n)) - 1)) +/** + * Return the bits from integer K starting at N and ending at M using a bit + * mask + * @param the integer to be parsed + * @param the index of the starting bit to be parsed + * @param the index of the ending bit to be parsed + * @return a section of bits from K + */ +#define GET_MID_BITS(k, m, n) GET_LS_BITS((k) >> (m), ((n) - (m))) + +#endif /* DEFINITIONS_H_INCLUDED */ |