// 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/5/Computer.hdl /** * The Hack computer, consisting of CPU, ROM and RAM. * When reset = 0, the program stored in the ROM executes. * When reset = 1, the program's execution restarts. * Thus, to start running the currently loaded program, * set reset to 1, and then set it to 0. * From this point onwards, the user is at the mercy of the software. * Depending on the program's code, and whether the code is correct, * the screen may show some output, the user may be expected to enter * some input using the keyboard, or the program may do some procerssing. */ CHIP Computer { IN reset; PARTS: ROM32K( address=pcOut, out=romInstructionOut ); CPU( inM=memoryOut, instruction=romInstructionOut, reset=reset, outM=cpuOutMOut, writeM= cpuWriteMOut, addressM= cpuAddressMOut, pc=pcOut ); Memory( in= cpuOutMOut, load= cpuWriteMOut, address= cpuAddressMOut, out=memoryOut ); }