/
dashytka
/
CHIP-CPU
Обзор
Документация
Войти
/
dashytka
/
CHIP-CPU
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
cpu
50 строк
1 KB
dashytka
create cpu
24 ноя 2025, 19:52
24 ноя 2025, 19:52
8e33aa6
Код
Авторство
О чём код?
CHIP CPU { IN inM[16], instruction[16], reset; OUT outM[16], writeM, addressM[15], pc[15]; PARTS: ALU(x=Dout, y=AMout, zx=instruction[11], nx=instruction[10], zy=instruction[9], ny=instruction[8], f=instruction[7], no=instruction[6], out=ALUout, out=outM, zr=ZRout, ng=NGout); Not(in=instruction[15], out=Ainstruction); And(a=instruction[15], b=instruction[5], out=ALUtoA); Mux16(a=instruction, b=ALUout, sel=ALUtoA, out=Aregin); Or(a=Ainstruction, b=ALUtoA, out=loadA); ARegister(in=Aregin, load=loadA, out=Aout, out[0..14]=addressM); Mux16(a=Aout, b=inM, sel=instruction[12], out=AMout); And(a=instruction[15], b=instruction[4], out=loadD); DRegister(in=ALUout, load=loadD, out=Dout); And(a=instruction[15], b=instruction[3], out=writeM); And(a=ZRout, b=instruction[1], out=jeq); And(a=NGout, b=instruction[2], out=jlt); Or(a=ZRout, b=NGout, out=zeroOrNeg); Not(in=zeroOrNeg, out=positive); And(a=positive, b=instruction[0], out=jgt); Or(a=jeq, b=jlt, out=jle); Or(a=jle, b=jgt, out=jumpToA); And(a=instruction[15], b=jumpToA, out=PCload); PC(in=Aout, inc=true, load=PCload, reset=reset, out[0..14]=pc); }