Rules | Recent posts | topic RSS | Search | Register  | Log in

HDL-93 HDL-180

 
Post new topic  Reply to topic    EDAboard.com Forum Index -> ASIC Design Methodologies & Tools (Digital)
Author Message
visualart



Joined: 21 Dec 2001
Posts: 582
Helped: 26


Post21 Jul 2003 2:06   HDL-93 HDL-180

I miss the scriptor synthisis the Cusb IP core by synopsys.
Can you help me?
When I run the DC, it report many warnings as follow:
"Potential simulator-synthesis mismatch if index exceeds size of array. HDL -93"
"Variable 'a' is being read in routine .... , but does not occur in the timing control of the block with begins, there. HDL-180"

How can I deal with the warnings?

Tia
Back to top
jkfoo



Joined: 17 May 2001
Posts: 37


Post21 Jul 2003 15:02   

For HDL-93 warning, if you are sure that your index is never gonna exceed the size of array declared, then you may ignore this warning. As for HDL-180, variable or signal 'a' is not included in the sensitivity lists, you will need to fix this warning. At the end of the day, any mismatch can be captured by running gate-level simulation or formal verification.
Back to top
visualart



Joined: 21 Dec 2001
Posts: 582
Helped: 26


Post22 Jul 2003 1:54   

Thx jkfoo.
About the HDL-93 , I may ensure and ignore them.

the HDL-180, they are error, when i write as follow:

always @(a[0] or a[1])
begin
b = a
end
Why the varbile 'a' Can not write by 'a[]'?
Back to top
abner



Joined: 04 Oct 2002
Posts: 24


Post22 Jul 2003 3:00   

visualart wrote:
Thx jkfoo.
About the HDL-93 , I may ensure and ignore them.

the HDL-180, they are error, when i write as follow:

always @(a[0] or a[1])
begin
b = a
end
Why the varbile 'a' Can not write by 'a[]'?



Check bus "a" 's width. If bus "a" is from bit 7 to bit 0,

Solution 1:
You need to put all of them in "@(...)" block.

Solution 2:
always @( a[0] or a[1[] )
begin
b[0] = a[0];
b[1] = a[1];
end

Solution 3:
always @( a[0] or a[1[] )
begin
b = { a[1], a[0] };
end

Some of them may be not 100% correct, but I just want to give you some possible solution.

--Abner--
Back to top
joe2moon



Joined: 19 Apr 2002
Posts: 371
Helped: 12
Location: MOON


Post22 Jul 2003 4:25   Verilog Syntax

> always @(a[0] or a[1])
> begin
> b = a ;
> end

OR may just write, ( For a[1:0] and b[1:0] )
always @(a)
begin
b=a;
end
[Tool will check the length of the variables a and b anyway...]
Back to top
visualart



Joined: 21 Dec 2001
Posts: 582
Helped: 26


Post22 Jul 2003 10:01   

Oh, Thx all.
My code as follow:
reg [10:0] a[3:0];
reg [1:0] b;
reg [15:0] c;
.
.
.
always @(a[0] or a[1] or a[2] or a [3])
reg [1:0] x;
begin x = b;
case( x)
.
.
.
default: c = {4'b0, a[x]} ;
endcase

when I compile, It infor me above information(HDL-180).
Why?
How can I revise it?
Tia
Back to top
jkfoo



Joined: 17 May 2001
Posts: 37


Post22 Jul 2003 15:26   

how about,


always @(a[0] or a[1] or a[2] or a [3] or b)

...
Back to top
visualart



Joined: 21 Dec 2001
Posts: 582
Helped: 26


Post23 Jul 2003 2:43   

the same warning. HDL-180
Back to top
Post new topic  Reply to topic    EDAboard.com Forum Index -> ASIC Design Methodologies & Tools (Digital)
Page 1 of 1 All times are GMT + 1 Hour


Abuse
Administrator
Moderators
topic RSS 
sitemap