繁体   English   中英

在FPGA的VHDL中实现以下操作/功能有多困难?

[英]how hard is it to implement the following operations/functions in VHDL for an FPGA?

作为固件工程师,您如何比较以下操作的计算成本(可能需要多少资源)

  • 加/减
  • 乘法
  • 三角函数,例如余弦
  • 平方根

对于具有32位计算的浮点。

从硬件(而非固件)的角度回答:不幸的是,您的问题没有简单的答案。 您列出的每个功能都有许多不同的硬件实现,通常在小到慢和大到快之间。 此外,它取决于您的目标FPGA,因为其中一些将这些功能嵌入到硬宏中,因此问题不再是它们的成本是多少 ,但是我在此FPGA中是否有足够的功能

作为部分答案,您可以这样做:在最直接的组合实现中,不使用任何硬宏,整数或定点N加法器/减法器的成本为O(N)N x N乘法器的成本为O(NxN) 大致。

对于其他功能,很难回答,要考虑的变量太多(固定/浮点,等待时间,吞吐量,准确性,范围...)。 假设您对所有这些都做出了类似的选择,我会说: add < mul < div < sqrt < trig 但老实说,不要认为这是理所当然的。 例如,如果使用浮点数,则加法器可能比乘法器更近甚至更大,因为它需要尾数对齐,即桶形移位器。

具有少量硬件设计知识的固件工程师可能会为每个功能使用预制内核。 Xilinx,Altera和其他公司提供可参数化的内核,这些内核可以执行您指定的大多数功能。 内核的参数可能包括输入大小和指定操作所用的周期数等。 这些内核中的每个内核所使用的资源会因配置以及内核所针对的供应商和相应的FPGA系列(例如Altera Cyclone 5或Xilinx Artix 7)而异。 内核所具有的延迟也将成为您决定的一个因素,高速FPGA系列可以以更快的时钟速率运行,从而减少了运行时间。 进行实际估算的方法是安装供应商工具(例如Xilinx的Vivado或Altera的Quartus),然后使用这些工具生成所需的每种核心类型。 您需要在要评估的系列中选择一个精确的FPGA部件。 选择一个具有许多引脚的引脚,以避免FPGA的I / O耗尽。 然后针对要评估的每个核心综合并实施设计。 最简单的设计将只有您要评估的核心,并将其输入和输出映射到FPGA I / O引脚。 实施结果将为您提供设计所需的资源数量,以及设计可以运行的最大时钟频率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM