4846|2

69

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

炼狱传奇—流水线设计之战 [复制链接]


流水线的设计,就是指对延时较大的组合逻辑,插入寄存器,把较大的组合逻辑拆分成几个时钟周期来完成,以提高系统的最大时钟频率。但是这样做,会导致数据输出的延时,假若插入一个寄存器,则数据输出就到产生一个时钟周期的延时,假若插入N个寄存器,就会产生N个时钟周期的延时,下面我们用一幅图来描述这种关系。
上图的总延时等于max{2,3} + 4 = 7ns;系统的时钟周期必须要大于7ns。当经过流水线改造之后,如下图所示:
经过流水线改造之后,总延时等于max{2,3} + 1 + 4 = 8ns;但是系统的时钟周期只要大于4ns即可,总处理数据的吞吐量增加了。
       下面我们用一个很简单的例子来实现以下流水线改造,假若我们现在要实现(4*a+6*b)-10。现在我们使用原理图的方法来实现这一算法。
       首先像以往一样,新建一个项目;
       新建一个项目之后,我们就不需要建verilog HDL file,而是新建一个Block Diagram / Schematic File,如下图所示:
        然后我们在新建的原理图里面,双击一下鼠标左键,然后在左上角的library里面找到lpm_mult,如下图所示:
       点击OK,选择一下程序保存的路径然后选择next,如下图所示:
       按next之后,会弹出配置乘法器的选项,如下图所示:
这里是选择乘法器的位宽,直接按next得到下图所示:
   
如上图所示,选择让输入的数据乘以一个常数,然后按finish;同理再新建一个输入的数据乘以常数6的乘法器。
       现在我们已经实现了4*a与6*b,接下来我们新建一个加法器双击原理图,在library里面找到lmp_add_sub,然后点击OK,选择好程序保存的路径之后,就会出现配置加法的选项,如下图所示:
   

       选择仅仅使用加法,而且把位宽调到16位,就可以按finsh了。然后我们现在就完成了(4*a + 6*b),现在我们来新建一个减法,就如新建加法一样,双击原理图,在library里面找到lmp_add_sub,然后点击OK,选择好程序保存的路径之后,就会出现配置减法的选项,如下图所示:
选择仅仅使用减法,而且把位宽调到16位,然后按next如下图所示:
   
       选择输入的数据减去一个固定的常数,然后选择finish即可。接着我们新建一个Verilog HDL File文件,写一个16位的寄存器组;
代码如下:
       接着我们选择左上角的File,然后选择Creat/Updata,再选择CrearSymbol File
然后我们回到原理图的文件里面,双击原理图,在左上角的library里面会多出一个projet,然后在projet里面找到刚才写的寄存器,然后双击放进原理图里面,然后我们用一样的方法,再新建一个8位位宽的寄存器组,然后放进原理图里面,完成之后把线连接好,如下图所示:
然后还没有接线的模块,可以选择右键,选择Generate Pins forSymbol Ports
然后再把未接上的线给全部接上,如下图所示:
把所以先接上之后,可以按crtl+l,进行全编译,查看静态时序分析,观察系统时钟最大频率是多少。如下图所示:
   

       由上图可知,在还未改造成流水线结构的时候,系统时钟的最大频率是166.58Mhz,然后我们现在开始改造流水线结构,看看系统时钟最大频率能上升多少,改流水线结构,如下图所示:
在改造流水线之后,我们可以再一次全编译(ctrl + k),之后我们再继续查看静态时序分析报告,观察系统时钟频率的最大值,如下图所示:
  

经过流水线改造之后,系统时钟的最大频率由166.58Mhz提升至了332.45Mhz,提升了2倍系统时钟频率。

此帖出自FPGA/CPLD论坛

最新回复

概念讲解清楚明白,不错  详情 回复 发表于 2018-8-13 10:39
点赞 关注(1)
 

回复
举报

5

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
good information
此帖出自FPGA/CPLD论坛
 
 

回复

18

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
概念讲解清楚明白,不错
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表