微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求教关于用FPGA实现算法中的流水线操作。

求教关于用FPGA实现算法中的流水线操作。

时间:10-02 整理:3721RD 点击:
看论文中作者说这个算法可以流水线执行,潜伏期后就不断的输出r值,r是需要的。但我认为它不可以流水线执行啊,因为对于temp的更新需要用到上一个时刻的U的值,也就是数据流不是永远的向前,所以它不能流水线,我认为这个模块3个clk输出一次正确的r值,我说的对吗?
for i=1:1024 //这个模块需要计算1024次r的值,论文上说它能流水线,但我认为它每隔3个周期输出一次正确的r值。纠结啊
temp<=((w*K)>>13)-U;r<=(temp>>13)+1'b1;
U<=(r<<13)-temp;m<=m+1'b1;
end

大神留步!谢谢各位了!

如果你每个3个周期输入一个数据,那么就是“每隔3个周期输出一次正确的r值”
但是pipeline可以保证你每个周期都可以输入数据,所以就不是“三个周期输出一个值”
”temp的更新需要用到上一个时刻的U的值“,但是也只需要一个周期,也就是 3个周期中,只用锁存一个周期的U值 ,其他周期可以锁存其他时刻的U值。



   小编大,关键是U的值也得3个周期才输出一次正确的值啊。(每一个w值对应一个r值,r值为所求)

temp<=((w*K)>>13)-U;
r<=(temp>>13)+1'b1;
U<=(r<<13)-temp;
是不是这个样子:
第一个clk:  temp获得正确的值,(初始化让U为1/2)
第二个clk:r获得正确的值,temp取得错值(temp依赖于U)
第二个clk:U获得正确的值,U依赖于r,

第四个clk:temp获得正确的值, temp获得正确的值,(temp依赖于U)
……

然后如此往复。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top