本文篇章将讨论一下的四种常用 FPGA 设计思想与技巧: 乒乓操作、 串并转换、 流水线操作、 数据接口同步化, 都是 FPGA 逻辑设计的内在规律的体现, 合理地采用这些设计思想能在FPGA设计工作种取得事半功倍的效果。

FPGA 的设计思想与技巧是一个非常大的话题, 由于篇幅所限, 本文仅介绍一些常用的设计思想与技巧, 包括乒乓操作、 串并转换、 流水线操作和数据接口的同步方法。

希望本文能引起工程师们的注意, 如果能有意识地利用这些原则指导日后的设计工作, 将取得事半功倍的效果!

乒乓操作是FPGA设计中经常用到的设计思想,常用于需要提高数据效率的地方。其主要特点有:

  1. 实现数据的无缝缓冲和处理;
  2. 可节约缓冲区空间;
  3. 可实现低速模块处理高速模块。

典型的乒乓操作原理如下图:

如图所示:

  • T1时刻,DATA_T1存入buffer 1;
  • T2时刻,buffer 1已被写满,DATA_T2存入buffer 2, 同时buffer 1将DATA_T1送至运算模块处理;
  • T3时刻,DATA_T3存入buffer A1,同时buffer 2将DATA_T2送至运算模块处理;

然后重复2、3阶段的操作。

这里正是利用了乒乓操作完成数据的无缝缓冲与处理,乒乓操作可以通过“输入数据选择控制”和“输出数据选择控制”按节拍,相互配合地进行来回切换,将经过缓冲的数据流没有停顿的送到“后续处理模块”。把乒乓操作模块当作一个整体,站在这个模块的两端看数据,输入数据流和输出数据流都是连续不断的,没有任何停顿,因此非常适合对数据流进行流水线式处理。

从上图也可以看出乒乓操作的核心就是控制缓冲模块的读写,具体可以细化为输入数据控制模块缓冲模块1缓冲模块2以及输出数据控制模块,这里的缓冲模块可以是FIFO、BRAM、SDRAM等。

最新文章

  1. solr 主从模式和solrcloud集群模式
  2. nginx url重写 rewrite实例
  3. git项目添加.gitigore文件
  4. bash 统计文件行数
  5. MVC View基础
  6. zookeeper_00:zookeeper注意事项
  7. Prototype Pattern 原型模式
  8. Openjudge-计算概论(A)-找和为K的两个元素
  9. MongoDB索引限制
  10. 突然觉得前端js挺不错的
  11. 学习Python第四天
  12. Activiti实现流程自由跳转
  13. js删除数组元素
  14. linux硬盘的分区、格式化、挂载以及LVM
  15. RazorEngine.Templating MVC中View当模板
  16. 2、evaluate-reverse-polish-notation
  17. Ubuntu18.10下运行blender2.80bate闪退(问题?)
  18. c# WndProc事件 消息类型
  19. 好久不git这么多问题
  20. mongoimport mongo导入Json的用法

热门文章

  1. [算法]素数筛法(埃氏筛法&线性筛法)
  2. D3js怎么获得SVG及其子元素在屏幕中的坐标
  3. 【three.js第五课】光线的添加和感光材料
  4. F - Select Half dp
  5. 谁说 Vim 不好用?送你一个五彩斑斓的编辑器!
  6. Java 多线程 -- volatile 山寨版的synchronized
  7. xpath进阶用法
  8. SweetAlert - 演示6种不同的提示框效果
  9. VRRP概念、工作原理
  10. 咦,Java拆分个字符串都这么讲究