
Course outline is briefly explained
ENTITY module in VHDL is explained by example.
Architecture unit in VHDL is explained by examples.
Data objects, such as signal, constant, variable are explained by examples.
In this lecture, we explain how to create ports using VIVADO using the entity unit such that the required number of ports are created without wasting the resources.
Data types are explained by examples.
In this lecture, we inspect 'natural' and 'positive' data types in VIVADO, and elaborate 2's complement representation of negative numbers in VHDL using VIVADO, furthermore, default values of data types are inspected in VIVADO.
VHDL Operators such as ·assignment Operators, logical Operators, logical and arithmetic shift operators are explained.
In this lecture, we simulate the operators 'SLL', 'SLA', 'SRL', 'SRA', 'ABS' in VIVADO for different data types.
VHDL Operators, rem, mod, rem, abs, &, ** are explained by examples
The use of 'generic' statement in VHDL is explained by examples.
In this lecture, we simulate the power operator '**', and the remainder functions mod(), rem() in VIVADO. Besides, we simulate a simple concurrent VHDL code in VIVADO.
Combinational circuit design using "when" and "with-select" statements is explained by examples.
The VHDL Statement "Generate" is explained by examples
In this lecture, we perform VIVADO simulations for the VHDL programs involving 'generate', 'when-else' statements. We consider the simulations of 'parity generator', 'vector reversal', 'MUX 2x1', and combinational circuit involving MUX 2x1 VHDL programs.
Implementation of MUXES and circuits involving MUXES in VHDL is explained by examples.
VHDL implementation of logic circuits involving MUXES is explained by examples.
In this lecture we show how to assign FPGA pins to the entity ports. We show how to create a simple constraint file.
VHDL implementation of logic circuits involving MUXES is explained by examples.
Gray, BCD, Octal, and binary Prority Encoders are implemented in VHDL
In this lecture BCD encoder and BCD to Sevent Segment Display Code Converter will be implemented in VHDL
In this lecture the students will learn how to write a testbench for the simulation of VHDL programs.
Testbench writing will be exaplained by an example
In this lecture, we write a test-bench for a VHDL implementation, and simulate the VHDL implementation in VIVADO using the test-bench.
Simulation using modelsim, a basic example
ModelSim Simulation of VHDL Codes with TestBenches
Displaying Signal Values Using Modelsim
Simulating VHDL Codes With Modelsim Without Using TestBenches
In this lecture, user defined data types involving enumerated data types and constrained arrays are explained by examples.
In this lecture, unconstrained array definitions and use of the port arrays are explained by examples
In this lecture the definitions of matrices , 3D arrays and higher dimensional matrices and their use will be explained. How to access to the elements of arrays or matrices are explained by examples.
Attributes of user defined data types are explained using MODELSIM simulation
In this lecture, the students will learn the implementation of sequential circuits in VHDL. Process, if-then-else statement, and D-flip flop implementation are explained.
In this lecture, JK Flip-Flop, T Flip-Flop, Counter and MUX implementation in VHDL using Process are explained.
In this lecture, operations of digital circuits used for clock division operation are explained
In this lecture, implementation of clock divider or frequency divider in VHDL language is explained and various VHDL clock divider examples are provided.
In this lecture, we write the necessary VHDL codes to drive a seven segment display that shows the digits from 0 to 9 for one second duration each.
In this lecture, we explain the parallel processing concept using VIVADO, and compare the signal object to variable object considering the update delay of both objects.
Simulation of T Flip-Flop VHDL Implementation Using MODELSIM
Using MODELSIM simulation we show that signal object update is not immediate.
We elaborate the update of the signal object more using MODELSIM.
MODELSIM Simulation: Clock Division in VHDL, Part-1
MODELSIM Simulation: Clock Division in VHDL, Part-1
The VHDL statements WAIT, WAIT ON, WAIT UNTIL and WAIT FOR are explained by examples
In this lecture, we explain the use of CASE statement in VHDL.
LOOPS with NEXT and EXIT statements are explained.
LOOP structures used for sequential logic circuits are simulated using MODELSIM.
In this lecture, we explain how to write a package and use it in our main program.
In this lecture, using VIVADO, we show how to create a package and use it in the main program.
In this lecture, we show how to define a component and write a VHDL code using components.
Defining components and using them in VHDL codes using VIVADO is demonstrated.
In this course, we will teach VHDL circuit design. The fundamental concepts about VHDL circuit design will be provided. In addition, practical examples using FPGA development boards will be provided. Combinational and clocked logic circuit design will be explained by examples. We will use either VIVADO or MODELSIM platform for the simulation and development of VHDL designs. Some of the written codes will be loaded into FPGA cards for demonstration purposes.
We use MODELSIM for simulation of the VHDL codes. In VHDL circuit design, good knowledge of signal and variable objects is necessary, and the engineer should know the differences between signal and variable objects very well. The most confusing part between the signal and variable objects is that variable objects are updated immediately whereas update of the signal objects is not immediate. Clock division operation and behavior of the signal and variable objects are explained in details using MODELSIM simulations. The behaviors of the combinational and sequential circuits are clarified using MODELSIM simulations.
We use VIVADO platform for simulation and circuit synthesis of the VHDL codes. In fact, it is better to use the MODELSIM platform for simulations and VIVADO platform for circuit synthesis and FPGA programming. We indicate that a VHDL code which can be simulated may not be synthesizable, and we explain this concept providing examples on VIVADO platform. Through the course, we provide many videos explaining VHDL language for circuit design and use of MODELSIM and VIVADO platforms for simulation and circuit synthesis.