/*********************************************************************** * Y86-64 Tools (Student Distribution) * * Copyright (c) 2002, 2010, 2015, R. Bryant and D. O'Hallaron, * All rights reserved. May not be used, modified, or copied * without permission. ***********************************************************************/ This directory contains the student distribution of the Y86-64 tools. It is a proper subset of the master distribution, minus the solution files found in the master distribution. yas Y86-64 assembler yis Y86-64 instruction (ISA) simulator hcl2c HCL to C translator hcl2v HCL to Verilog translator ssim SEQ simulator ssim+ SEQ+ simulator psim PIPE simulator ************************* 1. Building the Y86-64 tools ************************* The Y86-64 simulators can be configured to support TTY and GUI interfaces. A simulator running in TTY mode prints all information about its run-time behavior on the terminal. It's harder to understand what's going on, but useful for automated testing, and doesn't require any special installation features. A simulator running in GUI mode uses a fancy graphical user interface. Nice for visualizing and debugging, but requires installation of Tcl/Tk on your system. To build the Y86-64 tools, perform the following steps: NOTE: If your instructor prepared this distribution for you, then you can skip Step 1 and proceed directly to Step 2. The Makefile will already have the proper values for GUIMODE, TKLIBS, and TKINC for your system. Step 1. Decide whether you want the TTY or GUI form of the simulators, and then modify ./Makefile in this directory accordingly. (The changes you make to the variables in this Makefile will override the values already assigned in the Makefiles in the seq and pipe directories.) Building the GUI simulators: If you have Tcl/Tk installed on your system, then you can build the GUI form by initializing the GUIMODE, TKLIBS, and TKINC variables, as appropriate for your system. (The default values work for Linux systems.) Assigning GUIMODE=-DHAS_GUI causes the necessary GUI support code in the simulator sources to be included. The TKLIBS variable tells gcc where to look for the libtcl.so and libtk.so libraries. And the TKINC variable tells gcc where to find the tcl.h and tk.h header files. Building the TTY simulators: If you don't have Tcl/Tk installed on your system, then build the TTY form by commenting out all three of these variables (GUIMODE, TKLIBS, and TKINC) in the Makefile. Step 2: Once you've modified the Makefile to build either the GUI or TTY form, then you can construct the entire set of Y86-64 tools by typing unix> make clean; make ******** 2. Files ******** Makefile Builds the Y86-64 tools README This file misc/ Source files for the Y86-64 assembler yas, the Y86-64 instruction simulator yis, and the isa.c file that is used by the -t option of the processor simulators to check the results against the ISA simulation. Also contains files for the programs hcl2c and hcl2v seq/ Code for the SEQ and SEQ+ simulators. Contains HCL files for labs and homework problems that involve modifying SEQ. pipe/ Code for the PIPE simulator. Contains HCL files for labs and homework problems that involve modifying PIPE. y86-code/ Example .ys files from CS:APP and scripts for conducting automated benchmark teseting of the new processor designs. ptest/ Automated regression testing scripts for testing processor designs. verilog/ System for producing Verilog designs from HCL code