
In the first lecture of the course we discuss why Hardware Description Languages like VHDL are used in the design of FPGA and ASICs. Included is the history of VHDL, the benefits of utilizing the VHDL language, and a comparison of VHDL to Verilog, the other most common HDL.
Once we understand why and how we use a hardware description language like VHDL, we must learn the structure, syntax, and rules for VHDL designs. In this lecture we learn the basics of a VHDL entity and architecture, as well as get a beginning look at the VHDL process. At the conclusion of this lecture we should be able to create a basic VHDL design.
We need a VHDL simulator for verifying our VHDL designs operate as we expect. In this discussion we look at the Intel Altera Quartus Lite Modelsim edition, as well as the Xilinx Vivado simulator. Either of these can be used for the lab work.
A demonstration on downloading and installing the Altera Quartus Lite version of Modelsim
A demonstration for your first time with the Vivado Simulator from Xilinx
A demonstration on downloading and installing the Vivado Webpack with simulator included.
A demonstration on getting started with the Altera Quartus Lite version of Modelsim. Learn how to enter your design, compile, and then run the simulation.
Demonstration on how to acquire and run the GHDL Simulator
How to use the web based EDA playground
Learn to implement a seven-bit temp mux in VHDL for the lab and verify it with the Vivado simulator, including creating an RTL architecture and testing with forced inputs.
Explore the VHDL process in detail, covering sensitivity lists, end-of-process signal assignments, and concurrent processes, then introduce integer and boolean types, and vector manipulation with aggregates and concatenation.
Explore VHDL hierarchy by declaring components, instantiating them, and wiring with internal signals; build test benches to apply stimuli, simulate, and verify designs using explicit port maps.
A demonstration of how to simulate a testbench and the design with the Vivado Simulator
A demonstration of how to simulate a design with a TestBench in Modelsim
Logic design is built from combinatorial logic and flip-flops. It is a combination of these structures that produce a complete design. We start by understanding the flip-flop. Its behavior and use, as well as how to define a flip-flop in VHDL.
The best FPGA and ASIC designs incorporate a synchronous design methodology. It is commonly referred to RTL design. In this lecture we discuss best practices for designing in a synchronous manner, and what asynchronous design pitfalls to avoid.
We discuss the various RTL styles that are popular with FPGA and ASIC designers.
A discussion of Multi-Value logic systems, with std_logic, std_ulogic, the most common signals types in RTL design
Explore composite types like standard logic vector, learn vector slicing and the differences between signals and variables in VHDL RTL design.
Develop a practical understanding of VHDL state machines by creating enumerated types, modeling mealy and moore outputs, and exploring reset, transitions, and encoding options like binary and one-hot.
Explore VHDL logical and relational operators, emphasizing two-operand evaluation, bitwise vector operations, boolean versus standard logic, and shift, precedence, literals, and casting.
A discussion on how math is performed using VHDL, with multiple options and recommendations.
Explore how to use vhdl to design with overloaded functions, procedures, and packages, and organize libraries for test benches.
Verification is a significant portion of the design process. In VHDL we use sophisticated testbenches to verify the proper behavioral operation of our design. In this lecture we look at the various techniques used to sufficiently verify our design.s
Self Checking Test Benches make regressive verification part of the design process. Self Checking Testbenches allow us to catch any latent faults as we add functionality to our designs.
Twelve lectures, starting from the basics of VHDL, including the entity, architecture, and process. Explanations of the difference in sequential and concurrent VHDL. Discussions of good synchronous design methodology. Demonstrations on how to use the Altera Modelsim and Xilinx Vivado simulators. Six lab projects for hands-on experience, with the instructor showing how he would have done each lab.