第1节 基本设计技巧
乒乓操作


点击查看全图 1 2
串并转换
串并转换
- FPGA设计的一个重要技巧
- 数据流处理的常用手段
- 面积与速度互换思想的直接体现
串并转换的实现方法多种多样,根据数据的排序和数量的要求,可以选用:
- 寄存器:小设计
- RAM:数据量比较大的情况
- 状态机:复杂的串并转换
流水线操作
- 流水线处理是高速设计中的一个常用设计手段
- 如果某个设计的处理流程分为若干步骤,而且整个数据处理是“单流向”的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以考虑采用流水线设计方法提高系统的工作频率。

- 将适当划分的n个操作步骤单向串连起来
- 数据流在流水线各个部分的处理,从时间上看是连续的
- 数据流依次流经n个模块,完成每个步骤的操作

点击查看全图
- 流水线设计时,时序要进行合理安排,每个操作步骤的划分要合理,仔细考虑各个步骤间的数据流量
- 如果前级操作时间恰好等于后级的操作时间,设计最为简单,前级直接输出到后级的输入即可
- 如果前级操作时间大于后级的操作时间,则后级会经常空闲。可以对前级的输出数据适当缓存,再输出到后级的输入端
- 如果前级操作时间小于后级的操作时间,则必须通过复制逻辑,将数据流分流和并行预处理,或者在前级对数据采用存储、后处理方式,否则会造成后级数据溢出
数据接口的同步
- 两种易出问题的设计习惯
--手工加入非门调整数据延迟,从而保证本级时钟对上级数据的建立、保持时间的要求
--为了有稳定的采样,时而用正沿打一下数据,时而用负沿打一下数据,以调整数据的采样位置
- 问题
--一旦芯片更新换代,或者移植到其它器件系列的芯片上,采样实现必须重新设计
--这两种做法造成电路实现的时序余量不够,一旦外界条件变换(比如温度升高),采样时序就有可能紊乱,造成电路不能完成预定的功能
- 如果输入数据的节拍和本系统处理时钟同频,可以直接用本系统的主时钟对输入数据寄存器采样,完成输入数据的同步化
- 如果输入数据的节拍和本系统处理时钟同频,可以直接用本系统的主时钟对输入数据寄存器采样,完成输入数据的同步化
- 为了避免异步时钟域产生错误的采样数据,一般使用RAM、FIFO缓存的方法完成异步时钟域的数据转换。在输入端口使用上级时钟写数据,在输出端口使用本级时钟读数据,就非常方便地完成了异步时钟域之间的数据交换
<<上一节 下一节>>