Embedded Systems & Digital Design
Dr. John Devore has been a faculty member of ECE since 1984. His areas of expertise are embedded systems and digital design. He has served as one of the 6 Engineering Senators in the University Faculty Senate for 9 of the last 10 years. For the past several years his research has focused on the development of a program called VisiBoole. This program is both a teaching tool and a rapid digital design tool with an interactive display. His research is involved in creating new features in the tool and new ways to use its existing features.
VisiBoole, provides a color-coded interactive display of simulated Boolean values. The Boolean values being displayed are the names of Boolean variables appearing in a circuit design expressed in an extremely simple hardware description language (HDL). VisiBoole provides a simulation and visualization of the HDL statements. This HDL has only two-valued variables and two statement types. The statements are either a variable-list or a Boolean assignment. Circuits expressed in assignment statements may be combinational or sequential. Sequential circuits are created by appending a “.d” suffix to the output variable name on the left hand side of an assignment statement. Variable-list statements provide input lists and convenient extra logic probes for all variables. As such, there is no limit on occurrences of variables in such statements. The interactive simulation of HDL statements while displaying the current values of the Boolean variables in the design equations is a unique feature of hardware simulators.
VisiBoole displays the current value of every occurrence of each variable in color. Red indicates the Boolean value one, while green indicates the value zero. It is like having logic probes everywhere on a circuit. Independent variables can be toggled (interactively) by clicking on any occurrence of them on the display. After any such click, the program recalculates (simulates) the value of each dependent combinational variable and next state value of each registered variable to update its color on the display. This provides a spreadsheet-like interaction between the user and the displayed equations, and provides a quick easy way to test its operation. There is also a “tick” button that simulates the action of a clock. Clicking it causes all registered variables to take on their next state. Again, this change of values propagates throughout the set of equations.
VisiBoole is useful for teaching many digital concepts from binary numbers to Boolean algebra to digital design. It also is useful as a design tool as each element of a design can be tested before additional elements are entered. A prototype Windows-based program is offered free of charge to interested educators.