Com sys lab/control unit that works with registers
- มาจาก com sys lab
ใช้เทมเพลตใหม่ ในแบบฝึกหัดนี้ control unit จะเชื่อมโยงกับส่วนอื่น ๆ ซับซ้อนขึ้น อ่าน instruction set ของ CPU ได้ที่นี่
หมายเหตุ มีการแก้ op-code format ของ ADD และ SUB (เพื่อไม่ให้ชนกับ NOP = 0x00)
เนื้อหา
Load to $0, Store from $0
ให้แก้ส่วน control unit ให้รองรับคำสั่ง LDA และ STA
เพื่อทดสอบการออกแบบ control unit ในส่วนนี้เราจะใช้โค้ดในการเตรียมค่า register และคำสั่งใน instruction memory ดังด้านล่าง
// set register $1 = 1
reg.set(1,1);
// set instruction memory
rom.set(0,0x11); // ADD $1 $0 = 1
rom.set(1,0x8b); // STA $3 $3 = 1
rom.set(2,0x19); // SUB $1 $0 = 0
rom.set(3,0x13); // ADD $3 $0 = 1
rom.set(4,0x13); // ADD $3 $0 = 2
rom.set(5,0x8c); // STA $4 $4 = 2
rom.set(6,0x14); // ADD $4 $0 = 4
rom.set(7,0x19); // SUB $1 $0 = 3
rom.set(8,0x8d); // STA $5 $5 = 3
rom.set(9,0x84); // LDA $4 $0 = 2
rom.set(10,0x1d); // SUB $5 $0 = -1 = 0x0f
rom.set(11,0x8c); // STA $4 $4 = 0xf
ตัวอย่าง signal การทำงานดูด้านล่าง (ในการทดสอบ สังเกตว่าเราสามารถไล่การทำงานจาก regw0 และ dataw0 เพื่อดูลำดับการเขียนค่าลงใน register file ได้)
Unconditional short jump
ให้แก้ส่วน control unit ให้รองรับคำสั่ง JMP
เพื่อทดสอบการออกแบบ control unit ในส่วนนี้เราจะใช้โค้ดในการเตรียมค่า register และคำสั่งใน instruction memory ดังด้านล่าง
// set register $1 = 1
reg.set(1,1);
// set instruction memory
rom.set(0,0x11); // ADD $1 $0 = 1
rom.set(1,0xc3); // JMP 3 PC = 4
rom.set(2,0x19); // SUB $1
rom.set(3,0x89); // STA $1
rom.set(4,0x11); // ADD $1 $0 = 2,3,4,...
rom.set(5,0xcf); // JMP -1 PC = 4
ตัวอย่าง signal การทำงานดูด้านล่าง (ในการทดสอบ สังเกตว่าเราสามารถไล่การทำงานจาก inst_addr, regw0, และ dataw0 เพื่อดูลำดับการเขียนค่าลงใน register file ได้)
Jump if zero และ NOP
ให้แก้ส่วน control unit ให้รองรับคำสั่ง NOP และ JZ
เพื่อทดสอบการออกแบบ control unit ในส่วนนี้เราจะใช้โค้ดในการเตรียมค่า register และคำสั่งใน instruction memory ดังด้านล่าง
ตัวอย่าง signal การทำงานดูด้านล่าง (ในการทดสอบ สังเกตว่าเราสามารถไล่การทำงานจาก inst_addr, regw0, และ dataw0 เพื่อดูลำดับการเขียนค่าลงใน register file ได้)