ECE 590. DIGITAL SYSTEM DESIGN USING HARDARE DESCRIPTION LANGUAGES.



THIS IS A MANDATORY READING MATERIAL FOR THIS CLASS.
  1. This class teaches much more than the VHDL language only.
  2. The main goal of this class is to teach about specifying practical large digital systems, simulating and synthesizing to FPGAs.
  3. HDL languages such as VHDL, Verilog and System Verilog are only vehicles. They are only tools to be used to express your design ideas.
  4. My goal is to teach you how to think in terms of "high level synthesis" of highly parallel systems for applications aother than standard microprocessors.
  5. Such architectures find applications in Neural Networks, Image Processing, Robotics, Digital Signal Processing and others.
  6. Important component of this class is teaching about some nano-technology and respective circuits. Projects are related to some of them, this year they are related to memristors.

IF SOMETHING IN MY SLIDES IS NOT CLEAR, PLEASE SEND ME AN EMAIL OR TALK TO ME AND I WILL UPDATE THE PDF FILES AND ADD MORE EXAMPLES.
At the end of some files with slides there are problems and questions. You should be able to solve all these problems.

Here are the lectures from other classes that may be useful as a background in projects. You do not need to read these entire materials. I will only refer to some of them for every particular project. For instance, if you pick a Hough Transform Processor to find straight lines in images, you can learn the theory of Hough Algorithm in my Intelligent Robotics II class lectures.
  1. ECE 271. Digital System Design. Second class in digital design at PSU. State machines, digital systems, VHDL, intro to test.
  2. ECE 572. Advanced Logic Synthesis. Introductory graduate class. Logic synthesis theory, decomposition, multi-valued logic, Reed-Muller and Galois circuits.

Ask me about user id and password in order to be able to use these slides.
Attending lectures is mandatory. Not attending may affect your final grade. Try to attend, as there is no book that would cover all class material, and in the slides there is too many details. Attending and listening to lectures is the best way to learn the material quickly and reliably.

PROJECT MATERIALS FOR THE 2017 CLASS.


Because the class is based on project, below I list the projects for this year. The projects, when completed, are publishable and several previous students had publications with me on their previous HDL-related projects from this class. After the listing of this year projects, you will find class material of lectures and assignments. Every student will be working on one of the following four projects.
There will be eight teams.
  1. Teams 1A and 1B will work on Project 1.
  2. Teams 2A and 2B will work on Project 2.
  3. Teams 3A and 3B will work on Project 3.
  4. Teams 4A and 4B will work on Project 4.
Teams should be 4 or 5 people. Teams A will work on CMOS FPGA realization, teams B will work on memristive realization of the same project. For instance, team 1A will work on CMOS FPGA realization of Associative Processor and team 1B will work on memristive realization of the Associative Processor.

PROJECT 01. MEMRISTIVE ARCHITECTURE FOR ASSOCIATIVE PROCESSOR

The topic of this project is to design associative processor using stateful memristors. Memristors will be used for massively parallel architectures such as neural networks and image processors or learning computers.
  1. 000. Hasegawa = final GAM temporal ESOINN paper.pdf This is a research paper that presents the final architecture that we are implementing. It was never done before.
  2. 001. Hasegawa = Temporal_ESOINN.pdf This is another research paper about this architecture.
  3. 002. Hasegawa = ESOINN.pdf This is another research paper about this architecture.
  4. 004. Furao=Hasegawa- SOINN.pdf This is another research paper about this architecture.
  5. 003. Rahman_dissertation2016_updated.docx This is a PhD dissertation of my student from last year that is a base of your project.
  6. Rahman_dissertation2016_updated - Copy.docx This is a newer version, perhaps very similar.
  7. 005. Memristive FPGA - Kamela Rahman - defense2016_v4.pptx These are slides of the presentation of this PhD dissertation. Read them first.
  8. KAMELA Continued dimensional scaling of CMOS processes is approaching fundamental limits and therefore.docx
  9. Nano-Crossbar Memories Comprising Parallel.pptx This paper explains nano-crossbar concept.
  10. 006. Anika davidson.pdf This paper explains stateful IMPLY gate from memristors and notation for logic synthesis.
  11. Vishwas - ECE590_Project_Report.pdf This paper presents last year project, there are still some bugs and possible improvements.
  12. Appendix.docx VHDL code for the project.
  13. ECE590_HW1_Files.zip Class documentation of this project.
  14. ECE590_Project_Files.zip Class documentation of this project.
  15. HW1 report.pdf Class documentation of this project.
  16. Muayad PaperMCT-V1 (1).docx This is a paper about other types of memristive circuits. Not mandatory to read.
  17. MEMRISTors - WWoodsMSThesisFinalDraft.pdf This is a dissertation about other use of memristors. Not mandatory to read.
  18. Synthesis of Memristive Circuits old.docx This is a paper about synthesis to memristive IMPLY gates. Not mandatory to read.

PROJECT 02. LISKAY-HUNTSMAN_IMAGE_PROCESSORS

  1. 21. Huntsman ImageProcessorReport.pdf
  2. 22. imag proc SIMD Liskay 2012.pdf
  3. 23. ImageProcessorPresentation.ppt
  4. Cell.vhd
  5. ImageProcessor.vhd
  6. testbench.vhd

PROJECT 03. Kalman Filter Faddeev Algorithm

  1. 009. tejas - Faddev Algorithm in hardware - systolic.pptx
  2. 010. Chen and Guo paper - kal syst fadd.pptx
  3. 011. Kalman Filter in Hardware.pptx
  4. 012. Kalman filter, Nash, Faddeev Part 2..pptx
  5. 013. Report from class ECE 590 Tejas.pdf
  6. 014. Yeh = Kalman Filt Faddeev.pdf
  7. 015. Wyrzykowski -= systolic faddev.pdf
  8. 016. Chen and Guo = Kalman Filter Faddeev.pdf
  9. 017. lyapunov nash systolic.pdf
  10. 018. ms th utah Extended Kalman.pdf
  11. 019. 00100319 VAN LE.pdf
  12. 020. 00101731 VAN LE.pdf
  13. 020. 00112472 Van Le.pdf

PROJECT 04. Sumitha Fure Image Processor

  1. 30. Sumitha = ECE590_ProjectReport.pdf
  2. 31. ECE590_ProjectReport[1].pdf
  3. 32. ECE 590 Project Update Fure-Larson.docx
  4. 33. ECE590 =Sumitha.docx
  5. 34. Sumitha = ImageProcessingPPT.pptx
  6. 35. ECE 590 Final Project For Jan Fure.docx
  7. 36. Fure = How to Use IMage Processor.docx
  8. 37. from Fure to Ben.docx

========================== GENERAL LECTURES FOR THIS CLASS.================================

Not all these lectures will be covered in 2017. If necessary, you need to learn on your own.

======================== UNIT 1.==============================

WEEK OF APRIL 3.

FUNDAMENTALS OF VHDL AND PROJECTS.

MANDATORY MATERIAL

  1. Class organization. Projects. Grading. Exams.
  2. REVIEW: Flip-Flops. Shifts. Generalized Registers. Register Transfer and Kmaps.
  3. Introduction to VHDL. Design styles. Behavioral, functional and structural descriptions.
  4. Objects, Types and Operations.
  5. SLIDES: Lecture 1, about class and review.
  6. lecture001. Introduction. ppt.
  7. lecture002. Motivation To FPGA Systems. Implementation of sorting in various computer Architectures. PowerPoint = ppt
  8. PROJECT.
  9. Short discussion of class projects for this quarter, and creation of project groups. The number of groups will depend on number of students. Each group will work on one of two projects that are continuation from previous years.
  10. Read project descriptions and related links. Start thinking what will be your project for this class. Talk to me about project.
  11. PROJECTS DESCRIPTION FOR 2017 Spring Class

========================== UNIT 2. ===============================

This unit not discussed this year. You amay read it if your project is in VHDL and you are using PSU tools. Most of students have their own boards and tools, so reading it is not mandatory.

DOCUMENTATION AND TOOLS FOR VHDL.

  1. Register Transfer description.
  2. SLIDES: Lecture 2. Diagrams and VHDL Intro. Examples of various description types in VHDL.
  3. lecture003. Diagrams. Vhdl. Intro. ppt
  4. Continuation on basic hardware description concepts. Examples of descriptions of simple machines and logic and sequential blocks.

TOOL USE DESCRIPTION. ONLY IF YOU NEED IT.

  1. PDF File: Modeling Tool Use How to use Modelsim tools.
  2. SLIDES: Mentor Graphics Tools. How to use Mentor tools.
  3. SLIDES: Modelsim Tools Advise

ADDITIONAL READING AND REVIEW. ONLY IF YOU NEED THEORY REVIEW ON STATE MACHINES.

  1. Review Kohavi's textbook on basic material and state machines.
  2. You can use also Mano/Kime, Roth or Wakerly texbooks.

=========================== UNIT 3.=============================

SEQUENTIAL STATEMENTS AND FINITE STATE MACHINES.

WEEK OF APRIL 3.

MANDATORY MATERIAL

  1. Design of an adding counter using D or T ffs. Iterative design versus design based on Kmaps.
  2. Sequential statements.
  3. Structural modeling.
  4. Data Flow modeling.
  5. Finite State Machines.
  6. SLIDES: Timing and Simulation
  7. lecture 004. Finite State Machines in VHDL. ppt
  8. lecture007-GENERATE statement. Example for Ripple Counter. ppt
  9. Characteristics of iterative and sequential circuits:
    1. one-dimensional, one directional, combinational. Standard Iterative circuits.
    2. one-dimensional, two directional, combinational. Iterative circuits composed from two iterative circuits with different directions.
    3. two-dimensional, one and two directional, combinational. Number of neighbors = 2,3,4,5, 6.
    4. one-dimensional, sequential.
    5. two-dimensional, sequential.

ADDITIONAL READING AND MATERIALS

  1. Complete reading in Kohavi about FSMs, and if necessary, previous chapter(s).
  2. You can use also Mano/Kime, Roth or Wakerly texbooks. I found Roth and Mano/Kime particularly useful for beginners.
  3. Read Kohavi about structural design of FSMs. You can use also Mano/Kime, Roth or Wakerly texbooks.

OFFICIAL HOMEWORK NUMBER ONE.


Select the homework topics:
    It should be a large combinational circuit with hierarchy, a state machine, a data path or a controller composed of a controlling state machine and data path controlled by it. This homework should be simple but not trivial. It may be done by a group. Working on homeworks and projects in groups and learning EDA tools together is highly recommended. Just the final work of writing code and testing it is an individual assignment. In projects you will work together on everything.

============================= UNIT 4. ============================

ASSIGNMENT STATEMENTS. CONDITIONALS.

WEEK OF APRIL 10.
  1. Combinational Circuits in VHDL
  2. Assignment Statements
  3. Conditionals
  4. SLIDES: Data Flow Modeling.

MANDATORY MATERIAL

  1. Structural modeling.
  2. Review on logic blocks.
  1. Review on CAE tools and basic technologies in which FSMs are realized.
  2. SLIDES: Structural Modeling II.
  3. SLIDES: Modern Tools for VLSI.
  4. SLIDES: Design Methodologies in VLSI.

================================ UNIT 5.=============================

FSM and GENERATE.

WEEK OF APRIL 10.
  1. SLIDES: Homework 1. Student solution.

  2. SLIDES: lecture001-intro.ppt

  3. SLIDES: lecture002-diagrams-vhdl-intro.ppt

  4. SLIDES: lecture003-FSMs.ppt

  5. SLIDES: lecture005-FSM2-GENERATE statement.ppt

AUXILIARY SLIDES. NEW MATERIAL AND REVIEW.

  1. SLIDES: lecture007-Mentor-Graphics-Tools.ppt

  2. SLIDES: lecture008-Modelsim-Tools-Advise.ppt

  3. SLIDES: lecture009-combinational-circuits.ppt

=================================== UNIT 6.================================

MEMRISTIVE CIRCUITS FROM STATEFUL IMPLY GATES. ARCHITECTURES. SIMULATION, and TIMING.

WEEK OF APRIL 17.
This material is related to projects. Learn it earlier, if you can.
Your task will be to synthesize and simulate nano-technological circuits from stateful IMPLY memristors.
  1. 005. Memristive FPGA - Kamela Rahman - defense2016_v4.pptx
  2. 006. Anika davidson.pdf Here you can find how to synthesize with memristor IMPLY gates.
  3. 007. Paul Long - Systolic Sorter.pptx
  4. 008. Paul Long - SystolicSorterFinalReport.docx
  5. ECE 590 - Final Pro - Kadam.pdf
  6. Final Project - ECE 590 - Sai Kiran Kadam.pptx
  7. ECE 590 - Code and Timing Kadam.pdf
  8. Appendix Triangular Sorter.pdf
  9. ECE 590 report Lakshmi.pdf
  10. Parallel Sorting_Final Marikal and Rapolu.pdf
  11. Parallel Sorting_Final Marikal and Rapolu.pptx
  12. SORTER PROJECT 2016.pptx
  13. Triangular Sorter Sri Kavya.pptx
  14. triangulasorter_final Sri Kavya.docx

AUXILIARY LECTURES ON SIMULATION AND TIMING IN VHDL.

  1. SLIDES: lecture010-timing-and-simulation.ppt
  2. SLIDES: Lecture011-Advanced-use-of-signals.ppt
  3. SLIDES: Lecture012-Signal-Attributes.ppt
  4. SLIDES: Lecture014.Discrete_event_simulation.ppt
  5. SLIDES: lecture016.Objects_types-operations.ppt
HOMEWORK 2.
    This homework must include Finite State machine as its part and must have synthesis with discussion of variants. Otherwise you are free to select any topic of your interest. Use Leonardo or similar toold. Map to an FPGA or describe synthesized circuit using IMPLY and memristors.
  1. Combinational circuits in VHDL.
  2. Assignment statements.
  3. Technology review.

==================================== UNIT 7.=====================================

SATISFIABILITY, AND STACKS. PIPELINED, SYSTOLIC and CELLULAR AUTOMATA.

WEEK OF APRIL 24. WEEK OF MAY 1.
  1. Definitions of systolic computing and systolic arrays. Typical structures. Systolic computers have both pipelining and parallelism. SIMD vs Systolic. Host Station in Systolic. Variations of systolic architectures. 1-Dimensional and 2-Dimensional Arrays. Focal Plane with 3-Dimensional Input-output. Hexagonal arrays. Hypercubes. Trees. Lattices. Applications. Characteristics of Systolic Arrays. Advantages of Systolic Arrays. Using VLSI effectively. Eliminating Von Neuman's Bottleneck. Balancing I/O and computation. Exploiting Concurrency.

  2. lecture008. Satisfiability and search based on stack. ppt
  3. lecture009. Systolic One-dimensional architectures. ppt
  4. lecture010. Edge detection. Sobel and similar filters. Convolution. ppt
  5. lecture011. Systolic convolution. Polynomial multiplication. FIR filters and retiming methods. ppt
  6. lecture012. Types of systolic architectures. ppt
  7. SLIDES: SY_lecture006.-introduction-systolic.ppt
  8. SLIDES: Pipelining
  9. SLIDES: SY_lecture007.-systolic-one-dimensional.ppt Examples of One-Dimensional Systolic Arrays. Motivation and Introduction. Pipelined Computations. Sieve of Eratosthenes. Systolic Arrays from Intel. Systolic Algorithms. Pipelined Polynomial Evaluation. Matrix Vector Multiplication. Systolic Processors versus Cellular Automata versus Regular Networks of Automata. Convolution Circuits Synthesis. FIR-like filter structures. Optimization based on tranformations. FIR Filter or Convolver design. Bag of tricks to be used. Bogus attempts. Types of circuits for convolution. Remarks on designs. FIR filter design. Large Systolic Arrays as general purpose computers. Problems with systolic array design. Key architectural issues. Two-Dimensional Systolic Arrays.
  10. SLIDES: SY_lecture008-two-dimensional-systolic.ppt Obvious matrix multiplication. Systolic matrix multiplication. Examples. Visualization (animation). Data Flow. Programming issues.
  11. SLIDES: SY_lecture009-systolic-two-dimensional-begin.ppt Applications of Systolic Arrays. Hexagonal array for matrix multiplication. Systolic array multiplier of numbers. Triangular systems for solving equations and similar problems. Systolic Organization for future nano-technologies. Organization. Future circuits. Principle of Local Communication. New Concept in Computer Architecture. Systolic Characteristics. Systolic different than pipelined. Systolic Different than Array Processors. Automatic Design of systolic processors. Integration. Systolic Issues.
  12. SLIDES: SY_lecture012-advanced.ppt Systems for real-time systems. Comparison of types of systolic and similar architectures. 3D systolic architectures. Radar Processing as an example. Evaluation of Scorecard. Baseline Parallel Architecture. Complex Butterfly. Efficient Complex Multiply. Parallel-Pipelined Architecture. Serial Input. Serial Architecture. High Level View. 8192-Point Architecture. Increase Parallelism. Simplification. Results. Typical applications. Least Square Algorithms. Matrix Inversion. Internal Cells. Other applications. Drawbacks. Wave-Front Architecture.
  13. SLIDES: SY_lecture011-pattern-matching-systolic.ppt Pattern Matching. Character Matching. Visualization. Join Operation. Systolic organization for Join.
  14. SLIDES: Systolic Processors.
  15. SLIDES: DNA matching systolic architectures
  16. SLIDES: Cellular Automata.
  17. SLIDES: SY_lecture015.Cellular-Automata.ppt What are cellular automata. Example of two-dimensional automaton. The specifications of cellular automata. What is the main characteristics of Cellular Automata. What are the Applications of Cellular Automata ? Examples of Applications of CA. One-Dimensional CA with Wrap-Around. LIFE the game. Life Patterns. Cells of CA. Interaction. Neighborhood. States. 3D automata. Cellular Automaton for Voting. Examples of applications. Consumer-Resource interactions. Predator-Prey. Classification of CA. Types of CA. Wolfram. Complexity. Universal Machines. Self-Reproduction. Games. Life and complexity. Rules of Life. Emergent Behavior. Cellular Automata and Emergence. Analysis of Emergence. Other Systems of Artificial Life that may be modeled on CAs.
  18. SLIDES: SY_lecture010-Advanced-two-dimensional-systolic.ppt Examples of two-dimensional Systolic Arrays. Cannon method as an improvement of standard architecture. Applications of Cannon's Method. Partitioned Multiplication. Block Multiplication. Exercise. Fox's Algorithm. Synchronous Computations. Barriers. Counter Method for Barriers. Tree Barrier. Butterfly Barrier. Barrier Bonuses. Data Parallel Computations. FORALL synchronization assumptions. EXAMPLE: Prefix-Sum. Implementing FORALL using SPMD. Example: Iterative Linear Equation Solver. Nested FORALLs. EXAMPLE: Laplace Heat Equation. Exercise. Synchronous Computations. Barrier Synchronizations. Common Parallel Programming Paradigms. Synchronous Computations. Example: Bitonic Sort. Bitonic Sort Algorithm. Shuffle-Exchange. Bitonic Sort on Hypercube. Mappings of Bitonic Sort. Stone's algorithm. Many-one Mappings of Bitonic Sort. Compare-Split. Performance Issues. Conclusion on Systolic Arrays. Disadvantages of Systolic Arrays. Parallel Overhead.
  19. Advanced and Reconfigurable Systolic Processors.
  20. DNA matching systolic architectures.
  21. Reconfigurable Pipelines.
  22. Very Long Instruction Word (VLIW) Architectures.
  23. Example of good student project. Software, hardware, VHDL. Use of parallel concepts from the class in project. Jacob Boles.
  24. Design of a Intel microcontroller in Xilinx.

============================== UNIT 8. ====================================

COMBINATIONAL CIRCUITS DETAILS AND DESIGN OF ORACLES.

WEEK OF MAY 8.
  1. lecture013. Combinational circuits in VHDL. ppt
  2. CHAP_8. Unate and Binate Covering. CHAP_9. Man Wolf Cabbage.docx Example of oracles.
  3. CHAP_10. Missionaires and Cannibales.docx Example of oracles.
  4. CHAP_11. Longest Path in a Graph.docx Example of oracles.
  5. CHAP_12. Graph Coloring.docx Example of oracles.
  6. Universal Oracle System to solve CSP problems. ,
    examples of CSP problems are SAT, Graph Coloring, Maximum Clique, Petrick Function, etc.

    Chapter 29 from book. This chapter has information very useful for project. It talks about satisfiability hardware using FPGAs.
  7. SLIDES: Satisfiability machine of Boles.

================================= UNIT 9. ==================================

TEST BENCHES.

WEEK OF MAY 8.

MANDATORY SLIDES: TESTBENCHES.

  1. SLIDES: TEST00_Enumerated_types_testbeds.ppt Asheden. Types. Resolution functions and Testbeds. Simple testbed example. Types. Objects. Standard Types and std_logic types. Operators available. Bit and Boolean. Integer types. User defined types. Examples of strong typing. Integer types, synthesis. Integer types, Example. Enumerated types. Multi-valued Logic types. std_logic. Arrays. Array example. Attributes: Integer and Enumeration Types. Attributes: Arrays. LED Decoder, Using Arrays. std_logic Resolution Function. Two Examples. Records. Stack Testbench. Delayed attribute. Fuzzy Logic Homework Assignment. Fuzzy Logic Testbench.

  2. SLIDES: TEST01_Encapsulation_Testbench.ppt Configuration. Test Bench. Encapsulation. Structural Decomposition.

  3. SLIDES: TEST03_large-scale-design.ppt Managing Design Complexity. Partition of designs. Typical design process using VHDL. Test Bed. A VHDL example.

================================== UNIT 10.===================================

OBJECTS. DATA TYPES. PROCEDURES.

WEEK OF MAY 15.
  1. Object types and operations
DESIGNING CONTROLLERS.
  1. Conditionals.
  2. Basic Timing Model and simulation.
  3. Modeling Tools Use. How to use our tools. Very useful guidelines.
  1. SLIDES: Conditionals.
  2. SLIDES: Basic Timing Model and simulation.
  3. SLIDES: Modeling Tools Use.
  1. Data Types.
  2. Modeling Constructs.
  1. SLIDES: Data Types.
  2. SLIDES: Modeling Constructs.
DESIGN OF DATA PATH LOGIC.
  1. Procedures and functions.
  2. Test Benches.
  3. Overview of synthesis and synthesis tools.
  1. SLIDES: Procedures and Functions.
  2. SLIDES: Test Benches.
  3. SLIDES: Synthesis tools.

    ===================================== UNIT 11. ===============================

    BEHAVIORAL DESCRIPTIONS.

    WEEK OF MAY 15.
    1. SLIDES: BEH_001_behavioral-statements.ppt Signals. Drivers. Multiple Drivers. Resolution. Sequential Control Statements. Behavioral Description in VHDL. Modeling Combinational and Sequential Logic. D-Latch Example with Set-up and hold checks. Modeling FSMs. Mixed Descriptions in VHDL. IF statements. If statement timing. SELECT. CASE. Choices. Examples. Null statement. LOOP statement. Inner and outer loops. While Loops. For Loops. NEXT statement. EXIT statement. Assertion Statements. Report Statement. Aliases.

    2. SLIDES: BEH_002_procedures-and-functions.ppt Subprograms. Functions. Procedures. Signal Resolution. Bus resolution. Null transactions. Concurrent statements. Concurrent Signal Assignment. Concurrent Signal Sensitivity. Conditional Signal Statement. Selected Signal Statement. Concurrent Procedure Call. Concurrent vs Sequential Statements in Simulation cycles. Blocks. Nested Blocks. Modeling styles. Behavioral modeling. Data Flow model. Signal Assignment Statements.

    3. SLIDES: BEH_005_Resolved-signals-GUARDS.ppt Blocks, Resolved Signals, Signal Guards, Tri-State Buses.

    ========================================== UNIT 12.==============================

    SYNTHESIS.

    WEEK OF MAY 22.
    1. SLIDES: lecture_SYN_021.high-level-synthesis.ppt Tasks of Designer/Manager. The Henry Ford Assembly line. Aspects of Pipelining. A Werner Diagram Pipeline. A view of the synthesis and design. Gajski's Y-Chart. Parameters of Design. Floorplanning. Fighting Complexity. Example. Partial Differential Equation. Numerical Solution in C. Examples of scheduling and allocation. Earliest Deadline (ASAP). Hardware Solution number 2. Hardware solution number 3. Latest deadline ALAP. Time Constraints with ILP. Resource constraints with Lists. Harmony and balance in Design. Raytracing. Long Convolutions. Kung Systolic array. Spatial Computing. Steps to design. Problems for students to solve.

    2. SLIDES: lecture_SYN_023.SIS-and-logic-synthesis.ppt CAD algorithms and tools. Multi-level logic synthesis. SIS as a representative CAD tool. Boolean Networks. Transformations of Boolean Networks. Optimization loop. Implementation. Network/node data structure, packages, scripts. Conclusions.

    3. SLIDES: lecture_SYN_024.CPLD-FPGA.ppt Programmable Chips and Boards. Implementation technologies. Full Custom and Gate Arrays. PLD, EPLD, CPLD. FPGA. Xilinx XC6200.

    4. SLIDES: lecture_SYS_026-combinational-blocks.ppt Useful Combinational Basic Blocks in VHDL. Decoders. Decoders in VHDL. 3 to 8 Decoder in VHDL. 7-segment decoder. Encoders. Multiplexers. Multiplexer with one control. Behavioral Synthesis of sequential selection instruction. Behavioral Synthesis of sequential selection instruction using CASE. Synthesis of numeric types: Integer and Real. Synthesis of Enumerative Types. Type: STD_LOGIC_1164. Synthesis of assignment statements for logic operators. Synthesis of assignment statements for relational operators. Synthesis of arithmetic operators. Synthesis of logic copying instructions. First example of synthesis of "Logic copying instructions". Second example of synthesis of "Logic copying instructions". XOR and Parity Circuits. Comparators. Adders, Subtractors and ALUs. Adder with Argument Selection. Adder and its circuit generated from cells. Another Adder. Arithmetic Circuits. Multipliers. ROM Implementations.

    5. SLIDES: lecture_SYS_027-synthesis-sequential.ppt VHDL and Sequential Circuit Synthesis. Multiple architecture for the same entity. What is synthesis. Advanced Data Flow Diagram. Watch Out for these statements. Basic Sequential Elements. Descriptions using latches. Modeling latches. Description using Edge Triggered Flip-Flops. Description using Edge Triggered Flip-Flops with complex excitation function. Description of synchronous SET/RESET Flip-Flops. Synchronous SET/RESET Flip-Flops. Asynchronous SET/RESET Flip-Flops. Clock Enable Flip-Flops. Flip-Flops inferred by Wait Until. Avoid undesired memory elements. Flip-Flops inferred by variables. Edge Synchronization using Function RISING_EDGE. Description of Tristate Buffers. Description of wired circuit using Tristate Buffers. Flip-Flops with Tristate Buffers. Tristate Buffer at the FF's output. Busses with Tri-state buffers. Three-State Multiple-Drivers. State Machines. Two-Process FSM. Example: Two-Process FSM. Combinational Logic. VHDL Tri-State Bus. VHDL register. State Machines. Examples. Implementation of PULSE_GEN. Modeling FSM. Mealy and Moore automata. Recommended type of FSM modeling. Output Synchronization of State Machines. Counters. CAUTION: Hardware realization of VHDL objects. State Encoding. Illegal States. Dealing with State Machines. Example Machine. State Diagram. Next State Decoding. Decoding States for output signals. RESET circuits. Dealing with illegal states. "Safe State Machines". Exam Material: Architecture review. Anatomy of CSA. Processes. Process examples. Variables. Signals. Latching. Latch inference. Microprocessor I/O Ports. Looping to replicate Hardware. Range Attributes. For Loop. Exit Statement. While Loop Syntax. WAIT statement. Some Synthesis limitations. Registers. D-Flop variants. Synchronous Design. Typical Synchronous System. Synchronous System Issues. Clock Skew. Global Clock Buffers. Input Synchronization. Simple examples; Counters and timing.

    6. SLIDES: lecture_SYS_028-FGA-synthesis.ppt Advanced techniques in design optimization. Introduction to synthesis tools. Design Flow using FPGAs and ASIC. Optimization of a counter. Advanced: think in hardware. Commercial Synthesis tools. Leonardo Spectrum. FPGA express. Completing design flow in FPGAs. Advantages in Synthesis to PLDs and FPGAs. Disadvantages in Synthesis. Other approaches.

    ========================================== UNIT 13.==============================

    PACKAGES AND ALIASES. STRUCTURAL MODELING.

    TO DISCUSS.

    1. Packages and aliases.
    2. Processor design.
    3. System Level Modeling.
    4. Packages and Aliases.

    MANDATORY SLIDES: STRUCTURAL MODELING.

    1. SLIDES: lecture023-structural-modeling.ppt Structural Modeling. Entities. Ports. Architectures. Packages.

    2. SLIDES: lecture027-package-modeling-mvl.ppt Packages. USE Clause. Aliases. Data Alias. Non-Data Alias. Resolved Signals.

    3. SLIDES: lecture_SYN_020-synthesis-from-VHDL.ppt Synthesis from VHDL. Design entry. Add-on tools. Synthesis. Layout Synthesis. Example of VHDL code for layout synthesis. VHDL-to-STD-cell. Logic Synthesis. Timing Optimization. Combined timing-size optimization. Problems in synthesis. Wire loading. RTL vs High-Level Synthesis. Synthesis from VHDL. FSM specification for synthesis. RTL synthesis for VHDL: An Example. HLS synthesis for VHDL. Signal assignment semantics. Estimate using floor plan. Vertical Synthesis. VHDL versus Verilog in Synthesis. Compiled vs Interpreted. Synthesis in the future. Problems for students to solve.

    4. SLIDES: Packages and aliases. Packages, Package Declaration. Package Declaration Syntax. Package Declaration Example. Package Body. Package Body Syntax. Package Body Example. Library clause. Use Clause. Use Clause Syntax. Use Clause Example. Aliases. Data Alias Syntax. Data Alias. Non-Data Alias Syntax. Resolved Signals. Resolved Signal Syntax. Resolved Signal Example.

    5. SLIDES: System Level Modeling. System level modeling in RASSP Roadmap. Module goals. Requirements for Effective System-level modeling. System level modeling definitions. Abstraction. Levels of Abstraction. Executable Specifications. Executable Specifications: MIT Lincoln Laboratories. Express VHDL/i-Logic. Performance Modeling Overview. Performance Evaluation. Uninterpreted Models. Petri Nets. Queuing Models. Token-Based Simulation Models. ADEPT. Honeywell Performance Modeling Library. Interpreted models. Hybrid Models. ADEPT hybrid modeling. Object-Oriented Analysis. Advantages of OO analysis. Dependability Outline. Errors and Faults. Dependability Modeling Definitions. Need for Dependability Modeling. Additional Metrics. Analytical Techniques. Combinatorial Models. Semi_Markov Unreliability Range Evaluator (SURE). Simulation-Based Techniques. Reliability Estimation System Testbed (REST). Functional Modeling. Functional Modeling in MATLAB. MAT2DSP. Ptolemy. Ptolemy Capabilities. Bus Functional Models. Example. Bus Functional Example - Alchemist.

========================================== UNIT 14.==============================

OVERLOADING. BUS RESOLUTION. ARRAYS.

TO DISCUSS.

  1. Structural Overloading.
  2. Bus resolution, more examples.
  3. Arrays.
  4. If time will allow, show more examples of test-benches.

MANDATORY SLIDES.

  1. SLIDES: BEH_006_Structural_Overloading.ppt Structural Model. Procedures. Functions. Overloading.

  2. SLIDES: BEH_007_bus-resolution-sorter-multiplier.ppt Behavioral VHDL. Testbenches. Signal Assignment Statements. Inertial vs Transport Delay. Entity statements. Blocks and guards. VHDL packages. Potential Problems to avoid. Resolving Difficulties. Three examples of Behavioral Description. Package with Bus Resolution Function. Unsigned 8 bit Multiplier Controller. Package for Quicksort Routine.

  3. SLIDES: BEH_008_examples_ROM.ppt Why behavioral. Wait Statement. Signal Timing. Examples of behavioral descriptions: ROM.

  4. SLIDES: BEH_011_arrays.ppt Data Types. Composite Data Types. Arrays. Records. Constrained vs unconstrained arrays. Two Examples of Predefined Unconstrained Types. Unconstrained Array Ports. AND example. Array reference. Examples of Array Aggregate. Examples of Named Association in Array Aggregate. Array Operations: element by element logic operations. NOT operations. 1D Shift and Rotate Array Operations. Shift and Rotate Operations. Relational Array Operations. Array Operations: Concatenation. Conversion from one Array Type to Another. Example of Array Type Conversion. Example of Array Aggregate. Predefined Attributes. Array Type Bound Example: use of predefined attributes. Another example of array bound. Multi-range array attributes. Array length attributes. Range attributes. Type attributes position function. Homework: Attributes exercise. Example of using Attributes. User Defined Attributes. Records. Examples of records.

  5. SLIDES: BEH_012_files-access-type.ppt VHDL advanced Features. Buses. Access Type. File Input/Output.

  6. SLIDES: lecure02_advanced-Basic-Structura-lVHDL.ppt Entity Declarations. Port Clause. Component Declaration. Configuration Declaration. Architecture Bodies. Signal Declarations. Wait Statement. Sensitivity Clause. Concurrent Assertions. Passive Statements.

  7. SLIDES: vhdl2pld.ppt Specifying Programmable Logic. JEDEC files. JEDEC Formats. PLD Programming Options. Creating a JEDEC file. PLD Programming Language. PLD Programming. Boolean Equations in VHDL. Operator Precedence. A Complete VHDL Model. Comments on Example. How Much VHDL do YOU have to know? Using Internal Signals. VHDL Template for SSN Decode (Entity). VHDL Template for SSN Decode (Architecture). Compiling, Simulating, JEDEC File Creation. Compilation/Simulation Results. Compilation/Simulation Failure.

========================================== UNIT 15.==============================

VERILOG.

TO DISCUSS.

  1. Verilog for state machines.
  2. Verilog for combinational circuits.
  3. Verilog for testbenches.
  4. Behavioral descriptions in Verilog.
  5. SLIDES POWERPOINT: Verilog Lecture in PPT Verilog Language. Structural Modeling. Behavioral Modeling. How Verilog is used. Two Main Components of Verilog. Two Main Data Types. Discrete-Event Simulation. Four-Valued Data. Four-Valued Logic. Structural Modeling. Nets and Registers. Modules and Instances. Instantiating a Module. Gate-Level Primitives. Delays on Primitive Instances. User-Defined Primitives. A Carry Primitive. A Sequential Primitive. Continuous Assignment. Behavioral Modeling. Initial and Always Blocks. Procedural Assignment. Imperative Statements. For Loops. While Loops. Modeling a FLIP-FLOP With Always. Blocking vs Non-Blocking. A Flawed Shift Register. Non-Blocking Assignments. Non-Blocking Can Behave oddly. Non-blocking Looks Like Latches. Building Behavioral Models. Modeling FSM Behaviorally. FSM with Combinational Logic. FSM from Combinational Logic. FSM from a Single Always Blocks. Simulating VERILOG. How are simulator used. Writing Testbenches. Simulation behavior. Two Types of events. Simulation behavior. Verilog and Logic Synthesis. Translating VERILOG into Gates. What can be translated. What isn't translated? Register Inference. Inferring Latches with Reset. Simulation-Synthesis Mismatches. Compared to VHDL.

MORE VERILOG SLIDES.

  1. SLIDES PDF: Verilog Lecture in PDF
  2. SLIDES: 001.verilog-intro.ppt

  3. SLIDES: 002.ch5_verilog.ppt

  4. SLIDES: 005-fpga-Spartan-verilog-2003.ppt
  5. SLIDES: CHAPTER-8.ppt
  6. SLIDES: PLI-intro.ppt
  7. SLIDES: FinalProjectPresentation-Fareena3.ppt

AUXILIARY SLIDES: CODING STANDARDS IN VHDL.

  1. SLIDES: ESA Coding Standards." ESA Modeling guidelines. Basic Language. Readability Standards. Naming Conventions. Comments. Required File Header. Subprogram description. Port and Generic Clauses. Types. Literals. Files. Signals. Ports. Assertion Statements. Assertion Severity Levels. Declarations. Configurations. Packages. Design Libraries. Constructs to Avoid. Verification. Deliverables. Specific Model Requirements. Component Simulation Model. Allowed Types. Component Model Interface. Component Model Signals. Board Level Simulation Models. Board Level Model Interface. Board Level Simulation Models. Board Level Model Timing. Board Level Timing Parameters. Board Level Verification. System Level Simulation.

  2. SLIDES: Discrete Events Simulation. Discrete Event Simulation (DES) and VHDL. DES Properties. Why Discuss DES. Two Approaches to DES. Queues. Efficient Simulator. Internal Event Queues. Simulation Determinism. Stochastic Simulation. System Stressing. Simulation Validation. Concurrent Simulation. VHDL Implementation of FSMs. FSM Types. FSM Equivalence. DFA/NDFA. Inappropriate Use of FSMs.

+++++++++++++++++++++ SLIDES BELOW ARE RELATED ONLY TO SOME PROJECTS AND NOT MANDATORY ++++++++++++++++++++++++++++

========================================== UNIT 16.==============================

TUPLE MACHINES, LONG WORD PROCESSORS AND CUBE CALCULUS PROJECTS


  1. PROJECT 1. Advanced Tuple Machine on Veloce.
    here is the thesis of Qihong Chen about CCM machine
  2. SLIDES: Cube Calculus
  3. SLIDES: Cube Calculus Machine Architecture Fundamentals This is an architecture that has a one-dimensional, two-directional network of FSMs.

========================================== UNIT 17.==============================

VERIFICATION ACCELERATORS AND EMULATORS.

  • Chapter 30 from book. This chapter has information useful for project. It talks about verification accelerators.

    ========================================== UNIT 18.==============================

    EVOLVABLE HARDWARE.

    1. SLIDES: Learnining Hardware and Evolvable Hardware

    ORACLES AND SAT SOLVERS

    ========================================== UNIT 19.==============================

    PROCESSORS FOR ROBOTICS.

    1. SLIDES: derek-hw2-beverage serving-robot.doc
    2. SLIDES: sunardi-hm1.doc Braitenberg Vehicle Robot.
    3. SLIDES: sunardi-hm2.doc Motion generation for a robot.
    4. SLIDES: Robot Design. Example of a complete state machine
    5. PDF File: Example of good homework 1 design and documentation. Robot Arm.

    ========================================== UNIT 20.==============================

    REVERSIBLE LOGIC.

    1. SLIDES: HW1-Reversible-Adder.doc
    2. SLIDES: Reversible-Adder-VHDL.pdf
    3. SLIDES: Lecture 3 of Kerntopf about reversible logic fundamentals.
    4. SLIDES: lecture004-reversible-logic.ppt

    ========================================== UNIT 21.==============================

    CPLDs and FPGAs.

    1. CPLDs and FPGAs for our projects
    2. SLIDES: Multiplexers, Decoders, ROMs. Use in design.
    3. SLIDES: PAL, PLA, EPLD, FPGA. Complex PLD (CPLD).
    4. SLIDES: Technology.

    ========================================== UNIT 22.==============================

    DSP CIRCUITS.

    1. DSP Circuits
    2. Review on logic and sequential blocks. Use of logic blocks in sequential machines.
    3. Shifters, counters.
    4. SLIDES: SY_lecture019.Signal-Processing-circuits.ppt

    ========================================== UNIT 23.==============================

    ARITHMETIC CIRCUITS.

    1. SLIDES: Arithmetic Circuits. Full adder. Adder/Subtractor. Ripple Carry Chain. Carry Look-Ahead adder. Carry Select Adder. Generalization of these Principles.
    2. SLIDES: Arithmetic Circuits. Serial Adder. ALU, Parity. Comparators. Multiplier.
    3. SLIDES: Combinational circuits in VHDL.
    4. SLIDES: Assignment statements.

    ========================================== UNIT 24.==============================

    EDA TOOLS.

    1. SLIDES: Introduction to EDA tools.

    ========================================== UNIT 25.==============================

    MICROPROCESSORS AND MICROCONTROLLERS.

    1. SLIDES: Microprocessor design. Mano and Kime
    2. SLIDES: Design of a Intel microcontroller in Xilinx.
    3. SLIDES: Design of a complete ASIC CPU.
    4. SLIDES: DP32 Processor. Case Studies: DP-32 Processor. From Asheden's VHDL Cookbook. Complete Word Format Document on Web. Behavroral description. Structural Description in form of RTL. Entity, Architecture, Configuration, Packages, etc. DP 32 registers. Arithmetic Instructions. Typical 32-bit Instruction format. Port Diagram. Two-phase, non-overlapping clock. Bus Read timing. DP32 Package. Package Body. DP32 entity. DP32 Architecture. DP32 Behavioral Architecture. DP32 Behavioral Subtract. DP32 Behavioral Kernel - Reset. DP32 Behavioral Kernel. DP32 Behavioral Partial Decode. DP32 Test Bench. DP32 Test Bench Entity. DP32 Test Bench Architecture. DP32 Memory Entity. DP32 Memory Architecture. Successive Approximation A/D. S/A algorithm. Assuming 8-bit conversion. Approximations. Negative-Valued Inputs.
    5. SLIDES: DP Processor Components. Case Study Components. DP-32 Processor, RTL. RTL Implementation of DP-32. Components needed. Default. 2-input MUX. Transparent Latch. Buffer. Sign-Extending buffer. Latching Buffer. Program Counter Register. Register File. ALU. Condition Code Comparator. Controller. RTL Testbench.

    ========================================== UNIT 26. ==============================

    CLOCKING.

    1. SLIDES: Clocking

    ========================================== UNIT 27 ==============================

    PARALLEL COMPUTING.

    1. SLIDES: Parallel Computing
    2. SLIDES: Machine Classification

    ========================================== UNIT 28. ==============================

    RECONFIGURABLE COMPUTING.

    1. SLIDES: Advanced and Reconfigurable Systolic Processors.
    2. SLIDES: Reconfigurable Pipelines

    ========================================== UNIT 29. ==============================

    VERY LONG INSTRUCTION WORD. VLIW.

    1. SLIDES: VLIW Architectures

    ========================================== UNIT 30. ==============================

    GALOIS FIELD ARITHMETICS.

    1. SLIDES: GF-2n-LOgic-Tenca.ppt Scalable and Unified Hardware to Compute Montgomery Inverse in GF(p) and GF(2^n). Motivation and related work. GF(p) Montgomery inverse algorithm and hardware. GF(2^n) Montgomery inverse algorithm. The unified and scalable architecture implementation. Area and speed comparisons.

    ========================================== UNIT 31. ==============================

    PACEMAKERS AND MEDICAL.

    1. SLIDES: AlanFryer=Pacemaker.doc

    ========================================== UNIT 32. ==============================

    CORDIC AND SIMILAR ARCHITECTURES.

    1. SLIDES: bista-Hough_Cordic.pdf Hough Transform on Cordic Processor.
    2. SLIDES: KelleyECE590hw2.pdf Trigonometric controller with simple lookup table.

    ========================================== UNIT 33. ==============================

    DEC PERLE and MASSIVE FPGA PROCESSORS.

    1. SLIDES: PE013.DEC-PERLE-BOARD.PPT Explanation of the board and typical applications.

    ========================================== UNIT 34.==============================

    HOUGH TRANSFORMS.

    1. SLIDES: SchmidlKoferProjectECE590.doc Incremental Hough Transform.
    2. SLIDES: Hughes-Hough-Transform.doc

      Mark Hughes. Hough based on Search and Save.

    ========================================== UNIT 35. ==============================

    ANALYSIS OF QUALITY OF VHDL SYSTEM SYNTHESIS.

    1. SLIDES: andrzej_janczak-hw1.doc Comparison of two Gray counters. Hand made and done by VHDL compiler.

    ========================================== UNIT 36. ==============================

    MODULATORS.

    1. SLIDES: bista-HOMEWORKI.doc Pulse amplitude modulator.

    ========================================== UNIT 37. ==============================

    FIFOs.

    1. SLIDES: bista-HOMEWORKII.doc FIFO controller.

    ========================================== UNIT 38. ==============================

    REPORTS FROM SYNTHESIS TOOLS.

    1. SLIDES: Bista-place-and-route-report.doc
    2. SLIDES: Bista-synth-report.doc

    3. SLIDES: Bista_static-timing-report.doc

    4. SLIDES: bita-map-report.doc
    5. SLIDES: hughes-timing-diagram.doc

    ========================================== UNIT 39. ==============================

    SPECTRAL TRANSFORMS AND BUTTERFLIES.

    1. SLIDES: HughesPolarityOptimizer.doc

      Reed Muller butterfly with optimization of polarity. By Hughes.

    ========================================== UNIT 40. ==============================

    ITERATIVE CIRCUITS.

    1. SLIDES: Hughes-Comparator.pdf

      Two variants of order/equality iterative comparators.

    ========================================== UNIT 41. ==============================

    EVALUATORS OF SYMMETRIC FUNCTIONS.

    1. Sasao symmetric function evaluator.
    2. Iterative state machine by me based on old russian ideas
    3. Triangle of min/max.
    4. Lattices.

    ========================================== UNIT 42. ==============================

    NON-STANDARD LOGICS AND CIRCUITS FOR THEM. FOR FUTURE PROJECTS.

    1. August Stern Matrix Logic.
    2. Vedic multipliers.
    3. Buddhist Logic.
    4. Polish inverse logic.
    5. Chinese reminder theorem.
    6. Turing machine with Moebius tape.
    7. Enigma machine.
    8. Machines for logic by Raymon Lullus and others.
    9. Address-free machine of Pawlak.
    10. Tautology Checker of Sasao.



    BACK TO MAIN PAGE OF Professor Marek Perkowski.
    You can reach me at
    mperkows@ee.pdx.edu