FPGA Development

  1. Hardware Description Languages
    1. Introduction to HDLs
      1. Purpose of HDLs in Digital Design
        1. Describing Hardware vs. Programming Software
          1. Concurrency in Hardware
            1. Simulation vs. Synthesis
              1. Concept of Synthesis
                1. Abstraction Levels
                  1. Behavioral Level
                    1. Register Transfer Level
                      1. Gate Level
                        1. Switch Level
                      2. Verilog
                        1. Language Fundamentals
                          1. Module Definition and Structure
                            1. Port Declarations
                              1. Input Ports
                                1. Output Ports
                                  1. Inout Ports
                                  2. Data Types
                                    1. Net Types
                                      1. wire
                                        1. tri
                                          1. supply0 and supply1
                                          2. Variable Types
                                            1. reg
                                              1. integer
                                                1. real
                                                  1. time
                                                  2. Vector Declarations
                                                    1. Arrays
                                                      1. Parameters and Local Parameters
                                                      2. Operators
                                                        1. Arithmetic Operators
                                                          1. Logical Operators
                                                            1. Bitwise Operators
                                                              1. Reduction Operators
                                                                1. Shift Operators
                                                                  1. Relational Operators
                                                                    1. Equality Operators
                                                                      1. Conditional Operator
                                                                        1. Concatenation Operator
                                                                        2. Constants and Literals
                                                                          1. Number Formats
                                                                            1. String Literals
                                                                          2. Modeling Styles
                                                                            1. Structural Modeling
                                                                              1. Gate-Level Primitives
                                                                                1. Module Instantiation and Hierarchy
                                                                                  1. Port Mapping
                                                                                    1. Positional Association
                                                                                      1. Named Association
                                                                                    2. Dataflow Modeling
                                                                                      1. Continuous Assignments
                                                                                        1. Assign Statement Usage
                                                                                          1. Delay Modeling
                                                                                          2. Behavioral Modeling
                                                                                            1. Procedural Blocks
                                                                                              1. always Block
                                                                                                1. initial Block
                                                                                                2. Blocking vs. Non-Blocking Assignments
                                                                                                  1. Sensitivity Lists
                                                                                                    1. Event Control
                                                                                                      1. Timing Control
                                                                                                    2. Control Constructs
                                                                                                      1. Conditional Statements
                                                                                                        1. if-else Statements
                                                                                                          1. Nested if Statements
                                                                                                          2. Case Statements
                                                                                                            1. case Statement
                                                                                                              1. casex Statement
                                                                                                                1. casez Statement
                                                                                                                2. Loop Statements
                                                                                                                  1. for Loops
                                                                                                                    1. while Loops
                                                                                                                      1. repeat Loops
                                                                                                                        1. forever Loops
                                                                                                                        2. Generate Statements
                                                                                                                          1. Generate for Loops
                                                                                                                            1. Generate if Statements
                                                                                                                              1. Generate case Statements
                                                                                                                            2. Functions and Tasks
                                                                                                                              1. Function Declarations
                                                                                                                                1. Task Declarations
                                                                                                                                  1. Automatic Functions and Tasks
                                                                                                                                    1. Recursive Functions
                                                                                                                                    2. Compiler Directives
                                                                                                                                      1. Include Directive
                                                                                                                                        1. Define Directive
                                                                                                                                          1. Ifdef Conditional Compilation
                                                                                                                                            1. Timescale Directive
                                                                                                                                            2. System Tasks and Functions
                                                                                                                                              1. Display Tasks
                                                                                                                                                1. File I/O Tasks
                                                                                                                                                  1. Simulation Control Tasks
                                                                                                                                                    1. Random Number Functions
                                                                                                                                                    2. Testbench Construction in Verilog
                                                                                                                                                      1. Testbench Structure
                                                                                                                                                        1. Writing Stimulus
                                                                                                                                                          1. Clock Generation
                                                                                                                                                            1. Reset Generation
                                                                                                                                                              1. Monitoring Outputs
                                                                                                                                                                1. File-Based Testing
                                                                                                                                                              2. VHDL
                                                                                                                                                                1. Language Fundamentals
                                                                                                                                                                  1. Design Units
                                                                                                                                                                    1. Entity Declaration
                                                                                                                                                                      1. Architecture Body
                                                                                                                                                                        1. Configuration Declaration
                                                                                                                                                                          1. Package Declaration
                                                                                                                                                                            1. Package Body
                                                                                                                                                                            2. Port Declarations
                                                                                                                                                                              1. Port Modes
                                                                                                                                                                                1. in
                                                                                                                                                                                  1. out
                                                                                                                                                                                    1. inout
                                                                                                                                                                                      1. buffer
                                                                                                                                                                                    2. Data Types
                                                                                                                                                                                      1. Scalar Types
                                                                                                                                                                                        1. std_logic
                                                                                                                                                                                          1. bit
                                                                                                                                                                                            1. boolean
                                                                                                                                                                                              1. integer
                                                                                                                                                                                                1. real
                                                                                                                                                                                                  1. character
                                                                                                                                                                                                  2. Composite Types
                                                                                                                                                                                                    1. std_logic_vector
                                                                                                                                                                                                      1. bit_vector
                                                                                                                                                                                                        1. string
                                                                                                                                                                                                          1. Arrays
                                                                                                                                                                                                            1. Records
                                                                                                                                                                                                            2. Subtypes
                                                                                                                                                                                                              1. User-Defined Types
                                                                                                                                                                                                                1. Enumerated Types
                                                                                                                                                                                                              2. Objects
                                                                                                                                                                                                                1. Constants
                                                                                                                                                                                                                  1. Variables
                                                                                                                                                                                                                    1. Signals
                                                                                                                                                                                                                      1. Files
                                                                                                                                                                                                                      2. Operators
                                                                                                                                                                                                                        1. Arithmetic Operators
                                                                                                                                                                                                                          1. Logical Operators
                                                                                                                                                                                                                            1. Relational Operators
                                                                                                                                                                                                                              1. Shift and Rotate Operators
                                                                                                                                                                                                                                1. Concatenation Operator
                                                                                                                                                                                                                              2. Concurrent Statements
                                                                                                                                                                                                                                1. Signal Assignments
                                                                                                                                                                                                                                  1. Simple Signal Assignment
                                                                                                                                                                                                                                    1. Conditional Signal Assignment
                                                                                                                                                                                                                                      1. Selected Signal Assignment
                                                                                                                                                                                                                                      2. Component Instantiation
                                                                                                                                                                                                                                        1. Component Declaration
                                                                                                                                                                                                                                          1. Component Instantiation
                                                                                                                                                                                                                                            1. Port Mapping
                                                                                                                                                                                                                                              1. Positional Association
                                                                                                                                                                                                                                                1. Named Association
                                                                                                                                                                                                                                              2. Generate Statements
                                                                                                                                                                                                                                                1. For Generate
                                                                                                                                                                                                                                                  1. If Generate
                                                                                                                                                                                                                                                  2. Block Statements
                                                                                                                                                                                                                                                  3. Sequential Statements
                                                                                                                                                                                                                                                    1. Process Statements
                                                                                                                                                                                                                                                      1. Process Declaration
                                                                                                                                                                                                                                                        1. Sensitivity Lists
                                                                                                                                                                                                                                                          1. Wait Statements
                                                                                                                                                                                                                                                          2. Sequential Signal Assignment
                                                                                                                                                                                                                                                            1. Variable Assignment
                                                                                                                                                                                                                                                              1. Control Statements
                                                                                                                                                                                                                                                                1. if-then-else Statements
                                                                                                                                                                                                                                                                  1. case Statements
                                                                                                                                                                                                                                                                    1. Loop Statements
                                                                                                                                                                                                                                                                      1. for Loops
                                                                                                                                                                                                                                                                        1. while Loops
                                                                                                                                                                                                                                                                          1. loop Statements
                                                                                                                                                                                                                                                                          2. next and exit Statements
                                                                                                                                                                                                                                                                          3. Procedure Calls
                                                                                                                                                                                                                                                                            1. Assertion Statements
                                                                                                                                                                                                                                                                            2. Subprograms
                                                                                                                                                                                                                                                                              1. Functions
                                                                                                                                                                                                                                                                                1. Function Declaration
                                                                                                                                                                                                                                                                                  1. Function Body
                                                                                                                                                                                                                                                                                    1. Pure and Impure Functions
                                                                                                                                                                                                                                                                                    2. Procedures
                                                                                                                                                                                                                                                                                      1. Procedure Declaration
                                                                                                                                                                                                                                                                                        1. Procedure Body
                                                                                                                                                                                                                                                                                      2. Libraries and Packages
                                                                                                                                                                                                                                                                                        1. Library Declarations
                                                                                                                                                                                                                                                                                          1. Use Clauses
                                                                                                                                                                                                                                                                                            1. Standard Libraries
                                                                                                                                                                                                                                                                                              1. STD Library
                                                                                                                                                                                                                                                                                                1. IEEE Library
                                                                                                                                                                                                                                                                                                2. IEEE Packages
                                                                                                                                                                                                                                                                                                  1. std_logic_1164 Package
                                                                                                                                                                                                                                                                                                    1. numeric_std Package
                                                                                                                                                                                                                                                                                                      1. numeric_bit Package
                                                                                                                                                                                                                                                                                                        1. std_logic_arith Package
                                                                                                                                                                                                                                                                                                          1. std_logic_unsigned Package
                                                                                                                                                                                                                                                                                                        2. Attributes
                                                                                                                                                                                                                                                                                                          1. Predefined Attributes
                                                                                                                                                                                                                                                                                                            1. Array Attributes
                                                                                                                                                                                                                                                                                                              1. Type Attributes
                                                                                                                                                                                                                                                                                                                1. Signal Attributes
                                                                                                                                                                                                                                                                                                                2. User-Defined Attributes
                                                                                                                                                                                                                                                                                                                3. Testbench Construction in VHDL
                                                                                                                                                                                                                                                                                                                  1. Testbench Architecture
                                                                                                                                                                                                                                                                                                                    1. Writing Stimulus
                                                                                                                                                                                                                                                                                                                      1. Clock and Reset Generation
                                                                                                                                                                                                                                                                                                                        1. Monitoring Outputs
                                                                                                                                                                                                                                                                                                                          1. File I/O Operations
                                                                                                                                                                                                                                                                                                                            1. Assert Statements for Verification
                                                                                                                                                                                                                                                                                                                          2. SystemVerilog
                                                                                                                                                                                                                                                                                                                            1. Enhancements over Verilog
                                                                                                                                                                                                                                                                                                                              1. Data Types and Structures
                                                                                                                                                                                                                                                                                                                                1. Interfaces
                                                                                                                                                                                                                                                                                                                                  1. Classes and Object-Oriented Programming
                                                                                                                                                                                                                                                                                                                                    1. Assertions
                                                                                                                                                                                                                                                                                                                                      1. Coverage
                                                                                                                                                                                                                                                                                                                                        1. Constrained Random Verification