1、(10)申请公布号 CN 102306142 A (43)申请公布日 2012.01.04 CN 102306142 A *CN102306142A* (21)申请号 201110231430.0 (22)申请日 2011.08.11 G06F 17/14(2006.01) G06F 12/06(2006.01) (71)申请人 华中科技大学 地址 430074 湖北省武汉市洪山区珞喻路 1037 号 (72)发明人 桑红石 高伟 袁雅婧 梁巢兵 张静 陈鹏 廖定彬 胡孔阳 赵华龙 (74)专利代理机构 华中科技大学专利中心 42201 代理人 李智 (54) 发明名称 一种 FFT 倒序操作
2、存储器数据调度方法及电 路 (57) 摘要 本发明公开了一种 FFT 倒序操作存储器数据 调度方法及电路, 使用两块 N/2 深度单端口存储 器进行数据调度, 充分发挥单端口存储器的面积 和功耗优势, 有效减少了片上存储器面积 ; 采用 统一的数据暂停信号和读后便写的读写策略, 使 得该设计能够等待外部数据的暂停, 而不丢失数 据和影响读写时序 ; 采用固定规则的 N 个时钟数 据延迟, 有效避免了使用较大 FIFO 存储器实现最 短延迟时间的检测逻辑。本发明具有灵活的可配 置性和可扩展性, 最大程度地避免了不同点数对 于存储器容量和控制逻辑的依赖 ; 与现有的倒序 操作方法相比, 本发明占用
3、的资源少, 可配置灵活 性好, 能够处理带中断暂停的连续数据流。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 4 页 说明书 17 页 附图 4 页 CN 102306149 A1/4 页 2 1. 一种 FFT 倒序操作存储器数据调度方法, 涉及第一和第二单端口存储器, 具体为 : 定义待写入数据序列的数据个数为 N 2m, 第一单端口存储器的读地址和写地址分别 为 raddr1 和 waddr1, 第二单端口存储器的读地址和写地址分别为 raddr2 和 waddr2, inv_ M() 为 m-1 位比特地址信号倒置操作, cnt1()
4、 和 cnt2() 为两个 m bits 的计数器, 记当前读 的数据序号为 c_num, 第一组待写入数据序列直接进入初始只写模式, 初始只写模式 : 将第一组待写入数据序列分两路并行写入第一和第二单端口存储器, 两单端口存储器的写地址 waddr1 waddr2 inv_M(cnt1m-1:1), 写至当前点数长度 模式下存储器地址最高限值时, 若还有待写入的数据序列, 则转至第一种交替读写模式, 否 则, 转至清空只读模式 ; 第一种交替读写模式 : 读取第一和第二单端口存储器的数据, 第一和第二单端口存储 器的读地址分别为 k 0, 1, 2, ., m-1, c_num 为当前读的数
5、据序号, 将待写入数据序列分两路并行写入第一和第二单端口存储器, 第一和第二单端口存储 器的写地址分别为 waddr1 raddr1_pre, waddr2 raddr2_pre, raddr1_pre 为第一单端 口存储器前一时钟的读地址, raddr2_pre 为第二单端口存储器前一时钟的读地址 ; 写至当 前点数长度模式下存储器地址最高限值时, 若还有待写入数据序列, 则转移至第二种交替 读写模式, 否则, 转至清空只读模式 ; 第二种交替读写模式 : 读取第一和第二单端口存储器的数据, 第一和第二单端口存储 器的读地址 raddr1 raddr2 inv_M(cnt1M:1), 将待写
6、入数据序列分两路并行写入第 一和第二单端口存储器, 第一和第二单端口存储器的写地址 waddr1 waddr2 raddr1_ pre raddr2_pre ; 写至当前点数长度模式下存储器地址最高限值时, 若还有待写入数据 序列, 则转移至第一种交替读写模式, 否则, 转至清空只读模式 ; 清空只读模式 : 若是从初始只写模式转移到清空只读模式, 则按照第一种交替读写模 式产生读地址进行只读操作 ; 若是从第一种交替读写模式转移到清空只读模式, 则按照第 二种交替读写模式产生读地址进行只读操作 ; 若是从第二种交替读写模式转移到清空只读 模式, 则按照第一种交替读写模式产生读地址进行只读操作
7、。 2. 一种 FFT 倒序操作存储器数据调度电路, 包括 中心控制器 (1), 接收外部的数据有效指示信号、 点数配置模式和序列组数信号, 将序 列组数信号作为剩余序列组数指示寄存器的初值, 接收来自读写地址产生器 (2) 的读和写 地址, 其中包括单端口存储器 a(4) 的读地址、 单端口存储器 a(4) 的写地址、 单端口存储器 b(5) 的读地址、 单端口存储器 b(5) 的写地址, 接收来自可配置读写状态控制器 (3) 的读使 能信号 ; 在连续接收到数据有效指示信号两次后向输入接口单元 (6) 发送串并转换控制信 号以及向读写地址产生器(2)发送启动信号 ; 若单端口存储器a(4)
8、的写地址与当前点数长 度模式下地址最高限值相等, 则向读写地址产生器 (2) 和输入接口单元 (6) 发送写满最高 权 利 要 求 书 CN 102306142 A CN 102306149 A2/4 页 3 地址指示信号, 并将剩余序列组数指示寄存器减 1 ; 若单端口存储器 a(4) 的写地址与单端 口存储器 b(5) 的写地址相同且均与当前点数长度模式下地址最高限值一半相等, 或单端 口存储器 a(5) 的写地址大于单端口存储器 a(4) 的写地址且单端口存储器 a(5) 的写地址 与当前点数长度模式下地址最高限值相等, 则向读写地址产生器 (2) 和输入接口单元 (6) 发送写满最高地
9、址一半指示信号, 所述当前点数长度模式下地址最高限值为当前点数配置 模式对应的点数长度减 1, 所述地址最高限值一半为当前点数配置模式对应的点数长度的 一半减 1 ; 若单端口存储器 a(4) 的读地址与当前点数长度模式下地址最高限值相等, 则向 读写地址产生器 (2) 和输出缓冲单元 (7) 发送读空最高地址指示信号 ; 若单端口存储器 a(4) 的读地址与单端口存储器 b(5) 的读地址相同且均与当前点数长度模式下地址最高限 值一半相等, 或单端口存储器 a(5) 的读地址大于单端口存储器 a(4) 的读地址且单端口存 储器a(5)的读地址与当前点数长度模式下地址最高限值相等, 则向读写地
10、址产生器(2)和 输出缓冲单元 (7) 发送读空最高地址一半指示信号 ; 在数据有效指示信号的触发下产生数 据准备好信号并传送至可配置读写状态控制器 (3) ; 若接收到读使能信号, 则向输出缓冲 单元 (7) 发送并串转换控制信号 ; 还将当前剩余序列组数指示寄存器值发送给读写地址产 生器 (2) ; 读写地址产生器 (2), 接收来自中心控制器 (1) 的启动信号、 剩余序列组数指示寄存器 值、 写满最高地址指示信号、 写满最高地址一半指示信号、 读空最高地址指示信号、 读空最 高地址一半指示信号, 来自可配置读写状态控制器 (3) 的读使能或写使能信号, 接收外部 的点数配置模式, 以及
11、外部的数据有效指示信号 ; 读写地址产生器 (2) 将读写地址产生模 式信息发送至可配置读写状态控制器 (3) ; 在读使能或写使能信号触发下选择生成的读或 写地址, 并分别传送给单端口存储器 a(4) 和单端口存储器 b(5) ; 读写地址产生器 2 根据剩 余序列组数指示寄存器值, 写满最高地址指示信号或写满最高地址一半指示信号, 读空最 高地址指示信号或读空最高地址一半指示信号来控制不同的读写地址产生模式切换生成 两存储器的读、 写地址, 读写地址产生器(2)将生成的单端口存储器a(4)的读地址、 单端口 存储器 a(4) 的写地址、 单端口存储器 b(5) 的读地址、 单端口存储器 b
12、(5) 的写地址信息发 送至中心控制器 (1) ; 读写地址产生器 (2) 在工作中根据外部的数据有效指示信号, 在数据 暂停时保持读写地址产生模式信息不变 ; 可配置读写状态控制器 (3), 接受来自中心控制器 (1) 的数据准备好信号和读写地址 产生器 (2) 的读写地址产生模式 ; 根据数据准备好信号和读写地址产生模式产生对于单端 口存储器 a(4) 和单端口存储器 b(5) 的当前读使能或写使能信号 ; 可配置读写状态控制器 (3) 将读使能信号发送至中心控制器 (1), 将读使能或写使能信号发送至读写地址产生器 (2) ; 单端口存储器 a(4) 和单端口存储器 b(5), 作为数据
13、的暂存单元, 接受来自读写地址产 生器(2)的读或写地址信息, 接受来自可配置读写状态控制器(3)的读使能或写使能信号, 在写使能的控制下接受来自于输入接口单元 (6) 的数据, 在读使能的驱动下读出数据发送 至输出缓冲单元 (7) ; 输入接口单元 (6), 接受来自外部的输入数据和来自中心控制器 (1) 的串并转换控制 信号、 写满最高地址指示信号和写满最高地址一半指示信号, 收到串并转换控制信号后将 先后连续的两个有效输入数据转换为上下两路并行数据, 首先接收到的数据作为上路数 权 利 要 求 书 CN 102306142 A CN 102306149 A3/4 页 4 据, 其次接收到
14、的数据作为下路数据 ; 若收到写满最高地址指示信号, 则将上下两路并行数 据分别写入至单端口存储器 a(4) 和单端口存储器 b(5) ; 若收到写满最高地址一半指示信 号, 则将上下两路并行数据分别写入至单端口存储器 a(5) 和单端口存储器 b(4) ; 在输入接 口单元 (6) 首次向存储器写入数据时, 默认将上下两路并行数据分别写入至单端口存储器 a(4) 和单端口存储器 b(5) ; 输出缓冲单元 (7), 接受来自单端口存储器 a4 和单端口存储器 b(5) 的两路并行数据, 来自中心控制器 (1) 的并串转换控制信号、 读空最高地址指示信号、 读空最高地址一半指 示信号 ; 若收
15、到读空最高地址指示信号, 则分别从单端口存储器 a(4) 和单端口存储器 b(5) 同时读出上下两路并行数据 ; 若收到读空最高地址一半指示信号, 则分别从单端口存储器 a(5) 和单端口存储器 b(4) 同时读出上下两路并行数据 ; 对上下两路并行数据作并串转换, 实现先输出上路数据再输出下路数据 ; 首次接收到并串转换控制信号后, 默认分别从单端 口存储器 a(4) 和单端口存储器 b(5) 同时读出上下两路并行数据。 3. 根据权利要求 2 所述的 FFT 倒序操作存储器数据调度电路, 其特征在于 : 输入接口 单元 (6) 和输出缓冲单元 (7) 包括相接的两级缓冲寄存器和数据切换开关
16、。 4. 根据权利要求 2 所述的 FFT 倒序操作存储器数据调度电路, 其特征在于 : 读写地址 产生器 (2) 包括计数器 a(21)、 计数器 b(22)、 位倒置和移位单元 (23)、 延迟单元 (24)、 地 址交换选择逻辑 (25)、 读写地址产生模式状态机 (26)、 多路选址器 a(27) 和多路选址器 b(28) ; 计数器a(21)和计数器b(22)为具有最大的m bits位宽, 能够处理最大可配置2m长度 的数据序列 ; 计数器a(21)和计数器b(22)若接收到来自中心控制器(1)的启动信号, 并且 接受到来自可配置读写状态控制器 (3) 的读使能或写使能信号, 则计数
17、器 a(21) 和计数器 b(22) 开始计数产生地址, 否则, 保持原有值不变 ; 计数器 a(21) 将产生的 m bits 位宽的地 址信号发送至位倒置和移位单元 (23) ; 计数器 b(22) 将产生的 m bits 位宽的地址信号发 送至延迟单元 (24), 并作为地址 A21 发送至交换判决逻辑 (25) ; 位倒置和移位单元 (23) 接受来自外部的可配置点数模式信息和来自计数器 a(21) 的 m bits的地址 ; 位倒置和移位单元(23)首先将m bits的地址按比特颠倒位置, 得到新的m bits 地址 ; 位倒置和移位单元 (23) 根据可配置点数模式信息确定新的 m
18、 bits 地址的移位 次数从而得到输出地址 A1, 将其发送至地址交换选择逻辑 (25) ; 延迟单元 (24) 接受来自计数器 b(22) 的 m bits 地址, 并将该地址用寄存器延迟一个 时钟发送得到地址 A22, 并将地址 A22 发送至交换判决逻辑 (25) ; 地址交换选择逻辑 (25) 接受来自位倒置和移位单元 (23) 的地址 A1, 来自计数器 b(22)的地址A21, 来自延迟单元(24)的地址A22, 来自读写地址产生模式状态机(26)的读 写模式状态信息, 以及来自中心控制器 (1) 的写满最高地址一半指示信号、 读空最高地址 一半指示信号 ; 若读写模式状态信息表
19、示正处于初始只写模式, 则选择地址 A1 作为单端口 存储器a(4)的写地址waddr1和单端口存储器b(5)的写地址waddr2 ; 若读写模式状态信息 表示正处于第一种交替读写模式, 则首先选择地址 A21 和 A22 分别作为单端口存储器 a(4) 的读地址 raddr1 和单端口存储器 b(5) 的读地址 raddr2, 并且地址 A21 和 A22 延迟一个时 钟分别作为单端口存储器 a(4) 的写地址 waddr1 和单端口存储器 b(5) 的读地址 waddr2 ; 若接受到写满最高地址一半指示信号, 则选择地址 A22 和 A21 分别作为单端口存储器 a(4) 权 利 要 求
20、 书 CN 102306142 A CN 102306149 A4/4 页 5 的读地址 raddr1 和单端口存储器 b(5) 的读地址 raddr2, 并且地址 A22 和 A21 延迟一个时 钟分别作为单端口存储器a(4)的写地址waddr1和单端口存储器b(5)的读地址waddr2, 直 至读写模式状态信息变为第二种交替读写模式或清空只读模式 ; 若读写模式状态信息表示 正处于第二种交替读写模式, 则选择地址 A1 作为单端口存储器 a(4) 的读地址 raddr1 和单 端口存储器b(5)的读地址raddr2, 并将地址A1延迟一个时钟作为单端口存储器a(4)的写 地址 waddr1
21、 和单端口存储器 b(5) 的写地址 waddr2 ; 若读写模式状态信息表示正处于清空 只读模式, 若该清空只读模式是由初始只读模式转来, 则按照第一种读写交替模式产生读 地址, 即将地址 A1 作为单端口存储器 a(4) 读地址信号 raddr1 和单端口存储器 b(5) 的读 地址信号 raddr2, 若该清空只读模式是由第一种读写交替模式转来, 则按照第二种读写交 替模式产生读地址, 即首先将地址A21和A22分别作为单端口存储器a(4)的读地址raddr1 和单端口存储器 b(5) 的读地址 raddr2, 当接收到读空最高地址一半指示信号, 则转为将地 址A22和A21分别作为单端
22、口存储器a(4)的读地址raddr1和单端口存储器b(5)的读地址 raddr2, 若该清空只读模式是由第二种读写交替模式转来, 则按照第一种读写交替模式产 生读地址, 即将地址A1作为单端口存储器a(4)读地址信号raddr1和单端口存储器b(5)的 读地址信号raddr2 ; 地址交换选择逻辑(25)将产生的单端口存储器a(4)的读地址raddr1 和写地址 waddr1 发送至多路选择器 a(27), 将产生的单端口存储器 b(5) 的读地址 raddr2 和写地址 waddr2 发送至多路选择器 b(28) ; 读写地址产生模式状态机(26)接受来自中心控制器(1)的启动信号、 剩余组
23、数指示信 号、 写满最高地址指示信号、 读空最高地址指示信号和外部的数据有效指示信号, 以及外部 数据有效指示信号 ; 读写地址产生模式状态机 (26) 完成不同的读写地址产生模式的切换, 并将当前读写地址产生模式信息发送至地址交换选择逻辑 (25) 和可配置读写状态控制器 (3) ; 多路选择器 a(27) 接受来自地址交换选择逻辑 (25) 发送的单端口存储器 a4 的读地 址 raddr1 和写地址 waddr1, 多路选择器 b(28) 接受来自地址交换选择逻辑 (25) 发送的 单端口存储器 b(5) 的读地址 raddr2 和写地址 waddr2, 多路选择器 a(27) 和多路选
24、择器 b(28) 均接受来自可配置读写状态器 (3) 的读使能或写使能信号 ; 在读使能信号下, 同时选 择 raddr1 和 raddr2 分别作为 addr1 和 addr2 发送至单端口存储器 a(4) 和单端口存储器 b(5) 的地址线端口, 在写使能信号下, 同时选择 waddr1 和 waddr2 分别作为 addr1 和 addr2 发送至单端口存储器 a(4) 和单端口存储器 b(5) 的地址线端口。 权 利 要 求 书 CN 102306142 A CN 102306149 A1/17 页 6 一种 FFT 倒序操作存储器数据调度方法及电路 技术领域 0001 本发明属于超大
25、规模集成电路 (VLSI, Very Large Scale Integrated Circuit) 领域, 具体涉及到一种快速傅立叶变换(FFT, Fast Fourier Transform)倒序操作的存储器 数据调度方法和电路结构。 背景技术 0002 随着雷达、 卫星和消费电子等应用需求的不断增长, FFT 处理器设计的点数和精度 需求不断增加, 流水线结构具有灵活可配置的特点, 并且作为提升计算速度的重要手段, 因 而被广泛采用。在大点数的浮点数据格式的 FFT 计算中, 倒序模块的面积和性能对于整个 FFT 处理器的性能具有至关重要的影响, 因而有必要研究出能够高效完成倒序操作并具
26、有 较低面积开销的倒序模块存储器调度方法和结构。 0003 FFT 的 VLSI 结构分为存储器迭代结构和单路径 / 多路径流水线结构两类, 存储器 迭代结构在处理单元较少的设计中, 可以有效减少面积开销, 但同时计算速度非常慢, 严重 影响系统处理的实时性要求 ; 而采用多路并行处理的方式, 提高速度和增加面积开销同时, 对于外部带宽的要求非常大。单路径延迟反馈 (SDF, Single-path Delay Feedback) 或多 路径延迟切换 (MDC, Multiple-path Delay Commutator) 等流水线结构具有较高的处理单 路或多路数据的效率, 具有较高的计算单
27、元利用率和速度, 并具有较少的存储器面积开销。 0004 无论是单路径或多路径流水线结构, 并基于此采用高基数或混合基算法, 其 数据输入和输出均具有与 Cooley-Tukey 算法 (Radix-2DIT, Decimation-In-Time) 或 Sande-Tuey 算法 (Radix-2DIF, Decimation-In-Frequency) 相同的自然序或倒位序输入和 输出特点。 0005 而对于FFT处理器的主控器件数字信号处理器(DSP, Digital Signal Processor) 或其它微控制器 (MCU, Micro Control Unit) 而言, 对数据的
28、调度往往是通过直接存储 器访问 (DMA, Direct Memory Access) 控制器以连续地址的方式完成写入或读取, 并且 外部的 SDR/DDR/DDRIISDRAM(Single Data Rate/Double Data Rate/Double Data Rate IISynchronous Dynamic Random Access Memory) 等动态存储器件也要求数据以连续地址 方式读写, 才能获得较高的读写效率, 因而设计高效的 FFT 倒序电路对于整体系统处理性 能的提高非常重要。 0006 自然序输入、 倒位序输出的 FFT 计算核心得到一组序列, 长度为 N 2
29、m, 每个数据 的输出的索引序号可以表示为 m 位的二进制 : 0007 index (bob1bm-1)B (i 0, 1, m-1) (1) 0008 其中 bi为 1 或 0, bm-1为最高位, b0为最低位。倒序操作就是将该 index 索引号的 数据重新调整到 no_index 索引号的位置, 之后可以按照该顺序依次输出, 得到 FFT 计算的 顺序结果, 其中 no_index 满足以下关系 : 0009 no_index (bm-1bm-2b0)B (i 0, 1, m-1) (2) 0010 倒位序输出的相邻两个连续数据成一组, X(index2k) 和 X(index2k+
30、1) 表示在一组 N 说 明 书 CN 102306142 A CN 102306149 A2/17 页 7 2m个数据中第 2k 和 2k+1 个数据, 其中 k 0 2m-1-1, 那么 0011 index2k+1-index2k 2m-1 (3) 0012 而对于相邻的 X(index2k) 和 X(index2k+1) 的索引号分别有如下表达式 : 0013 index2k (0b1bm-1)B (4) 0014 index2k+1 (1b1bm-1)B (5) 0015 因而在 X(index2k) 和 X(index2k+1) 两组序列中其索引号具有 m-1bits 倒位序的特
31、点。对于自然序结果转换为倒位序的结果具有上述类似的特点, 本发明倒序操作存储器数 据调度方法和结构正是基于这样的倒位序特点。 0016 非连续数据倒序操作很简单, 仅需要一块 N 深度的单口存储器。但实际应用中几 乎均为连续处理的情况, 以满足数字图像等领域的二维、 甚至多维处理和相关计算, 并且对 于实时性要求很高。对于 VLSI 设计中的连续倒序操作, 传统设计方法包括两种 : 使用两块 N 深度的单口存储器和使用一块 N 深度的双口存储器。 0017 Wen-Zen Shen 于 1994 年在 “On The Reduction of Reorder Buffer Size for D
32、iscrete Fourier Transform Processor Design” (IEEE International Symposium on Circuits and Systems, 1994, 171-174) 一文中采用一块双口存储器实现基于 504 789 点素因子算法 (PFA, Prime Factor Algorithm) 的数据重整序, 但其算法和数据 调度非常复杂, 并且不易于扩展应用于各种可配置 FFT 点数的数据重整序中。Fredrik Kristensen 于 2004 年在 “Reduced Transceiver-Delay for OFDM Syste
33、ms” (IEEE Vehicular Technology Conference, 2004, 1242-1245) 一文中采用了两块 N 深度的单 口存储器来实现 FFT 的数据重新整序, 其中一块存储器用于数据缓存, 另一块存储器用 于读出, 之后两块存储器做乒乓切换, 从而避免了数据读写访问的冲突。Tuhin Subhra Chakraborty 于 2008 年在 “On Output Reorder Buffer Design of Bit Reversed Pipelined Continuous Data FFT Architecture” (IEEE Asia Pacific
34、 Conference on Circuits and Systems, 2008, 1132-1135) 一文中采用一块 N 深度的双口存储器, 并寻求最 快的数据输出时间, 事实上这增加了 FIFO 存储器的开销并为可配置模式带来困难, 并且数 据提前输出的时间并不明显, 不妨将此延迟定为 N 个时钟, 这样更便于实现相关读写控制 和不同点数模式配置逻辑, 也可避免大量的 FIFO 资源开销。 0018 无论是使用两块 N 深度的单口存储器, 还是使用一块 N 深度的双口存储器的倒序 操作, 在大点数和高精度FFT计算中面积都是巨大的, 因此如何在保证N个时钟延迟和数据 吞吐率为 1 时钟
35、 / 数据条件下, 有效降低倒序操作的面积开销和实现存储器数据无冲突读 写成为 VLSI 结构设计的重点。 发明内容 0019 本发明针对 FFT 处理器计算结果顺序与 DMA 和 SDR/DDR/DDRIISDRAM 等器件数据 读写特点的矛盾, 以及现有方法存储器面积开销过大和不同点数配置不够灵活的特点, 提 出了一种倒序操作存储器数据调度电路, 该电路基于两块 N/2 深度的单口存储器, 充分发 挥单口存储器的面积和功耗优势, 具有 1 时钟 / 数据的吞吐率和 N 个时钟的数据延迟特性, 显著降低了芯片面积和成本。 0020 一种 FFT 倒序操作存储器数据调度方法, 涉及第一和第二单
36、端口存储器, 具体为 : 说 明 书 CN 102306142 A CN 102306149 A3/17 页 8 0021 定义待写入数据序列的数据个数为 N 2m, 第一单端口存储器的读地址和写地址 分别为 raddr1 和 waddr1, 第二单端口存储器的读地址和写地址分别为 raddr2 和 waddr2, inv_M() 为 m-1 位比特地址信号倒置操作, cnt1() 和 cnt2() 为两个 m bits 的计数器, 记当 前数据序号为 c_num, 第一组待写入数据序列直接进入初始只写模式, 0022 初始只写模式 : 将第一组待写入数据序列分两路并行写入第一和第二单端口存储
37、 器, 两单端口存储器的写地址waddr1waddr2inv_M(cnt1m-1:1), 写至当前点数长度 模式下存储器地址最高限值时, 若还有待写入的数据序列, 则转至第一种交替读写模式, 否 则, 转至清空只读模式 ; 0023 第一种交替读写模式 : 读取第一和第二单端口存储器的数据, 第一和第二单端口 存储器的读地址分别为 0024 0025 0026 k 0, 1, 2, m-1 0027 将待写入数据序列分两路并行写入第一和第二单端口存储器, 第一和第二单端口 存储器的写地址分别为 waddr1 raddr1_pre, waddr2 raddr2_pre, raddr1_pre 为
38、第一 单端口存储器前一时钟的读地址, raddr2_pre 为第二单端口存储器前一时钟的读地址 ; 写 至当前点数长度模式下存储器地址最高限值时, 若还有待写入数据序列, 则转移第二种交 替读写模式, 否则, 转至清空只读模式 ; 0028 第二种交替读写模式 : 读取第一和第二单端口存储器的数据, 第一和第二单端口 存储器的读地址 raddr1 raddr2 inv_M(cnt1M:1), 将待写入数据序列分两路并行 写入第一和第二单端口存储器, 第一和第二单端口存储器的写地址 waddr1 waddr2 raddr1_pre raddr2_pre ; 写至当前点数长度模式下存储器地址最高限
39、值时, 若还有待写 入数据序列, 则转移第一种交替读写模式, 否则, 转至清空只读模式 ; 0029 清空只读模式 : 若是从初始只写模式转移到清空只读模式, 则按照第一种交替读 写模式产生读地址进行只读操作 ; 若是从第一种交替读写模式转移到清空只读模式, 则按 照第二种交替读写模式产生读地址进行只读操作 ; 若是从第二种交替读写模式转移到清空 只读模式, 则按照第一种交替读写模式产生读地址进行只读操作。 0030 一种 FFT 倒序操作存储器数据调度电路, 包括 0031 中心控制器 1, 接收外部的数据有效指示信号、 点数配置模式和序列组数信号, 将 序列组数信号作为剩余序列组数指示寄存
40、器的初值, 接收来自读写地址产生器 2 的读和写 地址, 其中包括单端口存储器 a4 的读地址、 单端口存储器 a4 的写地址、 单端口存储器 b5 的 读地址、 单端口存储器b5的写地址, 接收来自可配置读写状态控制器3的读使能信号 ; 在连 续接收到数据有效指示信号两次后向输入接口单元 6 发送串并转换控制信号以及向读写 地址产生器 2 发送启动信号 ; 若单端口存储器 a4 的写地址与地址最高限值相等, 则向读写 地址产生器 2 和输入接口单元 6 发送写满最高地址指示信号, 并将剩余序列组数指示寄存 说 明 书 CN 102306142 A CN 102306149 A4/17 页 9
41、 器减 1 ; 若单端口存储器 a4 的写地址与单端口存储器 b5 的写地址相同且均与当前点数长 度模式下地址最高限值一半相等, 或单端口存储器 a5 的写地址大于单端口存储器 a4 的写 地址且单端口存储器 a5 的写地址与当前点数长度模式下地址最高限值相等, 则向读写地 址产生器 2 和输入接口单元 6 发送写满最高地址一半指示信号, 所述当前点数长度模式下 地址最高限值为当前点数配置模式对应的点数长度减 1, 所述当前点数长度模式下地址最 高限值一半为当前点数配置模式对应的点数长度的一半减 1 ; 若单端口存储器 a4 的读地址 与当前点数长度模式下地址最高限值相等, 则向读写地址产生器
42、 2 和输出缓冲单元 7 发送 读空最高地址指示信号 ; 若单端口存储器 a4 的读地址与单端口存储器 b5 的读地址相同且 均与当前点数长度模式下地址最高限值一半相等, 或单端口存储器 a5 的读地址大于单端 口存储器a4的读地址且单端口存储器a5的读地址与当前点数长度模式下地址最高限值相 等, 则向读写地址产生器2和输出缓冲单元7发送读空最高地址一半指示信号 ; 在数据有效 指示信号的触发下产生数据准备好信号并传送至可配置读写状态控制器 3 ; 若接收到读使 能信号, 则向输出缓冲单元 7 发送并串转换控制信号 ; 还将当前剩余序列组数指示寄存器 值发送给读写地址产生器 2 ; 0032
43、读写地址产生器 2, 接收来自中心控制器 1 的启动信号、 剩余序列组数指示寄存 器值、 写满最高地址指示信号、 写满最高地址一半指示信号、 读空最高地址指示信号、 读空 最高地址一半指示信号, 来自可配置读写状态控制器 3 的读使能或写使能信号, 接收外部 的点数配置模式, 以及外部的数据有效指示信号 ; 读写地址产生器 2 将读写地址产生模式 信息发送至可配置读写状态控制器 3 ; 在读使能或写使能信号触发下选择生成的读或写地 址, 并分别传送给单端口存储器 a4 和单端口存储器 b5 ; 读写地址产生器 2 根据剩余序列组 数指示寄存器值, 写满最高地址指示信号或写满最高地址一半指示信号
44、, 读空最高地址指 示信号或读空最高地址一半指示信号来控制不同的读写地址产生模式切换生成两存储器 的读、 写地址, 读写地址产生器 2 将生成的单端口存储器 a4 的读地址、 单端口存储器 a4 的 写地址、 单端口存储器 b5 的读地址、 单端口存储器 b5 的写地址信息发送至中心控制器 1 ; 读写地址产生器 2 在工作中根据外部的数据有效指示信号, 在数据暂停时保持读写地址产 生模式信息不变 ; 0033 可配置读写状态控制器 3, 接受来自中心控制器 1 的数据准备好信号和读写地址 产生器 2 的读写地址产生模式 ; 根据数据准备好信号和读写地址产生模式产生对于单端口 存储器 a4 和
45、单端口存储器 b5 的当前读使能或写使能信号 ; 可配置读写状态控制器 3 将读 使能信号发送至中心控制器 1, 将读使能或写使能信号发送至读写地址产生器 2 ; 0034 单端口存储器 a4 和单端口存储器 b5, 作为数据的暂存单元, 接受来自读写地址产 生器2的读或写地址信息, 接受来自可配置读写状态控制器3的读使能或写使能信号, 在写 使能的控制下接受来自于输入接口单元 6 的数据, 在读使能的驱动下读出数据发送至输出 缓冲单元 7 ; 0035 输入接口单元 6, 接受来自外部的输入数据和来自中心控制器 1 的串并转换控制 信号、 写满最高地址指示信号和写满最高地址一半指示信号, 收
46、到串并转换控制信号后将 先后连续的两个有效输入数据转换为上下两路并行数据, 首先接收到的数据作为上路数 据, 其次接收到的数据作为下路数据 ; 若收到写满最高地址指示信号, 则将上下两路并行数 据分别写入至单端口存储器 a4 和单端口存储器 b5 ; 若收到写满最高地址一半指示信号, 说 明 书 CN 102306142 A CN 102306149 A5/17 页 10 则将上下两路并行数据分别写入至单端口存储器 b5 和单端口存储器 a4 ; 在输入接口单元 6 首次向存储器写入数据时, 默认将上下两路并行数据分别写入至单端口存储器 a4 和单端 口存储器 b5 ; 0036 输出缓冲单元
47、 7 接受来自单端口存储器 a4 和单端口存储器 b5 的两路并行数据, 来自中心控制器 1 的并串转换控制信号、 读空最高地址指示信号、 读空最高地址一半指示 信号 ; 若收到读空最高地址指示信号, 则分别从单端口存储器a4和单端口存储器b5同时读 出上下两路并行数据 ; 若收到读空最高地址一半指示信号, 则分别从单端口存储器 b5 和单 端口存储器 a4 同时读出上下两路并行数据 ; 对上下两路并行数据作并串转换, 实现先输出 上路数据再输出下路数据 ; 首次接收到并串转换控制信号后, 默认分别从单端口存储器 a4 和单端口存储器 b5 同时读出上下两路并行数据。 0037 输入接口单元
48、6 和输出缓冲单元 7 包括相接的两级缓冲寄存器和数据切换开关。 0038 读写地址产生器 2 包括计数器 a21、 计数器 b22、 位倒置和移位单元 23、 延迟单 元 24、 地址交换选择逻辑 25、 读写地址产生模式状态机 26、 多路选址器 a27 和多路选址器 b28 ; 0039 计数器 a21 和计数器 b22 为具有最大的 m bits 位宽, 能够处理最大可配置 2m长 度的数据序列 ; 计数器a21和计数器b22若接收到来自中心控制器1的启动信号, 并且接受 到来自可配置读写状态控制器 3 的读使能或写使能信号, 则计数器 a21 和计数器 b22 开始 计数产生地址,
49、否则按照数据暂停情况处理, 保持原有值不变 ; 计数器 a21 将产生的 m bits 位宽的地址信号发送至位倒置和移位单元 23 ; 计数器 b22 将产生的 m bits 位宽的地址信 号发送至延迟单元 24, 并作为地址 A21 发送至交换判决逻辑 25 ; 0040 位倒置和移位单元 23 接受来自外部的可配置点数模式信息和来自计数器 a21 的 m bits 的地址 ; 位倒置和移位单元 23 首先将 m bits 的地址按比特颠倒位置, 得到新的 m bits 地址 ; 位倒置和移位单元 23 根据可配置点数模式信息确定新的 m bits 地址的移位次 数从而得到输出地址 A1, 将其发送至地址交换选择逻辑 25 ; 0041 延迟单元 24 接受来自计数器 b22 的 m bits 地址, 并将该地址用寄存器延迟一个 时钟发送得到地址 A22, 并将地址 A22 发送至交换判决逻辑 25 ;
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1