作者 主题:开源FPU具有1个循环性能 (Read 2721 times)

0会员和3位客人正在查看此主题。

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
开源FPU具有1个循环性能
« on: 2020年3月4日,上午11:30:55»
你好,
I'm现在使用Opencores的FPU100核心,
//opencores.org/projects/fpu100
It'现在好,但我看一下ARM Cortex M4 FPU,它可以在1或2个时钟周期中做大多数事情'S除法需要大约14个时钟周期,我想知道我们有哪些更好的开源选项?使用了多少空间和资源Deos Arm使用?
我想如果我们能做到 很少有DSP块和少于1000个LE块来实现它,这可能非常有用。

你用什么核心来做浮动呼叫,我知道你可能会说我们不在FPGA中做到,我们应该使用固定点,但我只是想学习它。
I'M数字专家来自8位到64位
 

离线 TK.

  • 超级贡献者
  • ***
  • 帖子:1617
  • 国家: 我们
  • 我是一个与电子产品一起玩的系统分析师
Re:开源FPU具有1个循环性能
« 网球比分直播#1开: 3月4日,2020年,12:01:18 PM»
你试过risc-v吗?
 

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#2开: PM 3月04日,2020年3月12:16:20»
引用
你试过risc-v吗?
我在哪里可以获得HDL代码?
I'M数字专家来自8位到64位
 

离线 TK.

  • 超级贡献者
  • ***
  • 帖子:1617
  • 国家: 我们
  • 我是一个与电子产品一起玩的系统分析师
Re:开源FPU具有1个循环性能
« 网球比分直播#3开: 3月4日,2020年,01:07:59»
 

在线的 siliconwizard.

  • 超级贡献者
  • ***
  • 帖子:6077
  • 国家: FR.
Re:开源FPU具有1个循环性能
« 网球比分直播#4开: 3月4日,2020年,05:40:29»
我可能是错的,但我'm不确定WD开源实现是否包含任何FPU( //github.com/chipsalliance/Cores-SweRV indeed )

关于Sifive开源核心,我'不确定 - 但是来自Sifive(Bruce)的人在这里是常规的,所以他'LL能够精确地回答这一点。所以即使那里'确实是一个fpu,请记住姿势'S开源核心是用凿子(afair)编写的,而不是直接在标准的HDL中。对OP可能很重要。

我个人不'知道任何资源,性能优化和强大实现可重复使用的FPU,也肯定会感兴趣。

我没有'虽然在纸浆平台上拍摄了深度外观,也许是你'll找到有趣的东西: //github.com/pulp-platform
 

离线 TK.

  • 超级贡献者
  • ***
  • 帖子:1617
  • 国家: 我们
  • 我是一个与电子产品一起玩的系统分析师
Re:开源FPU具有1个循环性能
« 网球比分直播#5: PM 3月4日,09:14:57 PM»
对不起,我与fpu混淆了m扩展(乘法 - 划分)......我也不确定哪个RISC-V核心已经实施了FPU
 

在线的 Asmi.

  • 超级贡献者
  • ***
  • 帖子:1705
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#6开启: 3月04日,2020年,09:22:13 PM»
对不起,我与fpu混淆了m扩展(乘法 - 划分)......我也不确定哪个RISC-V核心已经实施了FPU
FPU是"F"扩展,可能是"D"根据您定义FPU的究竟是如何定义的(在x86上,它支持多种数据类型)。他们两个都是"G"超级仪(IMAFD = G)。
 
以下用户感谢此帖子: TK.

离线 ve7xen

  • 频繁的贡献者
  • **
  • 帖子:829
  • 国家: 加利福尼亚州
    • VE7XEN博客
Re:开源FPU具有1个循环性能
« 网球比分直播#7: 3月4日,2020,09:59:38 PM»
来自Shakti RISC-V项目的F-Box FPU模块可能很有趣,不确定它是多么可重复使用,当然是什么't well documented: //gitlab.com/shaktiproject/cores/fbox 。似乎是在的实施 C级核心 虽然不是从此衍生,并且是单周期,所以不确定'如此,但也许这里有一些有用的东西。它's all SystemVerilog.
73 de Ve7xen.
他/他
 

在线的 Asmi.

  • 超级贡献者
  • ***
  • 帖子:1705
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#8开: 3月4日,2020年,晚上10:21:51»
来自Shakti RISC-V项目的F-Box FPU模块可能很有趣,不确定它是多么可重复使用,当然是什么't well documented: //gitlab.com/shaktiproject/cores/fbox 。似乎是在的实施 C级核心 虽然不是从此衍生,并且是单周期,所以不确定'如此,但也许这里有一些有用的东西。它's all SystemVerilog.
我会寻找一个性能度量而不是单周期。有什么用"单周期性能"当该循环需要至少为1美元时?
此外,我认为他们使用BlueSpec,这不是SystemVerilog。
« 上次编辑:2020年3月4日,ASMI下午10:41:30 »
 
以下用户感谢此帖子: 某人, 我想要一个粗鲁的用户名

离线 矮林

  • 超级贡献者
  • ***
  • 帖子:6284
  • 国家: GB.
Re:开源FPU具有1个循环性能
« 网球比分直播#9: 3月4日,2020年,晚上10:35:08»
我会寻找一个性能度量而不是单周期。有什么用"单周期性能"当该循环需要至少为1美元时?
发现。 Opencores FPU采用众多周期的原因是其流水线,以保持时钟速率上升(在其测试用例中为100MHz)。我没有'T看看他们的设计细节,但如果它明智地流水线应该可以开始每个循环开始新的计算,因此吞吐量应该是可观的。

它很少适用于处理器中的FPU,以完成1或2个循环的计算。它们通常可以每1或2个周期开始新计算。然后,处理器的流水线掩盖了计算实际需要的几个循环,因此程序员可能看起来没有延迟。
« 上次编辑:2020年3月4日,由Coppice下午10:38:26 »
 

在线的 哈姆斯特_NZ.

  • 超级贡献者
  • ***
  • 帖子:2405
  • 国家: NZ.
Re:开源FPU具有1个循环性能
« 网球比分直播#10: 2020年3月5日,12:48:23»
我会寻找一个性能度量而不是单周期。有什么用"单周期性能"当该循环需要至少为1美元时?
发现。 Opencores FPU采用众多周期的原因是其流水线,以保持时钟速率上升(在其测试用例中为100MHz)。我没有'T看看他们的设计细节,但如果它明智地流水线应该可以开始每个循环开始新的计算,因此吞吐量应该是可观的。

如果有人对此动态指令调度如何工作而不感兴趣'T知道从哪里开始,在Tomasulu算法上有一个阅读。

如果您尝试实施它,您会发现它令人惊讶的简单有效。
凝视不进入深渊,以免让你被认为是深渊领域专家,他们期望你继续凝视该死的事情。
 

在线的 布鲁尔特

  • 超级贡献者
  • ***
  • 帖子:1990年
  • 国家: NZ.
  • 以前是Sifive,三星r&D
Re:开源FPU具有1个循环性能
« 网球比分直播#11开: 2020年3月5日,01:09:48»
我可能是错的,但我'm不确定WD开源实现是否包含任何FPU( //github.com/chipsalliance/Cores-SweRV indeed )

Swerv(所有三个版本到期)是RV32IMC。没有fpu。

引用
关于Sifive开源核心,我'不确定 - 但是来自Sifive(Bruce)的人在这里是常规的,所以他'LL能够精确地回答这一点。所以即使那里'确实是一个fpu,请记住姿势'S开源核心是用凿子(afair)编写的,而不是直接在标准的HDL中。对OP可能很重要。

不再是Sifrive,但熟悉现有和一些未经发行的产品:-)

所有迄今为止的Sifive核心都使用完全未经修改的ALU,包括来自UCB的开源火箭实现的FPU。 FPU为ADD / SUB / MUL / FMA的4个周期延迟,每个时钟周期吞吐量为1个操作,完全流水线。 Denorms,下溢和Infinities不会影响吞吐量或延迟。

//github.com/ucb-bar/berkeley-hardfloat/
 

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#12: 2020年3月05日,06:29:28»
引用
我会寻找一个性能度量而不是单周期。有什么用"单周期性能"当该循环需要至少为1美元时?
ARM Cortex M可以做到这一点,你可以在M4参考手册中看到它,
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0439b/BEHJADED.html
我们也应该很快看到1Ghz Cortex M核心。我知道它可以是管道衬里,可以有1或2个时钟周期延迟,而且'S也比我在Opencores中找到的那个更好。

如果我们可以看到一些凉爽和人类可读的高性能FPU  ....  ^  -  ^ ^  -  ^ ^  -  ^
I'M数字专家来自8位到64位
 

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#13开启: 2020年3月05日,06:32:23»
引用
所有迄今为止的Sifive核心都使用完全未经修改的ALU,包括来自UCB的开源火箭实现的FPU。 FPU为ADD / SUB / MUL / FMA的4个周期延迟,每个时钟周期吞吐量为1个操作,完全流水线。 Denorms,下溢和Infinities不会影响吞吐量或延迟。

//github.com/ucb-bar/berkeley-hardfloat/
It'有趣,如何重新瞄准FPGA's喜欢Xilinx或Gowin?它's written in Chisel | O.
I'M数字专家来自8位到64位
 

在线的 布鲁尔特

  • 超级贡献者
  • ***
  • 帖子:1990年
  • 国家: NZ.
  • 以前是Sifive,三星r&D
Re:开源FPU具有1个循环性能
« 网球比分直播#14: 2020年3月5日,06:42:38»
引用
所有迄今为止的Sifive核心都使用完全未经修改的ALU,包括来自UCB的开源火箭实现的FPU。 FPU为ADD / SUB / MUL / FMA的4个周期延迟,每个时钟周期吞吐量为1个操作,完全流水线。 Denorms,下溢和Infinities不会影响吞吐量或延迟。

//github.com/ucb-bar/berkeley-hardfloat/
It'有趣,如何重新瞄准FPGA's喜欢Xilinx或Gowin?它's written in Chisel | O.

Chisel / Firrtl / Verilog管道的一个很大优势在于您可以优化同一设计的SOC或优化FPGA。

您还可以在FPGA上运行SoC优化的Verilog,这效率较低,但更好地验证您的SoC设计,然后删除并将其发送到铸造厂。
 

离线 矮林

  • 超级贡献者
  • ***
  • 帖子:6284
  • 国家: GB.
Re:开源FPU具有1个循环性能
« 网球比分直播#15: 2020年3月5日,11:35:27»
所有迄今为止的Sifive核心都使用完全未经修改的ALU,包括来自UCB的开源火箭实现的FPU。 FPU为ADD / SUB / MUL / FMA的4个周期延迟,每个时钟周期吞吐量为1个操作,完全流水线。 Denorms,下溢和Infinities不会影响吞吐量或延迟。

//github.com/ucb-bar/berkeley-hardfloat/
听起来很棒。当用于实时工作时,Denorms是许多FPU的巨大问题。
 

离线 矮林

  • 超级贡献者
  • ***
  • 帖子:6284
  • 国家: GB.
Re:开源FPU具有1个循环性能
« 网球比分直播#16开: 2020年3月05日,11:55:48»
引用
我会寻找一个性能度量而不是单周期。有什么用"单周期性能"当该循环需要至少为1美元时?
ARM Cortex M可以做到这一点,你可以在M4参考手册中看到它,
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0439b/BEHJADED.html
我们也应该很快看到1Ghz Cortex M核心。我知道它可以是管道衬里,可以有1或2个时钟周期延迟,而且'S也比我在Opencores中找到的那个更好。

如果我们可以看到一些凉爽和人类可读的高性能FPU  ....  ^  -  ^ ^  -  ^ ^  -  ^
似乎您正在尝试通过封装黑匣子来开发硬件,而不了解为什么每个黑匣子都建成它的方式。这很少结束。 M4是流水线的,所以基本上没有什么在一个循环中完成。事情必须流经管道结束。说明表中的那些行,说明1个循环意味着您可以在每个周期开始新的操作。它是发起指令所需的周期数。不是他们快速完成。那个表中有线条说了类似的东西"1 + P"。这意味着指令需要1个周期加上管道重新填充所需的周期数,因为这些指令本身刷新并重新启动了管道。如果您编写从FPU指令对另一个指令的结果需要结果的代码,如果这些指令太靠近,则可能会看到管道摊位。

如果您想要一个真正的1循环FPU时钟速度将相当低。如果你想要你所提到的1GHz速度,你必须向潮流将涟漪分成较小的碎片,高时钟速度和单循环操作不会齐头并进。它们彼此严重冲突。
 

在线的 siliconwizard.

  • 超级贡献者
  • ***
  • 帖子:6077
  • 国家: FR.
Re:开源FPU具有1个循环性能
« 网球比分直播#17开: PM 3月05日,02:38:43»
是的,正如op所说的那样,他们希望在FPGA上。任何体面的FPU都将不可避免地流水线以达到FPGA的甚至适度时钟频率,因此具有显着的延迟(但吞吐量可能是好的 - 虽然根据FPU结构,但您可能只能在一系列类似的情况下获得高吞吐量操作,如一系列乘法,而不是一系列随机操作,如一系列乘法,然后划分,然后添加,然后....为后者,你'LL需要更多涉及的结构,占用了重要的资源。)

 

离线 划线

  • 频繁的贡献者
  • **
  • 帖子:682
  • 国家: LT.
Re:开源FPU具有1个循环性能
« 网球比分直播#18开启: 3月05日,2020年,04:43:29»
真正需要1个循环性能吗?我记得在表演不是的那里做一个设计'所以最终通过启用的FP购买Nios II / F核心并节省工程时间而不是尝试学习,并以自己写入或将其脱离互联网,并了解其如何工作,并了解它的工作方式,并了解如何工作......
 
以下用户感谢此帖子: 某人

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#19: 3月6日,2020年,08:07:29»
引用
真正需要1个循环性能吗?
不,但在每个循环和低区域和高速接受新的指令。我想学习一些更好的开源替代品,所以我可以为自己的需求选择或实施更好的版本。
I'M数字专家来自8位到64位
 

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#20开: 3月06日,2020年,08:59:35»
我下载了Sifive E76-MC 核心,其中有一个浮点,但它'垃圾和没有可重复使用的代码! | O. 为什么他们甚至将其命名为开源!看他的代码'不是人类可读!
I'M数字专家来自8位到64位
 

在线的 布鲁尔特

  • 超级贡献者
  • ***
  • 帖子:1990年
  • 国家: NZ.
  • 以前是Sifive,三星r&D
Re:开源FPU具有1个循环性能
« 网球比分直播#21开: 2020年3月06日,09:59:58»
我下载了Sifive E76-MC 核心,其中有一个浮点,但它'垃圾和没有可重复使用的代码! | O. 为什么他们甚至将其命名为开源!看他的代码'不是人类可读!

E76绝对不是开源核心!给了你印象是什么?

It'S高性能的商业核心,获得了相当数量的金钱,而且你've得到了评估副本。
 

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#22: 3月6日,2020年,12:04:22»
引用
E76绝对不是开源核心!给了你印象是什么?

It'S高性能的商业核心,获得了相当数量的金钱,而且你've得到了评估副本。
谢谢你的信息,那么有没有Verilog或VHDL开源,其中你所知道的FPU?
I'M数字专家来自8位到64位
 

在线的 布鲁尔特

  • 超级贡献者
  • ***
  • 帖子:1990年
  • 国家: NZ.
  • 以前是Sifive,三星r&D
Re:开源FPU具有1个循环性能
« 网球比分直播#23开: 3月6日,2020年,01:08:02 PM»
引用
E76绝对不是开源核心!给了你印象是什么?

It'S高性能的商业核心,获得了相当数量的金钱,而且你've得到了评估副本。
谢谢你的信息,那么有没有Verilog或VHDL开源,其中你所知道的FPU?

I'已经将您指向伯克利FPU的源代码(你'D在内部找到困扰的E76评估核心的某处)。

It'在凿子中,而不是Verilog或VHDL,但它不应该'对于那些了解其中一个转换它的人来说是难的。凿子工具输出Verilog,它'默认情况下,当人们在Verilog级别看波形和调试的东西时,默认情况下相对读取'在Verilog中相当容易与凿子中的名称相同的方式,与您可以查看GDB中的事物的名称并将其相关回到原始的C或C ++名称中。

有许多组织和个人创建RISC-V核心。许多使用凿子,但有些人直接在Verilog或VHDL工作。

这里有一个列表:

//riscv.org/risc-v-cores/

每个条目都列出了实现语言,以及RISC-V支持。如果它'在用户规范字段中获得了f,d或g然后它'得到了FPU​​(G对于IMAFD短暂)。

你可能想要取消选择"SOC PLATFORMS" and "SOCS"过滤器按钮。您还可以重新开始,选择您可以接受的许可证。

我看到几个有了BSD或麻省理工学院的许可证和FPU的核心,但我注意到的核心是用凿子或Bluespec写的。在Verilog或VHDL编写的核心似乎一般来说是更简单的,没有FPU。
 
以下用户感谢此帖子: ali_asadzadeh.

在线的 siliconwizard.

  • 超级贡献者
  • ***
  • 帖子:6077
  • 国家: FR.
Re:开源FPU具有1个循环性能
« 网球比分直播#24开: 3月6日,2020年,02:41:04 PM»
我已经建议OP看看纸浆平台。

事实证明Ariane核心确实包括FPU。它's in systemverilog: //github.com/pulp-platform/ariane/tree/master/src
 
以下用户感谢此帖子: ali_asadzadeh.

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#25 on: 3月6日,2020,06:33:04»
谢谢布鲁什尔特,

引用
I'已经将您指向伯克利FPU的源代码(你'D在内部找到困扰的E76评估核心的某处)。
您是否对ARTIX 7设备实现了多少资源和速度?
I'M数字专家来自8位到64位
 

在线的 布鲁尔特

  • 超级贡献者
  • ***
  • 帖子:1990年
  • 国家: NZ.
  • 以前是Sifive,三星r&D
Re:开源FPU具有1个循环性能
« 网球比分直播#26: 3月6日,2020年,08:52:28 PM»
谢谢布鲁什尔特,

引用
I'已经将您指向伯克利FPU的源代码(你'D在内部找到困扰的E76评估核心的某处)。
您是否对ARTIX 7设备实现了多少资源和速度?

您可能会发现本文有趣: //hal.archives-ouvertes.fr/hal-02303453/document

他们为多个RISC-V核心提供数字。对于实现RV32IMF的火箭,他们可以在ARTIX 7和8132 LUT上获得76 MHz,3094 FF。一世'm pretty sure I'在ARTIX 7上以100 MHz运行的基于火箭的核心,但可能没有FPU。
 
以下用户感谢此帖子: ali_asadzadeh.

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#27: 7月11日,2020年,下午12:07:37»
有人知道如何从凿子中获得Verilog吗?

//github.com/ucb-bar/berkeley-hardfloat/

我想生成Verilog表单这个Berkeley Repo,还有一个build.sbt在repo中。
I'M数字专家来自8位到64位
 

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#28 on: 2020年12月10日,01:41:27 PM»
不知道如何编译凿子到Verilog,如果有人知道一些东西,请指出在Github上的Berkeley-Hardfloat
所以我们可以看看它,我也找到了这个有用的开源fpu,它'不是我想要在每个周期接受数据的东西,但它的速度很低,速度良好,它可以达到150MHz。

//github.com/dawsonjon/fpu
I'M数字专家来自8位到64位
 

在线的 布鲁尔特

  • 超级贡献者
  • ***
  • 帖子:1990年
  • 国家: NZ.
  • 以前是Sifive,三星r&D
Re:开源FPU具有1个循环性能
« 网球比分直播#29开: 2020年12月10日,09:23:42 PM»
不知道如何编译凿子到Verilog,如果有人知道一些东西,请指出在Github上的Berkeley-Hardfloat
所以我们可以看看它,我也找到了这个有用的开源fpu,它'不是我想要在每个周期接受数据的东西,但它的速度很低,速度良好,它可以达到150MHz。

//github.com/dawsonjon/fpu

通过...运行凿子从凿子生成Verilog。那's its purpose.

嗯,这些天凿子本身会生成FiRRTL(RTL的灵活中间表示),然后在FIRRTL上运行各种优化(包括为SOC或FPGA提供优化的东西,然后将FIRRTL转换为Verilog或者我认为VHDL是也是一个选择。

您还可以相信将Verilog或VHDL转换为FiRTL以进行优化。
 

离线 ali_asadzadeh.

  • 超级贡献者
  • ***
  • 帖子:1362
  • 国家: 加利福尼亚州
Re:开源FPU具有1个循环性能
« 网球比分直播#30: 2020年12月10日,晚上10:22:18»
感谢布鲁斯,你推荐任何 凿子上的教程?
I'M数字专家来自8位到64位
 

在线的 布鲁尔特

  • 超级贡献者
  • ***
  • 帖子:1990年
  • 国家: NZ.
  • 以前是Sifive,三星r&D
Re:开源FPU具有1个循环性能
« 网球比分直播#31开: 2020年12月10日,下午11:30:08»
感谢布鲁斯,你推荐任何 凿子上的教程?

我曾经和那些成功的人合作(并继续加强它),但我'从来没有自己用过它。

一个快速的 谷歌搜索在伯克利大学找到教程,这似乎是一个合理的快速入门:

//www.instructables.com/Getting-Started-With-Chisel/

但我刚发现在30秒内所以我期待你'自从您的初始信息以来的最后五个月已经看过这一点。
 
以下用户感谢此帖子: ali_asadzadeh.


分享我

掘客  Facebook  诽谤  可口的  Technorati.  推特  谷歌  雅虎
SMF.