The objective of this research is to develop a design methodology for microprogramming architectures with supporting firmware and development tools. Two PLA-based microcontrol architectures are proposed that are suitable for modular microprogramming. The first scheme consists of a PLA sequence store, a microcode ROM and an address processor. This structure has the capability of complex microsequencing such as multiway branching, microsubroutines, nested microlooping and the like. To alleviate the pin-limitation problem, a bit-slice approach is taken in the second scheme which allows for easy microcontrol expandability and compaction of the sequence store.Firmware support for the microcontrollers is provided by such control constructs as if-then-else, while-do and the like, which are available at the microlevel. Several firmware design tools have been developed and incorporated into a software package, MMDS, a Modular Microprogram Development System. MMDS includes the following tools: (i) a microsequencer and microcode assembler, (ii) a PLA code formatter, (iii) a functional-level simulator of the microarchitectures. The firmware migration of a binary search tree algorithm on a target machine, using MMDS, is described as a test example. To evaluate the scheme, experimentation was conducted using MMDS, samples of several functions and several data sets. The results demonstrated: (1) orders of magnitude time savings achieved by this method versus implementations in software; (2) the storage space efficiency of this scheme in comparison to conventional microprogram implementations.