The only difference between circuits of Mealy and Moore type FSM for serial adder is that in Moore type FSM circuit, output signal s is passed through an extra flip-flop and thus delayed by one clock cycle with respect to the Mealy type FSM circuit.
Verilog Code For Serial Adder With Melay
Note: Contents data are machine generated based on pre-publication provided by the publisher. Contents may have variations from the printed book or be incomplete or contain other coding.CONTENTSChapter 1Design Concepts 1.1Digital Hardware1.1.1Standard Chips1.1.2Programmable Logic Devices1.1.3Custom-Designed Chips1.2The Design Process1.3Design of Digital Hardware1.3.1Basic Design Loop1.3.2Design of a Digital Hardware Unit1.4Logic Circuit Design in This Book1.5Theory and PracticeReferencesChapter 2Introduction to Logic Circuits2.1Variables and Functions2.2Inversion2.3Truth Tables2.4Logic Gates and Networks2.4.1Analysis of a Logic Network2.5Boolean Algebra2.5.1The Venn Diagram2.5.2Notation and Terminology2.5.3Precedence of Operations2.6Synthesis Using AND, OR, and NOT Gates2.6.1Sum-of-Products and Product-of-Sums Forms2.7NAND and NOR Logic Networks2.8Design Examples2.8.1Three-Way Light Control2.8.2Multiplexer Circuits2.9Introduction to CAD Tools2.9.1Design Entry2.9.2Synthesis2.9.3Functional Simulation2.9.4Summary2.10Introduction to Verilog2.10.1Structural Specification of Logic Circuits2.10.2Behavioral Specification of Logic Circuits2.11Concluding RemarksProblemsReferencesChapter 3Implementation Technology3.1Transistor Switches3.2NMOS Logic Gates3.3CMOS Logic Gates3.3.1Speed of Logic Gate Circuits3.4Negative Logic System3.5Standard Chips3.5.17400-Series Standard Chips3.6Programmable Logic Devices3.6.1Programmable Logic Array (PLA)3.6.2Programmable Array Logic (PLA)3.6.3Programming of PLAs and PALs3.6.4Complex Programmable Logic Devices (CPLDs)3.6.5Field-Programmable Gate Arrays3.6.6Using CAD Tools to Implement Circuits in CPLDs and FPGAs3.7Custom Chips, Standard Cells, and Gate Arrays3.8Practical Aspects3.8.1MOSFET Fabrication and Behavior3.8.2MOSFET On-Resistance3.8.3Voltage Levels in Logic Gates3.8.4Noise Margin3.8.5Dynamic Operation of Logic Gates3.8.6Power Dissipation in Logic Gates3.8.7Passing 1s and 0s Through Transistor Switches3.8.8Fan-in and Fan-out in Logic Gates3.9Transmission Gates3.9.1Exclusive-OR Gates3.9.2Multiplexer Circuit3.10Implementation Details for SPLDs, CPLDs, and FPGAs3.10.1Implementation in FPGAs3.11Concluding RemarksProblemsReferencesChapter 4Optimized Implementation of Logic Functions4.1Karnaugh Map4.2Strategy for Minimizaton4.2.1Terminology4.2.2Minimization Procedure4.3Minimization of Product-of-Sum Forms4.4Incompletely Specified Functions4.5Multiple-Output Circuits4.6Multilevel Synthesis4.6.1Factoring4.6.2Functional Decomposition4.6.3Multilevel NAND and NOR Circuits4.7Analysis of Multilevel Circuits4.8Cubical Represenation4.8.1Cubes and Hypercubes4.9A Tabular Method of Minimization4.9.1Generation of Prime Implicants4.9.2Determination of a Minimum Cover4.9.3Summary of the Tabular Method4.10A Cubical Technique for Minimization4.10.1Determination of Essential Prime Implicants4.10.2Complete Procedure for Finding a Minimal Cover4.11Practical Considerations4.12CAD Tools4.12.1Logic Synthesis and Optimization4.12.2Physical Design4.12.3Timing Simulation4.12.4Summary of Design Flow4.12.5Examples of Circuits Synthesized from Verilog Code4.13Concluding RemarksProblemsReferencesChapter 5Number Representation and Arithmetic Circuits5.1Positional Number Representation5.1.1Unsigned Integers5.1.2Conversion Between Decimal and Binary Systems5.1.3Octal and Hexadecimal Representations5.2Addition of Unsigned Numbers5.2.1Decomposed Full-Adder5.2.2Ripple-Carry Adder5.2.3Design Example5.3Signed Numbers5.3.1Negative Numbers5.3.2Addition and Subtraction5.3.3Adder and Subtractor Unit5.3.4Radix-Complement Schemes5.3.5Arithmetic Overflow5.3.6Performance Issues5.4Fast Adders5.4.1Carry-Lookahead Adder5.5Design of Arithmetic Circuits Using CAD Tools5.5.1Design of Arithmetic Circuits Using Schematic Capture5.5.2Design of Arithmetic Circuits Using Verilog5.5.3Using Vectored Signals5.5.4Using a Generic Specification5.5.5Nets and Variables in Verilog5.5.6Arithmetic Assignment Statements5.5.7Representation of Numbers in Verilog Code5.6Multiplication5.6.1Array Multiplier for Unsigned Numbers5.6.2Multiplication of Signed Numbers5.7Other Numbered Representations5.7.1Fixed-Point Numbers5.7.2Floating-Point Numbers5.7.3Binary-Coded-Decimal Representation5.8ASCII Character CodeProblems ReferencesChapter 6Combinational-Circuit Building Blocks6.1Multiplexers6.1.1Synthesis of Logic Functions Using Multiplexers6.1.2Multiplexer Synthesis Using Shannon?s Expansion6.2Decoders6.2.1Demultiplexers6.3Encoders6.3.1Binary Encoders6.3.2Priority Encoders6.4Code Converters6.5Arithmetic Comparison Circuits6.6Verilog for Combinational Circuits6.6.1The Conditional Operator6.6.2The If-Else Statement6.6.3The Case Statement6.6.4The For Loop6.6.5Verilog Operators6.6.6The Generate Construct6.6.7Tasks and Functions6.7Concluding RemarksProblemsReferencesChapter 7Flip-Flops, Registers, Counters, and a Simple Processor7.1Basic Latch7.2Gated SR Latch7.2.1Gates SR Latch with NAND Gates7.3Gated D Latch7.3.1Effects of Propagation Delays7.4Master-Slave and Edge-Triggered D Flip-Flops7.4.1Master-Slave D Flip-Flop7.4.2Edge-Triggered D Flip-Flop7.4.3D Flip-Flops with Clear and Preset7.5T Flip-Flop7.5.1Configurable Flip-Flops7.6JK Flip-Flop7.7Summary of Terminology7.8Registers7.8.1Shift Register7.8.2Parallel-Access Shift Register7.9Counters7.9.1Asynchronous Counters7.9.2Synchronous Counters7.9.3Counters with Parallel Load7.10Reset Synchronization7.11Other Types of Counters7.11.1BCD Counter7.11.2Ring Counter7.11.3Johnson Counter7.11.4Remarks on Counter Design7.12Using Storage Elements with CAD Tools7.12.1Including Storage Elements in Schematics7.12.2Using Verilog Constructs for Storage Elements7.12.3Blocking and Non-blocking Assignments7.12.4Non-blocking Assignments for Combinational Circuits7.12.5Flip-Flops with Clear Capability7.13Using Registers and Counters with CAD Tools7.13.1Including Registers and Counters in Schematics7.13.2Using Library Modules in Verilog Code7.13.3Using Verilog Constructs for Registers and Counters7.14Design Examples7.14.1Bus Structure7.14.2Simple Processor7.14.3Reaction Timer7.14.4Register Transfer Level (RTL) Code7.15Concluding RemarksProblems ReferencesChapter 8Synchronous Sequential Circuits8.1Basic Design Steps8.1.1State Diagram8.1.2State Table8.1.3State Assignment8.1.4Choice of Flip-Flops and Derivation of Next-State and Output8.1.5Timing Diagram8.1.6Summary of Design Steps8.2State-Assignment Problem8.2.1One-Hot Encoding8.3Mealy State Model8.4Design of Finite State Machines Using CAD Tools8.4.1Verilog Code for Moore-Type FSMs8.4.2Synthesis of Verilog Code8.4.3Simulating and Testing the Circuit8.4.4Alternative Styles of Verilog Code8.4.5Summary of Design Steps When Using CAD Tools8.4.6Specifying the State Assignment in Verilog Code8.4.7Specification of Mealy FSMs Using Verilog8.5Serial Adder Example8.5.1Mealy-Type FSM for Serial Adder8.5.2Moore-Type FSM for Serial Adder8.5.3Verilog Code for the Serial Adder8.6State Minimization8.6.1Partitioning Minimization Procedure8.6.2Incompletely Specified FSMs8.7Design of a Counter Using the Sequential Circuit Approach8.7.1State Diagram and State Table for a Modulo-8 Counter8.7.2State Assignment8.7.3Implementation Using D-Type Flip-Flops8.7.4Implementation Using JK-Type Flip-Flops8.7.5Example?A Different Counter8.8FSM as an Arbiter Circuit8.8.1Implementation of the Arbiter Circuit8.8.2Minimizing the Output Delays for an FSM8.8.3Summary8.9Analysis of Synchronous Sequential Circuits8.10Algorithmic State Machine (ASM) Charts8.11Formal Model for Sequential Circuits8.12Concluding RemarksProblemsReferencesChapter 9Asynchronous Sequential Circuits9.1Asynchronous Behavior9.2Analysis of Asynchronous Circuits9.3Synthesis of Asynchronous Circuits9.4State Reduction9.5State Assignment9.5.1Transition Diagram9.5.2Exploiting Unspecified Next-State Entries9.5.3State Assignment Using Additional State Variables9.5.4One-Hot State Assignment9.6Hazards9.6.1Static Hazards9.6.2Dynamic Hazards9.6.3Significance of Hazards9.7A Complete Design Example9.7.1The Vending-Machine Controller9.8Concluding RemarksProblemsReferencesChapter 10Digital System Design10.1Building Block Circuits10.1.1Flip-Flops and Registers with Enable Inputs10.1.2Shift Registers with Enable Inputs10.1.3Static Random Access Memory (SRAM)10.1.4SRAM Blocks in PLDs10.2Design Examples10.2.1A Bit-Counting Circuit10.2.2ASM-Chart-Implied Timing Information10.2.3Shift-and-Add Multiplier10.2.4Divider10.2.5Arithmetic Mean10.2.6Sort Operation10.3Clock Synchronization10.3.1Clock Skew10.3.2Flip-Flop Timing Paramters10.3.3Asynchronous Inputs to Flip-Flops10.3.4Switch Debouncing10.4Concluding RemarksProblemsReferencesChapter 11Testing of Logic Circuits11.1Fault Model11.1.1Stuck-at Model11.1.2Single and Multiple Faults11.1.3CMOS Circuits11.2Complexity of a Test Set11.3Path Sensitizing11.3.1Detection of a Specific Fault11.4Circuits with Tree Structure11.5Random Tests11.6Testing of Sequential Circuits11.6.1Design for Testability11.7Built-in Self-Test11.7.1Built-in Logic Block Observer11.7.2Signature Analysis11.7.3Boundary Scan11.8Printed Circuit Boards11.8.1Testing of PCBs11.8.2Instrumentation11.9Concluding RemarksProblemsReferencesAppendix AVerilog ReferenceA.1Documentation in Verilog CodeA.2White SpaceA.3Signals in Verilog CodeA.4Identifier NamesA.5Signal Values, Numbers, and ParametersA.6Net and Variable TypesA.6.1NetsA.6.2VariablesA.6.3MemoriesA.7OperatorsA.8Verilog ModuleA.9Gate InstantiationsA.10Concurrent StatementsA.10.1Continuous AssignmentsA.10.2Using ParametersA.11Procedural StatementsA.11.1Always and Initial BlocksA.11.2The If-Else StatementA.11.3Statement OrderingA.11.4The Case StatementA.11.5Casex and Casez StatementsA.11.6Loop StatementsA.11.7Blocking verus Non-blocking Assignments for Combinational CircuitsA.12Using SubcircuitsA.12.1Subcircuit ParametersA.12.2Verilog 2001 Generate CapabilityA.13Functions and TasksA.14Sequential CircuitsA.14.1A Gated D LatchA.14.2D Flip-FlopA.14.3Flip-Flops with ResetA.14.4Instantiating a Flip-Flop from a LibraryA.14.5RegistersA.14.6Shift RegistersA.14.7CountersA.14.8An Example of a Sequential CircuitA.14.9Moore-Type Finite State MachinesA.14.10Melay-Type Finite State MachinesA.15Guidelines for Writing Verilog CodeA.16MAX+PlusII Verilog SupportA.16.1Limitations in MAX+PlusIIA.17Concluding RemarksReferencesAppendix BTutorial 1B.1IntroductionB.1.1Getting StartedB.2Design Entry Using Schematic CaptureB.2.1Specifying the Project NameB.2.2Using the Graphic EditorB.2.3Synthesizing a Circuit from the SchematicB.2.4Performing Functional SimulationB.2.5Using the Message Processor to Locate and Fix ErrorsB.3Design Entry Using VerilogB.3.1Specifying the Project NameB.3.2Using the Text EditorB.3.3Synthesizing a Circuit from the Verilog CodeB.3.4Performing Functional SimulationB.3.5Using the Message Processor to Debug Verilog CodeB.4Design Entry Using Truth TablesB.4.1Using the Waveform EditorB.4.2Create the Timing DiagramB.4.3Synthesizing a Circuit from the WaveformsB.5Mixing Design-Entry MethodsB.5.1Creating a Schematic that Includes a Truth TableB.5.2Synthesizing and Simulating a Circuit from the SchematicB.5.3Concluding Remarks Appendix CTutorial 2C.1Implementing a Circuit in a MAX 7000 CPLDC.1.1Using the CompilerC.1.2Selecting a ChipC.1.3Viewing the Logic Synthesis OptionsC.1.4Examining the Implemented CircuitC.1.5Running the Timing SimulatorC.1.6Using the Floorplan EditorC.2Implementing a Circuit in a fFLEX 10K FPGAC.3Downloading a Circuit into a DeviceC.4Making Pin AssignmentsC.4.1Assigning Signals to Pins in the Floorplan EditorC.4.2Making Pin Assignments PermanentC.5Concluding RemarksAppendix DTutorial 3D.1Design Using Verilog CodeD.1.1The Ripple-Carry Adder CodeD.1.2Using the Timing Analyzer ModuleD.2Using an LPM ModuleD.3Design of a Sequential CircuitD.3.1Using the Graphic EditorD.3.2Synthesizing a Circuit and Using the Timing SimulatorD.3.3Using the Timing AnalyzerD.3.4Using Verilog CodeD.4Design of a Finite State MachineD.4.1Implementation in a CPLDD.4.2Implementation in an FPGAD.5Concluding RemarksAppendix EE.1Simple PLDsE.1.1The 22V10 PAL DeviceE.2 Complex PLDsE.2.1Altera MAX 7000E.3Field-Programmable Gate ArraysE.3.1Altera FLEX 10KE.3.2Xilinx XC 4000E.3.3Altera APEX 20KE.3.4Altera StratixE.3.5Xilix VirtexE.4Transistor-Transistor LogicE.4.1TTL Circuit FamiliesReferencesIndex 2ff7e9595c
Comments