Floating point operations in vhdl.

M

MariuszK

Hello,
I am looking for effectiv vhdl floating point type.
I need make "+" and "*" operations.
It would be fine if that type had changed (as parameter) bit precision
had 8 to 20 bits.

Thank you for any answer.

Best regards,
Mariusz
 
R

rnbrady

Hi

Try float_pkg_c.vhd from http://www.eda-stds.org/fphdl/

David Bishop is working on fixed and floating point libraries which
will be part of VHDL-2006 from IEEE. The file above is a compatibility
version of these libraries designed to work with current synthesis and
simulation tools (which naturally don't support VHDL-2006).

I use the fixed point version and it works great. The nice part is that
it will soon be part of a IEEE standard.

If you plan to synthesize, be warned that floating point operations in
general take up plenty of space.

If you have trouble getting the library to compile, let me know.
Richard
 
M

MariuszK

(e-mail address removed) napisal(a):
Hi

Try float_pkg_c.vhd from http://www.eda-stds.org/fphdl/

David Bishop is working on fixed and floating point libraries which
will be part of VHDL-2006 from IEEE. The file above is a compatibility
version of these libraries designed to work with current synthesis and
simulation tools (which naturally don't support VHDL-2006).

I use the fixed point version and it works great. The nice part is that
it will soon be part of a IEEE standard.

If you plan to synthesize, be warned that floating point operations in
general take up plenty of space.

If you have trouble getting the library to compile, let me know.
Richard

Hello,
Thanks. It is looks very interesting.

But how is libraries behave in case multiplication "*"?
What is frequency?
I don't find any pipeline option (make multiplication with higher
freqency but in few clock tact).
Thank you for answer
Mariusz
 
B

Ben Jones

MariuszK said:
Hello,
I am looking for effectiv vhdl floating point type.
I need make "+" and "*" operations.
It would be fine if that type had changed (as parameter) bit precision
had 8 to 20 bits.

If you are targeting Xilinx FPGAs, there are Floating Point operator cores
available from the core generator. They are fully parameterizable in both
precision and latency. You can instantiate them in VHDL (they won't be
automatically inserted by synthesis, I'm afraid).

If you are targeting some other FPGA or ASIC technology, then of course this
will not help you!

Cheers,

-Ben-
 
M

MariuszK

Ben Jones napisal(a):
If you are targeting Xilinx FPGAs, there are Floating Point operator cores
available from the core generator. They are fully parameterizable in both
precision and latency. You can instantiate them in VHDL (they won't be
automatically inserted by synthesis, I'm afraid).

If you are targeting some other FPGA or ASIC technology, then of course this
will not help you!

Cheers,

-Ben-
Hello,
I want use Xilinx FPGAs.
Could you precise where can I find that core generator.
What tools do you use?

Sorry. I do not understand yours sentence.
"You can instantiate them in VHDL (they won't be automatically inserted
by synthesis, I'm afraid)."

Best Regards
Mariusz
 
B

Ben Jones

Hi Mariusz,

MariuszK said:
Ben Jones napisal(a):
I want use Xilinx FPGAs.
Could you precise where can I find that core generator.
What tools do you use?

The Core Generator is part of the ISE tool suite from Xilinx. It is also
available from the free "Webpack" edition of the tools. You can read all
about it at the Xilinx website.
Sorry. I do not understand yours sentence.
"You can instantiate them in VHDL (they won't be automatically inserted
by synthesis, I'm afraid)."

So what I mean is, to use these operators you would have to instantiate them
as components and wire up the ports into your design. You cannot just write
"c <= a * b" and have the synthesis tool create a floating-point multiplier
(not yet, anyway). Instead you would write something like:

my_mult : fp_multiplier
generic map (...)
port map
( clk => clock,
a => a,
b => b,
result => c
...
);

Hope that helps.

-Ben-
 
Joined
Apr 29, 2008
Messages
2
Reaction score
0
help

Ben Jones said:
Hi Mariusz,

"MariuszK" <[email protected]> wrote in message
news:[email protected]...
>
> Ben Jones napisal(a):
> > "MariuszK" <[email protected]> wrote in message
> > news:[email protected]...
> > > Hello,
> > > I am looking for effectiv vhdl floating point type.
> > > I need make "+" and "*" operations.
> > > It would be fine if that type had changed (as parameter) bit precision
> > > had 8 to 20 bits.

> >
> > If you are targeting Xilinx FPGAs, there are Floating Point operator

cores
> > available from the core generator. They are fully parameterizable in

both
> > precision and latency. You can instantiate them in VHDL (they won't be
> > automatically inserted by synthesis, I'm afraid).
> >

> I want use Xilinx FPGAs.
> Could you precise where can I find that core generator.
> What tools do you use?


The Core Generator is part of the ISE tool suite from Xilinx. It is also
available from the free "Webpack" edition of the tools. You can read all
about it at the Xilinx website.

> Sorry. I do not understand yours sentence.
> "You can instantiate them in VHDL (they won't be automatically inserted
> by synthesis, I'm afraid)."


So what I mean is, to use these operators you would have to instantiate them
as components and wire up the ports into your design. You cannot just write
"c <= a * b" and have the synthesis tool create a floating-point multiplier
(not yet, anyway). Instead you would write something like:

my_mult : fp_multiplier
generic map (...)
port map
( clk => clock,
a => a,
b => b,
result => c
...
);

Hope that helps.

-Ben-

Hi,
I downloaded the fplibrary from www.ens-lyon.fr/LIP/Arenaire/Ware/FPLibrary and i was able to synthesize it. The problem i am having is that i dont know how to use it in my code. Forexample, if i want to Add two floating point number, how do i write the statement in vhdl.

is it:
tvar <= Add(A, B);

please could you advise me on what to do. What data type do i declare A, B, tvar. I am trying to download my code to xilinx board.
 
Joined
Oct 4, 2008
Messages
1
Reaction score
0
VHDL code for floating point division..

Hi everybody,

Anybody can help me..??...
I want VHDL code for floating point division...:driver:
Please help me...... :)

Rgds,
Siti...8)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top