在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1476|回复: 6

[原创] 算法的迭代的硬件实现与所需时钟数的关系

[复制链接]
发表于 2019-6-10 22:01:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 JetPeng 于 2019-6-11 11:04 编辑

在软件的算法用FPGA实现的过程中,对一组M维向量实现N次迭代到得终值,本菜鸟的直觉反应是对M个寄存器(对应M维向量)进行N个CLK的迭代(每个CLK的上升沿迭代操作一次)。但是问题夫人解决要求我们用少于N个CLK实现,请问有什么思路吗?
发表于 2019-6-11 14:13:24 | 显示全部楼层
展开循环,然后考虑迭代之间的数据依赖性,采用并行或者流水。
发表于 2019-6-11 14:34:09 | 显示全部楼层
可以考虑负沿设计,反正FPGA上,想怎么弄就怎么弄。
 楼主| 发表于 2019-6-11 20:38:23 | 显示全部楼层


lhw123 发表于 2019-6-11 14:34
可以考虑负沿设计,反正FPGA上,想怎么弄就怎么弄。


无法利用双边沿对同一个寄存器进行驱动啊
 楼主| 发表于 2019-6-11 21:12:48 | 显示全部楼层


snq31418 发表于 2019-6-11 14:13
展开循环,然后考虑迭代之间的数据依赖性,采用并行或者流水。


流水线不是会增加时钟的数量的吗?

发表于 2019-6-12 00:44:30 | 显示全部楼层
根据你描述,N次迭代可以描述为Y= f(N)= f(f(N-1)) = ..... = f(f(f....f(1))) =  f(f(f....f(f(0)))).  FPGA一般只考虑posedge。 根据你每次迭代所需要的date path delay和 input/output delay (FPGA上更好估计) ,再根据你clk除去uncertainty之外的周期长度,得到每一级最多塞进几个迭代,比如3个,那么最终你可以用大约3倍的FPGA资源实现N/3 个clk 内得到结果。
发表于 2019-6-12 09:12:48 | 显示全部楼层


JetPeng 发表于 2019-6-11 21:12
流水线不是会增加时钟的数量的吗?


流水之后,电路可以不断地处理新数据,而不用等待上一次的结束。

假设电路的latency是10个clock cycle。如果不流水,10个cycle处理1组数据;如果流水,20个cycle可以处理10组数据。

流水之后,电路吞吐率提高。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-27 03:53 , Processed in 0.018375 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表