3e7dd45a140fbd055e030e0afdba0d189fc818c4
Stefan Schuermans start of MIPS core: begin o...

Stefan Schuermans authored 12 years ago

1) LIBRARY ieee;
2) USE ieee.std_logic_1164.all;
3) USE ieee.numeric_std.all;
4) 
5) PACKAGE mips_types IS
6) 
7)     -- operation
8)     TYPE t_op IS (
9)         op_none,
Stefan Schuermans implemented M T/F HI/LO

Stefan Schuermans authored 12 years ago

10)         op_alu,  -- ALU operation
11)         op_j,    -- jump or branch
12)         op_l,    -- load
13)         op_mfhi, -- move from HI
14)         op_mflo, -- move from LO
15)         op_mthi, -- move to HI
16)         op_mtlo, -- move to LO
17)         op_s     -- store
Stefan Schuermans start of MIPS core: begin o...

Stefan Schuermans authored 12 years ago

18)     );
19) 
20)     -- link (store return address in register)
21)     TYPE t_link IS (
22)         link_none,
23)         link_link  -- link
24)     );
25) 
26)     -- compare mode
27)     TYPE t_cmp IS (
28)         cmp_none,
29)         cmp_eq,   -- equal
Stefan Schuermans add missing branch instruct...

Stefan Schuermans authored 12 years ago

30)         cmp_gez,  -- greater or equal zero
31)         cmp_gtz,  -- greater than zero
Stefan Schuermans start of MIPS core: begin o...

Stefan Schuermans authored 12 years ago

32)         cmp_lez,  -- less or equal zero
Stefan Schuermans add missing branch instruct...

Stefan Schuermans authored 12 years ago

33)         cmp_ltz,  -- less than zero
Stefan Schuermans start of MIPS core: begin o...

Stefan Schuermans authored 12 years ago

34)         cmp_ne    -- not equal
35)     );
36) 
37)     -- ALU operation
38)     TYPE t_alu IS (
39)         alu_none,
40)         alu_add,  -- addition
41)         alu_and,  -- bitwise AND
42)         alu_nor,  -- bitwise NOR
43)         alu_or,   -- bitwise OR
44)         alu_sub,  -- subtraction
45)         alu_sll,  -- shift left logically
46)         alu_sra,  -- shift right arithmetically
47)         alu_srl,  -- shift right logically
48)         alu_slt,  -- set on less than
Stefan Schuermans separated shifter from ALU

Stefan Schuermans authored 12 years ago

49)         alu_sltu, -- set on less than unsigned
Stefan Schuermans added decoding of simple lo...

Stefan Schuermans authored 12 years ago

50)         alu_up,   -- move to upper half
Stefan Schuermans start of MIPS core: begin o...

Stefan Schuermans authored 12 years ago

51)         alu_xor   -- bitwise XOR
52)     );
53) 
54)     -- immediate usage
55)     TYPE t_imm IS (
56)         imm_none,
57)         imm_a,    -- "a" immediate
58)         imm_16se, -- 16 bit immediate, sign-extension
59)         imm_16ze, -- 16 bit immediate, zero-extension
60)         imm_26    -- 26 bit immediate
61)     );
62) 
Stefan Schuermans added decoding of simple lo...

Stefan Schuermans authored 12 years ago

63)     -- load/store type
64)     TYPE t_ldst IS (
65)         ldst_none,
Stefan Schuermans whitespace changes

Stefan Schuermans authored 12 years ago

66)         ldst_b,  -- byte (sign-extension)
67)         ldst_bu, -- byte unsigned (zero-extension)
68)         ldst_h,  -- half word (16 bit) (sign-extension)
69)         ldst_hu, -- half word unsigned (16 bit) (zero-extension)
Stefan Schuermans decoding of LWL, LWR, SWL, SWR

Stefan Schuermans authored 12 years ago

70)         ldst_w,  -- word (32 bit)
71)         ldst_wl, -- word left (8 to 32 bits)
72)         ldst_wr  -- word right (8 to 32 bits)
Stefan Schuermans added decoding of simple lo...

Stefan Schuermans authored 12 years ago

73)     );
74)