Go Back   Velocity Reviews > Newsgroups > VHDL
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

VHDL - vital question

 
Thread Tools Search this Thread
Old 08-24-2008, 08:09 PM   #1
Default vital question


Hi,

I'm studying simulating a simple AND gate (in Xilinx). Xilinx uses
X_AND2 for this. I found that "variable O_GlitchData" is uninitialized
when calling VitalPathDelay01 routine from "timing_b" package at this
line "GlitchData.SchedTime <= NOW". Is this really uninitialized or I
missed sg.? I know Xilinx maybe uses an accelerated version of this
component, I just want to know that is correct or not.


(1)
architecture X_AND2_V of X_AND2 is

attribute VITAL_LEVEL1 of
X_AND2_V : architecture is true;

signal I0_ipd : std_ulogic := 'X';
signal I1_ipd : std_ulogic := 'X';
begin
WireDelay : block
begin
VitalWireDelay (I0_ipd, I0, tipd_I0);
VitalWireDelay (I1_ipd, I1, tipd_I1);
end block;

VITALBehavior : process (I0_ipd, I1_ipd)
variable O_zd : std_ulogic;
variable O_GlitchData : VitalGlitchDataType;
begin
O_zd := I0_ipd and I1_ipd;
VitalPathDelay01 (
OutSignal => O,
GlitchData => O_GlitchData,
OutSignalName => "O",
OutTemp => O_zd,
Paths => (0 => (I0_ipd'last_event, tpd_I0_O, true),
1 => (I1_ipd'last_event, tpd_I1_O, true)),
Mode => VitalTransport,
Xon => Xon,
MsgOn => MsgOn,
MsgSeverity => warning);
end process;
end X_AND2_V;

(2) PROCEDURE VitalPathDelay01 (

BEGIN
-- Check if the new value to be scheduled is different than
the
-- previously scheduled value
IF (GlitchData.SchedTime <= NOW) AND
(GlitchData.SchedValue = OutTemp)
THEN RETURN;
END IF;


John


JohnSmith
  Reply With Quote
Old 08-25-2008, 09:57 PM   #2
Andy
 
Posts: n/a
Default Re: vital question
On Aug 24, 2:09 pm, JohnSmith <csnew...@gmail.com> wrote:
> Hi,
>
> I'm studying simulating a simple AND gate (in Xilinx). Xilinx uses
> X_AND2 for this. I found that "variable O_GlitchData" is uninitialized
> when calling VitalPathDelay01 routine from "timing_b" package at this
> line "GlitchData.SchedTime <= NOW". Is this really uninitialized or I
> missed sg.? I know Xilinx maybe uses an accelerated version of this
> component, I just want to know that is correct or not.
>
> (1)
> architecture X_AND2_V of X_AND2 is
>
> attribute VITAL_LEVEL1 of
> X_AND2_V : architecture is true;
>
> signal I0_ipd : std_ulogic := 'X';
> signal I1_ipd : std_ulogic := 'X';
> begin
> WireDelay : block
> begin
> VitalWireDelay (I0_ipd, I0, tipd_I0);
> VitalWireDelay (I1_ipd, I1, tipd_I1);
> end block;
>
> VITALBehavior : process (I0_ipd, I1_ipd)
> variable O_zd : std_ulogic;
> variable O_GlitchData : VitalGlitchDataType;
> begin
> O_zd := I0_ipd and I1_ipd;
> VitalPathDelay01 (
> OutSignal => O,
> GlitchData => O_GlitchData,
> OutSignalName => "O",
> OutTemp => O_zd,
> Paths => (0 => (I0_ipd'last_event, tpd_I0_O, true),
> 1 => (I1_ipd'last_event, tpd_I1_O, true)),
> Mode => VitalTransport,
> Xon => Xon,
> MsgOn => MsgOn,
> MsgSeverity => warning);
> end process;
> end X_AND2_V;
>
> (2) PROCEDURE VitalPathDelay01 (
>
> BEGIN
> -- Check if the new value to be scheduled is different than
> the
> -- previously scheduled value
> IF (GlitchData.SchedTime <= NOW) AND
> (GlitchData.SchedValue = OutTemp)
> THEN RETURN;
> END IF;
>
> John


Everything in VHDL is initialized. If not explicitly so in the code,
then the rightmost defined value is the initial value. This applies to
scalar elements only; compound elements are initialized with the
initial values of their constituent scalars.

Andy


Andy
  Reply With Quote
Old 08-26-2008, 02:13 AM   #3
JohnSmith
 
Posts: n/a
Default Re: vital question
On Aug 25, 10:57 pm, Andy <jonesa...@comcast.net> wrote:
> On Aug 24, 2:09 pm, JohnSmith <csnew...@gmail.com> wrote:
>
>
>
> > Hi,

>
> > I'm studying simulating a simple AND gate (in Xilinx). Xilinx uses
> > X_AND2 for this. I found that "variable O_GlitchData" is uninitialized
> > when calling VitalPathDelay01 routine from "timing_b" package at this
> > line "GlitchData.SchedTime <= NOW". Is this really uninitialized or I
> > missed sg.? I know Xilinx maybe uses an accelerated version of this
> > component, I just want to know that is correct or not.

>
> > (1)
> > architecture X_AND2_V of X_AND2 is

>
> > attribute VITAL_LEVEL1 of
> > X_AND2_V : architecture is true;

>
> > signal I0_ipd : std_ulogic := 'X';
> > signal I1_ipd : std_ulogic := 'X';
> > begin
> > WireDelay : block
> > begin
> > VitalWireDelay (I0_ipd, I0, tipd_I0);
> > VitalWireDelay (I1_ipd, I1, tipd_I1);
> > end block;

>
> > VITALBehavior : process (I0_ipd, I1_ipd)
> > variable O_zd : std_ulogic;
> > variable O_GlitchData : VitalGlitchDataType;
> > begin
> > O_zd := I0_ipd and I1_ipd;
> > VitalPathDelay01 (
> > OutSignal => O,
> > GlitchData => O_GlitchData,
> > OutSignalName => "O",
> > OutTemp => O_zd,
> > Paths => (0 => (I0_ipd'last_event, tpd_I0_O, true),
> > 1 => (I1_ipd'last_event, tpd_I1_O, true)),
> > Mode => VitalTransport,
> > Xon => Xon,
> > MsgOn => MsgOn,
> > MsgSeverity => warning);
> > end process;
> > end X_AND2_V;

>
> > (2) PROCEDURE VitalPathDelay01 (

>
> > BEGIN
> > -- Check if the new value to be scheduled is different than
> > the
> > -- previously scheduled value
> > IF (GlitchData.SchedTime <= NOW) AND
> > (GlitchData.SchedValue = OutTemp)
> > THEN RETURN;
> > END IF;

>
> > John

>
> Everything in VHDL is initialized. If not explicitly so in the code,
> then the rightmost defined value is the initial value. This applies to
> scalar elements only; compound elements are initialized with the
> initial values of their constituent scalars.
>
> Andy


What is the default value of a "time" type variable?



JohnSmith
  Reply With Quote
Old 08-26-2008, 04:49 AM   #4
kennheinrich@sympatico.ca
 
Posts: n/a
Default Re: vital question
On Aug 25, 9:13 pm, JohnSmith <csnew...@gmail.com> wrote:
> On Aug 25, 10:57 pm, Andy <jonesa...@comcast.net> wrote:
>
>
>
> > On Aug 24, 2:09 pm, JohnSmith <csnew...@gmail.com> wrote:

>
> > > Hi,

>
> > > I'm studying simulating a simple AND gate (in Xilinx). Xilinx uses
> > > X_AND2 for this. I found that "variable O_GlitchData" is uninitialized
> > > when calling VitalPathDelay01 routine from "timing_b" package at this
> > > line "GlitchData.SchedTime <= NOW". Is this really uninitialized or I
> > > missed sg.? I know Xilinx maybe uses an accelerated version of this
> > > component, I just want to know that is correct or not.

>
> > > (1)
> > > architecture X_AND2_V of X_AND2 is

>
> > > attribute VITAL_LEVEL1 of
> > > X_AND2_V : architecture is true;

>
> > > signal I0_ipd : std_ulogic := 'X';
> > > signal I1_ipd : std_ulogic := 'X';
> > > begin
> > > WireDelay : block
> > > begin
> > > VitalWireDelay (I0_ipd, I0, tipd_I0);
> > > VitalWireDelay (I1_ipd, I1, tipd_I1);
> > > end block;

>
> > > VITALBehavior : process (I0_ipd, I1_ipd)
> > > variable O_zd : std_ulogic;
> > > variable O_GlitchData : VitalGlitchDataType;
> > > begin
> > > O_zd := I0_ipd and I1_ipd;
> > > VitalPathDelay01 (
> > > OutSignal => O,
> > > GlitchData => O_GlitchData,
> > > OutSignalName => "O",
> > > OutTemp => O_zd,
> > > Paths => (0 => (I0_ipd'last_event, tpd_I0_O, true),
> > > 1 => (I1_ipd'last_event, tpd_I1_O, true)),
> > > Mode => VitalTransport,
> > > Xon => Xon,
> > > MsgOn => MsgOn,
> > > MsgSeverity => warning);
> > > end process;
> > > end X_AND2_V;

>
> > > (2) PROCEDURE VitalPathDelay01 (

>
> > > BEGIN
> > > -- Check if the new value to be scheduled is different than
> > > the
> > > -- previously scheduled value
> > > IF (GlitchData.SchedTime <= NOW) AND
> > > (GlitchData.SchedValue = OutTemp)
> > > THEN RETURN;
> > > END IF;

>
> > > John

>
> > Everything in VHDL is initialized. If not explicitly so in the code,
> > then the rightmost defined value is the initial value. This applies to
> > scalar elements only; compound elements are initialized with the
> > initial values of their constituent scalars.

>


Actually, the initial default value is T'LEFT, not the rightmost.

> > Andy

>
> What is the default value of a "time" type variable?


From the LRM-2000 "The range of TIME is implementation dependent, but
it is guaranteed to include the range –2147483647 to +2147483647."

Strictly, speaking, VHDL LRM (2000 edition) therefore doesn't appear
to define the initial value for time,(yeah, this surprised me, too !!
Maybe 2002 or '06 changed it). I looked in one copy of 'standard.vhd'
and it used the range "-2147483647 to 2147483647" which would give you
roughly -2e9 fs (or a paltry -2e3 ns). But then a 64-bit
implementation *might* give you a different default. Recall that a
regular physical type range is always in terms of the *primary* unit,
which is femtoseconds. This inability to express time beyond 2 ns
doesn't make a lot of sense unless it's being overridden by the
resolution limit of a particular implementation - time is a funny
thing in VHDL.

I guess defining the initial value of time is one of those larger
metaphysical questions - perhaps the ambiguity in VHDL mimics the
human, anthropomorphic uncertainty

- Kenn


kennheinrich@sympatico.ca
  Reply With Quote
Old 08-29-2008, 09:56 PM   #5
Colin Paul Gloster
 
Posts: n/a
Default Re: vital question


On Mon, 25 Aug 2008, wrote:

|--------------------------------------------------------------------------|
|"On Aug 25, 9:13 pm, JohnSmith <csnew...@gmail.com> wrote: |
|> On Aug 25, 10:57 pm, Andy <jonesa...@comcast.net> wrote: |
|[..] |
|> > > John |
|> |
|> > Everything in VHDL is initialized. If not explicitly so in the code, |
|> > then the rightmost defined value is the initial value. This applies to|
|> > scalar elements only; compound elements are initialized with the |
|> > initial values of their constituent scalars. |
|> |
| |
|Actually, the initial default value is T'LEFT, not the rightmost." |
|--------------------------------------------------------------------------|

You spotted that well.

|--------------------------------------------------------------------------|
|"> > Andy |
|> |
|> What is the default value of a "time" type variable? |
| |
|From the LRM-2000 "The range of TIME is implementation dependent, but |
|it is guaranteed to include the range –2147483647 to +2147483647." |
| |
|Strictly, speaking, VHDL LRM (2000 edition) therefore doesn't appear |
|to define the initial value for time,(yeah, this surprised me, too !! |
|Maybe 2002 or '06 changed it). [..] |
| |
|[..]" |
|--------------------------------------------------------------------------|

What 2000 edition of the VHDL LRM?

Regards,
Colin Paul


Colin Paul Gloster
  Reply With Quote
Old 08-30-2008, 02:34 PM   #6
kennheinrich@sympatico.ca
 
Posts: n/a
Default Re: vital question
On Aug 29, 4:56*pm, Colin Paul Gloster <Colin_Paul_Glos...@ACM.org>
wrote:
>
> What 2000 edition of the VHDL LRM?
>


See for example

http://www.doulos.com/knowhow/vhdl_d...story_of_vhdl/

The 2002 edition also has time as an implementation defined range.

The weird thing is that all physical types are discrete and are
defined in terms of their primary unit, meaning that when a physical
type is defined as -2 billion to + 2 billion with a primary unit of
ps, that really only gives it a range of plus-minus 2 thousand ns. I
can't find the part in the LRM that explains why it's legal to talk
about 2 billion ns given the above definition. Clearly, that was the
*intent* of the whole business with the resolution limit, but the only
thing I can find says that the resolution limit lets you turn small
values into *zero*. But nothing that says that when you fiddle the
resolution limit, there's a corresponding magical increase in the
underlying anonymous discrete scalar type. Nit-picking, I'm sure, but
I like my reference documents to be clear and internally consistent.

- Kenn


kennheinrich@sympatico.ca
  Reply With Quote
Old 08-30-2008, 04:05 PM   #7
kennheinrich@sympatico.ca
 
Posts: n/a
Default Re: vital question
On Aug 30, 9:34*am, kennheinr...@sympatico.ca wrote:
> meaning that when a physical
> type is defined as -2 billion to + 2 billion with a primary unit of
> ps, that really only gives it a range of plus-minus 2 thousand ns. *I


Oops, meant to write primary unit fs (femtoseconds), not ps.

- Kenn


kennheinrich@sympatico.ca
  Reply With Quote
Old 08-30-2008, 06:51 PM   #8
Colin Paul Gloster
 
Posts: n/a
Default Re: vital question
On Sat, 30 Aug 2008, wrote:

|---------------------------------------------------------------------------|
|"On Aug 29, 4:56*pm, Colin Paul Gloster <Colin_Paul_Glos...@ACM.org> |
|wrote: |
|> |
|> What 2000 edition of the VHDL LRM? |
|> |
| |
|See for example |
| |
|http://www.doulos.com/knowhow/vhdl_designers_guide/a_brief_history_of_vhdl/|
| |
|[..]" |
|---------------------------------------------------------------------------|

Thanks. I had forgotten about VHDL 2000 or had not known about it.

Regards,
Colin Paul


Colin Paul Gloster
  Reply With Quote
Old 09-01-2008, 05:27 PM   #9
Mike Treseler
 
Posts: n/a
Default Re: vital question
JohnSmith wrote:

> Your previous website (http://home.comcast.net/~mike_treseler/) is
> available now? It seems it is down..


That site has moved to

http://mysite.verizon.net/miketreseler/


Mike Treseler
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: Dial-up Modem Question w_tom A+ Certification 0 09-18-2005 09:12 PM
"Installing two drives" question - what next? Jim A+ Certification 12 08-07-2005 01:19 PM
Re: Good morning or good evening depending upon your location. I want to ask you the most important question of your life. Your joy or sorrow for all eternity depends upon your answer. The question is: Are you saved? It is not a question of how good God DVD Video 3 04-25-2005 04:19 PM
Re: Good morning or good evening depending upon your location. I want to ask you the most important question of your life. Your joy or sorrow for all eternity depends upon your answer. The question is: Are you saved? It is not a question of how good Filthy Mcnasty DVD Video 0 04-25-2005 04:29 AM
Re: Safe Mode Question (A+ question) Gordon Findlay A+ Certification 0 06-16-2004 10:48 AM




SEO by vBSEO 3.3.2 ©2009, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46