Digital Engineering: Complex System Design
()
About this ebook
Suitable for those who are ready to design and program their own system
The book covers the following topics:
Combinational circuits
Instruction addressing
Digital techniques
Systems with memory
Arithmetic unit design
Control unit approaches
I/O interfaces
Sound and visual processing
CPU and FPGA design
S Mathioudakis
S.Mathioudakis originally studied psychology at degree level, before moving onto electrical engineering at Middlesborough University. Having graduated in both he still finds a keen interest in the subjects. In his spare time he enjoys writing science fiction as a hobby
Read more from S Mathioudakis
Computerised Systems Architecture: An embedded systems approach Rating: 0 out of 5 stars0 ratings3D Hardware design:: Software applications for GPU Rating: 0 out of 5 stars0 ratingsThe Software Programmer: Basis of common protocols and procedures Rating: 0 out of 5 stars0 ratings
Related to Digital Engineering
Related ebooks
Raspberry Pi | 101 Rating: 0 out of 5 stars0 ratingsFoundation Course for Advanced Computer Studies Rating: 0 out of 5 stars0 ratingsMicroprocessor and Microcontroller Interview Questions: A complete question bank with real-time examples Rating: 0 out of 5 stars0 ratingsSimple electronics with GPIO Zero: Take control of the real world with your Raspberry Pi Rating: 5 out of 5 stars5/5Arduino meets MATLAB: Interfacing, Programs and Simulink Rating: 0 out of 5 stars0 ratingsControl of DC Motor Using Different Control Strategies Rating: 0 out of 5 stars0 ratingsFE Electrical and Computer Exam Prep Complete Study Guide with Practice Questions and Expert Strategies to Pass with Confidence Rating: 0 out of 5 stars0 ratingsDigital Electronics for Beginners: 1, #1 Rating: 0 out of 5 stars0 ratingsHow to Get the Most from Your Home Entertainment Electronics: Set It Up, Use It, Solve Problems Rating: 0 out of 5 stars0 ratingsBlueprint for Success in the Cryptoverse: Cryptoverse, #1 Rating: 0 out of 5 stars0 ratingsComputer Engineering: Advancing Automation and Intelligent Systems Rating: 0 out of 5 stars0 ratingsProgramming the BeagleBone Black: Getting Started with JavaScript and BoneScript Rating: 0 out of 5 stars0 ratingsThe Mac Hacker's Handbook Rating: 0 out of 5 stars0 ratingsUltimate iOS App Development Guide Rating: 0 out of 5 stars0 ratingsHandbook of Electronics Formulas and Calculations - Volume 1 Rating: 5 out of 5 stars5/5Electronics Handbook made for Everyone Rating: 0 out of 5 stars0 ratingsDesign of Electrical Circuits using Engineering Software Tools Rating: 0 out of 5 stars0 ratingsRaspberry Pi 3 Model B for Beginners: Explore What Raspberry Pi 3 Model B Can Do Rating: 0 out of 5 stars0 ratingsSamsung Galaxy S8 For Dummies Rating: 5 out of 5 stars5/5The Essential Guide to Control Systems Rating: 0 out of 5 stars0 ratingsQuantum Computer Vs Traditional Computer Rating: 0 out of 5 stars0 ratingsPower Electronics Diploma Engineering MCQ Rating: 0 out of 5 stars0 ratingsBeagleBone Robotic Projects Rating: 5 out of 5 stars5/5Basic Electronics Rating: 0 out of 5 stars0 ratingsMastering Crypto Day Trading Rating: 0 out of 5 stars0 ratingsCoherent Wireless Power Charging and Data Transfer for Electric Vehicles Rating: 0 out of 5 stars0 ratingsCanada's Role in the Payment Processing Industry Rating: 0 out of 5 stars0 ratings
Computers For You
The ChatGPT Millionaire Handbook: Make Money Online With the Power of AI Technology Rating: 4 out of 5 stars4/5Creating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5Mastering ChatGPT: 21 Prompts Templates for Effortless Writing Rating: 4 out of 5 stars4/5Elon Musk Rating: 4 out of 5 stars4/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5The Self-Taught Computer Scientist: The Beginner's Guide to Data Structures & Algorithms Rating: 0 out of 5 stars0 ratingsCompTIA Security+ Get Certified Get Ahead: SY0-701 Study Guide Rating: 5 out of 5 stars5/5Excel 101: A Beginner's & Intermediate's Guide for Mastering the Quintessence of Microsoft Excel (2010-2019 & 365) in no time! Rating: 0 out of 5 stars0 ratingsCompTIA IT Fundamentals (ITF+) Study Guide: Exam FC0-U61 Rating: 0 out of 5 stars0 ratingsDeep Search: How to Explore the Internet More Effectively Rating: 5 out of 5 stars5/5Alan Turing: The Enigma: The Book That Inspired the Film The Imitation Game - Updated Edition Rating: 4 out of 5 stars4/5How to Create Cpn Numbers the Right way: A Step by Step Guide to Creating cpn Numbers Legally Rating: 4 out of 5 stars4/52022 Adobe® Premiere Pro Guide For Filmmakers and YouTubers Rating: 5 out of 5 stars5/5The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution Rating: 4 out of 5 stars4/5Standard Deviations: Flawed Assumptions, Tortured Data, and Other Ways to Lie with Statistics Rating: 4 out of 5 stars4/5Why Machines Learn: The Elegant Math Behind Modern AI Rating: 3 out of 5 stars3/5Procreate for Beginners: Introduction to Procreate for Drawing and Illustrating on the iPad Rating: 5 out of 5 stars5/5Tor and the Dark Art of Anonymity Rating: 5 out of 5 stars5/5Fundamentals of Programming: Using Python Rating: 5 out of 5 stars5/5Microsoft Azure For Dummies Rating: 0 out of 5 stars0 ratingsSlenderman: Online Obsession, Mental Illness, and the Violent Crime of Two Midwestern Girls Rating: 4 out of 5 stars4/5Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are Rating: 4 out of 5 stars4/5Technical Writing For Dummies Rating: 0 out of 5 stars0 ratings
Reviews for Digital Engineering
0 ratings0 reviews
Book preview
Digital Engineering - S Mathioudakis
© 2024 S. Mathioudakis. All rights reserved.
No part of this book may be reproduced, stored in a retrieval system, or transmitted by any means without the written permission of the author.
Published by AuthorHouse 07/27/2024
ISBN: 979-8-8230-8871-8 (sc)
ISBN: 979-8-8230-8879-4 (e)
Library of Congress Control Number: 2024914721
Any people depicted in stock imagery provided by Getty Images are models, and such images are being used for illustrative purposes only.
Certain stock imagery © Getty Images.
Because of the dynamic nature of the Internet, any web addresses or links contained in this book may have changed since publication and may no longer be valid. The views expressed in this work are solely those of the author and do not necessarily reflect the views of the publisher, and the publisher hereby disclaims any responsibility for them.
Contents
Foreword
Preface
Part 1: Combinational Systems and Procedures
Chapter 1 Combinational Digital Circuits
Chapter 2 Digital Circuits with Memory
Chapter 3 Instructions and Addressing
Chapter 4 Procedures, Datasets and Routines
Part 2: Designing Structures in a Computer System
Chapter 5 Simple ALUs
Chapter 6 Mathematical Procedures
Chapter 7 Fetch Decode Cycle
Chapter 8 Control Unit Stages and Interfacing
Chapter 9 Input Output Systems
Chapter 10 Designing I/O Procedures
Chapter 11 Sound on an 8 bit System
Chapter 12 Display and Image Processing
Part 3: CPU Structures and Design
Chapter 13 Designing a Simple CPU
Chapter 14 Designing an FPGA System
Foreword
This text book offers the reader an overview into creating a computer from an electrical design perspective. Throughout the book are a number of diagrams explaining how a computer would be designed as a circuit. The expectation of the author is to simplify the process of designing computers by explaining how it would be possible to implement a simple process. The book itself looks at a 16 bit computer with a few sets of instructions. Detailing the processes involved in design.
This is the second text book of three which aim to explore computer science. The author hopes to finish the compendium with a book on software engineering, which explores the paradigms needed to create successful programs and programming structures.
Preface
The purpose of this textbook is to outline and explore some of the assumptions and structures, which underpin the design of digital systems. The intention is that the reader is then able to create their own processes and design their own digital circuits. The book achieves these aims in a number of ways, the system inside a computer is broken down into a number of structures, such as I/O communication and CPU design. Hopefully explaining how these parts work and what tasks they carry out during a programme or performing complex procedures. The book is split into a number of parts which look at digital logic design, creating the structures within components and finally deals with the subject of designing small systems. Each part tries to investigate how a computer might work at a basic level and describes other structures needed in larger computers like todays 64 bit machines.
Throughout the text computer architecture is explained in a high level of detail, analysing designs and communicating how to create certain processes. The schematics formatted for the book describe the processes at the basis of transistor logic and the interfacing of components and data transfers. Although it is necessary to point out, that this is mainly to allow the reader to understand the process without being completely accurate. Most of the circuits explained here would actually work, but larger systems have moved on in such a way that older structures which the 16 bit machines used are no-longer necessary As this textbook mainly focuses on 16 bit machine processes, it may limit the reader in terms of their approach to the complex programming of todays sophisticated computers.
The intention is that the information found within the writings should bring to light the basic design and structure of a computer system. Although the overall design appears less complicated than some computer processes. The design of a basic system should be able to be achieved. The approaches found here should provide enough insight to actually build a working computerised system.
Part 1
Combinational Systems
and Procedures
1
Combinational Digital Circuits
In this chapter you will look at the following
• Logic gates
• Truth tables and Kernaugh maps
• Latches
• Combinational logic systems
1.1.1 What does combinational logic refer to?
This is a term which describes a part of the process which computers use to infer meaningful data from simple logic structures. Computers tend to think by inputting a simple value as a binary 1 or 0 and re-determining this value or logic state as a new entity or definition. For example when computers analyse data the information may be presented as ‘0010 0110’ This will then be interpreted by a decoder and translated by the computer as a logic sequence or number etc, in binary this data could have a number of different representations depending on where the code was being used. Combinational logic describes some of the processes which are used to manipulate this data set. Essentially the combinational circuit or logic, will create the pathways or gates which allow the binary to be translated. These systems are used a lot inside computers as data is constantly being moved around the system, modified and processed.
Not all systems use combinational logic for example some outputs such as audio and analogue systems, have no need to use logic states or digital sequences, as the information which the signal is trying to send does not need to use this form of translation. By the term digital logic system we mean anything which revaluates code and provides meaningful data from this analysis. For example a small computer may use a number of LCD segment displays to present the result of the calculation of two numbers. Combinational logic could be used here in a number of ways. The segment display would need a decoder to decode the binary and present the correct figure on the LCD. There would also be a number system in place which tells the computer what the value is from the initial binary code.
For instance
0110 = 6 in decimal
1010 = 10 in decimal
Or
0100 = 4 on a segment display
0111 = 7 on a segment display
This basic form of binary shows that one system is interpreted by the computer as a different value. Meaning the data has it own value set and needs to be interpreted by the computers structure. Combinational logic provides a method of completing this calculus. Bringing about meaningful data through the manipulation of code. The above example had two uses for logic systems. Computers have many more of these types of processes which are completed in a number of ways throughout a simple program or routine. A principle of computer logic or combinational systems is creating methods of reducing complex structures into smaller numbers of gates or pathways. A computer designer ideally should create the process to use the simplest form or least number of pathways. Later in the chapter K maps will be used to reduce a problem involving digital pathways. This kind of technique is useful when designing encoders or instruction sets.
1.2.1 Simple logic circuits
The simplest circuits within combination logic are made out of logic gates. These can be used when a value is determined from a number of inputs. For example a logic gate would act like a switch which turns an outputted value to 1 or ‘on’ depending on the state of two inputs. In this instance we might use an AND gate which has two inputs and one output. If both inputs receive a signal there would be a return value output. A relay system might have a safety switch would act in a similar way, where it relies on both inputs to work. In fact within digital logic there are various forms of logic gates which work in different ways to reinterpret the value of a number of inputs. Logic gates are also not constrained by the number of inputs. The figure below shows the picture typically designated for each type of gate.
001.jpgFig: 1.2.1 three logic gates (AND, OR, NOT)
As mentioned, each gate works slightly differently due to the mapping of the circuits inside the gate. For instance an OR gate will work if either input has a voltage source. Whereas the AND gate needs both voltages or the output would not be able to produce a signal. Due to the characteristics of each type of gate it is possible to create digital circuits with have a number of possible uses. Simple digital circuits are used to decode information. More complex types are used for decoding video and audio information. This is where a simple signal needs to be transformed into a better-quality digital output. The logic gates are used to re-evaluate a source signal by decoding the information. To explain how a logic gate works it is necessary to plot the expected output of a system against a truth table. Which states the logic input and the expected decoded output. Truth tables are not only useful within logic gates and are also used to solve larger processes. For instance it might be necessary to visualise an entire system, by creating a truth table which explores the expected output for each logic state.
Fig: 1.2.1 Truth tables (AND, OR, NOT)
1.2.2 Using transistors as logic gates
Truth tables and logic gates are used to visually describe the process of simple systems. They are a graphical tool for exploring how they might appear on a circuit, or for evaluating the usages within a digital system. From a design perspective this is useful as it is possible to describe the process of a circuit. However from an electronic and engineering perspective, the logic gates, are seen as the application of small transistors connected inside a circuit. To develop this idea further the figure below describes a number of gates which create the same state as the truth table. Except here a voltage source needs to be applied for the circuit to work. The output will depend on the design of the logic gate. The design of these circuits can be easily created using transistors. This knowledge is essential for the careful design of digital systems, where circuits are able to be created from the connection of a few transistors. In fact integrated chips currently use this in the construction of logic states in IC chips.
002.jpgFig: 1.2.2 Transistor logic gates
1.3.1 Abstraction of logic circuits
Combinational logic can be represented in truth tables or through using other tools such as Kernaugh maps. Here a logic system can be designed by describing how the system is intended to work. For example binary code might need to be represented in a decimal format, or a MUX needs to create a binary sequence from the application of two processes being carried out at the same time. These types of examples could use a truth table to translate how the code might be presented to the signal source. Here the expected output could be predicted by the information presented to the inputs. If we look at the diagram below the digital logic here has three inputs A, B and C. while only having one output. This is represented within programming as the value ‘F’ or output.
003.jpgFig: 1.3.1 Digital logic first sequence
In terms of abstraction of the data we can present the information