Course: Resolved signals and types with resolution functions in VHDL
Learn how the std_logic type handles driver conflicts internally. See how to implement custom data types with resolution functions for multiple drivers.
Description
I’m sure you have used VHDL’s std_logic
type and know what happens if you assign to a signal of that type from multiple processes. It gets a value based on the two or more drivers: '1'
or '0'
, 'X'
for unknown, etc.
But do you know how the mechanism behind resolved signals works?
And did you know that you can define custom types with resolution functions for almost anything?
In this course, we dig into the IEEE libraries to find out precisely how the std_logic
type is implemented.
Finally, we create a custom data type for storing an angular value, and we’ll experiment with different ways to handle conflicting values on a signal storing angular position data.
This course is only available in the VHDLwhiz Membership.
The membership subscription gives you access to this and many other courses and VHDL resources.
You pay monthly to access the membership and can cancel the automatic renewal anytime. There is no lock-in period or hidden fees.
No FPGA board is required as this course is a pure simulation exercise.
Software used in the course
I am using Windows 11 in the course. All the other software is available for free for Windows and Linux:
- Questa – Intel FPGA Edition(includes Starter Edition)
(Any version of ModelSim or QuestaSim will work) - Microsoft Visual Studio Code
(Any editor will do)
Course outline
The overview below shows the lessons in this course.
1 - Why you need to know this
Understanding the mechanisms for resolving driver conflicts will deepen your knowledge of VHDL.
2 - Unresolved types
Let's first see how unresolved and resolved types differ in VHDL.
3 - Resolved types
VHDL allows us to define a resolution function to sort out the value when a signal has multiple drivers.
4 - Custom resolution function: add_angles
Let's create a custom resolved type for representing an angular position.
5 - Custom resolution function: avg_angles
Finally, we'll convert the resolution function to calculate an average angle from the conflicting drivers.
This course is only available in the VHDLwhiz Membership.
The membership subscription gives you access to this and many other courses and VHDL resources.
You pay monthly to access the membership and can cancel the automatic renewal anytime. There is no lock-in period or hidden fees.
Reviews
There are no reviews yet.