Page 681 - Engineering Digital Design
P. 681

13.6 SYSTEM-LEVEL DESIGN                                             649


                  requires a macrocell and if each Mealy output must also use a macrocell, the capability of the
                  PAL can be quickly used up for all but relatively small FSMs. Therefore, as a rule, it is best
                  to use registered PAL devices for one-hot designs of relatively small FSMs with only Moore
                  outputs. Used in this manner, registered PAL designs by the one-hot method offer quick,
                  convenient and reliable results, and without the need for K-maps or programming soft-
                  ware. See subsection 16.4.4 for information regarding synchronous one-hot programmable
                  sequencers.
                    If registered PLDs are to be used to implement large Mealy state machines by the one-hot
                 method, FPGAs are the best choice. A good example is the use of the 4000 series Xilinx
                  FPGAs. As explained in Subsection 7.7.3, these devices are extremely versatile and have
                  the capacity to handle very large one-hot state machine designs with both Moore and Mealy
                  outputs. The one drawback in the use of these FPGAs is that they require dedicated soft-
                 ware to program them. For all but the experienced user of Xilinx FPGAs, this requirement
                 is an impediment to design and may even preclude their use. Xilinx FPGAs accept VHDL
                  descriptions of state machines from which the FSM can be synthesized automatically by
                  synthesis tools such as AutoLogic VHDL by Mentor Graphics. For more information on
                 these subjects see references cited in Further Reading at the end of this chapter.
                    There still remains the question of initializing registered PLDs for one-hot designs.
                 R-type PAL devices apparently lack initialization capability and are not recommended for
                 use in most one-hot designs. The macrocells of V-type PAL devices contain D flip-flops
                 with both PRE and CLR asynchronous overrides. Thus, V-type PALs can be initialized
                 directly into a one-hot state but are otherwise limited in their use in one-hot applications
                  as explained earlier. The configurable logic blocks (CLBs) of all Xlinx FPGAs contain D
                 flip-flops with both PRE and CLR overrides and consequently are suitable for one-hot state
                 initialization. Generally, registered PLDs having D flip-flops with only CLR overrides can
                 be used, but only for the one-hot-plus-zero approach as indicated by previous examples.
                    Finally, there is software called A-OPS (for Asynchronous-One-hot Programmable Se-
                 quencers) on the CD-ROM bundled with this text that can be used to automate the design
                 of PLA or RAM driven asynchronous and synchronous one-hot state machines. Initializa-
                 tion into the all zero state is possible by using the one-hot-plus-zero approach. For more
                 information regarding this software, refer to Appendix B.



                  13.6 SYSTEM-LEVEL DESIGN: CONTROLLER, DATA PATH,
                 AND FUNCTIONAL PARTITION

                 One very common view of a digital system is the use of an FSM as the controller for a set
                 of components parts that comprise the controlled system called the data path. This view
                 is expressed in Fig. 13.33, where all input and output (I/O) conditioning logic has been
                 omitted to focus attention on the main features of this architecture. Here, it is understood
                 that the data path devices generally consist of a mixture of both sequential and combinational
                 logic machines. Typical among these are registers, counters, ALUs, PLDs of various types,
                 decoders, MUXs, shifters, comparators, digital-to-analog (D/A) converters, and the like.
                 The architecture represented in Figure 13.33 is the one emphasized in this text.
                    All sections in this chapter up to this point have been devoted to various architectures
                 that can and should be considered in controller design. Chapters 10, 11, and 12 supply
                 the necessary background information needed to build reliable controllers as well as those
   676   677   678   679   680   681   682   683   684   685   686