Close

Day 4

A project log for AMD 2900 Chipset Research

Exploring the 2900 family bit slice chip set.

rey-mortaRey Morta 03/25/2020 at 04:440 Comments

Spent some time writting micro op setup for testing chips. I went through my personal collection of chips and they all passed. 

Code

  clear_regs(0);

  Serial.println(" Reqister Q");
  // check q register
  Micro_Op(DO, 0, REGQ, 0, 0, 0, 1);  // Set Q
  Micro_Op(OQ, 0, RAMQU, 0, 0, 0, 0); // Shift Q up
  Micro_Op(OQ, 0, RAMQU, 0, 0, 0, 0); // Shift Q up
  Micro_Op(OQ, 0, RAMQU, 0, 0, 0, 0); // Shift Q up
  Micro_Op(OQ, 0, RAMQU, 0, 0, 0, 0); // Shift Q up
  Micro_Op(OQ, 0, RAMQD, 0, 0, 0, 0); // Shift Q Down
  Micro_Op(OQ, 0, RAMQD, 0, 0, 0, 0); // Shift Q Down
  Micro_Op(OQ, 0, RAMQD, 0, 0, 0, 0); // Shift Q Down
  Micro_Op(OQ, 0, RAMQD, 0, 0, 0, 0); // Shift Q Down

  Micro_Op(DO, 0, REGQ, 0, 0, 0, 15); // Set Q
  Micro_Op(DO, 0, REGQ, 0, 0, 0, 10); // Set Q
  Micro_Op(DO, 0, REGQ, 0, 0, 0, 5); // Set Q
  Micro_Op(DO, 0, REGQ, 0, 0, 0, 0); // Set Q
  // check ram


  for (int i = 0; i <= 3; i++) {
    Serial.println(" ");
    Serial.print(" Ram ");
    Serial.println(i, HEX);
    Micro_Op(DO, 0, RAM, i, i, 0, 1); // Set Reg[0]
    Micro_Op(OA, 0, RAMQU, i, i, 0, 0); // Shift Ram up
    Micro_Op(OA, 0, RAMQU, i, i, 0, 0); // Shift Ram up
    Micro_Op(OA, 0, RAMQU, i, i, 0, 0); // Shift Ram up
    Micro_Op(OA, 0, RAMQU, i, i, 0, 0); // Shift Ram up
    Micro_Op(OA, 0, RAMQD, i, i, 0, 0); // Shift Ram Down
    Micro_Op(OA, 0, RAMQD, i, i, 0, 0); // Shift Ram Down
    Micro_Op(OA, 0, RAMQD, i, i, 0, 0); // Shift Ram Down
    Micro_Op(OA, 0, RAMQD, i, i, 0, 0); // Shift Ram Down

    Micro_Op(DO, 0, RAM, i, i, 0, 15); // Set  Reg[0]
    Micro_Op(DO, 0, RAM, i, i, 0, 10); // Set Reg[0]
    Micro_Op(DO, 0, RAM, i, i, 0, 5); // Set Reg[0]
    Micro_Op(DO, 0, RAM, i, i, 0, 0); // Set Reg[0]
  }
  for (int i = 0; i <= 3; i++) {
    Serial.println(" ");
    Serial.print(" Ram PortB ");
    Serial.println(i, HEX);
    Micro_Op(DO, 0, RAM, 0, i, 0, 15); // Set  Reg[0]    
    Micro_Op(OB, 0, RAM, 0, i, 0, 0); // Set  Reg[0] 
     
    Micro_Op(DO, 0, RAM, 0, i, 0, 10); // Set Reg[0]    
    Micro_Op(OB, 0, RAM, 0, i, 0, 0); // Set  Reg[0]
    
    Micro_Op(DO, 0, RAM, 0, i, 0, 5); // Set Reg[0]    
    Micro_Op(OB, 0, RAM, 0, i, 0, 0); // Set  Reg[0]
    
    Micro_Op(DO, 0, RAM, 0, i, 0, 0); // Set Reg[0]
    Micro_Op(OB, 0, RAM, 0, i, 0, 0); // Set  Reg[0]
    
  }

Discussions