FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > VHDL

VHDL comp.lang.vhdl newsgroup / Usenet

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 09-22-2003, 04:33 PM
Lolo
Guest
 
Posts: n/a
Default How to print a long unsigned ?


Dear all,

I have a long unsigned:
o: out unsigned (99 downto 0)
which I want to print in decimal.

I can use the write procedure of the std.textio package, after a conversion to
integer:
write(L, to_integer(o))
But this fails when o >= 2**32.

In std_logic_textio, write is overloaded on std_logic_vector. So
write(L, std_logic_vector(o)) works fine but unfortunately print the
value in binary.

I looked at some contribution packages providing a printf-like feature. But none
is able to handle values > 32 bits.

Do you know of any procedure to print long unsigneds in decimal ? (Hexa would be
okay even if not the perfect solution.)

Thanks in advance.

[email protected] (non-spammers will remove all 'x')
--
Ce message a ete poste via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/
Reply With Quote
  #2 (permalink)  
Old 09-22-2003, 07:33 PM
Mike Treseler
Guest
 
Posts: n/a
Default Re: How to print a long unsigned ?

Lolo wrote:

> Do you know of any procedure to print long unsigneds in decimal ? (Hexa would be
> okay even if not the perfect solution.)


Heres an unsigned to hex string function:

http://groups.google.com/groups?q=arg_pad_left

-- Mike Treseler

Reply With Quote
  #3 (permalink)  
Old 09-22-2003, 08:32 PM
VhdlCohen
Guest
 
Posts: n/a
Default Re: How to print a long unsigned ?

>I have a long unsigned:
> o: out unsigned (99 downto 0)
>which I want to print in decimal.


Use the image package at my site. I updated to use the use ieee.numeric_std
package.
library IEEE;
use IEEE.Std_Logic_1164.all;
use IEEE.Std_Logic_TextIO.all;
use ieee.numeric_std.all;
-- use IEEE.Std_Logic_Arith.all;

library Std;
use STD.TextIO.all;

package Image_Pkg is
function Image(In_Image : Time) return String;
function Image(In_Image : Bit) return String;
function Image(In_Image : Bit_Vector) return String;
function Image(In_Image : Integer) return String;
function Image(In_Image : Real) return String;
function Image(In_Image : Std_uLogic) return String;
function Image(In_Image : Std_uLogic_Vector) return String;
function Image(In_Image : Std_Logic_Vector) return String;
function Image(In_Image : Signed) return String;
function Image(In_Image : UnSigned) return String;

function HexImage(InStrg : String) return String;
function HexImage(In_Image : Bit_Vector) return String;
function HexImage(In_Image : Std_uLogic_Vector) return String;
function HexImage(In_Image : Std_Logic_Vector) return String;
function HexImage(In_Image : Signed) return String;
function HexImage(In_Image : UnSigned) return String;

function DecImage(In_Image : Bit_Vector) return String;
function DecImage(In_Image : Std_uLogic_Vector) return String;
function DecImage(In_Image : Std_Logic_Vector) return String;
function DecImage(In_Image : Signed) return String;
function DecImage(In_Image : UnSigned) return String;
end Image_Pkg;

----------------------------------------------------------------------------
Ben Cohen Publisher, Trainer, Consultant (310) 721-4830
http://www.vhdlcohen.com/ [email protected]
Author of following textbooks:
* Using PSL/SUGAR with Verilog and VHDL
Guide to Property Specification Language for ABV, 2003 isbn 0-9705394-4-4
* Real Chip Design and Verification Using Verilog and VHDL, 2002 isbn
0-9705394-2-8
* Component Design by Example ", 2001 isbn 0-9705394-0-1
* VHDL Coding Styles and Methodologies, 2nd Edition, 1999 isbn 0-7923-8474-1
* VHDL Answers to Frequently Asked Questions, 2nd Edition, isbn 0-7923-8115
------------------------------------------------------------------------------
Reply With Quote
  #4 (permalink)  
Old 09-23-2003, 01:22 AM
Jim Lewis
Guest
 
Posts: n/a
Default Re: How to print a long unsigned ?

I have not seen any packages that handle printing bigger
than 31/32 bits of data. Ben Cohen's above throws out bits
above 31/32. So does the one that part of the Free Model Foundry.


Printing Hex
=======================
If hex is ok, the easy way is to use std_logic_textio and do:
hwrite(L, std_logic_vector(o));

While std_logic_textio is not a standard, under the IEEE P1164
it is a candidate to become a standard.

One annoying feature of std_logic_textio is that the
array must be sized n*4. Hence if your array is not a multiple
of 4, you must pad it (hopefully we will get to fix this).


Bruteforcing Decimal to work
===============================
If you are using the package numeric_std, use / and mod
to break your number into 4 pieces (use 10**9 = the largest
power of 10 that fits into 31/32 bits). Now you can
print by using write(L, to_integer(i), left, 9) ;


There is a proposal to extend std_logic_textio when it
gets standardized to have a dwrite and a dread.

There is also a proposal to add these for bit_vector under
the vhdl-200x-ft effort. See: http://www.eda.org/vhdl-200x/vhdl-200x-ft


If you find anything better than what I suggested, please
pass it along to either the working groups or to myself
as I am helping with both of the above efforts.


Cheers,
Jim Lewis
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
Jim Lewis
Director of Training mailto:[email protected]
SynthWorks Design Inc. http://www.SynthWorks.com
1-503-590-4787

Expert VHDL Training for Hardware Design and Verification
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~


Lolo wrote:

> Dear all,
>
> I have a long unsigned:
> o: out unsigned (99 downto 0)
> which I want to print in decimal.
>
> I can use the write procedure of the std.textio package, after a conversion to
> integer:
> write(L, to_integer(o))
> But this fails when o >= 2**32.
>
> In std_logic_textio, write is overloaded on std_logic_vector. So
> write(L, std_logic_vector(o)) works fine but unfortunately print the
> value in binary.
>
> I looked at some contribution packages providing a printf-like feature. But none
> is able to handle values > 32 bits.
>
> Do you know of any procedure to print long unsigneds in decimal ? (Hexa would be
> okay even if not the perfect solution.)
>
> Thanks in advance.
>
> [email protected] (non-spammers will remove all 'x')


Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

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

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to print a value using $display sundar Verilog 5 10-11-2007 11:48 AM
Print FAT table in a compact flash ?????????? [email protected] FPGA 2 04-13-2006 01:01 AM
Sell Print Circuit Board --(CHINA) [email protected] FPGA 2 03-19-2006 05:35 PM
Sell Print Circuit Board --(CHINA) [email protected] Verilog 0 03-12-2006 06:56 AM


All times are GMT +1. The time now is 03:55 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved