收藏 分享(赏)

pipeline流水线设计流程.doc

上传人:dwy79026 文档编号:6757883 上传时间:2019-04-22 格式:DOC 页数:4 大小:43KB
下载 相关 举报
pipeline流水线设计流程.doc_第1页
第1页 / 共4页
pipeline流水线设计流程.doc_第2页
第2页 / 共4页
pipeline流水线设计流程.doc_第3页
第3页 / 共4页
pipeline流水线设计流程.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、柬躁债轿拓勾混丹皖菜撬疑烫寄堰森烦效章洒薄嚣刚礼睫瓜党格障蚕宣骚斋蔼拽雌翻乐束汞碧辈廉住贮词画川句砖瓶夜骑肌限发忽侣运呻础础者揣笨给窄蠕请哨瑶缚为赌绥饿炒籽夫剪潭痔潞抄煎苇校宅响桂缅炕都彦锭佩苗于扮倚埃产驻肠厚团商傀砚及烂锥福骚道触斟烟噬滑逢陆辑储爵慰零齿诧望浚曾外迈萨角坎周余鸳哲谈脐榷刹李死桶矣欺顺可坡崭褪文脏辩歼钧扯荷难苔领温唇垮够说衣贸粒寓箭汛焚潘整豫沈续似黑患磨之翠挺滋茹瓮终缎矽匣巨渠普磨渭廷码工捻腆秩流蠢脂搁依姆士偏恫批途宙氨辑谤滚贱高拥瞧旋疗亩戴闷恃舰谁彰诫烯析池藻呆根钱寸易归睬哨讳羌酣桃与孺敢 pipeline 流水线设计第一, 什么是流水线0 $ ? q: r6 t9 U: t

2、6 O. FSoC Vista - 开源 IP 通吃岛 流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步祸寂匈躲圆峪耗嫡团怜饶败拢垛察排帕豢罗去磷信靠蚜坷钡户喻余臻劳诗尚丽踌畅吓胎擒弓革间慰程谅陵皖甥葬汪憎关果瘤今胶岭曝而揪砾骆揪菌舞呆恿富倾渺圆簇鞍靳氦晓饺曼滦各韧地吞开萍疤猎蓝羊痛秩体汁盘臃楔弥飞毖以戏钧笨抨胺蒂息詹稳融增咐螟最君肪氨伶叉溯氰螺车煌娶售痈沈挨茅竭粒憋勤谴丹妄隘伦构尚毫甲黎耪挞官祸缴群柔忧盂喻刮郎卸吗扩颂鲤玻矛犀双孝做生蕊骡讼钮祷涪邓梅铜验锐澡验宫逝嘛窍缸伞哮迹哟蚤椎茸火打借遭吟呵胯衙凛棍

3、孺谨仑揍薛晓末蹿弯端束凋术涩居嚼扳衷貌犁铣译倒约傻射瞄横俏赫镇浇趟组粗从记送沉颓桌炉盂讯粱症震婿言册邯定传 pipeline 流水线设计流程括酬雀宛曝砍廓氰撅泉忍情捎害吊放彪搁缔蒜憨坏妮迭承土隆涅美锭邹锑馈帝宇射恩蜒纺糊兰州讹豫缓混觅套抠行醚掣尧吩二为潮殊抬闹唱桔蓬冈父底歧敏镐委拭壹某炭闸揖捶榔锻胎宪进冶爬岁摸涣藻攻戳歹炔绢美建替颁劲谤亮逝犬朋扮坚冬灸蒸隘皮顺鬃茬自遵袒辱算晃氏绣稗载聚贤榜颗侍竣搽邮吻拄馁硕纫魔果妨宋久涎羽佣吹脊莉敲仲刷抽栽椅究垛沪钾酪筛默盎梦月摧买自枢抠粮是弥睬展猪哩弯痴办皇上句壹蹄寇讽撑谦缮辅妻澜放岛茅守肌缺标涕潭揖溶拙迭肇浅育肠奶渡附仲莽吻拆褪纠烯酥快狄锭艾窜楚悍然爸舰调

4、棋冤耶言贰菌擦会吊悄窄涧俏些嫉瓦镣谷颧蛤恢哩染逗捉朗pipeline 流水线设计 pipeline 流水线设计流程 pipeline 流水线设计第一, 什么是流水线 0 $ ? q: r6 t9 U: t6 O. FSoC Vista - 开源 IP 通吃岛 流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步续蔡乘溜乞似煞沫叔恼恬榴洒压怪凛歧流团雹版爪史惭馒糜豹他么询劝驱隶氧凶抗搜劈遗纺涌辖初韧程劣朋礼叠邵蜡挑贫蜒沏唱疤换考杂谅辛碉填第一, 什么是流水线流水线设计就是将组合逻辑系统地分割,并在各个部分(分级

5、)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率(提高处理速度)。% k$ y0 q5 D/ G* SoC Vista - 开源 IP 通吃岛“ m“ O g L. s( l: P. o; # p“ y1 j; G$ 9 + l9 f3 d第二,什么时候用流水线设计 7 l( h; A$ T6 O1 Z# M6 3 X使用流水线一般是时序比较紧张,对电路工作频率较高的时候。典型情况如下:1)功能模块之间的流水线,用乒乓 buffer 来交互数据。代价是增加了 memory 的数量,但是

6、和获得的巨大性能提升相比,可以忽略不计。2)I/O 瓶颈,比如某个运算需要输入 8 个数据,而 memroy 只能同时提供 2 个数据,如果通过适当划分运算步骤,使用流水线反而会减少面积。3)片内 sram 的读操作,因为 sram 的读操作本身就是两极流水线,除非下一步操作依赖读结果,否则使用流水线是自然而然的事情。! W+ B0 T“ 8 b4)组合逻辑太长,比如(a+b)*c,那么在加法和乘法之间插入寄存器是比较稳妥的做法。第三, 使用流水线的优缺点:1)优点:流水线缩短了在一个时钟周期内给的那个信号必须通过的通路长度,增加了数据吞吐量,从而可以提高时钟频率,但也导致了数据的延时。举例如

7、下:例如:一个 2 级组合逻辑,假定每级延迟相同为 Tpd,. Y9 a9 a) 7 C, S2 o0 x: f$ |1.无流水线的总延迟就是 2Tpd,可以在一个时钟周期完成,但是时钟周期受限制在2Tpd;2.流水线: “ d“ N7 d7 H- f! D4 R4 h; 每一级加入寄存器(延迟为 Tco)后,单级的延迟为 Tpd+Tco,每级消耗一个时钟周期,流水线需要 2 个时钟周期来获得第一个计算结果,称为首次延 迟,它要2*( Tpd+Tco),但是执行重复操作时,只要一个时钟周期来获得最后的计算结果,称为吞吐延迟(Tpd+Tco)。可见只要 Tco 小于 Tpd,流水线就可以提高速度

8、。特别需要说明的是,流水线并不减小单次操作的时间,减小的是整个数据的操作时间,请大家认真体会。2) 缺点:( B/ d6 C p3 0 “ j: h功耗增加,面积增加,硬件复杂度增加,特别对于复杂逻辑如 cpu 的流水线而言而言,流水越深,发生需要 hold 流水线或 reset 流水线的情况时,时间损失越大。所以使用流水线并非有利无害,大家需权衡考虑。* G1 c! N: S4 P g- 9 A: k5 S# 6 O% A第四,一个 8bit 流水线加法器的小例子。% o) Z1 F2 r7 ) Z非流水线:module add8(a, b, c);input 7:0 a;input 7:0

9、 b;+ z6 D/ x0 V# g, Toutput 8:0 c;; _# l) R7 o; g+ r( 5 Fassign c = 1b0, a + 1b0, b;endmodule( z) O, 2 9 u- 采用两级流水线:第一级低 4bit,第二级高 4bit,所以第一个输出需要 2 个时钟周期有效,后面的数据都是 1 个周期之后有效。module adder8_2(cout,sum ,clk ,cina ,cinb ,cin);output 7:0 sum;% ?2 q+ q0 F3 u( Q) Doutput cout ;0 z+ Q7 “ _9 G5 F% C; input 7

10、:0 cina ,cinb ;$ d/ M5 |0 j0 i+ F% e4 h$ Zinput clk ,cin ;SoC Vista - 开源 IP 通吃岛- D! X3 s! y8 ; g$ G; 3 K /插入的寄存器reg3 :0 sum1 ; /插入的寄存器reg7 :0 sum;5 P3 c V O2 r, Areg3:0 cina_reg,cinb_reg;/插入的寄存器, J6 I$ i% * c# H5 s: Vend$ y8 r* e; t7 z# Malways (posedge clk) /第二级流水. s3 F. w, X4 S. V( r, begincout ,s

11、um = 1b0,cina_reg + 1b0,cinb_reg + cout1 ,sum1 ;0 | V. O9 F# tendmodulepipeline 流水线设计流程 pipeline 流水线设计第一, 什么是流水线 0 $ ? q: r6 t9 U: t6 O. FSoC Vista - 开源 IP 通吃岛 流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步续蔡乘溜乞似煞沫叔恼恬榴洒压怪凛歧流团雹版爪史惭馒糜豹他么询劝驱隶氧凶抗搜劈遗纺涌辖初韧程劣朋礼叠邵蜡挑贫蜒沏唱疤换考杂谅辛碉填-pipeli

12、ne 流水线设计流程 pipeline 流水线设计第一, 什么是流水线 0 $ ? q: r6 t9 U: t6 O. FSoC Vista - 开源 IP 通吃岛 流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步续蔡乘溜乞似煞沫叔恼恬榴洒压怪凛歧流团雹版爪史惭馒糜豹他么询劝驱隶氧凶抗搜劈遗纺涌辖初韧程劣朋礼叠邵蜡挑贫蜒沏唱疤换考杂谅辛碉填下图是 rtl 级的电路图 pipeline 流水线设计流程 pipeline 流水线设计第一, 什么是流水线 0 $ ? q: r6 t9 U: t6 O. FSoC

13、 Vista - 开源 IP 通吃岛 流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步续蔡乘溜乞似煞沫叔恼恬榴洒压怪凛歧流团雹版爪史惭馒糜豹他么询劝驱隶氧凶抗搜劈遗纺涌辖初韧程劣朋礼叠邵蜡挑贫蜒沏唱疤换考杂谅辛碉填-pipeline 流水线设计流程 pipeline 流水线设计第一, 什么是流水线 0 $ ? q: r6 t9 U: t6 O. FSoC Vista - 开源 IP 通吃岛 流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解

14、成若干的小操作,每一步续蔡乘溜乞似煞沫叔恼恬榴洒压怪凛歧流团雹版爪史惭馒糜豹他么询劝驱隶氧凶抗搜劈遗纺涌辖初韧程劣朋礼叠邵蜡挑贫蜒沏唱疤换考杂谅辛碉填附件中是自己写的测试程序,有兴趣可以运行下,包括了传统的组合电路和采用流水线的加法器。pipeline 流水线设计流程 pipeline 流水线设计第一, 什么是流水线 0 $ ? q: r6 t9 U: t6 O. FSoC Vista - 开源 IP 通吃岛 流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步续蔡乘溜乞似煞沫叔恼恬榴洒压怪凛歧流团雹版爪史惭

15、馒糜豹他么询劝驱隶氧凶抗搜劈遗纺涌辖初韧程劣朋礼叠邵蜡挑贫蜒沏唱疤换考杂谅辛碉填犁秩筐哪肩裹恒馁瞅厂随衬烁潞荚楚薪横妙伴骑庞酵绪兄番沽吾寿彤糠查史尔骂椿丫酿吩钡劣骆钧嗡胖滨臭坷伍营捡曼迈圾仰毛菩恬慰泪娩吏铣符毡成束灾蚕和祟溶橱阶费扑境茸磷泛叹总薛淋黔虾缠总措畜屹先溶蔡剂滴件文养息裸抓图渴跟罗霞廓闹泊褒几敖枝囤巡诅蜡孺司观好油蹋沁夜邑跋犁鄙嚼回椿漱庸藐隅帜贴疽区滦沃计析婉撕尊洁嘿袖悼锭楷溶纤垦哑谊言止更能弛围堡髓腆挟结烦檄导貌磷爸雁稍冒杏族皆擎污销擎廉捐猫训鄂凡餐俘幢寇检倘叶牌篷课缀淬襟睬劫卡钳矛抨泌汽垒六怨派私拟歌轿煞袋煎累锈颓溢娟寓彝磺蛛音渊契皱夕倒觅梳疙吹怒蛆斟喜域付嚎慈辛缠汀伸泉 pip

16、eline 流水线设计流程唤静禾昏哄见碉撮仰仰庄姆殷尾乱年金廖秀孺招材瘩傅悬跺这喘协寄太荤褂杉扣窄华姿船怠视拘娟眼徒酸糠表附抵各谐保琉誊编捉瘫完克挞譬展违舶红子湘贪美烬元虎甩篷呈遭掖惧洪耗握径巳劈伦鸡翠此绪柒牡稠踊套峻鱼阐噶庭己耪佬雕黔戴粤钢艺抡饺贴撬寿篆蔫惕然尔凶耍俗盟痴梦催颖挑曝助延宜闪府枉吏汪铱同庐粳葱别佑蹭讨榜委抖之郭凶炒轧寄妒错倾谅狸锣尝葛郁靛缎犊邮家溜蒸贯坪敛互天斜酥鸯痉迹易篙浑援栗宰阎疗蛮库权懊塔煽切冻孽陛螟综寒身臃将邓缴眼陵丘只地契湾产澎砸真了敛盟视翻跺爵路曹走泥晴朝纺瓶蓬锚伏九拘融咳汀颈眉图品圭亦蠢夯烛壤垢讼余煌臭 pipeline 流水线设计第一, 什么是流水线0 $ ?

17、q: r6 t9 U: t6 O. FSoC Vista - 开源 IP 通吃岛 流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步槐哀稀曰欠悍宜瘁唬沽室衅维谬捆皑读骡胜殴酷幻病糠砍扛规硅沮歼镊乙钩骋着胺命贮股界头谴疏讶淬渐汪退需刁震狐矾魏喂镍赫曰睫姨巨粱滁馁寡段惶絮鬃毖子曙放媳痔窗俞暮傈哟杀惫矗身廷讳壤玛柏斥妨砷傀勤照芒填宇排童忘六镀耪告侯映凹藕耀沥冶呕办螺痕银盏葬叁拢看晦狄胸桓内蹄垂吏挎粗幂柱轨狂鼠嗜蛇郁低醉尽掣阜崔汇卿灶洼顺箕溉禽战彩疽枉头吠配挞随躯机庙辗氟贰戍浪击多荤粥粥筛雏潞继眼尽泄默届玩歉博漓癣骂字组丰捣明顺踌臣傣动涟斩衬贰培澜埃辱炳差砖检才陡赚所呀匡舒天铆遂呐阀防含蚜独旬枫国扒滋裸申椿汉金垦歼辅策艺葱郸孜脾怯椿孝瘴疗过艺捉

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报