Preface

This book is intended as an introduction to the design of digital processors that are dedicated to performing a particular task. It presents a number of general methods and also covers general purpose architectures such as programmable processors and configurable logic. In fact, the dedicated digital system might be based on a standard microprocessor with dedicated software, or on an application-specific hardware circuit. It turns out that there is no clear distinction between hardware and software, and a number of techniques like algorithmic constructions using high-level languages, and automated design using compilation apply to both. For some time, dynamic allocation methods for storage and other resources have been common for software while hardware used to be configured statically. Even this distinction vanishes by using static allocation techniques to optimize software functions and by dynamically reconfiguring hardware substructures.

The emphasis in this book is on the common, system-level aspects of hardware and software structures. Among these are the timing of computations and handshaking that need to be considered in software but play a more prominent role in hardware design. The same applies to questions of power consumption. System design is presented as the optimization task to provide certain functions under given constraints at the lowest possible cost (a task considered as one of the basic characteristics of engineering). Detailed sample applications are taken from the domain of digital signal processing. The text also includes some detail on recent FPGA (field programmable gate arrays), memory, and processor, in particular DSP (digital signal processor) chips. The selected chips serve to demonstrate the state of the art and various design aspects; there remain interesting others that could not be covered just for reasons of space. The statements made in the text regarding these chips are all conclusions by the author that may be erroneous due to incomplete or wrong data. Viable corrections mailed to the author will be posted to a page dedicated to this book at the web site: www.tu-harburg.de/ti6/ddp along with other supplementary information.

A non-standard topic of special interest covered in this book will be the design of simple yet efficient processors that can be implemented on FPGA chips, and, more generally, the balance between serial and parallel processing in application-specific processors. A processor design of this kind is presented in detail (the ‘CPU2’ in Chapter 6), and also a system-level design tool supporting this processor and others. The VHDL source code for a version of this processor can also be downloaded from [55] along with the software tools for it for free use in FPGA designs and for further experimentation. Licensing and checking for patent protection are only required for commercial usage.

The book is the outcome of lectures on digital systems design, DSP, and processor networks given at the Technical University of Hamburg-Harburg, and is intended as an introductory textbook on digital design for students of electrical engineering and computer science. It presents a particular selection of topics and proposes guidelines to designing digital systems but does not attempt to be comprehensive; to study a broad subject such as digital processing, further reading is needed. As an unusual feature for an introductory text, almost every chapter discusses some subject that is non-standard and shows design options that may be unexpected to the reader, with the aim of stimulating further exploration and study. These extras can also serve as hooks to attach additional materials to lectures based on this book.

The book assumes some basic knowledge on how to encode numbers, on Boolean functions, algorithms and data structures, and programming, i.e. the topics usually covered in introductory lectures and textbooks on computer science such as [13, 20]. Some particular DSP algorithms and algorithms for constructing arithmetic operations from Boolean operations are treated. The system designer will, however, need additional knowledge on application specific, e.g. DSP algorithms [14] and more general algorithms [15]. Also, semiconductor physics and technology are only briefly discussed to have some understanding of the electronic gate circuits and their power consumption, mostly concentrating on CMOS technology [10]. For the main subject of this book, the design of digital systems, further reading is recommended, too. In books such as [2, 49] the reader will find more detail on standard topics such as combinatorial circuit and automata design. They are treated rather briefly in this book and are focused on particular applications only in order to cover more levels of the design hierarchy. The text concentrates on the hierarchical construction of efficient digital systems starting from gate level building blocks and given algorithms and timing requirements. Even for these topics, further reading is encouraged. Through the additional literature the reader will gain an understanding of how to design both hardware and software of digital systems for specific applications. The references concentrate on easily accessible books and only occasionally cite original papers.

Chapter 1 starts with some general principles on how to construct digital systems from building blocks, in particular the notion of algorithms, which applies to both hardware and software. It discusses complexity issues including minimization, and, in particular, the timing and synchronization of computations. The presentation proceeds at a fairly abstract level to aspects of system-level specifications and introduces some important metrics for digital systems to be used in the sequel, e.g. the percentage of time in which a circuit such as an ALU (arithmetic and logic unit) of a processor performs computational steps.

Chapter 2 enters into the technological basics of digital computers, including transistor circuits and the properties of current integrated chips. It provides the most elementary hardware building blocks of digital systems, including auxiliary circuits such as clock generators, and circuits for input and output. Configurable logic and FPGA are introduced. Board and chip level design are considered, as well as the design of application-specific systems from IP (intellectual property) modules.

Chapter 3 then introduces the method of describing and designing hardware using a hardware description language. VHDL is briefly introduced as a standard language. All VHDL examples and exercises can be simulated and synthesized with the free design tools provided by FPGA companies such as Xilinx and Altera.

Chapter 4 proceeds to the realization of arithmetical functions as special Boolean functions on encoded numbers, including the multiply-add needed for DSP. Serial versions of these functions are also presented, and some special topics such as the distributed arithmetic realized with FPGA cells.

Chapter 5 further elaborates on the aspects of sequential control, starting with scheduling and operand storage. It includes a discussion of those automata structures suitable for generating control sequences, and, in particular, a memory-based realization of the controller automaton.

In Chapter 6 the concept of a programmable processor is discussed, including the handling of input and output, interrupt processing and DMA. The presentation of sequential processors does not attempt to trace the historical development but continues a logical path started in Chapter 5 towards what is needed for efficient control. This path does not always duplicate contemporary solutions. Two simple processor designs are presented to demonstrate various techniques to enhance the ALU efficiency mentioned above. Some standard microprocessors are discussed as well, and techniques used to boost performance in modern high-speed processors.

Chapter 7 proceeds to the system level where processors and FPGA chips are just components of a scalable architecture (as defined in Chapter 1), and the systems based on such an architecture are networks of sequential processors or heterogeneous networks including both FPGA-based logic circuits and programmable processors. The components need to be equipped with interfaces supporting their use in networks. The chapter also sketches a system-level design tool taking up several of the ideas and concepts presented before. It demonstrates a convenient setting for a compiler support surpassing the individual target processor or programmable logic circuit. The chapter also explains some automatic allocation techniques used by compilers and FPGA design tools.

Chapter 8 discusses the application domain of digital signal processing starting from the basics of signal sampling and proceeding to application-specific processors. Some recent commercial signal processors are discussed in detail, and the use of FPGA chips for DSP is considered. The final section discusses some specific examples of embedded digital systems performing high-speed real-time DSP of sonar (underwater sound) signals.

Throughout this book, the notion of a ‘system’ encompassing components and subsystems plays a crucial role. Processors will be viewed as complex system components, and processor-based systems as sub-systems of a digital system. In general, a digital system will contain several processor-based sub-systems depending on the performance and cost requirements. Dedicated digital systems are usually embedded sub-systems of some hybrid supersystem, and the operations performed by the sub-system need to be consistent with the operation of the entire system. It may not be enough to specify the interfaces with the supersystem, but necessary to analyze the dependency on other sub-systems of the total system that may be variable to some degree or be invariable givens. The reader is encouraged to proceed with this analysis to further levels, in particular to the dependencies within the social environment of engineering work, even if their analysis becomes more and more complex. It is a shame to see the beautiful technology of digital systems being applied to violate and destroy goods and lives. The judgement will, however, be different if the same techniques are used to create countermeasures. Fortunately, there are many applications in which the benefits of an achievement are not as doubtful, and the engineer may choose to concentrate on these.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.58.57