RE: [sv-cc] Multidimensional dynamic array in DPI-C

From: Bresticker, Shalom <shalom.bresticker@intel.com>
Date: Sun Apr 08 2012 - 04:58:44 PDT

Why do you say,

"So all dynamic arrays should have size =0 ??"

Shalom

From: owner-sv-cc@eda.org [mailto:owner-sv-cc@eda.org] On Behalf Of Radoslaw Nawrot
Sent: Thursday, April 05, 2012 9:31 AM
To: sv-cc@eda.org
Cc: 'Oleg Demchenko'; 'Daniel Mlynek'
Subject: [sv-cc] Multidimensional dynamic array in DPI-C

Hello,

I have two interpretation problems:

1.) array querying functions for multidimensional dynamic array

Example code:
module top;
import "DPI-C" function a(int i [][]);
int y [][];
 initial
 begin
 y=new[4];
 y[0] = new[1];
 y[1] = new[2];
 y[2] = new[3];
 y[3] = new[4];
 a(y);
 end
 initial #1000 $finish;
endmodule

What should be returned on c side by svSize:

extern "C" int a(svOpenArrayHandle hnd) {

file<<"Size d2: "<<svSize(hnd,2)<<std::endl;

return 0;

}

?

Should be 0 ($high - $low + 1)? Or maybe simulation error would be better in that case?

LRM says:

$left shall return the left bound of the dimension. For a packed dimension, this is the index of the

most significant element. For a queue or dynamic array dimension, $left shall return 0.

- $right shall return the right bound of the dimension. For a packed dimension, this is the index of

the least significant element. For a queue or dynamic array dimension whose current size is zero,

$right shall return -1.

- For a fixed-size dimension, $increment shall return 1 if $left is greater than or equal to $right

and -1 if $left is less than $right. For a queue or dynamic array dimension, $increment shall

return -1.

- $low shall return the same value as $left if $increment returns -1, and the same value as

$right if $increment returns 1.

- $high shall return the same value as $right if $increment returns -1, and the same value as

$left if $increment returns 1.

So all dynamic arrays should have size =0 ??

 If yes than how user can get information to hull data by index if he(she) doesn't know how many index;es array have?

2.) If I use svGetArrElemPtr1(hnd, 0) should it return another svOpenArrayHandle ?

    If not then how user can get number of second dimension elements to use svGetArrElemPtr2 ??

    The same question about svGetArrayPtr

Thanks in advance ,

Radek

--
This message has been scanned for viruses and
dangerous content by MailScanner<http://www.mailscanner.info/>, and is
believed to be clean.
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Sun Apr 8 04:59:40 2012

This archive was generated by hypermail 2.1.8 : Sun Apr 08 2012 - 04:59:42 PDT