您的位置 首页 资料

FPGA/CPLD 的规划思维与技巧

FPGA/CPLD 的设计思想与技巧是一个非常大的话题,由于篇幅所限,本文仅介绍一些常用的设计思想与技巧,包括乒乓球操作、串并转换、流水线操作和数据接口的同步方法。希望本文能引起工程师们的注意,如果能

FPGA/CPLD规划思维与技巧是一个十分大的论题,因为篇幅所限,本文仅介绍一些常用的规划思维与技巧,包含乒乓球操作、串并转化、流水线操作和数据接口的同步方法。期望本文能引起工程师们的留意,假如能有意识地使用这些准则辅导日后的规划作业,将获得事半功倍的作用!
乒乓操作

“ 乒乓操作 ” 是一个常常使用于数据流操控的处理技巧,典型的乒乓操作方法如图 1 所示。

乒乓操作的处理流程为:输入数据流经过 “ 输入数据挑选单元 ” 将数据流等时分配到两个数据缓冲区,数据缓冲模块可认为任何存储模块,比较常用的存储单元为双口 RAM(DPRAM) 、单口 RAM(SPRAM) 、 FIFO 等。在第一个缓冲周期,将输入的数据流缓存到 “ 数据缓冲模块 1” ;在第 2 个缓冲周期,经过 “ 输入数据挑选单元 ” 的切换,将输入的数据流缓存到 “ 数据缓冲模块 2” ,一起将 “ 数据缓冲模块 1” 缓存的第 1 个周期数据经过 “ 输入数据挑选单元 ” 的挑选,送到 “ 数据流运算处理模块 ” 进行运算处理;在第 3 个缓冲周期经过 “ 输入数据挑选单元 ” 的再次切换,将输入的数据流缓存到 “ 数据缓冲模块 1” ,一起将 “ 数据缓冲模块 2” 缓存的第 2 个周期的数据经过 “ 输入数据挑选单元 ” 切换,送到 “ 数据流运算处理模块 ” 进行运算处理。如此循环。

乒乓操作的最大特点是经过 “ 输入数据挑选单元 ” 和 “ 输出数据挑选单元 ” 按节拍、相互配合的切换,将经过缓冲的数据流没有中止地送到 “ 数据流运算处理模块 ” 进行运算与处理。把乒乓操作模块作为一个全体,站在这个模块的两头看数据,输入数据流和输出数据流都是接二连三的,没有任何中止,因而十分合适对数据流进行流水线式处理。所以乒乓操作常常使用于流水线式算法,完结数据的无缝缓冲与处理。

乒乓操作的第二个长处是能够节省缓冲区空间。比如在 WCDMA 基带使用中, 1 个帧是由 15 个时隙组成的,有时需求将 1 整帧的数据延时一个时隙后处理,比较直接的方法是将这帧数据缓存起来,然后延时 1 个时隙进行处理。这时缓冲区的长度是 1 整帧数据长,假定数据速率是 3.84Mbps , 1 帧长 10ms ,则此刻需求缓冲区长度是 38400 位。假如选用乒乓操作,只需界说两个能缓冲 1 个时隙数据的 RAM( 单口 RAM 即可 ) 。当向一块 RAM 写数据的时分,从另一块 RAM 读数据,然后送到处理单元处理,此刻每块 RAM 的容量仅需 2560 位即可, 2 块 RAM 加起来也只要 5120 位的容量。

别的,奇妙运用乒乓操作还能够抵达用低速模块处理高速数据流的作用。如图 2 所示,数据缓冲模块选用了双口 RAM ,并在 DPRAM 后引入了一级数据预处理模块,这个数据预处理能够根据需求的各种数据运算,比如在 WCDMA 规划中,对输入数据流的解扩、解扰、去旋转等。假定端口 A 的输入数据流的速率为 100Mbps ,乒乓操作的缓冲周期是 10ms 。以下剖析各个节点端口的数据速率。

A 端口处输入数据流速率为 100Mbps ,在第 1 个缓冲周期 10ms 内,经过 “ 输入数据挑选单元 ” ,从 B1 抵达 DPRAM1 。 B1 的数据速率也是 100Mbps , DPRAM1 要在 10ms 内写入 1Mb 数据。同理,在第 2 个 10ms ,数据流被切换到 DPRAM2 ,端口 B2 的数据速率也是 100Mbps , DPRAM2 在第 2 个 10ms 被写入 1Mb 数据。在第 3 个 10ms ,数据流又切换到 DPRAM1 , DPRAM1 被写入 1Mb 数据。

仔细剖析就会发现到第 3 个缓冲周期时,留给 DPRAM1 读取数据并送到 “ 数据预处理模块 1” 的时刻一共是 20ms 。有的工程师困惑于 DPRAM1 的读数时刻为什么是 20ms ,这个时刻是这样得来的:首要,在在第 2 个缓冲周期向 DPRAM2 写数据的 10ms 内, DPRAM1 能够进行读操作;别的,在第 1 个缓冲周期的第 5ms 起 ( 肯定时刻为 5ms 时刻 ) , DPRAM1 就能够一边向 500K 今后的地址写数据,一边从地址 0 读数,抵达 10ms 时, DPRAM1 刚好写完了 1Mb 数据,而且读了 500K 数据,这个缓冲时刻内 DPRAM1 读了 5ms ;在第 3 个缓冲周期的第 5ms 起 ( 肯定时刻为 35ms 时刻 ) ,同理能够一边向 500K 今后的地址写数据一边从地址 0 读数,又读取了 5 个 ms ,所以截止 DPRAM1 第一个周期存入的数据被彻底掩盖曾经, DPRAM1 最多能够读取 20ms 时刻,而所需读取的数据为 1Mb ,所以端口 C1 的数据速率为: 1Mb/20ms=50Mbps 。因而, “ 数据预处理模块 1” 的最低数据吞吐能力也只是要求为 50Mbps 。同理, “ 数据预处理模块 2” 的最低数据吞吐能力也只是要求为 50Mbps 。换言之,经过乒乓操作, “ 数据预处理模块 ” 的时序压力减轻了,所要求的数据处理速率只是为输入数据速率的 1/2 。

经过乒乓操作完成低速模块处理高速数据的本质是:经过 DPRAM 这种缓存单元完成了数据流的串并转化,并行用 “ 数据预处理模块 1” 和 “ 数据预处理模块 2” 处理分流的数据,是面积与速度交换准则的表现!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/192794.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部