Skip to Main Content
Microarchitectural modeling partitions a digital system into a data part and a control part. The data part contains registers, arithmetic and logic units (ALUs), and multiplexers. The control part can be implemented as a finite state machine, programmable logic array, or microprogram. In this paper, the method of defining a digital function in a procedural description and then applying a microarchitectural modeling technique to generate a design is presented. This methodology, which is very systematic and easy to learn, has been taught to students in an Advanced Digital Design course. Students applied the method to the design of various algorithmic specifications and produced working systems in field-programmable gate arrays (FPGAs) technologies. Class surveys indicated that students very much appreciated the power of this formal method for digital design.