This document provides information about a Logic Design II course taught by Dr. Ihab Talkhan. The course covers advanced digital circuit design topics including sequential circuits, finite state machines, and programmable logic devices. It consists of 2-hour lectures per week. Assignments will include problems from specified textbooks. Grading will be based on a midterm exam, assignments, and a final exam. The course aims to teach students about digital logic design principles and the use of CAD tools for implementation.
This document provides an overview of the Digital System Design and Labs course taught by Professor Ming Ouhyoung at National Taiwan University. The course covers digital logic design principles like Boolean algebra and finite state machines. Students learn to design combinational and sequential logic circuits using hardware description languages like VHDL. They also complete a digital design project implementing an integrated circuit using FPGAs or application-specific integrated circuits. The goals are for students to gain experience designing and implementing complex digital systems as engineers. On completing the course, students will be able to analyze, design, prototype, and communicate digital circuit designs.
UNIT I- CPLD & FPGA ARCHITECTURE & APPLICATIONSDr.YNM
Dr. Y.Narasimha Murthy Ph.D introduces programmable logic devices and their evolution from PLDs to CPLDs and FPGAs. The document discusses the basic architecture and applications of ROM, RAM, PLDs including PLA, PAL and GAL. It provides details on the programmable AND and OR planes in a PLA and compares device types based on their AND and OR array programmability. SPLDs, CPLDs and FPGAs are the main types of PLDs discussed.
This document discusses various concepts related to physical design implementation. It describes the inputs and outputs of physical design tools, important checks to perform before starting design such as clock and high fanout net budgeting, and concepts like floorplanning, placement, routing, libraries, multi-voltage design, and clock tree synthesis and optimization.
This document provides an overview of a digital systems design lecture given at Shiraz University. It covers topics including:
- The von Neumann architecture and pipelining approaches
- Programmable logic devices including PLDs, CPLDs, FPGAs and their applications
- FPGA internal architectures including configurable logic blocks, interconnect networks, and embedded peripherals
Digital standard cell library Design flowijsrd.com
Commercial library cells are companies 'proprietary information and understandably companies usually impose certain restrictions on the access and use of their library cells. Those restrictions on commercial library cells severely hamper VLSI research and teaching activities of academia. To address the problem the goal of this paper is to discuss the development of standard cell library. This involves in creating new standard cells, layout design, simulation and verification of each standard cell and finally characterization of all cells for timing and functional properties.
The document provides information about the course "Microprocessor Interfacing & Embedded System" to be offered in Spring 2023. It includes the course code, title, semester, instructor details, course content outline, objectives, outcomes, assessment methods, recommended books, and introduction content. The key topics to be covered are the architecture of microprocessor 8086, interfacing of microprocessor with peripheral devices, assembly language programming, and use of emulators for simulation.
VLSI design involves integrating hundreds of thousands of transistors onto a single microchip. It follows Moore's law, which predicts that the number of transistors per chip doubles every 18 months. The VLSI design flow includes behavioral, structural, and dataflow modeling using Verilog HDL. Test benches are used to apply inputs to designs and verify functionality. Common digital designs include microprocessors, UARTs for serial communication, and finite state machines like Mealy and Moore machines.
This document provides an overview of the Digital System Design and Labs course taught by Professor Ming Ouhyoung at National Taiwan University. The course covers digital logic design principles like Boolean algebra and finite state machines. Students learn to design combinational and sequential logic circuits using hardware description languages like VHDL. They also complete a digital design project implementing an integrated circuit using FPGAs or application-specific integrated circuits. The goals are for students to gain experience designing and implementing complex digital systems as engineers. On completing the course, students will be able to analyze, design, prototype, and communicate digital circuit designs.
UNIT I- CPLD & FPGA ARCHITECTURE & APPLICATIONSDr.YNM
Dr. Y.Narasimha Murthy Ph.D introduces programmable logic devices and their evolution from PLDs to CPLDs and FPGAs. The document discusses the basic architecture and applications of ROM, RAM, PLDs including PLA, PAL and GAL. It provides details on the programmable AND and OR planes in a PLA and compares device types based on their AND and OR array programmability. SPLDs, CPLDs and FPGAs are the main types of PLDs discussed.
This document discusses various concepts related to physical design implementation. It describes the inputs and outputs of physical design tools, important checks to perform before starting design such as clock and high fanout net budgeting, and concepts like floorplanning, placement, routing, libraries, multi-voltage design, and clock tree synthesis and optimization.
This document provides an overview of a digital systems design lecture given at Shiraz University. It covers topics including:
- The von Neumann architecture and pipelining approaches
- Programmable logic devices including PLDs, CPLDs, FPGAs and their applications
- FPGA internal architectures including configurable logic blocks, interconnect networks, and embedded peripherals
Digital standard cell library Design flowijsrd.com
Commercial library cells are companies 'proprietary information and understandably companies usually impose certain restrictions on the access and use of their library cells. Those restrictions on commercial library cells severely hamper VLSI research and teaching activities of academia. To address the problem the goal of this paper is to discuss the development of standard cell library. This involves in creating new standard cells, layout design, simulation and verification of each standard cell and finally characterization of all cells for timing and functional properties.
The document provides information about the course "Microprocessor Interfacing & Embedded System" to be offered in Spring 2023. It includes the course code, title, semester, instructor details, course content outline, objectives, outcomes, assessment methods, recommended books, and introduction content. The key topics to be covered are the architecture of microprocessor 8086, interfacing of microprocessor with peripheral devices, assembly language programming, and use of emulators for simulation.
VLSI design involves integrating hundreds of thousands of transistors onto a single microchip. It follows Moore's law, which predicts that the number of transistors per chip doubles every 18 months. The VLSI design flow includes behavioral, structural, and dataflow modeling using Verilog HDL. Test benches are used to apply inputs to designs and verify functionality. Common digital designs include microprocessors, UARTs for serial communication, and finite state machines like Mealy and Moore machines.
Crash course on data streaming (with examples using Apache Flink)Vincenzo Gulisano
These are the slides I used for a crash course (4 hours) on data streaming. It contains both theory / research aspects as well as examples based on Apache Flink (DataStream API)
This document provides information on the course EC8552 Computer Architecture and Organization. The objectives of the course are to understand MIPS instruction set architecture, arithmetic and logic units, data and control paths, memory and I/O organization, and parallel processing architectures. The outcomes are that students will be able to analyze computer system performance, illustrate arithmetic operations, describe pipelining and hazards, explain memory and I/O, and interpret parallel architectures. Assessments include tests, quizzes, assignments, and tutorials. The course will use an online Canvas platform.
Seminar on Parallel and Concurrent ProgrammingStefan Marr
This document outlines the agenda, tasks, deadlines, grading, and timeline for a seminar on parallel and concurrent programming. The agenda includes an introduction to concurrent programming models, an overview of selected seminar papers, and student presentations. Students must present on a selected paper, provide a summary and questions in advance, and submit a written report by the deadline. The report can focus on the theoretical treatment of a paper or practical reproduction of experiments. Attendance, the quality of the presentation and discussion, and the write-up determine grading. Consultations are available to prepare the presentation and agree on the report focus.
The document discusses different types of programmable logic devices including memory units, random access memory (RAM), read only memory (ROM), programmable logic arrays (PLA), programmable array logic (PAL), and complex programmable logic devices (CPLD). It describes the basic components, operations, and applications of each type of programmable logic device. Memory units can store and retrieve binary data and include RAM and ROM. RAM can be written to and read from while ROM can only be read from. PLDs like PLA and PAL provide configurable logic functions using AND and OR gates that can be programmed. CPLDs contain multiple configurable logic blocks and a programmable interconnect
The document provides an introduction to running the Siesta software package for performing density functional theory (DFT) calculations. It describes the basic input variables needed, including system descriptors, structural parameters, functional and basis set specifications. It also outlines how to run Siesta from the command line and analyze outputs such as electronic band structures, densities of states, and charge densities. Post-processing tools are also summarized.
xCORE products are designed from the ground up to solve problems that are beyond traditional microcontrollers:
- Multiple deterministic processor cores that can execute several tasks simultaneously and independently.
- External interfaces and peripherals are implemented in software – you choose the exact combination of interfaces you need.
- Perform static timing analysis and hardware-like simulations on your designs, using unique development tools that use the determinism of the architecture.
- Test on real hardware and collect real-time data from a running application.
The unparalleled responsiveness of the xCORE I/O ports is rooted in some fundamental features:
- Single cycle instruction execution
- No interrupts
- No cache
- Multiple cores allow concurrent independent task execution
- Hardware scheduler performs 'RTOS-like' functions
A presentation talking about how we use Apache ActiveMQ (fuse-message-broker) at CERN for monitoring the Large Hadron Collider.
Presented at the FUSE community day - London 2010
The presentation summarizes key aspects of digital electronic circuits related to memory. It begins with an introduction to memory and discusses different categories and characteristics of memory like volatility and mutability. It then describes various forms of primary memory including RAM, ROM, PROM and EPROM and their characteristics. Specific memory technologies like SRAM, DRAM are explained in detail covering concepts like addressing, reading and writing cycles. The presentation concludes with discussing advances in memory technologies.
This document discusses the basics of RTL design and synthesis. It covers stages of synthesis including identifying state machines, inferring logic and state elements, optimization, and mapping to target technology. It notes that not everything that can be simulated can be synthesized. Good coding style reduces hazards and improves optimization. Examples are given of how logic, sequential logic, and datapaths can be synthesized. Pipelining is discussed as dividing complex operations into simpler operations processed sequentially.
0.FPGA for dummies: Historical introductionMaurizio Donna
The document provides an introduction to field programmable gate arrays (FPGAs). It discusses FPGA architecture including basic blocks like logic, flip flops, wires and I/Os. It also covers FPGA programming flow and software. The document provides historical context on the evolution of programmable logic from logic gates to FPGAs and discusses how FPGAs can be reprogrammed to implement different digital circuits and functions.
FPGAs as Components in Heterogeneous HPC Systems (paraFPGA 2015 keynote) Wim Vanderbauwhede
This document provides a historical overview of the evolution of FPGA technology and programming approaches over several decades. It discusses early theoretical foundations in the 1930s-40s and the development of integrated circuits, hardware description languages, and high-level synthesis tools from the 1950s onwards. More recently, it describes the rise of heterogeneous computing using GPUs, FPGAs and other accelerators, and the ongoing challenges around programming such systems at a suitable level of abstraction.
This document discusses various digital circuit implementation approaches including full-custom design, semi-custom design using standard cells, and programmable logic approaches using PLAs, PALs, FPGAs, and CPLDs. Full-custom design allows maximum optimization but requires significant design effort. Semi-custom uses pre-defined cells and automation to reduce effort. Programmable logic allows late-binding implementation through configurable interconnects.
The document discusses chip design as a metaphor for an urban system. It describes chip design as involving different levels of abstraction, from transistors to logic gates to larger functional units. Different teams work at each level of abstraction, with tools to check that one level is consistent with the whole design. The document suggests chip design handles complexity through hierarchical abstraction levels and verification tools, while noting key differences from urban planning such as dedicated interconnect wiring and lack of opinions from transistors.
This document provides an overview of memory types and logic families. It discusses static and dynamic memories, including SRAM and DRAM. Circuit diagrams are presented to illustrate one-bit and larger memory designs. Flash memory and its operation are also covered. The history of transistors, FETs, and integrated circuits is reviewed. Memory timing diagrams and the evolution of programmable logic devices are summarized as well.
This document discusses digital logic concepts including binary logic, logic gates, logic families, and programmable logic devices. It defines binary logic as consisting of binary variables and logical operations. It states that the three basic logic gates are AND, OR, and NOT. It also discusses combinational logic circuits, including half adders, full adders, decoders, encoders, multiplexers and comparators. Finally, it covers programmable logic devices such as ROM, PROM, EPROM and EEPROM.
The document outlines the teaching and evaluation scheme for the 4th semester Information Technology program for the year 2019-20. It includes details of the subjects, periods per week, internal and end semester assessments.
There are 4 theory subjects - Operating System, Data Communication and Computer Networks, Microprocessor & Microcontroller, and Database Management System. There are also 4 practical subjects with labs. The total periods per week are 17 theory and 22 practical. Students will be evaluated through internal assessments, sessional exams, and end semester exams. The minimum pass marks are 35% for theory, 50% for practical, and 40% overall.
This document analyzes and compares the area, power, and delay performance of different logic element architectures in field programmable gate arrays (FPGAs) using 16nm technology. It first describes the conventional FPGA architecture and sources of power dissipation. It then examines the key power-hungry components in FPGAs, including logic blocks, routing channels, and I/O pads. The document establishes the need for low-power FPGA design. It analyzes the conventional logic block structure containing lookup tables (LUTs), flip-flops, and multiplexers. Experimental setups are described for standard and alternative 16x1 multiplexer architectures and D-flip-flop designs. Comparisons of area,
This is a classroom presentation for the basic concepts of HDL, using Verilog as the programming language. Module 3 deals with programmable logic devices.
This document discusses computer memory hierarchies and caches. It begins by reviewing previous lectures on memory organization, hierarchies, and caches. It then discusses the ideal properties of memory from a programmer's perspective and why achieving those properties is challenging. The document introduces the concept of a memory hierarchy to balance fast and large memory. It covers memory technologies like SRAM, DRAM, and PCM. It discusses how caches exploit temporal and spatial locality to improve average memory access times. The goal of caches is to maintain recently accessed data in faster memory levels.
The document provides an overview of digital circuits and microcomputers. It defines key digital logic terms and concepts like binary numbers, logic gates, Boolean algebra, and Karnaugh maps. It also describes the functional blocks of a microcomputer like CPU, memory, and I/O. Memory types like RAM, ROM, and mass storage are discussed. Assembly language programming and compilers are briefly covered.
Crash course on data streaming (with examples using Apache Flink)Vincenzo Gulisano
These are the slides I used for a crash course (4 hours) on data streaming. It contains both theory / research aspects as well as examples based on Apache Flink (DataStream API)
This document provides information on the course EC8552 Computer Architecture and Organization. The objectives of the course are to understand MIPS instruction set architecture, arithmetic and logic units, data and control paths, memory and I/O organization, and parallel processing architectures. The outcomes are that students will be able to analyze computer system performance, illustrate arithmetic operations, describe pipelining and hazards, explain memory and I/O, and interpret parallel architectures. Assessments include tests, quizzes, assignments, and tutorials. The course will use an online Canvas platform.
Seminar on Parallel and Concurrent ProgrammingStefan Marr
This document outlines the agenda, tasks, deadlines, grading, and timeline for a seminar on parallel and concurrent programming. The agenda includes an introduction to concurrent programming models, an overview of selected seminar papers, and student presentations. Students must present on a selected paper, provide a summary and questions in advance, and submit a written report by the deadline. The report can focus on the theoretical treatment of a paper or practical reproduction of experiments. Attendance, the quality of the presentation and discussion, and the write-up determine grading. Consultations are available to prepare the presentation and agree on the report focus.
The document discusses different types of programmable logic devices including memory units, random access memory (RAM), read only memory (ROM), programmable logic arrays (PLA), programmable array logic (PAL), and complex programmable logic devices (CPLD). It describes the basic components, operations, and applications of each type of programmable logic device. Memory units can store and retrieve binary data and include RAM and ROM. RAM can be written to and read from while ROM can only be read from. PLDs like PLA and PAL provide configurable logic functions using AND and OR gates that can be programmed. CPLDs contain multiple configurable logic blocks and a programmable interconnect
The document provides an introduction to running the Siesta software package for performing density functional theory (DFT) calculations. It describes the basic input variables needed, including system descriptors, structural parameters, functional and basis set specifications. It also outlines how to run Siesta from the command line and analyze outputs such as electronic band structures, densities of states, and charge densities. Post-processing tools are also summarized.
xCORE products are designed from the ground up to solve problems that are beyond traditional microcontrollers:
- Multiple deterministic processor cores that can execute several tasks simultaneously and independently.
- External interfaces and peripherals are implemented in software – you choose the exact combination of interfaces you need.
- Perform static timing analysis and hardware-like simulations on your designs, using unique development tools that use the determinism of the architecture.
- Test on real hardware and collect real-time data from a running application.
The unparalleled responsiveness of the xCORE I/O ports is rooted in some fundamental features:
- Single cycle instruction execution
- No interrupts
- No cache
- Multiple cores allow concurrent independent task execution
- Hardware scheduler performs 'RTOS-like' functions
A presentation talking about how we use Apache ActiveMQ (fuse-message-broker) at CERN for monitoring the Large Hadron Collider.
Presented at the FUSE community day - London 2010
The presentation summarizes key aspects of digital electronic circuits related to memory. It begins with an introduction to memory and discusses different categories and characteristics of memory like volatility and mutability. It then describes various forms of primary memory including RAM, ROM, PROM and EPROM and their characteristics. Specific memory technologies like SRAM, DRAM are explained in detail covering concepts like addressing, reading and writing cycles. The presentation concludes with discussing advances in memory technologies.
This document discusses the basics of RTL design and synthesis. It covers stages of synthesis including identifying state machines, inferring logic and state elements, optimization, and mapping to target technology. It notes that not everything that can be simulated can be synthesized. Good coding style reduces hazards and improves optimization. Examples are given of how logic, sequential logic, and datapaths can be synthesized. Pipelining is discussed as dividing complex operations into simpler operations processed sequentially.
0.FPGA for dummies: Historical introductionMaurizio Donna
The document provides an introduction to field programmable gate arrays (FPGAs). It discusses FPGA architecture including basic blocks like logic, flip flops, wires and I/Os. It also covers FPGA programming flow and software. The document provides historical context on the evolution of programmable logic from logic gates to FPGAs and discusses how FPGAs can be reprogrammed to implement different digital circuits and functions.
FPGAs as Components in Heterogeneous HPC Systems (paraFPGA 2015 keynote) Wim Vanderbauwhede
This document provides a historical overview of the evolution of FPGA technology and programming approaches over several decades. It discusses early theoretical foundations in the 1930s-40s and the development of integrated circuits, hardware description languages, and high-level synthesis tools from the 1950s onwards. More recently, it describes the rise of heterogeneous computing using GPUs, FPGAs and other accelerators, and the ongoing challenges around programming such systems at a suitable level of abstraction.
This document discusses various digital circuit implementation approaches including full-custom design, semi-custom design using standard cells, and programmable logic approaches using PLAs, PALs, FPGAs, and CPLDs. Full-custom design allows maximum optimization but requires significant design effort. Semi-custom uses pre-defined cells and automation to reduce effort. Programmable logic allows late-binding implementation through configurable interconnects.
The document discusses chip design as a metaphor for an urban system. It describes chip design as involving different levels of abstraction, from transistors to logic gates to larger functional units. Different teams work at each level of abstraction, with tools to check that one level is consistent with the whole design. The document suggests chip design handles complexity through hierarchical abstraction levels and verification tools, while noting key differences from urban planning such as dedicated interconnect wiring and lack of opinions from transistors.
This document provides an overview of memory types and logic families. It discusses static and dynamic memories, including SRAM and DRAM. Circuit diagrams are presented to illustrate one-bit and larger memory designs. Flash memory and its operation are also covered. The history of transistors, FETs, and integrated circuits is reviewed. Memory timing diagrams and the evolution of programmable logic devices are summarized as well.
This document discusses digital logic concepts including binary logic, logic gates, logic families, and programmable logic devices. It defines binary logic as consisting of binary variables and logical operations. It states that the three basic logic gates are AND, OR, and NOT. It also discusses combinational logic circuits, including half adders, full adders, decoders, encoders, multiplexers and comparators. Finally, it covers programmable logic devices such as ROM, PROM, EPROM and EEPROM.
The document outlines the teaching and evaluation scheme for the 4th semester Information Technology program for the year 2019-20. It includes details of the subjects, periods per week, internal and end semester assessments.
There are 4 theory subjects - Operating System, Data Communication and Computer Networks, Microprocessor & Microcontroller, and Database Management System. There are also 4 practical subjects with labs. The total periods per week are 17 theory and 22 practical. Students will be evaluated through internal assessments, sessional exams, and end semester exams. The minimum pass marks are 35% for theory, 50% for practical, and 40% overall.
This document analyzes and compares the area, power, and delay performance of different logic element architectures in field programmable gate arrays (FPGAs) using 16nm technology. It first describes the conventional FPGA architecture and sources of power dissipation. It then examines the key power-hungry components in FPGAs, including logic blocks, routing channels, and I/O pads. The document establishes the need for low-power FPGA design. It analyzes the conventional logic block structure containing lookup tables (LUTs), flip-flops, and multiplexers. Experimental setups are described for standard and alternative 16x1 multiplexer architectures and D-flip-flop designs. Comparisons of area,
This is a classroom presentation for the basic concepts of HDL, using Verilog as the programming language. Module 3 deals with programmable logic devices.
This document discusses computer memory hierarchies and caches. It begins by reviewing previous lectures on memory organization, hierarchies, and caches. It then discusses the ideal properties of memory from a programmer's perspective and why achieving those properties is challenging. The document introduces the concept of a memory hierarchy to balance fast and large memory. It covers memory technologies like SRAM, DRAM, and PCM. It discusses how caches exploit temporal and spatial locality to improve average memory access times. The goal of caches is to maintain recently accessed data in faster memory levels.
The document provides an overview of digital circuits and microcomputers. It defines key digital logic terms and concepts like binary numbers, logic gates, Boolean algebra, and Karnaugh maps. It also describes the functional blocks of a microcomputer like CPU, memory, and I/O. Memory types like RAM, ROM, and mass storage are discussed. Assembly language programming and compilers are briefly covered.
Similar to F21-LOGIC DESIGN Advanced lec-FOE-CMPN111 SP23.pptx (20)
Software Engineering and Project Management - Software Testing + Agile Method...Prakhyath Rai
Software Testing: A Strategic Approach to Software Testing, Strategic Issues, Test Strategies for Conventional Software, Test Strategies for Object -Oriented Software, Validation Testing, System Testing, The Art of Debugging.
Agile Methodology: Before Agile – Waterfall, Agile Development.
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Sinan KOZAK
Sinan from the Delivery Hero mobile infrastructure engineering team shares a deep dive into performance acceleration with Gradle build cache optimizations. Sinan shares their journey into solving complex build-cache problems that affect Gradle builds. By understanding the challenges and solutions found in our journey, we aim to demonstrate the possibilities for faster builds. The case study reveals how overlapping outputs and cache misconfigurations led to significant increases in build times, especially as the project scaled up with numerous modules using Paparazzi tests. The journey from diagnosing to defeating cache issues offers invaluable lessons on maintaining cache integrity without sacrificing functionality.
Blood finder application project report (1).pdfKamal Acharya
Blood Finder is an emergency time app where a user can search for the blood banks as
well as the registered blood donors around Mumbai. This application also provide an
opportunity for the user of this application to become a registered donor for this user have
to enroll for the donor request from the application itself. If the admin wish to make user
a registered donor, with some of the formalities with the organization it can be done.
Specialization of this application is that the user will not have to register on sign-in for
searching the blood banks and blood donors it can be just done by installing the
application to the mobile.
The purpose of making this application is to save the user’s time for searching blood of
needed blood group during the time of the emergency.
This is an android application developed in Java and XML with the connectivity of
SQLite database. This application will provide most of basic functionality required for an
emergency time application. All the details of Blood banks and Blood donors are stored
in the database i.e. SQLite.
This application allowed the user to get all the information regarding blood banks and
blood donors such as Name, Number, Address, Blood Group, rather than searching it on
the different websites and wasting the precious time. This application is effective and
user friendly.
Open Channel Flow: fluid flow with a free surfaceIndrajeet sahu
Open Channel Flow: This topic focuses on fluid flow with a free surface, such as in rivers, canals, and drainage ditches. Key concepts include the classification of flow types (steady vs. unsteady, uniform vs. non-uniform), hydraulic radius, flow resistance, Manning's equation, critical flow conditions, and energy and momentum principles. It also covers flow measurement techniques, gradually varied flow analysis, and the design of open channels. Understanding these principles is vital for effective water resource management and engineering applications.
Accident detection system project report.pdfKamal Acharya
The Rapid growth of technology and infrastructure has made our lives easier. The
advent of technology has also increased the traffic hazards and the road accidents take place
frequently which causes huge loss of life and property because of the poor emergency facilities.
Many lives could have been saved if emergency service could get accident information and
reach in time. Our project will provide an optimum solution to this draw back. A piezo electric
sensor can be used as a crash or rollover detector of the vehicle during and after a crash. With
signals from a piezo electric sensor, a severe accident can be recognized. According to this
project when a vehicle meets with an accident immediately piezo electric sensor will detect the
signal or if a car rolls over. Then with the help of GSM module and GPS module, the location
will be sent to the emergency contact. Then after conforming the location necessary action will
be taken. If the person meets with a small accident or if there is no serious threat to anyone’s
life, then the alert message can be terminated by the driver by a switch provided in order to
avoid wasting the valuable time of the medical rescue team.
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELijaia
As digital technology becomes more deeply embedded in power systems, protecting the communication
networks of Smart Grids (SG) has emerged as a critical concern. Distributed Network Protocol 3 (DNP3)
represents a multi-tiered application layer protocol extensively utilized in Supervisory Control and Data
Acquisition (SCADA)-based smart grids to facilitate real-time data gathering and control functionalities.
Robust Intrusion Detection Systems (IDS) are necessary for early threat detection and mitigation because
of the interconnection of these networks, which makes them vulnerable to a variety of cyberattacks. To
solve this issue, this paper develops a hybrid Deep Learning (DL) model specifically designed for intrusion
detection in smart grids. The proposed approach is a combination of the Convolutional Neural Network
(CNN) and the Long-Short-Term Memory algorithms (LSTM). We employed a recent intrusion detection
dataset (DNP3), which focuses on unauthorized commands and Denial of Service (DoS) cyberattacks, to
train and test our model. The results of our experiments show that our CNN-LSTM method is much better
at finding smart grid intrusions than other deep learning algorithms used for classification. In addition,
our proposed approach improves accuracy, precision, recall, and F1 score, achieving a high detection
accuracy rate of 99.50%.
Discover the latest insights on Data Driven Maintenance with our comprehensive webinar presentation. Learn about traditional maintenance challenges, the right approach to utilizing data, and the benefits of adopting a Data Driven Maintenance strategy. Explore real-world examples, industry best practices, and innovative solutions like FMECA and the D3M model. This presentation, led by expert Jules Oudmans, is essential for asset owners looking to optimize their maintenance processes and leverage digital technologies for improved efficiency and performance. Download now to stay ahead in the evolving maintenance landscape.
2. Dr. Ihab Talkhan
2
Cairo University
Faculty of Engineering
Computer Engineering Department
Logic Design II
Monday – SPRING 2023
Course Description:
An advanced course in digital circuit design, this course begins with a review of
switching algebra and combinational design, programmable logic devices, and
combinational circuits including encoders/decoders and
multiplexers/demultiplexers. Sequential circuits using latches, flip-flops, ROM and
RAM and also reviewed. Topics in sequential circuit design are treated, including
finite state machines, Mealy and Moore models, state diagrams and state tables,
optimization, asynchronous sequential circuits, and races and hazards. In
addition, implementation of sequential circuits with programmable logic devices is
discussed, as are topics in logic circuit testing and testable design.
Credit: This course consists of 2 Hour lecture per week
Text book:
• M.Morris Mano and Michael D. Ciletti, “Digital Design with an Introduction to
the Verilog HDL” , 5th edition, Dorling Kindersley (india) Pvt. Ltd, 2013
• M. Morris Mano, Michael D. Ciletti, “ Digital Design” , 5th edition, Prentice Hall,
2012
• Digital Fundamentals with VHDL by Thomas F Floyd, Prentice Hall, 2003
3. Dr. Ihab Talkhan
3
Instructor(s): Dr. Ihab E. Talkhan
This course is designed to Let:
1. Students learn the electrical characteristics of CMOS and TTL logic
gates and should understand how these devices function in a typical
application circuit, including interfacing with other circuit elements.
2. Students learn how to design practical digital systems using standard
medium scale and large scale integrated circuits, including
programmable logic circuits.
3. Students learn how to use modern CAD tools including schematic
capture editors, simulations, and logic synthesis compilers based on
VHDL.
4. Students gain experience with a variety of standard digital memory
circuits and subsystems, and should understand their internal design
and their application in more complex systems.
5. Students gain experience with digital system testing techniques
4. Course contents:
Assignments
Title
#
Selected
problems from
the Text Books
Introduction. Overview of digital concepts
1
Review of basic Number systems, Boolean Algebra and combinational
logic design
2
Timing in combinational circuits, Loading, Noise Margins, Logic gate
Fanout, Timing hazard
3
Programmable logic: PLDs, FPGAs, etc.
4
MSI and VHDL implementations of building block components:
5
Decoders, MUXs, tri-state logic, Adders, etc.
Design examples using combinational components
6
Review of sequential logic elements and systems: flip-flops, counters and
shift-registers
7
Clocked synchronous state machines
8
Synchronous design using state machines
9
Practical timing considerations and designs using VHDL
10
Memory components (ROM, SRAM, DRAM)
11
Testability
12
5. Dr. Ihab Talkhan
5
Grading: 20 point (MID-Term - no make-ups)
for CR, 3 absence max.)
40 points Assignments/ Labs / Project (all
assignments from the text book, end of chapter
selected problems
+ FINAL out of 40
Testing dates: to be announced later
Final test date: refer to First term Schedule
Assistant: to be announced later
Office hours: to be announced later
italkhan@aucegypt.edu
italkhan@cu.edu.eg. currently not used
11. Dr. Ihab Talkhan
11
Major Units
For any system, there are three major units:
Central processing unit CPU
Memory unit
Input/Output unit
In digital system, memory is a collection of cells capable of
storing binary information (permanent or temporary).
It contains electronic circuits for storing and retrieving
information.
It interacts with the CPU and input/output units.
12. Dr. Ihab Talkhan
12
Memory types
Random Access Memory
RAM
Read Only Memory
ROM
• It is a programmable logic
devices PLDs, which are
integrated circuits with
internal logic gates
connected through
electronic fuses.
• Programming is done by
blowing these fuses to
obtain the desired logic
function.
• Accept new information for
storage to be available later
for use (write)
• Transfer stored information
out of memory (read)
• RAMs may range on size
from hundreds to billions of
bits.
• It is volatile
24. 17/02/2023
12:26
م 24
Dr. Ihab Talkhan
VHDL Course
History of Computational Fabrics
Discrete devices : relays, transistors (1940s – 50s).
Discrete logic gates (1950s – 60s).
Integrated circuits (1960s – 70s).
e.g. TTL packages : Data Book for 100’s of different parts.
Gate Arrays (IBM 1970s).
Transistors are pre-placed on the chip & Place and Route software puts the chip
together automatically – onlky program the interconnect (mask programming).
Software Based Schemes (1970’s – present).
Run instruction on a general purpose core.
ASIC Design (1980’s to present).
Turn Verilog/VHDL directly into layout using a library of standard cells.
Effective for high-volume and efficient use of silicon area.
Programmable Logic (1980’s to present).
A chip that be reprogrammed after it has been fabricated.
Examples: PALs EPROM, EEPROM, PLDs, FPGAs.
Excellent support for mapping from Verilog/VHDL.
29. Dr. Ihab Talkhan
29
Programming Technology
To establish the programmable connections the following
technologies are used:
EPROM
EEPROM
FLASH
30. Dr. Ihab Talkhan
30
EPROM
used to create a wired –AND function. The transistor has two gates, a
select gate and a floating gate, charge can be accumulated and trapped on
the floating gate by a mechanism called avalanche injection or hot electron
injection. These transistors are referred to as FAMOS (Floating gate
Avalanche-injection MOS). Note that without a charge on the floating gate
the FAMOS acts as a normal n-channel transistor in that when a voltage is
applied to the gate, the transistor is turned on. EPROM cells provide a
mechanism to hold a programmed state, which is used in PLDs or CPLDs
to establish or not establish a connection. To erase the cell remove charge
from the floating gate by exposing the device to ultraviolet light. (typical
erasure time is about 35 minutes under high-intensity UV light.
32. Dr. Ihab Talkhan
32
EEPROM
E2PROM, used to create a wired AND-function. It consists of two
transistors (select & storage transistors). These transistors are referred to as
FLOTOX (Floating gate Tunnel Oxide transistors). It is similar to the
FAMOS except that the oxide region over the drain is considerably smaller,
less than 10 Ao (Angstroms) compared to 200 Ao for the FAMOS. This
allows charges to be accumulated and trapped on the floating gate by a
mechanism called Fowler-Nordheim tunneling. E2PROM cells require a
select transistor because when the floating gate does not hold a charge, the
threshold voltage of the FLOTOX transistor is negative.
35. Dr. Ihab Talkhan
35
FLASH
like E2PROM, FLASH cells consist of two transistors (select
& storage transistors). They create a wired AND function.
The storage Transistor is a FAMOS, so programming is
accomplished via hot electron injection. However the floating
gate is shared by an eraser transistor that take charge off it via
tunneling.
37. Dr. Ihab Talkhan
37
RAM
Random access from any random location.
It stores information in groups of bits (called “words”.
A word is a group of 1’s & 0’s (represents numbers,
instructions, alphanumeric characters, binary coded
information).
Normally, a word is a multiples of 8 bits (1 byte) in length,
where 1 byte = 8 bits.
Capacity of memory = total number of bytes.
38. Dr. Ihab Talkhan
38
Communications between Memory &
Environment
Communications between memory and environment is done
through:
In/Out lines
Address selection lines
Control lines
39. Dr. Ihab Talkhan
39
Memory Unit Block Diagram
Memory Unit
2k words
n bits/word
n data-in lines
n data-out lines
K-address
lines
Read
Write
K-address = specify particular
word chosen
R/W Control = Direction of transfer
• Computer range from 210=1024 words (requiring address of 10-bits) to
232 (requiring 32 address bits)
40. Dr. Ihab Talkhan
40
Units
Kilo “K” = 210
Mega “M” = 220
Gega “G” = 230
64 K = 216 (26 x 210 )
2 M = 221
4 G = 232
41. Dr. Ihab Talkhan
41
Memory Address
Memory Content
Decimal
Binary
1101100101011100
0
1023
0000000000
1111111111
Content of 1024 x 16 Memory L 1K x 16bit
i.e. 10 address lines & 16-bit word
Note: 64K x 10 16 bits in address , 10-bits word
2k = m , m total number of words, K number of address bits (lines)
42. Dr. Ihab Talkhan
42
Write & Read
Write
Transfer binary address of desired word to address lines.
Transfer data bits that must be stored to data-in lines
Activate write-in
Read
Transfer binary address to address lines.
Activate read-in
44. Dr. Ihab Talkhan
44
Operation
Read/Write
Memory Select
None
X
0
Write
0
1
Read
1
1
Basic
Cell
OUT
IN
R/W
Select
m words of n-bits/word consists of n x m binary storage cells
R/W = 1 read path from F.F to output
0 In to F.F.
46. Dr. Ihab Talkhan
46
3-State Buffer
It exhibits three distinct states, two of the states are the logic 1
and logic 0 of conventional logic. The third state is the high-
impedance (Hi-Z) state.
The high-impedance state behaves like an open circuit, i.e.
looking back into the logic circuit, we would find that the
output appears to be disconnected.
48. Dr. Ihab Talkhan
48
Properties of Memory
Integrated circuit “RAM” may be either Static or Dynamic
RAM
Static RAM (SRAM) Dynamic RAM (DRAM)
• It consists of internal latches that
store the binary information.
• The stored information remain valid
as long as power is applied to the
RAM
• It stores the binary information
in the form of electric charges
on capacitors, the capacitors
are accessed inside the chip
by n-channel MOS transistors.
49. Dr. Ihab Talkhan
49
• The stored charge on the
capacitors tends to discharge
with time, and the capacitors
must be periodically recharged
by refreshing the DRAM. This is
done by cycling through the
words every few milliseconds,
reading and rewriting them to
restore the decaying charge.
• It offers reduced power
consumption and larger storage
capacity in a single DRAM chip
RAM
Static RAM (SRAM) Dynamic RAM (DRAM)
• SRAM is easier to use and
has shorter read/write cycles.
• No refresh is required
50. Dr. Ihab Talkhan
50
Memory units that lose stored information when power is
turned-off are said to be Volatile.
Both SRAM & DRAM are of this category, since the binary
cells needs external power to maitain the stored information.
Magnetic disks, CDs as well as ROM are non-volatile
memories, as they retain their stored information after the
removal of power.
51. Dr. Ihab Talkhan
51
Array of RAM Chips
Combine a number of chips in an array to form the required
memory size.
Capacity = number of words & number of bits/word
increase in words increase in address
Usually input and output ports are combined, to reduce the
number of pins on the memory package.
53. Dr. Ihab Talkhan
53
4 x 4 Memory
It consists of 16 memory cells “MCs”.
For each memory access, the address decoder decodes the address and
selects one of the rows.
If RWS & CS are both equal to “1” the new content will be written into
each cell of the row selected. Note that the output drivers are disabled to
allow the new data to be written-in
If RWS = 0 & CS = 1 the data from the row selected will be passed
through the tri-state drivers to the IO pins.
58. Dr. Ihab Talkhan
58
System Design Requirements
Increasing Functionality
Higher performance
Lower cost
Lower power consumption
Smaller dimensions
· Need to create
highly integrated,
complex systems
with fewer IC
devices and less
printed-circuit-
board PCB area.
62. Dr. Ihab Talkhan
62
How to Define your Hardware
Function description
Algorithms
Equation
Symbols (schematic capture)
Data from graphs
Netlist
Truth table
Waveforms (timing diagrams)
VHDL
64. Dr. Ihab Talkhan
64
Schematic Capture
(Small Designs)
It provides a graphical view of the design
It uses software tools that support schematic hierarchy
Design modularity ( قابلية
التجزؤ )
65. Dr. Ihab Talkhan
65
But Capturing Large designs is
difficult:
Control logic must still be generated using traditional design
techniques
Schematic is difficult to maintain
Schematic capture environment are proprietary ( إمتالكى
،
خاص ), so a
designer who works in a schematic capture environment for one
project may not be able to reuse material when working on a new
project that requires the use of a new schematic capture environment
The simulation environment supported by PLD schematic capture tool
may not fit with the system design environment, making design
verification difficult at best.
66. Dr. Ihab Talkhan
66
Bottleneck with increasing complexity of
designs
Electronic Design Automation (EDA) tools
Accelerated time-to-market schedules
67. Dr. Ihab Talkhan
67
Appropriate Design Methodologies
Increase the efficiency of designers
Facilitate capturing, understanding and
maintaining a design
Not open to interpretation
Open, not proprietary, standard accepted by
industry
Allow designs to be ported from one EDA
environment to another, thus modules can be
packaged and reused
VHDL
&
Verilog
Languages
satisfy
These
requirements
68. Dr. Ihab Talkhan
68
Appropriate Design Methodologies
(cont.)
Support complex designs and hierarchy and
gate-level to system-level design
May be used for description, simulation
and synthesis of logic circuits
Support different design entries
Supports multiple levels of design
description
VHDL
&
Verilog
Languages
satisfy
These
requirements
69. Dr. Ihab Talkhan
69
Modern Methodologies
in design and test
Semi-custom & Full-custom Application
Specific Integrated Circuit ASIC
High-density Programmable Logic Devices
PLDs
Complex High-density Programmable Logic
Devices CPLDs
Field Programmable Gate Arrays FPGAs
Hardware Description Language VHDL
Very High Speed Integrated Circuit VHSIC
Hardware Description Language
500 to more
than 100,000
gates, thus
Boolean
equations or
gate-level
descriptions are
no longer
efficient to
quickly
complete a
design
71. Dr. Ihab Talkhan
71
VHDL History
VHDL ( a product of the VHSIC (Very High Speed
Integrated Circuit) program funded by the Department of
Defense (US government) in 1970s & 1980s) is well suited
for designing with programmable logic devices (it is one
language for design & simulation).
It was endorsed by IEEE in 1986 in its attempt at
standardization.
By December 1987 the IEEE 1076.1 standard for VHDL was
approved and a VHDL Language Reference Manual (LRM)
was published.
72. Dr. Ihab Talkhan
72
VHDL properties
it provides high-level language constructs that enable
designers to describe large circuits and bring products to
market rapidly.
It supports the creation of design libraries for reuse in
subsequent designs.
It is a standard language (IEEE standard 1076), thus it
provides portability of code between synthesis and simulation
tools as well as technology-independent design.
73. Dr. Ihab Talkhan
73
VHDL properties (cont.)
Reduction of a design description to lower-levels (such as
netlist), and it serves the needs of designers at any level
It facilitates converting a design from programmable logic to
an ASIC implementation.
74. Dr. Ihab Talkhan
74
VHDL Advantages
Standard
Government Support
Industry Support
Portability
Modeling Capability (Power & Flexibility)
Reusability
Technology & Foundry independence
Documentation
New Design methodology
75. Dr. Ihab Talkhan
75
Standard
VHDL is an IEEE standard (such as graphic X-windows
standard, bus communication interface standard, and so on).
It reduces confusion and makes interfaces between tools,
companies, and products easier.
Any development to the standard would have better chances of
lasting longer and have less chance of becoming obsolete due
to incompatibility with others.
76. Dr. Ihab Talkhan
76
Government Support
VHDL is a result of the VHSIC program, so it is clear that the
US government supports the VHDL standard for electronic
procurement.
77. Dr. Ihab Talkhan
77
Industry Support
Companies use VHDL tools not only with regard to defense
contractors, but also for their commercial designs.
78. Dr. Ihab Talkhan
78
Portability
VHDL permits you to simulate the same design description
that you synthesized, simulating a several-thousand-gate
design description before synthesizing can save a considerable
amount of time & effort.
VHDL is standard, design description can be taken from one
simulator to another, one synthesis tool to another, and one
platform to another, i.e. VHDL design descriptions can be
used in multiple projects.
80. Dr. Ihab Talkhan
80
Modeling Capability
(Power & Flexibility)
It has powerful language constructs (code description of
complex control logic)
It has multiple levels of design description for controlling
design implementation
It supports design libraries & the creation of reusable
components
It provides for design hierarchies to create modular designs
82. Dr. Ihab Talkhan
82
Device-independent Design
You can create a design without having to first choose a
device for implementation, with one design description you
can target many device architecture.
It permits multiple styles of design description, i.e. it permits
several classes of design description.
83. Dr. Ihab Talkhan
83
Device-independent Design
U1: xor2 port map(a(0),b(0),x(0)));
U2: xor2 port map(a(1),b(1),x(10);
U3: nor2 port map(x(0),x(1),aeqb);
aeqb (a(0) XOR b(0)) NOR (a(1)
XOR b(1));
aeqb `1` when a = b else `0`;
If a = b then aeqb `1`;
Else aeqb `0`;
End if;
Netlist Boolean equationst
Concurrent statements Sequential statements
2-bit Comparator
84. Dr. Ihab Talkhan
84
Benchmarking Capabilities
Device-independent design & portability allow you
benchmark a design using different architectures and different
synthesis tools.
85. Dr. Ihab Talkhan
85
ASIC Migration
The efficiency the VHDL generates allows your product to hit the market
quickly.
When production volumes reach appropriate levels, VHDL facilitate the
development of an ASIC, sometimes the exact code used with the PLD can
be used with the ASIC.
86. Dr. Ihab Talkhan
86
Quick time-to-market & Low Cost
VHDL & programmable logic pair facilitate a speady design
process, as VHDL permits designs to be described quickly and
Programmable logic eliminates NRE expenses and facilitates
quick design iterations.
VHDL & programmable logic combine as a powerful vehicle
to bring your products to market in record time.
88. 17/02/2023
12:26
م 88
Dr. Ihab Talkhan
VHDL Course
Design Tool Flow
Synthesis Software
Fitter (CPLD) or Place & Route (FPGA) routines
Simulation Software
Programmable Logic Primer
89. 17/02/2023
12:26
م 89
Dr. Ihab Talkhan
VHDL Course
Synthesis Software
The inputs to the synthesis software are:
The VHDL design source code.
Synthesis directives.
Device selection (required to perform device-
specific synthesis & optimization).
The output of the synthesis software is:
An architecture-specific netlist or set of equations
90. 17/02/2023
12:26
م 90
Dr. Ihab Talkhan
VHDL Course
Fitter (CPLD) or Place & Route (FPGA)
routines
Inputs to these routines are the outputs from the synthesis
software.
Outputs are information about resource utilization, static ,
point-to-point, timing analysis, a device programming file, and
a post-layout simulation model.
91. 17/02/2023
12:26
م 91
Dr. Ihab Talkhan
VHDL Course
Simulation Software
The simulation model, along with a test bench or other
stimulus format, is used as input to the simulation software.
Outputs are waveforms or data files.
92. 17/02/2023
12:26
م 92
Dr. Ihab Talkhan
VHDL Course
Programmable Logic Primer
Texas Instruments TTL series 54/74 logic circuits are the
mainstay of digital logic design for implementing SSI & MSI
combinational & sequential logic (multiplexing, encoding,
decoding, selecting, registering, designing state machines &
other control logic).
This type of implementation include discrete logic gates,
specific Boolean transfer functions, memory elements,
counters, shift registers and arithmetic circuits.
A standard design flow is shown in the next figure.
95. 17/02/2023
12:26
م 95
Dr. Ihab Talkhan
VHDL Course
History of Computational Fabrics
Discrete devices : relays, transistors (1940s – 50s).
Discrete logic gates (1950s – 60s).
Integrated circuits (1960s – 70s).
e.g. TTL packages : Data Book for 100’s of different parts.
Gate Arrays (IBM 1970s).
Transistors are pre-placed on the chip & Place and Route software puts the chip
together automatically – onlky program the interconnect (mask programming).
Software Based Schemes (1970’s – present).
Run instruction on a general purpose core.
ASIC Design (1980’s to present).
Turn Verilog/VHDL directly into layout using a library of standard cells.
Effective for high-volume and efficient use of silicon area.
Programmable Logic (1980’s to present).
A chip that be reprogrammed after it has been fabricated.
Examples: PALs EPROM, EEPROM, PLDs, FPGAs.
Excellent support for mapping from Verilog/VHDL.
104. 17/02/2023
12:26
م 104
Dr. Ihab Talkhan
VHDL Course
Reconfigurable Logic
Logic blocks
To implement combinational and
sequential logic.
Interconnect
Wires to connect inputs and
outputs to logic blocks.
I/O blocks
Special logic blocks a periphery
of device for external
connections.
105. 17/02/2023
12:26
م 105
Dr. Ihab Talkhan
VHDL Course
Reconfigurable Logic (cont.)
Key questions:
How to make logic blocks
programmable? (after chip has
been fabbed!)
What should the logic granularity
be?
How to make the wires
programmable? (after chip has
been fabbed!)
Specialized wiring structures for
local .vs. long distance routes?
How many wires per logic block?
106. 17/02/2023
12:26
م 106
Dr. Ihab Talkhan
VHDL Course
What is Programmable
Logic Device
Programmable Array Logic (PAL) devices are the simplest programmable
logic devices.
It consists of an array of AND gates and an array of OR gates in which the
AND array if programmable and the OR array is fixed.
Figure 5 illustrates the standard gate symbol for an 3-input AND gate and
the equivalent PAL logic diagram. (the single line extending from the AND
gate is used to represent several inputs, the vertical lines represent the
signals A,B & C, An asterisk represents a programmed connection between
an input signal A, B or C and an input of the AND gate.
The programmed connections are made via EPROM cells or another
programming technology.
107. 17/02/2023
12:26
م 107
Dr. Ihab Talkhan
VHDL Course
Programmable Array Logic (PAL)
Based on the fact that any
combinational logic can be
realized as a sum-of-products.
PALs feature an array of AND-
OR gates with programmable
interconnect
111. 17/02/2023
12:26
م 111
Dr. Ihab Talkhan
VHDL Course
Example: (A network repeater with four
communication ports)
Communication ports are A, B, C, & D
A collision signal X must be asserted ( )تؤكد if more than one port’s carrier sense is active at a time.
Signal X is to be synchronized to the transmit clock.
A truth table is generated from to design specification.
Using Boolean algebra or Karnaugh map, we can reduce the expression for X to six product terms.
& an expression for the complement of X can be reduced to four product terms.
It is required to either minimize the number of device required or to minimize the number of levels
of logic in order to minimize the total propagation delay OR strike a balance between the two,
depending on the performance and cost requirements of the design.
Note that the expression X = AB + CD + BD + BC + AD + AC may be rewritten in NAND-NAND
form as:
This design requires two 7400s and one 7430, for a total of two levels of logic.
Finally to synchronize X to the transmit clock, a 7474 (D-flip-flop) is used.
This design can be implemented in one of several different ways.
AC
.
AD
.
BC
.
BD
.
CD
.
AB
X
114. 17/02/2023
12:26
م 114
Dr. Ihab Talkhan
VHDL Course
Full-Adder (Example 2)
It is a combinational circuit that forms the arithmetic sum of three input bits.
Carry from the
previous lower
significant position
115. 17/02/2023
12:26
م 115
Dr. Ihab Talkhan
VHDL Course
)
( Y
X
Z
XY
C
Z
Y
X
S
Z
Y
X
XYZ
Z
Y
X
Z
Y
X
Z
Y
X
S
)
(
)
(
Y
X
Z
XY
Y
X
Y
X
Z
XY
YZ
XZ
XY
C
Outputs
Inputs
S
C
Z
Y
X
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
10
11
01
00
1
1
0
1
1
1
YZ
X
10
11
01
00
1
0
1
1
1
1
YZ
X
120. 17/02/2023
12:26
م 120
Dr. Ihab Talkhan
VHDL Course
Example (PAL 16L8 device): (PAL
architecture)
The 16L8 is so named because there are 16 inputs into the AND array, and
8 outputs, the L is for logic array.
Eight of the inputs to the array are dedicated device inputs
Another eight are from I/O pins.
If three-state inverter associated with an I/O pin is enabled, then the input
to the logic array is actually a feedback associated with an OR gate, note
that the feedback is inverted, i.e. the input signal is from an inverting
buffer driven by an OR gate. If the three-state inverter is disabled then the
I/O pin is working as an input.
There are 64 AND gates, each one can be used to create a product of any of
the 16 inputs or there complements.
The 8 OR gates are fixed, each sums seven products and the remaining
eight product term are used for enables of the Three-state inverting buffers.
122. 17/02/2023
12:26
م 122
Dr. Ihab Talkhan
VHDL Course
Other examples
The PAL 16R8 device which provides registers.
The 16R6 includes six registers leaving two combinational output
structures with individual three-state control.
The 16R4 is a compromise between the 16L8 & 16R8 with four registered
and four combinational output structures.
124. 17/02/2023
12:26
م 124
Dr. Ihab Talkhan
VHDL Course
Designing with Programmable Logic:
Back to example (1) Network repeater, because signal X must be
registered, The PAL 16R8 or 16R6 or 16R4 are used. Note that four 14 pin
devices were replaced by only 20-pin DIP (dual in-line package), and the
design used only a portion of the 16R8 device.
126. 17/02/2023
12:26
م 126
Dr. Ihab Talkhan
VHDL Course
Advantage of
Programmable Logic
Fewer devices are used, 20 pin DIP (dual in-line package).
One PAL could easily replace 10 or more TTL devices, which makes PAL
implementation more cost-effective.
Saves valuable board spaces, power, debug time.
Increases performance and design security.
Integration increases design reliability because there are fewer dependencies on the
interconnections of devices.
Integration increase performance by reducing the number of I/O delays and levels
of logic.
Flexibility.
Pal allows you to use design tools that help automate the process, as all you need is
to produce aone design description, leaving the logic synthesis and optimization
software to determine an adequate implementation (the design description can be
captured by VHDL and Verilog).
128. 17/02/2023
12:26
م 128
Dr. Ihab Talkhan
VHDL Course
The 22V10
(V for variable, 22 inputs , 10 outputs)
It consists of programmable macro-cell and a variable product-
term distribution. Each macro-cell may be individually
configured by programming the state of configuration bits.
Configuration bits allow a macro-cell input (sum of products)
to either be registered or pass directly to the output buffer. The
polarity of the macro-cell output is also selectable, either the
true or the complement of an expression may be used.
135. 17/02/2023
12:26
م 135
Dr. Ihab Talkhan
VHDL Course
The 22V10 (cont.)
The output polarity selection of the macro-cell enables
software to perform logic optimization on an expression and
its complement and to select the one that requires the fewest
logic resources. Note that the architects of the 22V10 varies
the product terms per OR gate from 8 to 16, the top & bottom
macro-cells are allocated 8 product terms, the middle macro-
cells are allocated 16 product terms, and the others are
allocated 10,12 or 14 depending on location. The 22V10 does
allocate 16 product terms to every macro-cell as doing so
would increase the cost to manufacture the device, many
applications don’t require more product terms.
136. 17/02/2023
12:26
م
136
Dr. Ihab Talkhan
VHDL Course
Timing Parameters
The following are sample data-sheet parameters for a 22V10:
Propagation delay tPD (max. 4 ns), defined as the amount of time it takes for
a combinational output to be valid after inputs are asserted at the device
pins.
Setup time ts (min. 2.5 ns), defined as the amount of time the input to a flip-
flop must be stable before the active edge of the clock is applied to the
clock pin.
Hold time tH (min. 0), defined as the amount of time for which the input to
the flip-flop must be held stable after the clock.
Clock-to-output delay tCO (max. 3.5 ns), defined as the amount of time
after which the clock input is asserted at the device pin that the output
becomes valid at another device pin.
Clock-to-output delay through the logic array tCO2 (max. 7 ns), defined as
the clock to output delay that does not route directly from a register to its
associated output pin, rather it represents the clock to output delay for a
signal that is fed back from the register through the logic array, through a
macro-cell configured in combinational mode, and to a device pin.
137. 17/02/2023
12:26
م 137
Dr. Ihab Talkhan
VHDL Course
Timing Parameters (cont.)
System clock to system clock delay tSCS (max. 5.5 ns), (used
to determine the maximum frequency of operation), where:
it indicates the minimum clock period if register-to-register
operation is required, and accounts of the amount of time from
when the clock is asserted at the registers until the output of
one register is valid at the input of another register.
141. 17/02/2023
12:26
م 141
Dr. Ihab Talkhan
VHDL Course
Case Study
It is required to design a 3-bit synchronous counter with an enable.
The design has two additional outputs:
One that is asserted when the present count is greater than three
The second is asserted when the count is equal to six.
PS ≡ Present State , NS ≡ Next State.
Two inputs = clock & enable “e”, Five outputs = a, b, c, x &y
Assume that all macro-cells are configured for active high logic, then -
output for each flip-flop must be multiplexed to the inverting output buffer.
This allows positive-logic implementation for A, B, and C (Q2, Q1 and Q0).
Signal A, B, & C are the D-inputs to the flip-flops associated with output
signals a, b, & c.
142. 17/02/2023
12:26
م 142
Dr. Ihab Talkhan
VHDL Course
F.F.
Next
Present
Y
X
D0
D1
D2
Q0
Q1
Q2
E
Q0
Q1
Q2
0
1
2
3
4
5
6
7
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
Counter
>
E
Enable
Clear Q2 Q1 Q0
Enable = 0 no
change
= 1 count
D Flip-Flop Excitation Table
D
Q(t+1)
Q(t)
0
1
0
1
0
1
0
1
0
0
1
1
Three states 3 Flip-Flops, we
will use D F.F. as an example
Equivalent
to Q2
2
1
0 Q
Q
Q
Y
149. 17/02/2023
12:26
م 149
Dr. Ihab Talkhan
VHDL Course
Case Study (cont.)
Notice that output x does not require any logic implementation as it is
equivalent to “a” (Q2).
Signal y requires one product term.
Note that based on the timing parameters mentioned before:
Signal e is the only input to the device that has a setup time requirement, it
must be valid and stable at least 2.5 ns before the clock is asserted at the
pin.
Outputs a, b, c, and x are valid at the output pins 3.5 ns (tOC) after the clock
input transitions.
Output y is valid at its output pin 7 ns (toc2) after the clock input transitions
(more time is required for y to be valid because the outputs of the counter
must be decoded to produce it, and this decoding causes an additional delay
of 4 ns over tCO).
150. 17/02/2023
12:26
م 150
Dr. Ihab Talkhan
VHDL Course
Case Study (cont.)
The maximum frequency is the reciprocal of tSCS 5.5 ns, i.e.
fmax = 180 MHz, this is a typical value, but it is not valid for
this case as output y takes 7 ns to propagate to an output pin.
Thus if the circuit were clocked at 180 Mhz, output y would
never be valid. This circuit could be clocked at the rate of the
reciprocal of 7 ns (143 MHz).
151. 17/02/2023
12:26
م 151
Dr. Ihab Talkhan
VHDL Course
Complex PLDs (CPLDs)
Users create logic interconnections by programming
EPROM or EEPROM to form wide fan-in gates.
Higher level of integration to improve system performance
Uses less board space
Improve reliability
Reduce cost
CPLD contains multiple logic blocks, each similar to a small
PLD like 22V10
The logic blocks communicate with one another using
signals routed via a programmable interconnect (PI).
152. 17/02/2023
12:26
م 152
Dr. Ihab Talkhan
VHDL Course
Typical CPLD Architecture
Functional Blocks contains a PLD AND-array that feeds its
macrocell.
A macrocell includes an OR gate to complete AND-OR logic.
Global Universal Interconnect Mechanisms (UIM) that reaches
all FBs on the chip.
AND
array
AND
array
AND
array
AND
array
MC
UIM
FB
I/O
154. 17/02/2023
12:26
م 154
Dr. Ihab Talkhan
VHDL Course
Programmable Interconnects
Allows any signal in the PI to route
To any logic block. Each term in the
PI is represented by a vertical wire
and is assigned as an input (through
a sense amp) to a given logic block, so
there is one PI term for each input to
a logic block.
An output from the logic block can
connect to one of the PI terms
through a memory element.
Device inputs can connect to the PI
terms as well.
There is one multiplexer for each
input to a logic block.
Signals in the PI are connected to the
inputs of a number of multiplexers for
each logic block.
The selection lines of these
multiplexers are programmed to
allow one input for each multiplexer
to propagate into a logic block.
Wide multiplexers increase die area
and may reduce performance
Programmable Interconnects
Array-based Interconnects Multiplexer-based Interconnects
155. 17/02/2023
12:26
م 155
Dr. Ihab Talkhan
VHDL Course
I/O cells are sometimes considered to be part of a logic
block, but in our case we will consider these to be separate.
There is little differences between the product-term arrays of
the different CPLDs, the size of the array is important
because it identifies the average number of product terms
per macrocell and maximum number of product terms per
logic block.
Different CPLD vendors have approached product-term
distribution with different schemes, the MAX family
(“family” meaning several devices with the same
architecture) of CPLDs [ Altera Cooperation & Cypress
Semiconductors]
156. 17/02/2023
12:26
م 156
Dr. Ihab Talkhan
VHDL Course
Different CPLDs Families
CPLDs Families
Altera Family
Cypress Semiconductor
Family
Advanced Micro Devices
MAX5000, AX7000…
• Rather than using the
variable product-term
distribution scheme of
the 22V10 (which
allocates a fixed but
varied number of
product terms,
8,10,12,14 or 16 per
macrocell).
MAX340,FLASH370,
FLASH370
• each macrocell is
allocated from zero
to 16 product term,
depending on the
requirements of the
logic expression
implemented at a
given macro-cell.
The MACH
• It allows product terms to
be steered in groups of four
product terms and used in
another macrocell without
an additional delay.
• For each group of
macrocells that must be
steered, one macrocell is
left unusable.
• This product term
distribution scheme does
not provide product term
sharing.
157. 17/02/2023
12:26
م 157
Dr. Ihab Talkhan
VHDL Course
Altera Family (cont.)
• The MAX family allocates four
product terms (product term
steering) per macro-cell while
allowing several expander product
terms to be allocated individually
to any maco-cell or macro-cells.
• With expander product terms, the
additional product terms are
allocated only to those macrocells
that can make use of them
(Product-Term-Sharing).
• An additional delay is incurred for
signals that use the expander
product terms, as the output must
pass through the logic array
before propagating to a macro-
cell.
158. 17/02/2023
12:26
م 158
Dr. Ihab Talkhan
VHDL Course
The Product-Term Distribution
Schemes Provides
Flexibility for the designer, but the designer should
understand how logic resources may be used and the
trade-offs among architectures.
Flexibility for software algorithms that will
ultimately choose how to use logic resources
159. 17/02/2023
12:26
م 159
Dr. Ihab Talkhan
VHDL Course
CPLDs include macrocells that provide flip-flops &
polarity control, it offers more configurability than
the 22V10 PLD. Many can include flip-flops that
can be configured as D- or T-type operation.
CPLDs often have I/O macrocells (a macrocell
associated with an I/O), input macrocells
(associated with an input pin), and buried
macrocells (similar to an I/O macrocell except that
its output cannot propagate directly to an I/O, rather
its output is fed back to the PI). Note that 22V10
has only an I/O macrocells.
160. 17/02/2023
12:26
م 160
Dr. Ihab Talkhan
VHDL Course
MAX340
There are serveral inputs to this macrocell:
The sum-of-products input is used as one input to the XOR gate.
The second input to the XOR is an individual product term.
The XOR gate can be used
In arithmetic expressions (comparators) or
To complement the sum of products expression. Or
To serve the same function as the output polarity multiplexer found in
22V10
To configure a flip-flop for T- JK-, SR-type operation.
The Preset & Clear are individual NAND terms.
The clock can be either the system clock or an internally generated (product-term)
clock. Knowing that the system clock provides the best performance while the
generated clock provides flexibility.
The output of the macrocell can be configured as registered or combinational.
This architecture provides both local feedback (i.e. the macrocell feedback does
not use the PI and is not available to other logic blocks) and global feedback
through the PI. The disadvantage of having local feedback is a more complicated
timing model and redundant resources.
Buried macrocells for this family are identical to the I/O macrocells except that
their outputs are used only as feedback and do not drive I/O cells.
161. 17/02/2023
12:26
م 161
Dr. Ihab Talkhan
VHDL Course
I/O cells are used to drive a signal off the device, depending on the state
of the output enable and to provide a data path for incoming signals.
With some architectures, it might contain switch matrices or output
routing pools. The advantage to this scheme is flexibility in determining
where logic can be placed in a logic blockin relation to where the I/O
cell is located. The disadvantage is an incremental delay associated with
the performance routing structure and the increased die size.
The timing specifications for CPLDs are the same for those of a 22V10.
(propagation delay, setup, clock-to-output, register to register times).
Postdesign implementation timing information is generally more
predictable with CPLDs than with FPGAs, it is an advantage that prior to
beginning a design, the performance of that design can be estimated with
good precision.
166. 17/02/2023
12:26
م 166
Dr. Ihab Talkhan
VHDL Course
Field Programmable Gate Array
(FPGA)
FPGA is an array of logic cells that communicate with one
another & with I/O via wires within routing channels.
Note that in semi-custom gate array Gate-Arrays the routing
is customized, without programmable elements, while in an
FPGA, existing wire resources that run in horizontal &
vertical columns (routing channels) are connected via
programmable elements.
Logic cells have less functionality than the combined
product terms and macro-cells of CPLD, but large functions
can be created by cascading logic cells.
167. 17/02/2023
12:26
م 167
Dr. Ihab Talkhan
VHDL Course
Types of FPLDs
Commercial FPLD use different programming technologies,
different logic cell architectures and different structures of
their routing architectures.
If programming technology and device architecture are
combined, three major categories of FPLDs are distinguished
Static RAM Field Programmable Logic Arrays, or SRAM
FPGAs
Complex Programmable Logic Device CPLDs.
Antifuse FPGAs
171. 17/02/2023
12:26
م 171
Dr. Ihab Talkhan
VHDL Course
Architecting an FPGA
Performance, The ability for real system designs to operate at
increasingly higher frequencies.
Density & capacity, the ability to increase integration, to place
more & more in a chip and to use all available gates within the
FPGA, thereby providing cost effective solution.
Ease of use, the ability for system designers to bring their
products to market quickly (easy-to-use software tools for logic
synthesis, place & route,..).
In-system programmability & in-circuit re-programmability
172. 17/02/2023
12:26
م 172
Dr. Ihab Talkhan
VHDL Course
Presently, there are two technologies of choice for use in
developing FPGAs
SRAM
Antifuse
SRAM technology is presently used by Altera, Lucent
Technologies, Atmel, Xilinx.
Antifues technology is presently used by Actel, Cypress,
Quicklogic, and Xilinx.
Once a technology has been selected, it influences the choice of
routing architectures (as the physical dimensions of an SRAM
cell are an order of magnitude larger than those of an antifuse
element), which in turn influences the design of the logic cells.
173. 17/02/2023
12:26
م 173
Dr. Ihab Talkhan
VHDL Course
Static RAM FPGAs
SRAM FPGAs implement logic as lookup tables made from
memory cells with function inputs controlling the address line.
One or more LUTs, combined with flip-flops, form a
configurable logic block (CLB).
CLBs are arranged in a two dimensional array with
interconnect segments in channels.
175. 17/02/2023
12:26
م 175
Dr. Ihab Talkhan
VHDL Course
Programming Technology
FPLD is programmed using electrically programmable
switches.
The properties of these programmable switches, such as size,
volatility, process technology, on-resistance, and capacitance
determine the major features of an FPLD architecture.
176. 17/02/2023
12:26
م 176
Dr. Ihab Talkhan
VHDL Course
SRAM Programming Technology
Uses SRAM cells to configure logic and control interconnections and paths
for signal routing.
The configuration is done by controlling pass gate or multiplexers.
Reprogrammable.
Volatile.
Large Area, at least 5 transistors are needed to implement SRAM cell.
Uses standard integrated circuit process technology.
External permanent memory required to provide the programming
bitstream at power-up time
MUX
4 x 1
Bit 0
Bit 1
SRAM
Cell
Pass
Gate
177. 17/02/2023
12:26
م 177
Dr. Ihab Talkhan
VHDL Course
Floating Gate Programming Technology
Uses the technology erasable EPROM and electrically erasable EEPROM
devices.
The unprogrammed switch is used to pull down a “bit-line” when the
“word –line” is set to high.
It can be used to implement a wired-AND style of logic and routing.
No external permanent memory is needed at power on.
Reconfigurability not as fast as SRAM technology devices.
Require extra processing steps over an ordinarily CMOS process.
High on-resistance of EPROM transistor.
High static power due to pull-up resistor used.
179. 17/02/2023
12:26
م 179
Dr. Ihab Talkhan
VHDL Course
Antifuse Programming Technology
It irreversibly changes from high resistance to low resistance
when programmed.
Relatively low on-resistance “100-600 Ohms”.
Small size
Programming requires extra circuitry to provide the high
voltage & relatively high current “5 mA” or more.
180. 17/02/2023
12:26
م 180
Dr. Ihab Talkhan
VHDL Course
Static RAM SRAM
An Amorphous-Silicon Antifuse
SRAM cells are used to control
the state of pass transistors,
which can establish connections
between horizontal and vertical
wires. (the source to drain of
such a pass transistor is about
1000 ohm)
SRAM cells are used to drive
the select inputs of multiplexers
that are used to choose from
one of several signals to route
on a given wire source.
In amorphous (uncrystallized)
silicon based FPGA, the two
layers of metal are separated by
amorphous silicon, which
provides electrical insulation.
A programming pulse of 10V to
12V with a necessary duration
can be applied across the via,
causing the top and bottom
layers of metal to penetrate the
amorphous silicon, creating a
bi-directional conductive link.
(with a resistance about 50
ohm)
181. 17/02/2023
12:26
م 181
Dr. Ihab Talkhan
VHDL Course
Static RAM SRAM
An Amorphous-Silicon Antifuse
An SRAM memory cell
consists of five transistors, two
for each of the two inverters
making up the latch and one
addressing (used to select the
memory cell for programming)
An SRAM is programmable.
SRAM cells are volatile, i.e. the
states of the memory cells are
lost when power is not applied,
SRAM-based FPGAs must be
programmed (usually from a
serial EPROM) each time the
circuit is powered on.
Once programmed, an antifuse
element cannot be erased or
reprogrammed.
Each antifuse element is
isolated by with pass transistors
so that other elements are not
inadvertently programmed,
these programming transistors,
constitute the programming
circuitry overhead.
182. 17/02/2023
12:26
م 182
Dr. Ihab Talkhan
VHDL Course
Static RAM SRAM
An Amorphous-Silicon Antifuse
The programming circuitry
for SRAM elements must
include the addressing and
data registers
(programming circuitry
overhead).
Programmable elements are
strategically placed to
provide a trade-off between
routability, density and
performance.
Actel FPGA products make use of an
Oxide-nitride-oxide (ONO) antifuse,
which consists of three layers : The
top, conductor made of polysilicon
(electrically connected to one layer of
metal), the middle, has an oxide-
nitride-oxide chemical composition
and is an insulator, the bottom, is a
conductive layer of negatively doped
diffusion. (300 ohm, link resistance)
Because antifuse elements can be
placed very densely, FPGAs that use
this technology have flexibility
routing architectures, which allow the
electrical connection of wires at
nearly every intersection.
183. 17/02/2023
12:26
م 183
Dr. Ihab Talkhan
VHDL Course
Antifuse FPGAs are used when dealing with FPGAs that have routing
structures with many wires and many programmable connections, i.e.
smaller logic cells with more inputs and outputs relative to the number of
gates in the logic cell.
FPGAs that have routing structures with fewer wires and programmbale
interconnections tend to have larger logic cells with fewer inputs and
outputs relative to the number of gates in the logic cell, SRAM FPGAs.
Timing cannot be predicted easily for any but the simplest of dsigns
implemented in FPGAs. Signal propagation delays are functions of the
number of cascaded logic cells, the signal path in the logic cells, the
number of programmable interconnects through which the signal
propagates (as well as technology used, antifuse or SRAM), fan-out, and
I/O cell delays.
185. 17/02/2023
12:26
م 185
Dr. Ihab Talkhan
VHDL Course
Technological & Operational
Differences Between the
Programmable Devices
Type Technology Switch Reprogram-
able ?
Volatile
?
Leading
Company
FPGA CMOS SRAM In-circuit Yes Xilinx
PLD
/CPL
D
CMOS EPROM
EEPRO
M
Out-of-circuit
In-circuit
No Altera
FPGA CMOS Antifuse No No Actel