Verification Guild
A Community of Verification Professionals

 Create an AccountHome | Calendar | Downloads | FAQ | Links | Site Admin | Your Account  

Login
Nickname

Password

Security Code: Security Code
Type Security Code
BACKWARD

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Modules
· Home
· Downloads
· FAQ
· Feedback
· Recommend Us
· Web Links
· Your Account

Advertising

Who's Online
There are currently, 45 guest(s) and 0 member(s) that are online.

You are Anonymous user. You can register for free by clicking here

  
Verification Guild: Forums

 Forum FAQForum FAQ   SearchSearch   UsergroupsUsergroups   ProfileProfile  ProfileDigest    Log inLog in 

SystemVerilog Assertion - is it allowed to use real values

 
Post new topic   Reply to topic    Verification Guild Forum Index -> Main
View previous topic :: View next topic  
Author Message
Andi
Senior
Senior


Joined: Apr 28, 2005
Posts: 45
Location: Munich, Germany

PostPosted: Wed Feb 01, 2012 4:47 pm    Post subject: SystemVerilog Assertion - is it allowed to use real values Reply with quote

Hi folks,

if I read the SV LRM, my understanding is that it is not allowed to use any veriables of type 'real' inside a concurrent assertion.
Do you agree to this?
Do you know why this is forbidden?

All the best
Andreas
Back to top
View user's profile
Swapnajit
Senior
Senior


Joined: Sep 21, 2004
Posts: 16

PostPosted: Wed Feb 01, 2012 9:52 pm    Post subject: SystemVerilog Assertion - is it allowed to use real values? Reply with quote

From IEEE Std. 1800-2009

Quote:

16.6.1 Operand types

The following types are not allowed:
— Noninteger types (shortreal, real, and realtime)
Back to top
View user's profile
dave_59
Senior
Senior


Joined: Jun 22, 2004
Posts: 974
Location: Fremont, CA

PostPosted: Wed Feb 01, 2012 11:23 pm    Post subject: Reply with quote

Andreas,

The original writers of the SystemVerilog LRM were thinking about the synthesis that happens when implementing concurrent assertions. It turns out that Boolean expressions don't need to be synthesized. Only the resulting temporal expressions that are turned into state machines need to be synthesized.

In the upcoming SV 1800-2012 LRM, they have relaxed these restrictions so that you can use most data types within an expression as the overall expression can be cast to an integral type.

Some simulators, like Questa, already support this.

Dave Rich
Mentor Graphics
Back to top
View user's profile Send e-mail Visit poster's website
Andi
Senior
Senior


Joined: Apr 28, 2005
Posts: 45
Location: Munich, Germany

PostPosted: Mon Feb 13, 2012 3:03 am    Post subject: Reply with quote

Hi Dave,

many thanks for your explanation.
However, I just have had a look at the latest draft D3, Nov 5th 2011, for the upcoming version. In section 16.6.1 I can still find the following:

Quote:

16.6.1 Operand types
The following types are not allowed:
— Noninteger types (shortreal, real, and realtime)


How does this fit to your statement?

All the best
Andi
Back to top
View user's profile
dave_59
Senior
Senior


Joined: Jun 22, 2004
Posts: 974
Location: Fremont, CA

PostPosted: Mon Feb 13, 2012 3:10 am    Post subject: Reply with quote

It's in Draft 4, which is the latest. D5, the ballot draft, is about to be released.

See http://www.eda.org/svdb/view.php?id=2328 for the change.

Dave Rich
Mentor Graphics
Back to top
View user's profile Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Verification Guild Forum Index -> Main All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Verification Guild © 2006 Janick Bergeron
Web site engine's code is Copyright © 2003 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.
Page Generation: 0.230 Seconds