freedom111的个人空间 https://blog.eetop.cn/57590 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

【转】基于Verilog HDL流水线的设计

已有 7883 次阅读| 2010-3-14 21:50 |个人分类:FPGA

      在高速通信系统设计中,如何提高系统的工作速度是系统设计成败的关键问题。在通常情况下,提高系统的工作速度有两种方法:其一是采用并行方案设计。传统上,设计方式常采用串行方式,而利用串行方式设计的电路系统的运行速度与每个模块之间的延时是直接相关的,为了减少模块间的延时,就采用并行方式设计电路。其二是采用流水线设计方式。
      所谓流水线处理,如同生产装配线一样,将操作执行工作量分成若干个时间上均衡的操作段,从流水线的起点连续的输入,流水线的各操作阶段以重叠方式执行。使得操作执行速度只与流水线输入的速度有关,而与处理所需的时间无关。这样,在理想的流水线操作状态下其运行效率很高。如果某个设计的处理流程分为若干个步骤,而且整个数据处理是单流向的,即没有反馈或迭代运算,前一个步骤的输出是下一个步骤的输入,则可以采用流水线设计方法来提高系统的工作频率。点击看大图
从图中可以很容易直观的看到两种设计方法的区别之处

  如果不采用流水线,输入数据需要等到前一个数据经过处理单元中所有运算后才能进入处理模块;而采用流水线模块后,输入数据只需要经过以及流水线处理后,就可以进入下一个流水线处理模块,数据处理时间减小了N倍。如果原来数据处理单元的吞吐量是T,采用N级流水线后总的吞吐量为NT。
    流水线的基本结构是将适当划分的N个操作步骤串联起来,最大特点是数据流在各个步骤的处理从时间上看是连续的;其操作的关键在于时序设计的合理安排,以及前后级接口间的数据的匹配。如果前级操作的时间等于后级操作的时间,直接输入即可;如果前级操作的时间小于后级操作的时间,则需要对前级数据进行缓存,才能输入到后级;如果前级操作的时间大于后者,则需要穿并转换等方法进行数据分流,然后再输入到下一级。流水线处理方式之所以效率较高,是因为复制了处理模块,是面积换取速度思想的又一种具体体现。

点击看大图

以8位全加器予以说明,分别以非流水线方法、二级流水线方法实现。实现时,在每个全加器之间加了一个锁存器,整个系

统用同一个时钟。每一级的执行在时间上重叠起来,这个,整个系统的执行速度就加快了。
非流水线实现方式:
module adder8(cout,sum,clk,cina,cinb,cin);
input [7:0] cina,cinb;
input clk,cin;
output [7:0]sum;
output cout;

reg [7:0]sum;
reg cout;

always@(posedge clk)
begin
    {cout,sum} = cina+cinb+cin;
end

endmodule

点击看大图

  从图中可以看出只有一个8位加法器,没有额外的辅助电路,其运算延时是比较大的,只能用于低速设计

二级流水线实现方式
module adder8_2(cout,sum,clk,cina,cinb,cin);
input clk,cin;
input [7:0]cina,cinb;
output [7:0]sum;
output  cout;

reg    cout;
reg   cout1;
reg   [3:0]sum1;
reg   [3:0]sum;

always@(posedge clk)
begin
 {cout1,sum1} = cina[3:0]+cinb[3:0]+cin;  //低4位相加
end

always@(posedge clk)
begin    
 {cout,sum} = {{cina[7],cina[7:4]}+{cinb[7],cinb[7:4]+cout1},sum1};  //高4位相加,并把8位拼接
end    
    
endmodule     
     点击看大图

从图中可以看到,采用二级流水线之后,只用了3个4位加法器,添加了较少的辅助逻辑,使加法的运算时延降低到对4个比特的处理.


点赞

发表评论 评论 (2 个评论)

回复 haipsunj 2010-4-13 22:50
错得这么厉害,还在这里发,真是无语
回复 wangerdang 2010-5-25 16:41
谢谢了

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 5

    评论
  • 750

    访问数
关闭

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

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

GMT+8, 2024-5-1 04:40 , Processed in 0.014136 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部