首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的流水线设计

基于FPGA的流水线设计

基于FPGA的流水线设计


流水线设计是高速电路设计中的一个常用设计手段。如果某个设计的处理流程分为若干步骤,而且整个数据处理是“单流向”的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以考虑采用流水线设计方法来提高系统的工作频率。
流水线处理的应用
在很多领域的高速电子系统中都运用了流水线处理的方法,如高速通信系统、高速采集系统、高速导航系统、高速搜索系统等等。流水线处理方式之所以能够很大程度上提高数据流的处理速度,是因为复制了处理模块,它是面积换取速度思想的又一种具体体现。
流水线设计应用实验
假设该设计为某实时通信系统的一个模块,该系统采样频率为5MHz,采样精度为32位。我们需要设计的内容为:对采样数据先进行加减偏移量的运算,假设需要加十六进制数00000077h的偏移量,然后把该数据压缩为16位数据,便于采样后的信号处理运算,压缩数据时保持精度相对高些。这里我们假设信号处理运算很简单,就是将压缩后的数据先减去十六进制数00ffh,然后取差值的低八位数据值做为该设计的输出。
在程序里,进行了四步的流水线作业。所以在功能仿真出来的波形图中可以看到,在en使能(粗黄线)后的三个时钟周期(也即第四个时钟上升沿)后(细黄线)en_out拉高了,dout端开始有输出的数据,而且输出的数据是每一个时钟周期来一个,和输入的数据是同步的。所谓流水作业,在实际硬件电路中就是把一个大的组合逻辑分成各个小的组合逻辑,每一个输入的信号都必须顺次通过各个阶段的操作,而各个阶段的操作又是同步进行的,这就像工厂的生产流水线一样,会有源源不断的数据信号从输出端送出。另外,从这个实验中也可以更深刻的体会到Verilog的并行性。
返回列表