In VHDL, data objects are named items used to store values in a design, with three main types: signals represent physical hardware connections or wires that hold a specific logic value at any given time and update after a delta delay when assigned a new value, making them suitable for communication between concurrent processes; variables are used for temporary storage inside processes or subprograms, hold one value at a time that can be changed as needed, and update immediately when assigned a new value; and constants store fixed values that never change, used for parameters like width, size, or limits.
Inmersión profunda
Prerrequisito
- No hay datos disponibles.
Próximos pasos
- No hay datos disponibles.
Inmersión profunda
Data Objects in VHDLAñadido:
Hello everyone, welcome to Neso Academy.
Till now we have completed two chapters in VHDL.
The first was introduction to VHDL.
In which we understood the basics of VHDL.
And in the previous chapter we studied the structure of VHDL.
Where we learned about library, entity, architecture and other design units.
Now today we are starting a new chapter called data types and data objects.
And in this lecture we are going to understand data objects.
So, in this lecture we will cover only one topic. Which is data objects.
To understand this, let me ask you a question.
In any digital system, what we actually deal with?
We deal with data, right?
Zero and one, numbers, signals.
And obviously, we need something to store and handle this data in VHDL.
And that is done using data objects.
So, let's see its definition.
Data objects are the named items used to store values in a design.
Means data objects are used to store values of a specific data type.
In simple terms, data objects are used to store data in VHDL.
And in VHDL there are different ways to store data values.
Mainly, signals, variables and constants.
Each behaves differently.
And understanding this difference is very important.
So, let's understand each of them separately.
Let's start with signals.
Signals represent a physical hardware connection or wire.
Means signals behaves as a physical hardware connection or wire.
Now, what does wire actually do in real circuits?
It carries values.
It transport data between different components.
Now, signals not actually storing data like a real hard drive.
Rather, it holds a value. Example, a voltage value.
So, signal always holds a current logic value at any given time.
Means signals hold a specific logic value.
That is at any moment of time, signal holds a specific logic value, either logic zero, logic one, or any other definite value.
To understand this, consider a physical wire.
Now, what it will hold?
It will hold low voltage, high voltage, or any other specific voltage, but a definite voltage at any given time.
So, signals hold a specific voltage or a specific value at any given time.
Signals, when a new value is assigned, updates occur after a delta delay, not immediately.
Means when we assign a new value to a signal, it does not change instantly.
Means it takes some time. So, updates occur after a delta delay.
Now, what is a delta delay?
Delta means infinitely small time.
So, when we apply a new value to a signal, it will change after a delta delay, not instantly.
And signals are used for communication between concurrent processes.
That is, signals are used for communication between parallel processes.
We all know in VHDL, multiple processes run in parallel. That is, at the same time.
And signals act like wires, which connect these different processes.
Means, if one process writes or assign a value, at the same time other processes will read that value.
So, signals transfer data between parallel processes, just like wires connect different parts of a circuit.
Where one part sends a voltage, and other parts read that voltage at the same time.
So, signal transfer data between concurrent processes.
Now, where we can declare signals?
We can declare signals in entity, architecture, package, etc. So, signals can be declared in entity, architecture, package, etc. Now, let's see for example, how to declare signals.
Let's try to understand how to store a logic zero or logic one value inside a signal.
First, we need to use the keyword signal to declare any signal.
Signal named A.
I'm taking my signal name as A.
Colon, bit, semicolon.
Semicolon is used to end the statement.
Bit is a data type which stores logic zero or logic one value, means a binary value.
Overall, signal named A can store a logic zero or logic one value.
What if I want to store a sequence of bits?
That is an array inside a signal.
How to do that? Let's see.
We are defining a signal named data as bit vector bracket seven down to zero bracket close semicolon.
This bit vector is a data type which represents sequence of bits, that is an array.
And seven down to zero represents the length of an array. Here, it is eight bit.
So, we are declaring a signal named data which can store an eight bit vector or an eight bit array.
We have seen what is a delta delay.
So, the question is, can we store a time delay inside signal?
Let's see.
We need to declare a signal named delay.
And we are using a special keyword time colon equals to 10 nanosecond.
This special keyword time represents simulation delay.
And colon equals to helps to give initial value immediately.
And what is the initial value?
10 nanosecond.
So, here we are declaring a signal named delay which can store a time value. And the initial value we are assigning is 10 nanosecond.
So, I hope you understand these three examples.
But, there is one doubt. Do we need to use this keyword signal every time to declare a signal?
No.
We have already seen in AND gate's VHDL code where we declared input signals A, {comma} B, and output signal Y without using the keyword signal.
Using signal assignment operator.
Let's see how.
Here, we are using signal assignment operator.
This less than equals to called as signal assignment operator.
Which is used to assign a fixed value to signal A.
Now, this value will update after a delta delay. So, we can directly use a signal assignment operator to assign a value to signal A without using a keyword signal.
So, I hope you understand what are signals.
Signals represent a physical wire which updates after a delta delay.
Now, let's see the second data object, variables.
Variables are used for temporary storage inside a process or subprograms.
Means, variables are like temporary box which can store a value.
Variables does not represent any physical structure like signals.
Variables are used for temporary storage. And where we can declare variables? Inside a process or subprograms.
We have already seen what is a process.
A process is used to declare sequential statements such as if-else condition inside an architecture.
So, we can declare variables inside a process or subprograms.
As the name suggests, subprograms.
Subprogram act as a program within a program.
That is, it is a reusable block of code.
Example, functions or procedures. So, we can use this subprogram in our code whenever we need it.
And variables hold one value at a time, which can be changed as needed.
Means, at any moment, variables can store one specific value, which can be changed as needed.
Consider an example named variable A that can store fixed integer value eight. Now, the same variable A can store another integer value 10.
But, not at the same time. So, variables can hold one value at a time, which can be changed whenever we want.
And when a value is assigned, it updates immediately.
Means, when we assign a new value to a variable, it updates immediately. Not like signals, which takes a certain delay.
So, the question is, which one is faster? Signals or variables?
And the answer is variables.
Let's see few examples.
In case of signals, we used a keyword signal to declare it.
Similarly, in variables, we need a special keyword variable.
So, we use a keyword variable to declare variable A.
And here we are declaring a variable A that can store any integer value.
But, we are not assigning any specific value.
Let's see how to do that.
So, we are declaring a variable named count and assigning a fixed integer value zero to this variable count.
Now, other way to declare a variable without using a keyword variable is by using variable assignment operator.
So, here we are assigning A to A plus one using this variable assignment operator.
Colon equals to is called as variable assignment operator, which is used to assign immediate values.
Which means, if I write this statement twice, A is assigned A plus one.
Will it increase by two immediately?
Yes, because variables update instantly.
So, I hope you understand what are variables.
Let's understand the third data object, constants.
Constant stores a fixed value that never changes.
Means, constants are used to store fixed values, which is defined once and cannot be modified later.
Means, constants are used to store fixed parameters like width, size, limits, etc. Let's see one example of constant.
We have already seen how to declare a constant inside a package model.
Let's take the same example.
So, we can declare a constant named width using the keyword constant.
And here we are assigning a fixed integer value eight and inside this constant width.
So, I hope you understand what are constants.
Till now we have seen the three main data object of VHDL.
Signals, variables, and constants.
But, there is one more data object in VHDL called file.
A file is used to read data from external files or write data to external files.
It is mainly used in test benches for providing input data and for storing output results.
We will see about this data object file in our test bench chapter in much more detail.
Which means we are done with this topic.
Data objects.
To summarize this, signals behave like a physical wire which updates after a delay.
Variables are temporary box which updates immediately and constants are fixed values which cannot be changed.
So, we are done with this lecture. I will see you in the next one. Thank you.
>> [music] [music]
Videos Relacionados
U.S. Military Just Flexed The Most Dangerous Aircraft Ever Built The F-47
MaxAfterburnerusa
11K views•2026-05-29
Heating Staying On On The Hottest Day Of The Year
PlumbLikeTom
507 views•2026-05-29
발전 효율을 높이는 태양광 추적 시스템의 기술적 원리 #공학 #공정 #태양광 #알고리즘 #재생에너지
찐현장기술
2K views•2026-05-29
How Far Can A Tomahawk Missile Actually Travel?
WarCurious
13K views•2026-05-28
직관 및 곡관 배관 결합 고정 작업 #worker #process #fabrication #pipework #clamp
월드촌촌
2K views•2026-05-30
Wire To Wire Connection Trick | Strong And Secure Electrical Joint #shortvideo #wireworks
ElectricianTips-b1h
5K views•2026-06-02
Peterborough to Newark Northgate Driver's Eye View aboard an InterCity 225 - East Coast Main Line
TrainsTrainsTrains
822 views•2026-05-31
AI turbine design: hypersonic cooling leap #shorts #ai #hypersonic
bobbby_rn
671 views•2026-05-31











