97 lines
3.5 KiB
Text
97 lines
3.5 KiB
Text
/***********************************************************************
|
|
* 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
|