
Digital VLSI Design and Simulation with Verilog
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Digital VLSI Design Problems and Solution with Verilog delivers an expertly crafted treatment of the fundamental concepts of digital design and digital design verification with Verilog HDL. The book includes the foundational knowledge that is crucial for beginners to grasp, along with more advanced coverage suitable for research students working in the area of VLSI design. Including digital design information from the switch level to FPGA-based implementation using hardware description language (HDL), the distinguished authors have created a one-stop resource for anyone in the field of VLSI design.
Through eleven insightful chapters, you ll learn the concepts behind digital circuit design, including combinational and sequential circuit design fundamentals based on Boolean algebra. You ll also discover comprehensive treatments of topics like logic functionality of complex digital circuits with Verilog, using software simulators like ISim of Xilinx. The distinguished authors have included additional topics as well, like:
* A discussion of programming techniques in Verilog, including gate level modeling, model instantiation, dataflow modeling, and behavioral modeling
* A treatment of programmable and reconfigurable devices, including logic synthesis, introduction of PLDs, and the basics of FPGA architecture
* An introduction to System Verilog, including its distinct features and a comparison of Verilog with System Verilog
* A project based on Verilog HDLs, with real-time examples implemented using Verilog code on an FPGA board
Perfect for undergraduate and graduate students in electronics engineering and computer science engineering, Digital VLSI Design Problems and Solution with Verilogalso has a place on the bookshelves of academic researchers and private industry professionals in these fields.
More details
Other editions
Additional editions


Persons
Suman Lata Tripathi is Professor of VLSI Design at Lovely Professional University, India. She is a senior member of the IEEE and received her PhD in microelectronics and VLSI Design from Motilal Nehru National Institute of Technology, Allahabad, India.
Sobhit Saxena is Associate Professor of VLSI Design at Lovely Professional University, India. He received his PhD from IIT Roorkee, India.
Sanjeet K. Sinha, PhD, is Associate Professor of VLSI Design at Lovely Professional University, India. He received his PhD from the National Institute of Technology, Silchar, India.
Govind S. Patel, PhD, is Professor of VLSI Design at IIMT College of Engineering, Greater Noida, UP, India. He received his doctorate from Thapar University in Patiala, India.
Content
Preface xi
About the Authors xiii
1 Combinational Circuit Design 1
1.1 Logic Gates 1
1.1.1 Universal Gate Operation 3
1.1.2 Combinational Logic Circuits 5
1.2 Combinational Logic Circuits Using MSI 6
1.2.1 Adders 6
1.2.2 Multiplexers 12
1.2.3 De-multiplexer 14
1.2.4 Decoders 15
1.2.5 Multiplier 17
1.2.6 Comparators 18
1.2.7 Code Converters 19
1.2.8 Decimal to BCD Encoder 20
Review Questions 21
Multiple Choice Questions 22
Reference 23
2 Sequential Circuit Design 25
2.1 Flip-flops (F/F) 25
2.1.1 S-R F/F 25
2.1.2 D F/F 26
2.1.3 J-K F/F 26
2.1.4 T F/F 28
2.1.5 F/F Excitation Table 29
2.1.6 F/F Characteristic Table 29
2.2 Registers 31
2.2.1 Serial I/P and Serial O/P (SISO) 31
2.2.2 Serial Input and Parallel Output (SIPO) 31
2.2.3 Parallel Input and Parallel Output (PIPO) 32
2.2.4 Parallel Input and Serial Output (PISO) 32
2.3 Counters 33
2.3.1 Synchronous Counter 33
2.3.2 Asynchronous Counter 33
2.3.3 Design of a 3-Bit Synchronous Up-counter 34
2.3.4 Ring Counter 36
2.3.5 Johnson Counter 37
2.4 Finite State Machine (FSM) 37
2.4.1 Mealy and Moore Machine 38
2.4.2 Pattern or Sequence Detector 38
Review Questions 41
Multiple Choice Questions 41
Reference 42
3 Introduction to Verilog HDL 43
3.1 Basics of Verilog HDL 43
3.1.1 Introduction to VLSI 43
3.1.2 Analog and Digital VLSI 43
3.1.3 Machine Language and HDLs 44
3.1.4 Design Methodologies 44
3.1.5 Design Flow 45
3.2 Level of Abstractions and Modeling Concepts 45
3.2.1 Gate Level 45
3.2.2 Dataflow Level 47
3.2.3 Behavioral Level 47
3.2.4 Switch Level 47
3.3 Basics (Lexical) Conventions 47
3.3.1 Comments 47
3.3.2 Whitespace 48
3.3.3 Identifiers 48
3.3.4 Escaped Identifiers 48
3.3.5 Keywords 48
3.3.6 Strings 49
3.3.7 Operators 49
3.3.8 Numbers 49
3.4 Data Types 50
3.4.1 Values 50
3.4.2 Nets 50
3.4.3 Registers 51
3.4.4 Vectors 51
3.4.5 Integer Data Type 51
3.4.6 Real Data Type 51
3.4.7 Time Data Type 52
3.4.8 Arrays 52
3.4.9 Memories 52
3.5 Testbench Concept 53
Multiple Choice Questions 53
References 54
4 Programming Techniques in Verilog I 55
4.1 Programming Techniques in Verilog I 55
4.2 Gate-Level Model of Circuits 55
4.3 Combinational Circuits 57
4.3.1 Adder and Subtractor 57
4.3.2 Multiplexer and De-multiplexer 66
4.3.3 Decoder and Encoder 71
4.3.4 Comparator 75
Review Questions 77
Multiple Choice Questions 77
References 78
5 Programming Techniques in Verilog II 79
5.1 Programming Techniques in Verilog II 79
5.2 Dataflow Model of Circuits 79
5.3 Dataflow Model of Combinational Circuits 80
5.3.1 Adder and Subtractor 80
5.3.2 Multiplexer 82
5.3.3 Decoder 85
5.3.4 Comparator 86
5.4 Testbench 87
5.4.1 Dataflow Model of the Half Adder and Testbench 88
5.4.2 Dataflow Model of the Half Subtractor and Testbench 89
5.4.3 Dataflow Model of 2 × 1 Mux and Testbench 90
5.4.4 Dataflow Model of 4 × 1 Mux and Testbench 91
5.4.5 Dataflow Model of 2-to-4 Decoder and Testbench 92
Review Questions 93
Multiple Choice Questions 94
References 95
6 Programming Techniques in Verilog II 97
6.1 Programming Techniques in Verilog II 97
6.2 Behavioral Model of Combinational Circuits 98
6.2.1 Behavioral Code of a Half Adder Using If-else 98
6.2.2 Behavioral Code of a Full Adder Using Half Adders 99
6.2.3 Behavioral Code of a 4-bit Full Adder (FA) 100
6.2.4 Behavioral Model of Multiplexer Circuits 101
6.2.5 Behavioral Model of a 2-to-4 Decoder 104
6.2.6 Behavioral Model of a 4-to-2 Encoder 106
6.3 Behavioral Model of Sequential Circuits 108
6.3.1 Behavioral Modeling of the D-Latch 108
6.3.2 Behavioral Modeling of the D-F/F 109
6.3.3 Behavioral Modeling of the J-K F/F 110
6.3.4 Behavioral Modeling of the D-F/F Using J-K F/F 112
6.3.5 Behavioral Modeling of the T-F/F Using J-K F/F 113
6.3.6 Behavior Modeling of an S-R F/F Using J-K F/F 114
Review Questions 115
Multiple Choice Questions 115
References 116
7 Digital Design Using Switches 117
7.1 Switch-Level Model 117
7.2 Digital Design Using CMOS Technology 118
7.3 CMOS Inverter 119
7.4 Design and Implementation of the Combinational Circuit Using Switches 120
7.4.1 Types of Switches 120
7.4.2 CMOS Switches 121
7.4.3 Resistive Switches 121
7.4.4 Bidirectional Switches 122
7.4.5 Supply and Ground Requirements 122
7.5 Logic Implementation Using Switches 123
7.5.1 Digital Design with a Transmission Gate 127
7.6 Implementation with Bidirectional Switches 127
7.6.1 Multiplexer Using Switches 127
7.7 Verilog Switch-Level Description with Structural-Level Modeling 131
7.8 Delay Model with Switches 131
Review Questions 132
Multiple Choice Questions 133
References 134
8 Advance Verilog Topics 135
8.1 Delay Modeling and Programming 135
8.1.1 Delay Modeling 135
8.1.2 Distributed-Delay Model 135
8.1.3 Lumped-Delay Model 136
8.1.4 Pin-to-Pin-Delay Model 137
8.2 User-Defined Primitive (UDP) 138
8.2.1 Combinational UDPs 139
8.2.2 Sequential UDPs 142
8.2.3 Shorthands in UDP 144
8.3 Task and Function 144
8.3.1 Difference between Task and Function 144
8.3.2 Syntax of Task and Function Declaration 145
8.3.3 Invoking Task and Function 147
8.3.4 Examples of Task Declaration and Invocation 147
8.3.5 Examples of Function Declaration and Invocation 148
Review Questions 148
Multiple Choice Questions 149
References 149
9 Programmable and Reconfigurable Devices 151
9.1 Logic Synthesis 151
9.1.1 Technology Mapping 151
9.1.2 Technology Libraries 152
9.2 Introduction of a Programmable Logic Device 152
9.2.1 PROM, PAL and PLA 153
9.2.2 SPLD and CPLD 154
9.3 Field-Programmable Gate Array 156
9.3.1 FPGA Architecture 158
9.4 Shannon's Expansion and Look-up Table 158
9.4.1 2-Input LUT 159
9.4.2 3-Input LUT 160
9.5 FPGA Families 161
9.6 Programming with FPGA 161
9.6.1 Introduction to Xilinx Vivado Design Suite for FPGA-Based Implementations 163
9.7 ASIC and Its Applications 163
Review Questions 164
Multiple Choice Questions 164
References 167
10 Project Based on Verilog HDLs 169
10.1 Project Based on Combinational Circuit Design Using Verilog HDL 171
10.1.1 Full Adder Using Switches at Structural Level Model 171
10.1.2 Ripple-Carry Full Adder (RCFA) 174
10.1.3 4-bit Carry Look-ahead Adder (CLA) 174
10.1.4 Design of a 4-bit Carry Save Adder (CSA) 176
10.1.5 2-bit Array Multiplier 177
10.1.6 2 × 2 Bit Division Circuit Design 178
10.1.7 2-bit Comparator 179
10.1.8 16-bit Arithmetic Logic Unit 180
10.1.9 Design and Implementation of 4 × 16 Decoder Using 2 × 4 Decoder 181
10.2 Project Based on Sequential Circuit Design Using Verilog HDL 182
10.2.1 Design of 4-bit Up/down Counter 182
10.2.2 LFSR Based 8-bit Test Pattern Generator 183
10.3 Counter Design 185
10.3.1 Random Counter that Counts Sequence like 2,4,6,8,2,8...and so On 185
10.3.2 Use of Task at the Behavioral-Level Model 187
10.3.3 Traffic Signal Light Controller 188
10.3.4 Hamming Code(h,k) Encoder/Decoder 189
Review Questions 192
Multiple Choice Questions 192
References 193
11 System Verilog 195
11.1 Introduction 195
11.2 Distinct Features of System Verilog 195
11.2.1 Data Types 196
11.2.2 Arrays 197
11.2.3 Typedef 199
11.2.4 Enum 200
11.3 Always_type 201
11.4 $log2c() Function 202
11.5 System-Verilog as a Verification Language 203
Review Questions 203
Multiple Choice Questions 204
Reference 204
Index 205
1
Combinational Circuit Design
This chapter describes the combinational logic circuits design and their implementation with logic gates, multiplexers, decoders, etc. Combinational circuits are the major block of any digital design or function [1]. So, a detailed overview before the design and analysis of digital circuit with Verilog modules, plays a significant role in hardware optimization to achieve the desired outcomes.
1.1 Logic Gates
Logic gates are very useful when performing a few basic operations in any digital computer system. These logic gates perform many operations in complex circuits and other control systems, e.g., basic operations like AND, OR, and NOT. The functionality of each basic gate as well as the extended version are discussed in this chapter.
AND operation:
It performs the AND operation. The circuit diagram of the N input AND operation is shown in Figure 1.1.
Figure 1.1 Symbol of an AND gate.
The AND gate may have N number of inputs and one output. If the number of inputs are N then N = 2 conditions must be applied for input operation. Digital inputs are applied in terms of A, B, C..N, and the output is Y.
The mathematic equation is given below:
The truth table for an AND gate is provided in Table 1.1
Table 1.1 T. Table of AND gate.
I/P O/P A B Y 0 0 0 0 1 0 1 0 0 1 1 1OR operation:
It performs OR operation. The symbol for an OR operation is shown in Figure 1.2.
Figure 1.2 Symbol for an OR gate.
The OR gate may have N number of inputs and one output. If the number of inputs are N then N = 2 conditions must be applied for input operation. Digital inputs are applied in terms of A, B, C..N, and the output is Y.
The mathematic equation is given below:
The truth table for an OR gate is provided in Table 1.2 .
Table 1.2 Truth table of an OR gate.
I/P O/P A B Y 0 0 0 0 1 1 1 0 1 1 1 1NOT operation:
This is also called an inverter. The symbol for the NOT gate is shown in Figure 1.3. It has a single input device and it generates an inverted output. Table 1.3 describes the truth table of a NOT gate. The mathematical equation is written as:
Figure 1.3 Symbol for a NOT gate.
Table 1.3 Truth table of a NOT gate.
I/P O/P A Y 0 1 1 01.1.1 Universal Gate Operation
Universal gates are those in which any logical expression can be realized. The NAND and NOR gates are very popular and are widely used for realization of logical expressions. Therefore, these two NAND and NOR gates are used to implement other gates so these are called universal gates.
NAND operation
This is a universal gate. The operation NOT-AND is known as a NAND operation. It has N number of inputs and one output like other basic gates. However, two inputs and one output NAND gate are shown in Figure 1.4. Table 1.4 provides output values of a NAND gate in terms of inputs. The Boolean equation is given below:
Figure 1.4 Symbol for a NAND gate.
Table 1.4 Truth table of a NAND gate.
I/P O/P A B Y 0 0 1 0 1 1 1 0 1 1 1 0NOR operation
This is a universal gate. The operation NOT-OR is known as a NOR operation. It has N number of inputs and one output similar to basic gates. The symbol diagram of two inputs and one output is shown in Figure 1.5. Table 1.5 gives output values of a NOR gate in terms of inputs. The Boolean equation is given below:
Figure 1.5 Symbol for a NOR gate.
Table 1.5 Truth table of a NOR gate.
I/P O/P A B Y 0 0 1 0 1 0 1 0 0 1 1 0EX-OR Operation
The operation EX-OR is used in many applications. It has N number of inputs and one output like other basic gates. The symbol diagram of two I/P and one O/P is shown in Figure 1.6. Table 1.6 provides the output values of an EX-OR gate in terms of inputs. Its mathematic equation is given below:
Figure 1.6 Symbol for a NAND gate.
Table 1.6 Truth table of a NAND gate.
I/P O/P A B Y 0 0 0 0 1 1 1 0 1 1 1 01.1.2 Combinational Logic Circuits
This type of circuit depends upon the I/Ps in that particular instant of time. A memory element is not available. A combinational circuit may have a number of sub-systems as shown in Figure 1.7.
Figure 1.7 Diagram of a combinational logic circuit.
There are many ways to design these combinational logic circuits. These include:
- Boolean expression
- Set of statement
- Truth table
These designs are used to design combinational logic circuits. However, a number of methods are also available to simplify Boolean function. These include:
- Algebraic method
- K-map method
- Variable entered method
- Tabulation method
Standard representation for logical functions
Any logical functions can be represented in terms of their logical variables. Logical variables and their functions are in binary form. There are two standard forms generally being used in circuit designing.
- Sum of product (SOP)
- Product of sum (POS)
Apart from the form above, other forms are also available to design circuits. However, these forms are conveniently suitable for the design process. This is discussed in more detail in the next subsection.
1.2 Combinational Logic Circuits Using MSI
This subsection describes the simplification and realization of the combinational logic circuits using gates. These methods are used to integrate complex functions in the form of IC. There are many devices are available such as adders, multiplexers, de-multiplexers, decoders, and multipliers.
1.2.1 Adders
An adder is a combinational logic circuit that performs arithmetic sums of binary numbers and produces corresponding outputs.
Half Adder
This is a basic adder that performs arithmetic sums of two inputs and gives the corresponding output in terms of sum and carry. The diagram of a H. adder is shown in Figure 1.8.
Figure 1.8 Block diagram of a H. adder.
A and B are I/Ps and O/Ps and are the sum and carry of the H. adder. The truth table is given in Table 1.7.
Table 1.7 Truth table of a half adder.
A B SUM CARRY 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1Mathematical expressions for the H. adder are:
The circuit diagram of the H. adder is shown in Figure 1.9.
Figure 1.9 Circuit diagram of a half adder.
Full Adder
This performs the arithmetic sum of three inputs and gives the corresponding two outputs in terms of sum and carry. A block diagram of the full...
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.