Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1.  
  2. wire w_add = opcode == `OP_OTHER0 && funct ==`OP0_ADD;
  3. wire w_addu = opcode == `OP_OTHER0 && funct ==`OP0_ADDU;
  4. wire w_sub = opcode == `OP_OTHER0 && funct ==`OP0_SUB;
  5. wire w_and = opcode == `OP_OTHER0 && funct ==`OP0_AND;
  6. wire w_or = opcode == `OP_OTHER0 && funct ==`OP0_OR;
  7. wire w_nor = opcode == `OP_OTHER0 && funct ==`OP0_NOR;
  8. wire w_xor = opcode == `OP_OTHER0 && funct ==`OP0_XOR;
  9.  
  10. wire w_addi = opcode == `OP_ADDI;
  11. wire w_addiu = opcode == `OP_ADDIU;
  12. wire w_andi = opcode == `OP_ANDI;
  13. wire w_ori = opcode == `OP_ORI;
  14. wire w_xori = opcode == `OP_XORI;
  15.  
  16. wire w_beq = (opcode == `OP_BEQ);
  17. wire w_bne = (opcode == `OP_BNE);
  18. wire w_j = (opcode == `OP_J);
  19. wire w_jr = (opcode == `OP_OTHER0) & (funct == `OP0_JR);
  20. wire w_lui = (opcode == `OP_LUI);
  21. wire w_slt = (opcode == `OP_OTHER0) & (funct == `OP0_SLT);
  22. wire w_lw = (opcode == `OP_LW);
  23. wire w_lbu = (opcode == `OP_LBU);
  24. wire w_sw = (opcode == `OP_SW);
  25. wire w_sb = (opcode == `OP_SB);
  26. wire w_addm = (opcode == `OP_OTHER0) & (funct == `OP0_ADDM);
  27.  
  28. assign rd_src = (w_addiu | w_addi | w_andi | w_ori | w_xori | w_lui | w_lw | w_lbu | w_sw | w_sb);
  29. assign writeenable = ~(w_beq | w_bne | w_j | w_jr | w_sw | w_sb | except)//
  30. assign except = ~(w_add | w_addu | w_addiu | w_addi | w_sub | w_and | w_andi | w_or | w_ori | w_nor | w_xor | w_xori | w_beq | w_bne | w_j | w_jr | w_lui | w_slt | w_lw | w_lbu | w_sw | w_sb | w_addm);
  31.  
  32.  
  33. assign alu_op[0] = (w_sub | w_or | w_ori | w_xor | w_xori | w_beq | w_bne | w_slt);
  34. assign alu_op[1] = (w_add | w_addi | w_sub | w_nor | w_xor | w_xori | w_beq | w_bne | w_slt | w_lw | w_lbu | w_sw | w_sb | w_addm);
  35. assign alu_op[2] = (w_and | w_andi | w_or | w_ori | w_nor | w_xor | w_xori);
  36.  
  37.  
  38. assign control_type[0] = (w_beq & zero) | (w_bne & !zero) | w_jr;
  39. assign control_type[1] = w_j | w_jr;
  40. assign mem_read = w_lw | w_lbu;
  41. assign word_we = w_sw;
  42. assign byte_we = w_sb;
  43. assign byte_load = w_lbu;
  44. assign lui = w_lui;
  45. assign slt = w_slt;
  46. assign addm = w_addm;
  47.  
  48.  
  49.  
  50. assign alu_src2[0] = (w_addi | w_addiu);
  51. assign alu_src2[1] = (w_andi | w_ori | w_xori);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement