加入收藏 设为首页 帮助中心
 
论坛首页
用户登录 | 用户注册 | 最新悬赏 | 最新贴子 | 会员中心 | 贴子搜索 | 网站地图 | 帮助中心 | 联系我们
站内搜索:
现在位置 > 维库电子开发网论坛 > EDA > 流水线设计的疑问
帖子主题: 流水线设计的疑问
你还没有登录,无法发表回复,请首先 登录.. [注 册]
积分:489 zhiweihapp3237
发表于:2008-5-8 10:57:00 楼主
级别:四星
积分:489分
注册:2006年08月13日
流水线设计的疑问

看过一个介绍流水线设计的帖子,说采用流水线设计可以提高电路的工作频率,并举例说可以把32位计数器分割成12位和20位计数器,自己动手试了一下,果然综合后的最高频率由原来的168MHZ提高到169MHZ。有两点疑问:
1.    ISE综合报告给出的最高频率和电路的实际工作频率有关系否?
2.    流水线设计明明是通过插入寄存器来切割大的组合逻辑,从表面看,引入了新一级的寄存器只会增加信号的传输时延,为什么竟然可以提高频率?!!这个问题怎么想也想不明白!有的资料上说虽然流水设计增加了首次延迟,但是它极大的缩短了吞吐延迟,不太理解


 
积分:692 dudongdao7677
发表于:2008-5-8 10:57:00 1 楼
级别:五星
积分:692分
注册:2006年08月13日
你的例子有问题吧.

如果32位计数器是程序的瓶颈,分割之后频率应该提高一倍左右.
1. ISE的是理论值. 要看那个最影响频率的延时路径,在这个路径里插入流水线可以实实在在的提高系统频率
2. 注意是信号'输出'的延时,这个延时经常是可以忽略的.可以拿显卡作为例子,就算显卡输出延时1ms,我们也没有什么感觉,但是如果显卡处理能力不行,某个画面撕裂了,那就是不可容忍的.

 
积分:686 zenf1907
发表于:2008-5-8 10:57:00 2 楼
级别:五星
积分:686分
注册:2006年08月13日
huifu

供应51单片机学习板,配送配套视频教学碟,让你轻松单片机入门,仅198元,另有C语言和汇编视频教学碟,了解产品请登陆

http://shop35432946.taobao.com

咨询QQ:178863813   348239335

 
积分:125 ansir0004187
发表于:2008-5-8 10:57:00 3 楼
级别:二星
积分:125分
注册:2006年08月13日
rt

没有流水
a -> 100ns -> b
a,b使用同步时钟

插入一级流水寄存器
a -> 50ns -> c -> 50ns -> b
a,b,c使用同步时钟
显然a -> c的频率可以比上面a->b的频率高,以为a->c之间的延迟只有50ns
总看起来a-c-b延迟会加大,但只是第一个数据延迟加大.
reg:      a - c - b
data: z y x   -->
        z y   x  -->
          z   y   x   -->
x从a->c花费50ns,同时y进入a;
x从c->b花费50ns,同时y进入c;
x从b输出,同时y进入b,花费50ns;
所以: x从a->b总共花费100ns,但是它后面的y则再经过50ns就出现在b的输出了.
看明白了吗? 这就是流水

* - 本贴最后修改时间:2008-3-19 10:42:12 修改者:zhh124

 
积分: result8342
发表于:2008-5-8 10:57:00 4 楼
级别:一星
积分:
注册:2008年11月22日
rt

我的blog--关于流水操作

//流水线
当组合逻辑路径上的延迟较长时,可用寄存器将其隔开,来提高操作频率.
reg_i-------------------comb_logic------------------>reg_o
reg_i---1/2comb_logic---reg_insert---1/2comb_logic-->reg_o
第一组数据从输入reg到输出reg的延迟为T,但其后的数据从输入reg到输出reg的延迟就都降为T/2了.
这是因为当第一组数据到达reg_o时,其后的一组数据就已经到达中间插入的reg了,只需要再经过T/2的
延迟就可到达reg_o.这就是2级流水线,同理,更多级数的流水线可大大降低延迟,提高操作频率,但第一
组数据的延迟仍为没有采用流水线时的延迟.

顺便废话几句..

CPU的流水线级数和性能的关系

多极流水线可提高操作频率,但程序不是总是顺序往下执行的,碰到跳转和分支指令,已经进入流水线的指

令将被清空重新填入新的指令,越深的流水线则这个过程耗费的时间越长...

地址:
http://www.edacn.net/index.php/59549/viewspace-5620.html

 
积分:1026 小小公民5659
发表于:2008-5-8 10:57:00 5 楼
级别:一钻
积分:1026分
注册:2006年08月13日
感谢楼上的!!!

上网不方便,把网页保存下来回去慢慢看,嘿嘿
谢谢楼上的指点!!

 
积分:781 judy92287819
发表于:2008-5-8 10:57:00 6 楼
级别:五星
积分:781分
注册:2006年08月13日
终于明白了!!

感谢 zhh124 的耐心讲解,举的例子很好,一下子就看明白了~
回 qinxg:
  那个例子只是单纯的一个计数器,并不是某个设计中的一部分,所以频率提升的不是很明显~“要看那个最影响频率的延时路径,在这个路径里插入流水线可以实实在在的提高系统频率”这个不错!!受教了!

 
积分:246 candyella6870
发表于:2008-5-8 10:57:00 7 楼
级别:三星
积分:246分
注册:2006年08月13日
学习

多极流水线可提高操作频率,但程序不是总是顺序往下执行的,碰到跳转和分支指令,已经进入流水线的指

令将被清空重新填入新的指令,越深的流水线则这个过程耗费的时间越长...

有空去支持一下BLOG

 
快速回复:
用户名: 密码:  验证码,看不清楚?请点击刷新验证码 注册新帐号?
上传图片格式(jpg/gif/png)和文件格式(rar/pdf)
 
 
网站简介s广告服务网站地图帮助信息联系方式问题报告
Copyright 2007 - 2008 bbs.weeqoo.com
Powered By weeqoo Version 8.0.0XML