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

Reply

VHDL - Verilog's integer and reg?

 
Thread Tools Search this Thread
Old 03-22-2006, 01:41 PM   #1
Default Verilog's integer and reg?


Hi all,

I heard that Verilog has integer type.
Someone said integer can be signed or unsigned.
How to declear signed integer?

And what's the difference with integer and reg signed [31:0](2's
complement) ?

Any suggestions will be appreciated!
Best regards,
Davy



Davy
  Reply With Quote
Old 03-22-2006, 06:04 PM   #2
Chris F Clark
 
Posts: n/a
Default Re: Verilog's integer and reg?
> And what's the difference with integer and reg signed [31:0](2's
> complement) ?


1) You need [at least partial] 2001 support to use "reg signed". It
isn't in the 1995 standard.

2) A variable declared integer is not necessarily exactly 32 bits
wide. If I recall correctly, it must be at least 32 bits wide, but
it could be 64 bits wide if that were more convenient to the
implementation.

3) In some implementations, I have found wierd artifacts occur when
using integers in calculations that were longer that 32 bits wide,
they didn't necessarily sign extend in consistent ways past the 32
bit length, sometimes they would sign extend and other times that
would 0 pad.

4) You can't do bit-selects or part-selects on integers, just on
regs (and wires, et al).

5) You shouldn't use "integer" declarations for things like flops or
signals that will exist as actual circuitry (partially because of 2
through 4). You should use integer declarations only for for look
indexes and similar items that "go away" as the design is turned
into silicon. You can use integers in non-synthesizable code,
e.g. testbench parts.

Thus, if your tools are modern and support the current standard,
you should use "reg signed" when you want a synthesizable part that
works in a signed way. If you don't have modern tools, life is
more difficult.


Chris F Clark
  Reply With Quote
Old 03-22-2006, 06:35 PM   #3
Chris F Clark
 
Posts: n/a
Default Re: Verilog's integer and reg?
I incorrectly said:
> through 4). You should use integer declarations only for for look

I meant:
> through 4). You should use integer declarations only for for loop
> indexes and similar items that "go away" as the design is turned


-Chris


Chris F Clark
  Reply With Quote
Old 03-22-2006, 06:48 PM   #4
Andy Peters
 
Posts: n/a
Default Re: Verilog's integer and reg?
Davy wrote:
> I heard that Verilog has integer type.
> Someone said integer can be signed or unsigned.
> How to declear signed integer?


Integers are always signed, and (usually, see Chris Clark's comment) 32
bits wide.

> And what's the difference with integer and reg signed [31:0](2's
> complement) ?


Nothing, but it's often a convenience to have a signed value that is
not 32 bits wide.

-a



Andy Peters
  Reply With Quote
Old 09-17-2008, 01:52 PM   #5
omara007
Junior Member
 
Join Date: Jun 2008
Posts: 8
Default
When doing synthesis for a verilog code that includes a declared integer used as an array index, I get the following error:

Range bounds are not constants.


Effectively the original Verilog code is like this :

integer index;
always @ (uuoutstgsp or uusel_sel) begin
index = 0;
while (uusel_sel[index] == 0) begin
index = index + 1;
end
uumux32to1sp = uuoutstgsp[(index*30)+29 : (index*30)];
end

so, what's the problem of this code ?


omara007
omara007 is offline   Reply With Quote
Old 11-26-2008, 11:08 AM   #6
partha
Junior Member
 
Join Date: Nov 2008
Posts: 1
Default
...replying the possible error of ur program is that dont put
uusel_sel[index] in the left hand side....for this the possible change u hav to do is to declare a reg temp dump the "uusel_sel[index] " in it then use temp in the condition loop

reg temp
integer index;
always @ (uuoutstgsp or uusel_sel) begin
index = 0;
temp=uusel_sel[index] ;
while (temp== 0) begin
index = index + 1;
end
uumux32to1sp = uuoutstgsp[(index*30)+29 : (index*30)];
end


partha
partha is offline   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




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