FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 08-17-2005, 01:46 PM
Pasacco
Guest
 
Posts: n/a
Default Chipscope pro : timing constraint?

dear chip scope pro users

Problem with VIO occurred in ChipScope Pro, ISE6.3.

i am (still -: ) exercising VIO,IlA with "asynchronous reset,
asynchronous enable, 4 bit counter"

It works fine in ILA. That is the signal changes " 0 1 2 3 4 ...."

Problem is that, in VIO console, the signal behavior is not the same as
ILA. That is the signal changes " 2 9 3 0 9 7 ...", which is
unexpected.

I am not still sure that this behavior in VIO is problematic or not.

BTW, during implementation, following warnings occured. (1) and (3)
seem to be okay to ignore, but (2) seems to be problematic.

Does anyone has this experience? Why the signal behavior in VIO is
different from ILA?

----------------------------
(1)WARNING:Timing:2666 - Constraint ignored: PATH "FROM U_CLK TO D_CLK"
TIG ;
(2)WARNING:Timing:2665 - clk does not clock any primary output
(3)WARNING:Timing:2666 - Constraint ignored: OFFSET = IN 5 nS BEFORE
COMP "clk" ;
All constraints were met.
----------------------------

############################
### UCF file
############################
NET "clk" LOC = "AJ15";
NET "cnt<0>" LOC = "AD13";
NET "cnt<1>" LOC = "AD12";
NET "cnt<2>" LOC = "AD11";
NET "cnt<3>" LOC = "AD10";
NET "clk" TNM_NET = "clk";
TIMESPEC "TS_clk" = PERIOD "clk" 10ns HIGH 50 %;
OFFSET = IN 5 ns BEFORE "clk";
OFFSET = OUT 6 ns AFTER "clk";

Reply With Quote
  #2 (permalink)  
Old 08-17-2005, 07:19 PM
Ed McGettigan
Guest
 
Posts: n/a
Default Re: Chipscope pro : timing constraint?

Pasacco wrote:
> dear chip scope pro users
>
> Problem with VIO occurred in ChipScope Pro, ISE6.3.
>
> i am (still -: ) exercising VIO,IlA with "asynchronous reset,
> asynchronous enable, 4 bit counter"
>
> It works fine in ILA. That is the signal changes " 0 1 2 3 4 ...."
>
> Problem is that, in VIO console, the signal behavior is not the same as
> ILA. That is the signal changes " 2 9 3 0 9 7 ...", which is
> unexpected.
>
> I am not still sure that this behavior in VIO is problematic or not.
>
>


The VIO functionality and the ILA functionality are very different from
each other.

The ILA core captures data for every clock edge and presents the data to
the display when the buffer is full.

The VIO core allows you to insert control (inputs) and display sampled
status (outputs) similar to using a bank of push buttons or switches
for inputs or LEDs for outputs. There are arrows in the display for
that indicate activity occurred between the sampled points, so if the
previous value was 0 and the new value is 0 you can tell if blipped up
to a one and back again.

What you describe sounds like a normal sampling of the data set with a
free running counter.

Ed
Reply With Quote
  #3 (permalink)  
Old 08-17-2005, 08:57 PM
Pasacco
Guest
 
Posts: n/a
Default Re: Chipscope pro : timing constraint?

Cycle accurate sampling can not be seen in VIO. That's was not a
problematic one. Thankyou for comment.

BTW, in the code below, I can not see the expected behavior of signal
'counter' in ILA.

Problem is that I only see : 4 4 4 4 .........

When rst = 0, en = 1, the signal change "0 1 2 3 4 " should be seen in
ILA waveform.
But actually so signal change can be seen.

What is the problem?
By the way, Is this problem?

Thankyou.

------------------------------------------------------------------------
-- Expected signal 'counter' behavior : 0 1 2 3 4 4 4 4 .....
------------------------------------------------------------------------
entity top is
port
( clk : in std_logic;
cnt : out std_logic_vector(3 downto 0) );
end top;

architecture behave of top is
signal counter : std_logic_vector(3 downto 0):=(others=>'0');

signal rst, en: std_logic; -- In VIO, reset=0, enable=1

begin
process(en,rst,clk,counter)
begin
if en='0' then
counter <= (others => '0');
elsif rst='1' then
counter <= (others => '0');
elsif counter <= "0011" then
if ( clk'event and clk = '1') then
counter <= counter + 1;
end if;
end if;
end process;
cnt <= counter(3 downto 0);
end behave;

Reply With Quote
  #4 (permalink)  
Old 08-18-2005, 01:31 AM
Ed McGettigan
Guest
 
Posts: n/a
Default Re: Chipscope pro : timing constraint?

Pasacco,

Your code is doing exactly what you asked it to do. Your IF
statements do this.

1) If en=0 then count=0
2) If rst=1 then count=0
3) If count < 3 then count = count + 1
4) Else nothing

So when count=4 that's the end of the game.

Ed


Pasacco wrote:
> Cycle accurate sampling can not be seen in VIO. That's was not a
> problematic one. Thankyou for comment.
>
> BTW, in the code below, I can not see the expected behavior of signal
> 'counter' in ILA.
>
> Problem is that I only see : 4 4 4 4 .........
>
> When rst = 0, en = 1, the signal change "0 1 2 3 4 " should be seen in
> ILA waveform.
> But actually so signal change can be seen.
>
> What is the problem?
> By the way, Is this problem?
>
> Thankyou.
>
> ------------------------------------------------------------------------
> -- Expected signal 'counter' behavior : 0 1 2 3 4 4 4 4 .....
> ------------------------------------------------------------------------
> entity top is
> port
> ( clk : in std_logic;
> cnt : out std_logic_vector(3 downto 0) );
> end top;
>
> architecture behave of top is
> signal counter : std_logic_vector(3 downto 0):=(others=>'0');
>
> signal rst, en: std_logic; -- In VIO, reset=0, enable=1
>
> begin
> process(en,rst,clk,counter)
> begin
> if en='0' then
> counter <= (others => '0');
> elsif rst='1' then
> counter <= (others => '0');
> elsif counter <= "0011" then
> if ( clk'event and clk = '1') then
> counter <= counter + 1;
> end if;
> end if;
> end process;
> cnt <= counter(3 downto 0);
> end behave;
>

Reply With Quote
  #5 (permalink)  
Old 08-18-2005, 10:18 AM
Pasacco
Guest
 
Posts: n/a
Default Re: Chipscope pro : timing constraint?

Yes, it is correct.

In ILA, we can see the transition of the signal in a cycle accurate
manner.

BTW, What I want to see in ILA , in the example above, is

'counter' signal change (0 -> 1 -> 2 -> 3 -> 4 ) part.

Those transitions occur during the first 4 clock cycles, after (rst='0'
and en='1').

In my exercise, I do not see them. I only see the value '4', whih is
the last value.

Is it possible to see, in ILA, those signal transition behaviors in the
example above?

Reply With Quote
  #6 (permalink)  
Old 08-18-2005, 04:52 PM
Ed McGettigan
Guest
 
Posts: n/a
Default Re: Chipscope pro : timing constraint?

Pasacco wrote:
> Yes, it is correct.
>
> In ILA, we can see the transition of the signal in a cycle accurate
> manner.
>
> BTW, What I want to see in ILA , in the example above, is
>
> 'counter' signal change (0 -> 1 -> 2 -> 3 -> 4 ) part.
>
> Those transitions occur during the first 4 clock cycles, after (rst='0'
> and en='1').
>
> In my exercise, I do not see them. I only see the value '4', whih is
> the last value.
>
> Is it possible to see, in ILA, those signal transition behaviors in the
> example above?
>


I don't understand what you are looking for or what problem you
are having. You will need to explain it better for me to be able to
help you.

Also after reviewing your VHDL code again it is not written
in the standard way to define a registered counter and I am
not sure what would actually be synthesized in the design.

Specifically, you have any asynchronous comparison function
(counter <= "0001") before the clock edge definition
(clk'event and clk='1'). I'm not sure what would synthesized
with this code, probably a gated clock, but it likely won't
be what you intended.

Ed
Reply With Quote
  #7 (permalink)  
Old 08-18-2005, 07:29 PM
Andy Peters
Guest
 
Posts: n/a
Default Re: Chipscope pro : timing constraint?

Pasacco wrote:
> When rst = 0, en = 1, the signal change "0 1 2 3 4 " should be seen in
> ILA waveform.
> But actually so signal change can be seen.
>
> What is the problem?
> By the way, Is this problem?
>
> Thankyou.
>
> ------------------------------------------------------------------------
> -- Expected signal 'counter' behavior : 0 1 2 3 4 4 4 4 .....
> ------------------------------------------------------------------------
> entity top is
> port
> ( clk : in std_logic;
> cnt : out std_logic_vector(3 downto 0) );
> end top;
>
> architecture behave of top is
> signal counter : std_logic_vector(3 downto 0):=(others=>'0');
>
> signal rst, en: std_logic; -- In VIO, reset=0, enable=1
>
> begin
> process(en,rst,clk,counter)
> begin
> if en='0' then
> counter <= (others => '0');
> elsif rst='1' then
> counter <= (others => '0');
> elsif counter <= "0011" then
> if ( clk'event and clk = '1') then
> counter <= counter + 1;
> end if;
> end if;
> end process;
> cnt <= counter(3 downto 0);
> end behave;


Yikes ... I don't know what the synthesis tool will do, but I suspect
it won't do what you want! Did you get any synthesis warnings? Did
you read the synthesis manual?

-a

Reply With Quote
  #8 (permalink)  
Old 08-19-2005, 10:36 AM
Pasacco
Guest
 
Posts: n/a
Default Re: Chipscope pro : timing constraint?

Hi

According to synthesis/implementation report, there is no indication
that the clock is gated.

This example is just an exercise.
My intention is just to make the value of an internal signal 'counter'
change " 0->1->2->3->4" and see that in ChipScope Pro.

Problem is that the ILA core captures only static value '4', even
though 'RST' and 'EN' signal are driven by VIO "on the fly".

If it is possible to see the change of the value, instead of a static
value, I am doing something wrong. What am I missing?

Thankyou.

Reply With Quote
  #9 (permalink)  
Old 08-19-2005, 05:11 PM
Ed McGettigan
Guest
 
Posts: n/a
Default Re: Chipscope pro : timing constraint?

Pasacco wrote:
> Hi
>
> According to synthesis/implementation report, there is no indication
> that the clock is gated.
>
> This example is just an exercise.
> My intention is just to make the value of an internal signal 'counter'
> change " 0->1->2->3->4" and see that in ChipScope Pro.
>
> Problem is that the ILA core captures only static value '4', even
> though 'RST' and 'EN' signal are driven by VIO "on the fly".
>
> If it is possible to see the change of the value, instead of a static
> value, I am doing something wrong. What am I missing?
>
> Thankyou.
>


You sent me more information on this in email and added another note
here. Try doing this.

1) In the ILA window change the trigger condition to a falling edge
transition of the RESET line instead of the static low that you
have now.

2) In the VIO window pulse the RESET button

3) Go back to the ILA window and you should see 0, 1, 2, 3, 4, 4, 4, 4...

Ed
Reply With Quote
  #10 (permalink)  
Old 08-19-2005, 06:11 PM
Pasacco
Guest
 
Posts: n/a
Default Re: Chipscope pro : timing constraint?

Hi

Falling edge trigger, and now it works. Thankyou for nice comment and
correction.

With gratitude

Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
ucf timing constraint question gja FPGA 0 04-05-2005 05:38 PM
Timing constraint for BUFG? jetmarc FPGA 1 10-01-2003 06:49 PM
EDK 3.2: timing constraint for CLKDLL Heiko Panther FPGA 0 09-22-2003 12:59 PM


All times are GMT +1. The time now is 11:00 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved