Search This Blog

Saturday, September 2, 2023

VHDL Tutorial : Signal Syntax - Short & Easy : No More Confusion - A Beginner’s Guide

 


Click here for Video Tutorial - VHDL Tutorial : Your First VHDL Design: VHDL Entity & Architecture - A Beginner's Guide







Today we will be learning, one of the important term in VHDL which you will use frequently in system designs, I am talking about the internal signals inside the module. You can treat them like interconnection between two logical units or wires in simple terms.


Till now, we were talking about the signals which are in the port list inside the entity description, that means we were defining the input or the output pin of our module, But think of the wires which interconnects inside our logical design and those we wanted to use inside our functional description to connect two elements. 


In VHDL terms we define them with the keyword “Signal” and these need to be defined inside the architecture.


The main difference between the port signals which we define in the entity and another which we are defining the architecture is that, Signals from the port list are the interface pins of your module as input or output, and can be used inside the architecture associated with that entity, but the signals which we define inside the architecture, are not actually the interface pins but we wanted to use them internally and these signals can only works inside that architecture.


In VHDL we do that by declaring the signals in the architecture between the architecture and begin statement as I am mentioning in the example.


In this example inside the Video, Look over the schematic where first we are doing a NAND function between input A and input B, than we are connecting the output of NAND gate to a NOT gate and the output of Not gate is our final output. Simple. Right.

Now look over the wire which is connecting the output of the NAND gate an input to the NOT gate, We call this interconnection or wire. And in terms of VHDL we are calling this signal.

Now if you noticed, this signal is neither the input interface of you module nor the output interface of your module but it is just laying inside the module.


So let’s declare the internal signal than,

We declare the internal Signal, named as S and defined it’s data type as BIT. After this declaration now we can use this signal S in our architecture anywhere and can connect different parts of our function.


Let’s explore little our code now, Here we have some sequential statements inside the process body, that if both the inputs, these are input A and input B are equal to 1 than our internal signal S will get the value of 0, and if any input is ‘0’ than our internal signal S will get the value ‘1’, 


Now if you had taken a note that this conditional statement acts simply like a NAND Gate and our internal signal S gets the function of NAND gate, and to get the function of AND gate in the output Dout, We inverted the signal S with a not gate and the output of the NOT gate is our final output Dout. And This output Dout is the output of our module.


So let me give a quick brief what we did here, We are designed a simple AND gate, that means Output Dout will be ‘1’ if both inputs are ‘1’ else the output Dout will be ‘0’ – 

So, First we defined the entity which has 2 inputs, input A and input B and 1 output Dout. 

Than we declared a signal inside the architecture which will act as a internal signal. And inside the process body, we write the behavior of a NAND gate, and moved the result into our internal signal S.


Now in the concurrent statement, outside the process we used the not gate to invert the value of internal signal S and than moved that to our final output Dout. Note that Dout is the output of our interface which we declared in the entity.


So that was the basic idea of HDL that we describe multiple behaviors and than wire them together using the internal signals.


At that moment, Don’t be confused with concurrent statement and sequential statement because we will be covering them later in this series, but just understand at the moment that anything which we are writing inside the process will execute sequentially and those statements which are outside the process body will execute concurrently. 




Welcome to VHDL Signal Syntax: A Short & Easy Guide for Beginners! If you've ever been confused about VHDL signal syntax, this video is perfect for you. Designed specifically for beginners, we'll cover all the essentials of VHDL signal syntax in a simple and straightforward manner. In this tutorial, we'll dive into VHDL and demystify the signal syntax, ensuring that you have a solid foundation to build upon. We'll walk you through the fundamental concepts, providing clear explanations and examples along the way. Whether you're new to VHDL or looking to brush up on your skills, this beginner's guide has got you covered. By the end, you'll have a clear understanding of VHDL signal syntax, enabling you to write efficient and error-free code. Here's what you'll learn: Introduction to VHDL signal syntax Syntax rules and guidelines for defining signals Signal declaration and assignment Types of signals and their usage Handling and manipulating signals in VHDL Real-world examples to reinforce your understanding If you're ready to unravel the mysteries of VHDL signal syntax, click play and let's get started!


Youtube : https://www.youtube.com/@Learnandgrowcommunity LinkedIn Group : https://www.linkedin.com/groups/7478922/ Blog : https://learnandgrowcommunity.blogspot.com/ Facebook : Follow #learnandgrowcommunity Twitter Handle : https://twitter.com/LNG_Community DailyMotion : https://www.dailymotion.com/LearnAndGrowCommunity Instagram Handle : https://www.instagram.com/learnandgrowcommunity/




No comments:

Post a Comment