Modelsim breakpoint on end process.

N

nitinyogi80

Hi,
I am trying to place a breakpoint on an "end process" statment.
When I have the following code:

process (A , B)
begin
result <= ('0' & A);
end process;

the "end process" statment is executable and Modelsim lets me place a
breakpoint on the "end process" statment. However if I have the
following code:

P3: process (A , B)
begin
result <= ('0' & A)+('0' & B);
end process;

the "end process" statement is not executable and hence I cannot place
a breakpoint on the line. Does anybody have any idea why this happens.

Thanks

Nitin
 
A

Andy Peters

Hi,
I am trying to place a breakpoint on an "end process" statment.
When I have the following code:

process (A , B)
begin
result <= ('0' & A);
end process;

the "end process" statment is executable and Modelsim lets me place a
breakpoint on the "end process" statment. However if I have the
following code:

P3: process (A , B)
begin
result <= ('0' & A)+('0' & B);
end process;

the "end process" statement is not executable and hence I cannot place
a breakpoint on the line. Does anybody have any idea why this happens.

Try:

end process P3;

-a
 
N

nitinyogi80

Hi Andy,
Sorry that is'nt working either. Another weird thing I
noticed was. When I have the following code:

P3: process (A) -- just 1 signal is sensitivty list rather than 2
begin
result <= ('0' & A)+('0' & B);
end process P3;

again the "end process" statement becomes executable and I am able to
place a breakpoint on it. Thanks for your suggestion. Does anybody have
any more ideas about getting around this problem.

Thanks

Nitin
 
K

Kim Enkovaara

the "end process" statment is executable and Modelsim lets me place a
breakpoint on the "end process" statment. However if I have the
following code:

P3: process (A , B)
begin
result <= ('0' & A)+('0' & B);
end process;

the "end process" statement is not executable and hence I cannot place
a breakpoint on the line. Does anybody have any idea why this happens.

Have you tried to use lower optimisation setting, for example start with
-O0. That should preserve all the information for debugging.

--Kim
 
A

Andy Peters

Hi Andy,
Sorry that is'nt working either. Another weird thing I
noticed was. When I have the following code:

P3: process (A) -- just 1 signal is sensitivty list rather than 2
begin
result <= ('0' & A)+('0' & B);
end process P3;

again the "end process" statement becomes executable and I am able to
place a breakpoint on it. Thanks for your suggestion. Does anybody have
any more ideas about getting around this problem.

Make sure that when you analyze and elaborate that you display all
warnings. Maybe something else is going on in other parts of your
code?

-a
 
N

nitinyogi80

Hi,
Kim, your suggestion worked! You were right, it was doing some
kind of optimizations. When I tried "vcom -O0 adder.vhd", all "end
process" statments are now executable. I'll have to see now whether
lowering the optimization has any adverse effects on what I am trying
to acheive. Thanks Kim. Andy thanks to you too, for your suggestions. I
think keeping all warnings ON will help me debug much better. I'll
write back letting you people know that it's really working.

Thanks

Nitin
 
K

Kim Enkovaara

Hi,
Kim, your suggestion worked! You were right, it was doing some
kind of optimizations. When I tried "vcom -O0 adder.vhd", all "end
process" statments are now executable. I'll have to see now whether

Modelsim at least in SE versions merge the processes in some cases
with higer optimisation levels. You can see that for example if you
try to force something inside merged process. The path contains merged
word i.e.

change /foobar/#MERGED#proc1,proc2,proc3/var 16#0

--Kim
 
M

Mike Treseler

Kim said:
Modelsim at least in SE versions merge the processes in some cases
with higer optimisation levels. You can see that for example if you
try to force something inside merged process. The path contains merged
word i.e.

change /foobar/#MERGED#proc1,proc2,proc3/var 16#0

Yes. This is very common with multiple synchronous
processes on the same clk,rst,enable.

This is one reason I started merging processes
myself at the source level.

-- Mike Treseler
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,050
Latest member
AngelS122

Latest Threads

Top