DSP芯片外部存储器接口设计一例

  • 格式:pdf
  • 大小:430.92 KB
  • 文档页数:4
问开始时将所 需 插 入 的 周 期 数 载 入 计 数 器 并 开 始 计数, 当计数器减到零时, 3’5AB@ 有效。 此外, 还可通过控制寄存器设置两个就绪信号 的组合控制方式。
#<!<!
推迟一个周期 如果接口刚执行完一个操作, 又接到一个传输
"%.
"%.
任务, 这时可能出现读 = 写转换和 (>CDEF = 69 转换。 其中有些转换 在 没 有 间 隔 的 情 况 下 会 产 生 总 线 冲 突, 所以将新任务推迟一个周期执行。推迟一个周 期的情形有:
其中控制单元为接口的核心部分, 读写与片选 模块是为配合地址与数据总线的时序而设计的, 其 控制思想已贯穿于其它模块的描述中, 故不再作单 独介绍。
:-) 信号是接受请求的入口, 456 和 <=0 在发送传
输请求时应正确掌握时 机 , 既不浪费时间, 又不造 成总线冲突。
!"$
周期计数器 前面所提到的访问计数是由周期计数器来完
时, 一 个 数 据 对 应 着 一 个 存 储 单 元 , 这 时 , 我 们
% 系统设计 %&$ 基本功能介绍
外部接口是内部与外部交换数据的基本通道。 处理器与外界交 换 数 据 时 , B.C、 %5$ 等 执 行 部 件 只需提供地址、 数据和控制 信 号 , 所有其他的处理 过程全部由接口来完成。 本文的 %-. 接口是为基于 哈佛( 并行体系结构的 #! 位通用浮点处理 D32E32F ) 器而设计的, 因此该接口将满足对多总线的多路控 制、对 #! 位浮点数据处理以及与其他外设交换数 据的基本要求。 此外,为了增加 %-. 对接口性能的进一步要 求, 使外部存储器的片数能 灵 活 选 择 , 本文提出了 一种内部数据总线与外部存储器的接口匹配方式。 其中内部数据( 用 % 表示) 可以是 > ? ;@ ? #! 位, 外部 存储器位宽( 用 5 表示) 也可为 > ? ;@ ? #! 位。 接口与 外部存储器的连接关系如图 ; 所示。 B.C、 %5$、
!""# 年第 # 期
微电子学与计算机
;:
!"# !"#$%&’()*+,$ %&’()* +, %-. /01&2*34 5&6+27 8*1&2,39&
西安微电子技术研究所

刘军华
刘文平
唐威
车德亮
段来仓
( 西安 :;""<= )
要:文章介绍了一个 #! 位通用 %-. 芯片中外部存储器接口的设计方案。该方案的突出特点是: 接口位宽
!""# 年第 # 期
微电子学与计算机
&G
示对周期计数器的清零和计数, 其逻辑表达式如下: ・ *012343’5 6’01+3’5 ・ ・ 7’#!(&-+’&-()+*&8 7’#!()+*#8 ・ *9:;,43’5 *0123 其 中 6’01 表 示 接 口 处 于 空 闲 状 态 ; *&、 *# 分 别表示第二个和第四个访问周期。 计数器除了记数和清零外, 还会出现访问等待 的情况。如访问存储器时, 存储器响应速度太慢, 一 次访问需要多个周期才能完成, 这时必须有效控制 计数器以延长访问时间。上式中 3’5 信号就是用 来处理各种访问中的特殊情况的。 3’54& 时计数和 清零正常工作, 3’54" 时表示需要插入等待周期, 计数器保持计数值不变。
的接口与其它普通接口一样,每次传输一个数据。 但如果内部数据与外部存储器位宽不一致 ( 即 %!
5)呢?这时应以内部数据为单位,将外部存储器
单元进行重组,保证数据与存储空间的一一对应。 下面分两种情况予以详细讨论: 以 %#!5> 为例( H;I 当 % 大于 5 时: %#!5> 表 示内部数据为 #! 位, 即 %G#! ; 外部存储器位宽为 > 位, 即 5G>, 下同。) 如图 ! 所示, 我们可以将相邻的 = 个外部存储单元看作一个存储空间来存储一个 但由于每次只能对一个存储单元进行 #! 位的数据。 操作, 因此存取一个数据要分 = 次对 = 个存储器单 元依次进行操作。
$ 个多路选择器。
数据输入通道用于从外部存储器读数据。第 ! 节的分析表明数据输入输出时将用到周期计数值 ( 用 * 表示) 、 地址的低两位 2&2" 7用 2 表示8 参与寻 址和片选。此外, 整数操作和浮点数操作也影响传 输的在总线中位序。这是因为整数操作时数据的低 位端与总线的低位对齐; 而浮点操作时数据高位端 与总线的高位对齐。接口可支持 &- = #! 位浮点数的 传输, 浮点数的 转 换 只 是 对 位 略 有 不 同 , 可与其他 情况一起考虑。 表 & 是数据输出通道中第一组多路选择器的 控制信号逻辑表达式。表中, 第一项的情况最复杂, 用其余三项的或非代替。第四项中, *# 表示传输的 第四个访问周期,因为只有 ’#!() 组合方式才会 用到 $ 个访问周期, 而且 #! 位浮点数与 #! 位整数 在总线上的装载位序是相同的,所以 *# 实际上代 表的是: #! 位的数据写入 ) 位外部存储器时的第四 个访问周期。 ’&-()*&," 表示 &- 位浮点数写入 ) 位外部存储器时的第二个周期。其余各项与此类 似, 不再赘述。( ," 表示浮点操作。)
收稿日期 A 2 0 0 2-0 5-2 0
部总线。 以 %>5#! 为 例 ( 见 图 #) , H!I 当 部存储单元可
7$
微电子学与计算机 各部分的控制。
!""# 年第 # 期
图 3 为传输控制流程图。在每次访问结束时, 访问计数器都会检测计数是否达到预定值, 从而决 定整个传输结束与否。 看作四个存储空间, 因此每个数据只需对一个存储 单元中的一个 $ 位存储空间做一次存取操作。 每次将 $ 位的数据存入 #! 位外 ! 存数据时, 部存储器中的一个 $ 位数据段。 每次将 #! 位外部存储器中的一 ! 取数据时, 个 $ 位数据段读入内部总线的低 $ 位。同时, 由于 内部总线为 #! 位,所以必须在高位进行符号扩展 或零扩展。 其它情况依此类推, 这里不再赘述。 为满足上述传输过程的转换, 我们设计了总的 结构模块框图如下: 下面着重分析传输请求的响应和传输节拍的 控制。
数据的反馈信号, 如果接口发送了访问请求但没有 得到响应, 说明外部存储器数据尚未准备就绪或未 接收完毕。通过加入等待周期可延长寻址时间和数 据准备时间。 如果存储器没有反馈信号可用, 还可以设置一 个内部就绪信号 3’5AB@ 来控制每次访问的周期数。
3’5AB@ 信号可以用一个减一计数器来实现:一次访
)%&/ &-%!# !$%#&
’#!()*&+()*&,& *!+(&-*+’&-*"," *#+’&-()*&,"
7&8 从写 69 切换到 (1(935 操作 7!8 从写切换到读
注意, 推迟一个周期时新任务对总线和片选端 的控制应关闭。
数据输入通道除了用到输出通道中用到的控 制信号外, 还要对高位进行符号扩展 = 零扩展, 所以 数据输入的选择项比数据输出时多。具体的选择控 制与数据输出相似, 不再详述。
!"#
状态寄存器 状态寄存器的作用是寄存每一路总线的工作
状态, 每一时刻只有一路总线有效。在一次传输的 开始,状态寄存器载入从 456 发来的总线控制信 号; 传输结束时, 用下 一 次 的 控 制 信 号 覆 盖 当 前 状 态, 没有传输任务时状态寄存器清零。 除状态寄存器外, 还有两个重要的控制信号: 一次数据传输的开始。 %7/ 8)2&’()*+(,-.)92:-): 任何一路总线请求都会引发一次新的传输, 该信号 只在每次传输的第一个周期有效。 一次存储器访问的开始。 %!/ 8)20112**92:-) : 每次传输开始或周期计数器更新都使该信号有效。 该信号只在每次访问的第一个周期有效。 这两个信号是一次完整操作的开始标志, 它们 与状态寄存器的信号进行组合, 再加上适当的延时 即可形成任何需要的时序。其中 8)2&’()*+(,-.)92;
#<!<#
延长一个周期 写外部存储器时和对外设进行操作时,考虑
’ !"#$%&
接口收到传输请求后, 立即输出地址到外部地
到外部存储器 接 收 数 据 的 延 时 和 外 设 速 度 较 慢 等
!"
微电子学与计算机
!""# 年第 # 期
址总线, 给存储器寻址以足够的时间。( 前面控制部 分插入等待周期是为 了 增 加 存 储 器 寻 址 时 间 或 者 避免发生总线冲突。) 同时,将地址锁存在临时寄 存器里,当传输多周 期 数 据 时 , 外 部 地 址 总 线 上 的地址由临时寄存器 来 提 供 。 地 址 输 出 通 道 框 图 如图 ‘ 所示。
将 #! 位数据从内部总线读入接 " 存数据时, 口临时寄存器, 然后每次取 > 位, 分 = 次存入外部 存储器; 先分 = 次将 #! 位数据从外部存 " 取数据时, 储器 取 出 存 入 接 口 临 时 寄 存 器 , 然 后 一 次 写 入 内 图 ; 中, 每片存储器位宽为 > 位, 可以通过 ! ? = 片 同 样 的 存 储 器 组 合 成 ;@ ? #! 位 位 宽 的 外 部 存 储
能需要外部存储器接口一个或多周期来完成。我们 把一个内部数据位宽的数据读写称作一次传输 一次外部存储器数据存取称作一次访 %&’()*+(,-.)/, 问 %0112**/。 控制单元包括控制寄存器和其它状态寄存器, 它能及时响应传输请求、并控制正确地传输节拍。 其中控制寄存器保留系统对可变参数( 如等待周期 个数, 高位扩展方式等) 的配置, 这些配置直接参与