位置:51电子网 » 技术资料 » 接口电路

Spartan-3的存储器体系结构

发布时间:2008/9/19 0:00:00 访问次数:564

  spartan-3器件的存储器结构由3个层次构成。

  (1) 分布式存储器结构(distributed ram)

  分布式存储器是由clb中的查找表(lut)实现的,每个clb可以构成1个64×1或/1jz×2的存储器,通常用来构成小容量的片内存储器。该存储器结构却有访问速度快的特点,因此常用于数字信号处理的数据缓存等,这些存储器都可以配置成双口的ram。如果需要用分布式存储器构成大块的存储器,则必须将多个clb级连起来。这样访问速度将会降低,并且还需要占用逻辑资源。

  (2) 块存储器结构(block ram)

  块存储器是fpga内部的专用存储器模块,通常沿芯片的垂直边排列。spartan-3器件的块存储器结构为每块18 kb,器件型号不同块的个数也不同,最多可提供104个块共2.0mb的块存储器。可以配置成单端口block ram或完全的双端口block ram,如图1所示。

  图1 双端口block ram结构和标准原型

  block ram的各个信号定义如下。

  clk[a/b]:block ram的a口/b口时钟控制信号。

  en[a/b]:block ram使能信号,当该控制脚为低时,写入和读出操作无效,do[a/b]和dop[a/b]保持原有状态。

  we[a/b]:block ram读/写控制信号,当en[a/b]控制为高时,we[a/b]=1表示对目标地址执行写操作;we[a/b]=0表示对目标地址执行读操作。

  ssr[a/b]:block ram的置位控制信号,当en[a/b]控制为高时,该信号有效。

  addr[a/b]:block ram地址输入信号。

  di[a/b]:block ram的数据输入。

  dip[a/b]:block ram输入数据的奇偶校验信号。

  do[a/b]: block ram的数据输出。

  dop[a/b]:block ram输出数据的奇偶校验信号。

  块存储器除了实现单/双端口的存储器以外,还可支持数据宽度的转换(包括奇偶校验位),可以用多个block ram组成更大深度和宽度的存储单元。

  在同时读/写block ram的同一地址时,有以下3种处理模式,在设计时可以用ise设计工具的模块设计或约束设计来设置。

  write_frjst(写优先)模式:在write_frist模式下同时读/写block ram的同一地址时,读出的数据与写入的数据相同,如图2所示。

  图2 wite_frist模式

  read-frist(读优先)模式:在该模式下,同时读/写blok ram的同一地址时,首先将该地址所指定缓冲器的数据读出.在写操作时不影响该数据,如图3所示.

  图3 write frist模式操作

  no_change(输出不变)模式:在该模式下,同时读/写block ram的同一地址时,数据仅写入相应的缓冲器,而不影响输出。输出缓冲器保持上一次读操作时的数据,如图4所示。

  图4 no_change模式操作

  (3) 访问外部存储器的selectlo高速接口

  spartan-3器件的selectlo接口与dom时钟信号一起,可以实现外部海量存储器的高速访问,这些接口包括sstl3- i/ ii、sstl2-i/ ii和hstl-i/ii/iii/iv,以及iob模块中的ddr功能。xilinx已经提供了许多有关高速存储器接口的参考设计。

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



  spartan-3器件的存储器结构由3个层次构成。

  (1) 分布式存储器结构(distributed ram)

  分布式存储器是由clb中的查找表(lut)实现的,每个clb可以构成1个64×1或/1jz×2的存储器,通常用来构成小容量的片内存储器。该存储器结构却有访问速度快的特点,因此常用于数字信号处理的数据缓存等,这些存储器都可以配置成双口的ram。如果需要用分布式存储器构成大块的存储器,则必须将多个clb级连起来。这样访问速度将会降低,并且还需要占用逻辑资源。

  (2) 块存储器结构(block ram)

  块存储器是fpga内部的专用存储器模块,通常沿芯片的垂直边排列。spartan-3器件的块存储器结构为每块18 kb,器件型号不同块的个数也不同,最多可提供104个块共2.0mb的块存储器。可以配置成单端口block ram或完全的双端口block ram,如图1所示。

  图1 双端口block ram结构和标准原型

  block ram的各个信号定义如下。

  clk[a/b]:block ram的a口/b口时钟控制信号。

  en[a/b]:block ram使能信号,当该控制脚为低时,写入和读出操作无效,do[a/b]和dop[a/b]保持原有状态。

  we[a/b]:block ram读/写控制信号,当en[a/b]控制为高时,we[a/b]=1表示对目标地址执行写操作;we[a/b]=0表示对目标地址执行读操作。

  ssr[a/b]:block ram的置位控制信号,当en[a/b]控制为高时,该信号有效。

  addr[a/b]:block ram地址输入信号。

  di[a/b]:block ram的数据输入。

  dip[a/b]:block ram输入数据的奇偶校验信号。

  do[a/b]: block ram的数据输出。

  dop[a/b]:block ram输出数据的奇偶校验信号。

  块存储器除了实现单/双端口的存储器以外,还可支持数据宽度的转换(包括奇偶校验位),可以用多个block ram组成更大深度和宽度的存储单元。

  在同时读/写block ram的同一地址时,有以下3种处理模式,在设计时可以用ise设计工具的模块设计或约束设计来设置。

  write_frjst(写优先)模式:在write_frist模式下同时读/写block ram的同一地址时,读出的数据与写入的数据相同,如图2所示。

  图2 wite_frist模式

  read-frist(读优先)模式:在该模式下,同时读/写blok ram的同一地址时,首先将该地址所指定缓冲器的数据读出.在写操作时不影响该数据,如图3所示.

  图3 write frist模式操作

  no_change(输出不变)模式:在该模式下,同时读/写block ram的同一地址时,数据仅写入相应的缓冲器,而不影响输出。输出缓冲器保持上一次读操作时的数据,如图4所示。

  图4 no_change模式操作

  (3) 访问外部存储器的selectlo高速接口

  spartan-3器件的selectlo接口与dom时钟信号一起,可以实现外部海量存储器的高速访问,这些接口包括sstl3- i/ ii、sstl2-i/ ii和hstl-i/ii/iii/iv,以及iob模块中的ddr功能。xilinx已经提供了许多有关高速存储器接口的参考设计。

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!