Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

process statement, How much it can handle

Status
Not open for further replies.

FixitFast

Junior Member level 2
Joined
Feb 6, 2013
Messages
20
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,462
Hi all,

First of all, Does One sequential PROCESS statement means 1- Clock global line ?

I have seen in some code that inside one process statement they have several IFs-else and etc. Apparently they should run in Parallel, since they are merely making a Logic element, but by the definition of process statement itself, every thing inside it runs in sequential.
Hence Lets say we have 'N' IFs-else cases in a process.

Does using multiple processes have any effect on timing or defining logic or gates consumption. I understand that in some cases the signals are to be changed in multiple IFs hence they are put inside one Process.
But what I feel comfortable with is that I want to put COMPLETELY INDEPENDETN IFs as well in the same process, since it will save me the global clock lines. Is this thing right?

Code:
--ignore syntax please
process(clk, rst)
if rst then
..
..
elsif (rising_edge ( clk..))

if(blah blah) then
elsif...
else
end if;

if(blah blah) then
elsif....
end if;

if(blah blah) then
elsif...
end if;

Thanks
 

Its all about the behaviour. Yes a process is sequential, but in a process like yours (with a sensitivity list) all of the code is executed in zero time. And also remember that signals only "keep" the last thing assigned to them before the end of the process. So if statements infer a mux or a clock enable. So unless you understand the underlying logic, you cannot expect to write any VHDL.

You can write as many processes as you want, but a single signal can only be assigned in one of them.

- - - Updated - - -

Its all about the behaviour. Yes a process is sequential, but in a process like yours (with a sensitivity list) all of the code is executed in zero time. And also remember that signals only "keep" the last thing assigned to them before the end of the process. So if statements infer a mux or a clock enable. So unless you understand the underlying logic, you cannot expect to write any VHDL.

You can write as many processes as you want, but a single signal can only be assigned in one of them.
 

Each process does not require its' own clock line. Any clocked process that uses the same clock is going to use the same global clock line - that's why you put it on a global clock line in the first place. So it isn't going to save any clock lines.

If they are truly independant & unrelated IF's, it's better coding practice to use separate processes for clarity rather than shove everything into a single process. You can still put them in one process if you like, the end result will be nearly identical, if not actually identical to separate processes. The loading or delays will be the same with or without separate processes.
 

First of all, Does One sequential PROCESS statement means 1- Clock global line ?
Only if that process is an edge triggered process (i.e. "if rising_edge(clock) then...")

I have seen in some code that inside one process statement they have several IFs-else and etc. Apparently they should run in Parallel, since they are merely making a Logic element, but by the definition of process statement itself, every thing inside it runs in sequential.
Hence Lets say we have 'N' IFs-else cases in a process.

Does using multiple processes have any effect on timing or defining logic or gates consumption.
It has absolutely no effect on anything that gets synthesized.

I understand that in some cases the signals are to be changed in multiple IFs hence they are put inside one Process.
But what I feel comfortable with is that I want to put COMPLETELY INDEPENDETN IFs as well in the same process, since it will save me the global clock lines. Is this thing right?
- It will save you some typing because you won't have multiple processes
- It can cost you down the road while debugging or trying to support your code if you have one 200 line long process rather than breaking it up so that related things are grouped together in one process. This is purely an aesthetic thing though, a single process can be written to be readable...but many times it is not.
- The synthesized result will be exactly the same so there is no cost or savings

Kevin Jennings
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top