We have developed a structural design language for use in undergraduate computer architecture classes that has much of the power of VHDL with little of the complexity. This language, esim, allows students to build arbitrarily complex digital logic designs using simple hierarchical design techniques. Students can simulate and debug their designs using a simulator implemented as a Tcl module. Because esim was not intended for designing and building physical circuits, it omits many of the primitives necessary for "real" hardware design and instead focuses on the concepts necessary for teaching students about digital designs.
We have used esim as a teaching tool in undergraduate computer architecture classes at UMBC for several semesters. Students in these classes have implemented projects as complex as a pipelined RISC processor and a full 16x16 combinational multiplier. The compiler and simulator for the language are freely distributable, and may be expanded using standard Tcl packages and Tcl code. Current simulator modules include one for displaying signal values on the screen; modules that graph signal values are planned.
[1]
Samir Palnitkar,et al.
A Guide to Digital Design and Synthesis
,
1996
.
[2]
Brent B Welch,et al.
Practical Programming in Tcl and Tk
,
1999
.
[3]
Peter J. Ashenden.
The student's guide to VHDL
,
1998
.
[4]
Peter J. Ashenden,et al.
The Designer's Guide to VHDL
,
1995
.
[5]
John E. Grayson.
Python and Tkinter Programming
,
2000
.
[6]
David M. Beazley,et al.
SWIG: An Easy to Use Tool for Integrating Scripting Languages with C and C++
,
1996,
Tcl/Tk Workshop.
[7]
Samir Palnitkar,et al.
Verilog HDL: a guide to digital design and synthesis
,
1996
.