Where is a code example on how to use a floating multiplier

W

Weng Tianxiang

Guest
Hi,

I need a full code example on how to use a floating multiplier on FPGA for VHDL-2008. What is the document name from XILINX?

Jim's slides on floating multiplier are good, but not full and outdated. It was published on 2007.

http://www.synthworks.com/papers/vhdl_fixedfloat_lewis_bishop_date_2007.pdf

Thank you.


Weng
 
On Sunday, February 21, 2016 at 8:47:38 PM UTC+1, Weng Tianxiang wrote:
Hi,

I need a full code example on how to use a floating multiplier on FPGA for VHDL-2008. What is the document name from XILINX?

Jim's slides on floating multiplier are good, but not full and outdated. It was published on 2007.

http://www.synthworks.com/papers/vhdl_fixedfloat_lewis_bishop_date_2007.pdf

Thank you.


Weng

I am not an expert for VHDL, but I would be really surprised if the tools will be able to synthesize this data type. This VHDL package is meant to be used for simulation.

Xilinx has an IP which does various operations on floating point: http://www.xilinx.com/products/intellectual-property/floating_pt.html. I would also suggest checking out Vivado HLS since (at least IMHO) gives nice productivity boost when writing floating-point signal processing modules.
 
On Sunday, February 21, 2016 at 1:58:03 PM UTC-8, Jan Marjanovič wrote:
On Sunday, February 21, 2016 at 8:47:38 PM UTC+1, Weng Tianxiang wrote:
Hi,

I need a full code example on how to use a floating multiplier on FPGA for VHDL-2008. What is the document name from XILINX?

Jim's slides on floating multiplier are good, but not full and outdated.. It was published on 2007.

http://www.synthworks.com/papers/vhdl_fixedfloat_lewis_bishop_date_2007..pdf

Thank you.


Weng

I am not an expert for VHDL, but I would be really surprised if the tools will be able to synthesize this data type. This VHDL package is meant to be used for simulation.

Xilinx has an IP which does various operations on floating point: http://www.xilinx.com/products/intellectual-property/floating_pt.html. I would also suggest checking out Vivado HLS since (at least IMHO) gives nice productivity boost when writing floating-point signal processing modules.

Hi Jan,

very good, what you provided is what I want. But can you give more info about Vivado HLS? A pdf document link for Vivado HLS?

Thank you.

Weng
 
On 2/21/2016 7:14 PM, Weng Tianxiang wrote:
On Sunday, February 21, 2016 at 1:58:03 PM UTC-8, Jan Marjanovič wrote:
On Sunday, February 21, 2016 at 8:47:38 PM UTC+1, Weng Tianxiang wrote:
Hi,

I need a full code example on how to use a floating multiplier on FPGA for VHDL-2008. What is the document name from XILINX?

Jim's slides on floating multiplier are good, but not full and outdated.. It was published on 2007.

http://www.synthworks.com/papers/vhdl_fixedfloat_lewis_bishop_date_2007..pdf

Thank you.


Weng

I am not an expert for VHDL, but I would be really surprised if the tools will be able to synthesize this data type. This VHDL package is meant to be used for simulation.

Xilinx has an IP which does various operations on floating point: http://www.xilinx.com/products/intellectual-property/floating_pt.html. I would also suggest checking out Vivado HLS since (at least IMHO) gives nice productivity boost when writing floating-point signal processing modules.

Hi Jan,

very good, what you provided is what I want. But can you give more info about Vivado HLS? A pdf document link for Vivado HLS?

You should be contacting the synthesis and FPGA vendors.

--

Rick
 
On 2/21/2016 4:57 PM, Jan Marjanovič wrote:
On Sunday, February 21, 2016 at 8:47:38 PM UTC+1, Weng Tianxiang
wrote:
Hi,

I need a full code example on how to use a floating multiplier on
FPGA for VHDL-2008. What is the document name from XILINX?

Jim's slides on floating multiplier are good, but not full and
outdated. It was published on 2007.

http://www.synthworks.com/papers/vhdl_fixedfloat_lewis_bishop_date_2007.pdf



Thank you.


Weng

I am not an expert for VHDL, but I would be really surprised if the
tools will be able to synthesize this data type. This VHDL package is
meant to be used for simulation.

That is not a true statement. Floating point can be used for synthesis
if supported by the vendor. I have not needed floating point in a VHDL
design so I don't know how widely it is supported, but I know there is
nothing special about floating point that makes it unsupportable.

--

Rick
 
On Tuesday, 23 February 2016 14:40:15 UTC+8, rickman wrote:
On 2/21/2016 7:14 PM, Weng Tianxiang wrote:
On Sunday, February 21, 2016 at 1:58:03 PM UTC-8, Jan Marjanovič wrote:
On Sunday, February 21, 2016 at 8:47:38 PM UTC+1, Weng Tianxiang wrote:
Hi,

I need a full code example on how to use a floating multiplier on FPGA for VHDL-2008. What is the document name from XILINX?

Jim's slides on floating multiplier are good, but not full and outdated.. It was published on 2007.

http://www.synthworks.com/papers/vhdl_fixedfloat_lewis_bishop_date_2007..pdf

Thank you.


Weng

I am not an expert for VHDL, but I would be really surprised if the tools will be able to synthesize this data type. This VHDL package is meant to be used for simulation.

Xilinx has an IP which does various operations on floating point: http://www.xilinx.com/products/intellectual-property/floating_pt.html. I would also suggest checking out Vivado HLS since (at least IMHO) gives nice productivity boost when writing floating-point signal processing modules.

Hi Jan,

very good, what you provided is what I want. But can you give more info about Vivado HLS? A pdf document link for Vivado HLS?

You should be contacting the synthesis and FPGA vendors.

--

Rick

Xilinx Vivado synthesis supports VHDL-2008, by enabling a Tcl command:
set_param project.enableVHDL2008 1

After entering this command, the Project Settings dialogue box will show a checkbox "Use VHDL 2008". Check this to VHDL-2008 support.

Then you can set individual files to use the "VHDL 2008" file type.

However, be warned that there is currently a problem with getting the IEEE floating point package (float_pkg) to work with this option enabled. However, previous versions of Vivado, I mean those that have not yet supported VHDL-2008, do actually support the float_pkg library (weird I know).

I have filed a case with Xilinx previously, but I'm not sure of its current status. I believe they are working on this.

If you want to use float_pkg, you need to NOT use the "VHDL 2008" option for now. With this, you can use the "*" multiplication symbol to do floating-point multiplications.

Refer to Chapter 5 (pgs. 177 onwards) of the Vivado Design Suite User Guide (v2015.3).
http://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_3/ug901-vivado-synthesis.pdf

-daniel
 
On Tuesday, February 23, 2016 at 4:16:51 AM UTC-8, Daniel Kho wrote:
On Tuesday, 23 February 2016 14:40:15 UTC+8, rickman wrote:
On 2/21/2016 7:14 PM, Weng Tianxiang wrote:
On Sunday, February 21, 2016 at 1:58:03 PM UTC-8, Jan Marjanovič wrote:
On Sunday, February 21, 2016 at 8:47:38 PM UTC+1, Weng Tianxiang wrote:
Hi,

I need a full code example on how to use a floating multiplier on FPGA for VHDL-2008. What is the document name from XILINX?

Jim's slides on floating multiplier are good, but not full and outdated.. It was published on 2007.

http://www.synthworks.com/papers/vhdl_fixedfloat_lewis_bishop_date_2007..pdf

Thank you.


Weng

I am not an expert for VHDL, but I would be really surprised if the tools will be able to synthesize this data type. This VHDL package is meant to be used for simulation.

Xilinx has an IP which does various operations on floating point: http://www.xilinx.com/products/intellectual-property/floating_pt.html. I would also suggest checking out Vivado HLS since (at least IMHO) gives nice productivity boost when writing floating-point signal processing modules.

Hi Jan,

very good, what you provided is what I want. But can you give more info about Vivado HLS? A pdf document link for Vivado HLS?

You should be contacting the synthesis and FPGA vendors.

--

Rick

Xilinx Vivado synthesis supports VHDL-2008, by enabling a Tcl command:
set_param project.enableVHDL2008 1

After entering this command, the Project Settings dialogue box will show a checkbox "Use VHDL 2008". Check this to VHDL-2008 support.

Then you can set individual files to use the "VHDL 2008" file type.

However, be warned that there is currently a problem with getting the IEEE floating point package (float_pkg) to work with this option enabled. However, previous versions of Vivado, I mean those that have not yet supported VHDL-2008, do actually support the float_pkg library (weird I know).

I have filed a case with Xilinx previously, but I'm not sure of its current status. I believe they are working on this.

If you want to use float_pkg, you need to NOT use the "VHDL 2008" option for now. With this, you can use the "*" multiplication symbol to do floating-point multiplications.

Refer to Chapter 5 (pgs. 177 onwards) of the Vivado Design Suite User Guide (v2015.3).
http://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_3/ug901-vivado-synthesis.pdf

-daniel

Hi Danial,

What you provided is what I want.

Thank you,

Weng
 
On Friday, March 4, 2016 at 5:14:32 AM UTC-8, Weng Tianxiang wrote:
On Tuesday, February 23, 2016 at 4:16:51 AM UTC-8, Daniel Kho wrote:
On Tuesday, 23 February 2016 14:40:15 UTC+8, rickman wrote:
On 2/21/2016 7:14 PM, Weng Tianxiang wrote:
On Sunday, February 21, 2016 at 1:58:03 PM UTC-8, Jan Marjanovič wrote:
On Sunday, February 21, 2016 at 8:47:38 PM UTC+1, Weng Tianxiang wrote:
Hi,

I need a full code example on how to use a floating multiplier on FPGA for VHDL-2008. What is the document name from XILINX?

Jim's slides on floating multiplier are good, but not full and outdated.. It was published on 2007.

http://www.synthworks.com/papers/vhdl_fixedfloat_lewis_bishop_date_2007..pdf

Thank you.


Weng

I am not an expert for VHDL, but I would be really surprised if the tools will be able to synthesize this data type. This VHDL package is meant to be used for simulation.

Xilinx has an IP which does various operations on floating point: http://www.xilinx.com/products/intellectual-property/floating_pt.html. I would also suggest checking out Vivado HLS since (at least IMHO) gives nice productivity boost when writing floating-point signal processing modules.

Hi Jan,

very good, what you provided is what I want. But can you give more info about Vivado HLS? A pdf document link for Vivado HLS?

You should be contacting the synthesis and FPGA vendors.

--

Rick

Xilinx Vivado synthesis supports VHDL-2008, by enabling a Tcl command:
set_param project.enableVHDL2008 1

After entering this command, the Project Settings dialogue box will show a checkbox "Use VHDL 2008". Check this to VHDL-2008 support.

Then you can set individual files to use the "VHDL 2008" file type.

However, be warned that there is currently a problem with getting the IEEE floating point package (float_pkg) to work with this option enabled. However, previous versions of Vivado, I mean those that have not yet supported VHDL-2008, do actually support the float_pkg library (weird I know).

I have filed a case with Xilinx previously, but I'm not sure of its current status. I believe they are working on this.

If you want to use float_pkg, you need to NOT use the "VHDL 2008" option for now. With this, you can use the "*" multiplication symbol to do floating-point multiplications.

Refer to Chapter 5 (pgs. 177 onwards) of the Vivado Design Suite User Guide (v2015.3).
http://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_3/ug901-vivado-synthesis.pdf

-daniel

Hi Danial,

What you provided is what I want.

Thank you,

Weng

Hi Danial,

I have read a Xilinx paper "Floating-Point Operator v7.1 LogiCORE IP Product Guide", PG060 November 18, 2015, now another similar one "Vivado Design Suite User Guide", UG901 (v2015.3) September 30, 2015.

Can you describe the differences between them, especially which one must be read and which one can be skipped?

Thank you.

Weng
 
On Friday, 4 March 2016 21:42:29 UTC+8, Weng Tianxiang wrote:
On Friday, March 4, 2016 at 5:14:32 AM UTC-8, Weng Tianxiang wrote:
On Tuesday, February 23, 2016 at 4:16:51 AM UTC-8, Daniel Kho wrote:
On Tuesday, 23 February 2016 14:40:15 UTC+8, rickman wrote:
On 2/21/2016 7:14 PM, Weng Tianxiang wrote:
On Sunday, February 21, 2016 at 1:58:03 PM UTC-8, Jan Marjanovič wrote:
On Sunday, February 21, 2016 at 8:47:38 PM UTC+1, Weng Tianxiang wrote:
Hi,

I need a full code example on how to use a floating multiplier on FPGA for VHDL-2008. What is the document name from XILINX?

Jim's slides on floating multiplier are good, but not full and outdated.. It was published on 2007.

http://www.synthworks.com/papers/vhdl_fixedfloat_lewis_bishop_date_2007..pdf

Thank you.


Weng

I am not an expert for VHDL, but I would be really surprised if the tools will be able to synthesize this data type. This VHDL package is meant to be used for simulation.

Xilinx has an IP which does various operations on floating point: http://www.xilinx.com/products/intellectual-property/floating_pt.html. I would also suggest checking out Vivado HLS since (at least IMHO) gives nice productivity boost when writing floating-point signal processing modules.

Hi Jan,

very good, what you provided is what I want. But can you give more info about Vivado HLS? A pdf document link for Vivado HLS?

You should be contacting the synthesis and FPGA vendors.

--

Rick

Xilinx Vivado synthesis supports VHDL-2008, by enabling a Tcl command:
set_param project.enableVHDL2008 1

After entering this command, the Project Settings dialogue box will show a checkbox "Use VHDL 2008". Check this to VHDL-2008 support.

Then you can set individual files to use the "VHDL 2008" file type.

However, be warned that there is currently a problem with getting the IEEE floating point package (float_pkg) to work with this option enabled. However, previous versions of Vivado, I mean those that have not yet supported VHDL-2008, do actually support the float_pkg library (weird I know).

I have filed a case with Xilinx previously, but I'm not sure of its current status. I believe they are working on this.

If you want to use float_pkg, you need to NOT use the "VHDL 2008" option for now. With this, you can use the "*" multiplication symbol to do floating-point multiplications.

Refer to Chapter 5 (pgs. 177 onwards) of the Vivado Design Suite User Guide (v2015.3).
http://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_3/ug901-vivado-synthesis.pdf

-daniel

Hi Danial,

What you provided is what I want.

Thank you,

Weng

Hi Danial,

I have read a Xilinx paper "Floating-Point Operator v7.1 LogiCORE IP Product Guide", PG060 November 18, 2015, now another similar one "Vivado Design Suite User Guide", UG901 (v2015.3) September 30, 2015.

Can you describe the differences between them, especially which one must be read and which one can be skipped?

Thank you.

Weng

I haven't read the PG060 Floating-Point Operator product guide, as I don't have a need to read it. I only read user guides on IP Cores (such as the LogiCore IP products) only when I have a need to use those IPs.

As far as floating-point or fixed-point arithmetic is concerned, I'd rather stick with the IEEE float_pkg and fixed_pkg standardised functions. This means, if a tool supports this standard, then all you need is to use these functions as if they were standard IEEE functions. Use them normally in your behavioural VHDL code.

This means that I don't use the Floating-Point LogiCORE IP directly, however, XST may infer these IPs from the behavioural VHDL.

LogiCore (or any third-party) IP cores usually will require you to instantiate those IPs in your VHDL, and makes your code more structural than behavioural. For floating/fixed-point arithmetic, I find it easier and better to write the equations in behavioural VHDL, using the standard IEEE functions.

- dan
 

Welcome to EDABoard.com

Sponsor

Back
Top