feat: project 5 start
This commit is contained in:
39
project-3-sequential-logic/hdl/PC.hdl
Executable file
39
project-3-sequential-logic/hdl/PC.hdl
Executable file
@@ -0,0 +1,39 @@
|
||||
// This file is part of www.nand2tetris.org
|
||||
// and the book "The Elements of Computing Systems"
|
||||
// by Nisan and Schocken, MIT Press.
|
||||
// File name: projects/3/a/PC.hdl
|
||||
/**
|
||||
* A 16-bit counter.
|
||||
* if reset(t): out(t+1) = 0
|
||||
* else if load(t): out(t+1) = in(t)
|
||||
* else if inc(t): out(t+1) = out(t) + 1
|
||||
* else out(t+1) = out(t)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Personal Notes
|
||||
*
|
||||
*
|
||||
*/
|
||||
CHIP PC {
|
||||
|
||||
IN in[16], reset, load, inc;
|
||||
OUT out[16];
|
||||
|
||||
PARTS:
|
||||
|
||||
// Inc
|
||||
Inc16(in=regOut, out=inc16Out);
|
||||
Mux16(a=regOut, b=inc16Out, sel=inc, out=incOut);
|
||||
|
||||
// Load
|
||||
Mux16(a=incOut, b=in, sel=load, out=loadOut);
|
||||
|
||||
// Reset
|
||||
Mux16(a=loadOut, b[0..15]=false, sel=reset, out=resetOut);
|
||||
|
||||
|
||||
Register(in=resetOut, load=true , out=regOut, out=out);
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user