The design of a system for the synthesis of correct microprograms
MICRO 8 Proceedings of the 8th annual workshop on Microprogramming
Microprogram training - an APL application
APL '72 Proceedings of the fourth international conference on APL
A new approach to program testing
Proceedings of the international conference on Reliable software
Verification of microprogrammed computer architectures in the S*-system: a case study
MICRO 18 Proceedings of the 18th annual workshop on Microprogramming
CORAL II: linking behavior and structure in an IC design system
DAC '88 Proceedings of the 25th ACM/IEEE Design Automation Conference
An experiment in high level language microprogramming and verification
Communications of the ACM
IEEE Transactions on Software Engineering
On fundamentals of computer-aided design of firmware
MICRO 13 Proceedings of the 13th annual workshop on Microprogramming
Dynamic microprogramming in a time sharing environment
MICRO 10 Proceedings of the 10th annual workshop on Microprogramming
Firmware versus software verification
MICRO 11 Proceedings of the 11th annual workshop on Microprogramming
An axiomatization of low-level parallelism in microarchitectures
MICRO 17 Proceedings of the 17th annual workshop on Microprogramming
Symbolic simulation for correct machine design
DAC '79 Proceedings of the 16th Design Automation Conference
Design verification based on functional abstraction
DAC '79 Proceedings of the 16th Design Automation Conference
An Abstract Model of Behavior for Hardware Descriptions
IEEE Transactions on Computers
Hi-index | 0.02 |
This paper presents a method for verifying microprograms with computer aid, and examples of its application to actual systems. The specifications for an architecture and those for the computer on which it is to be implemented are both described formally, with the microcode supplied as data to the low level description. A correspondence between the two descriptions is then formalized, and a system of programs is used to prove mathematically that the correspondence holds. This interactive, goal-directed system not only provides a proof that microcode performs as specified, but more often aids in detecting and correcting microprogram errors. Several errors in actual implementations, some of which were difficult to detect using test cases, have been discovered in this way.