好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

双口RAM原理及应用实例.ppt

18页
  • 卖家[上传人]:我***
  • 文档编号:134816603
  • 上传时间:2020-06-09
  • 文档格式:PPT
  • 文档大小:3.60MB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 双口RAM原理及应用实例 双口RAM是在一个SRAM存储器上具有两套完全独立的数据线 地址线和读写控制线 并允许两个独立的系统同时对该存储器进行随机性的访问的存储器 即共享式多端口存储器 双口RAM最大的特点是存储数据共享 一个存储器配备两套独立的地址 数据和控制线 允许两个独立的CPU或控制器同时异步地访问存储单元 双口RAM可用于提高RAM的吞吐率 适用于实时的数据缓存 Name Mr XuUniversity 江苏科技大学 双口RAM部分应用 1 CPU并行工作 双单片机系统 方式得到广泛应用 为了使2个单片机能够快速有效交换信息 充分利用系统资源 采用双口RAM实现存储器共享是目前较为流行的方法 2 大容量 高速FPGA器件具有集成度高 体积小 灵活可重配置 实验风险小等优点 在复杂数字系统中得到越来越广泛的应用 用FPGA来实现双口RAM的功能可以很好地解决并行性和速度问题 而且其灵活的可配置特性使得基于FPGA的双口RAM易于进行修改 测试及系统升级 可降低设计成本 缩短开发周期 双口RAM最大特点是共享存储数据 即一个存储器配备两套独立的的地址线 数据线和控制线 允许两个独立的的CPU或控制器同时异步的访问存储单元 这种同时异步的访问存储单元需要内部仲裁控制逻辑的控制 BUSY功能输出 由于两个端口对双口RAM存取时存在以下4种情况 1 两个端口不同时对同一地址单元存取数据 2 两个端口同时对同一地址单元读出数据 3 两个端口同时对同一地址单元写入数据 4 两个端口同时对同一地址单元操作 一个写入数据 一个读出数据 出现3 4两种情况时 左右端口将发生冲突 为此 双端口RAM芯片通过 BUSY 信号处理这两种情况 当左右端口对不同存储空间进行读写操作时 可同时存取 此时 左右两端的 BUSY 信号为无效 若对同一存储空间同时进行存储操作时 哪一个的存储请求信号先出现则该端的 BUSY 信号无效 可以存储 哪一端的存储信号出现在后 则这一端 BUSY 信号有效 禁止存储 所以 内部仲裁控制逻辑相应的提供以下功能 1 对同一地址单元访问的时序控制 2 存储单元数据块的访问权限分配 3 信令交换逻辑 双口RAM出现的情况及处理 1 对同一地址单元访问的时序控制 当左右端口不对同一地址单元存取时 BUSYR H BUSYL H 可正常存储 当左右端口对同一地址单元存储时 有一个端口的BUSY L 禁止数据的存取 此时 两个端口中先出现的存储请求信号对应的BUSY H 允许存储 后出现的存储请求信号对应的BUSY L 禁止存储 注意 两端口间的存储请求信号出现时间差应满足仲裁最小时间间隔TAPS IDT7132为5ns 否则仲裁逻辑无法判定哪一个端口的存储请求信号在前 在无法判定哪个端口先出现存储请求信号时 控制线BUSYL和BUSYR只有一个为低电平 不会同时为低电平 这样就避免了双端口存取出现错误 2 存储单元数据块的访问权限分配 存储单元数据块的访问权限分配只允许在某一时间段内由1个CPU对自定义的某一数据块进行读写操作 这将有助于存储数据的保护 更有效地避免地址冲突 信号量 Semaphore 简称SEM 仲裁闭锁就是一种硬件电路结合软件实现访问权限分配方法 SEM单元是与存储单元无关的独立标志单元 两个端口分别采用两个触发器可以实现这一功能 两个触发器在初始化时均使SEM允许输出为高电平 等待双方申请SEM 如果收到一方写入的SEM信号 通常低电平写入 仲裁电路将使其中一个触发器的SEM允许输出端为低电平 而闭锁另一个SEM允许输出端使其继续保持高电平 只有当先请求的一方撤消SEM信号 即写入高电平 才使另一SEM允许输出端的闭锁得到解除 恢复等待新的SEM申请 3 信令交换逻辑 signalinglogic 为了提高数据的交换能力 有些双口RAM采用信令交换逻辑来通知对方 这类似与PC操作系统的进程同步的信箱机制 以上是双口RAM自身提供的仲裁逻辑控制 也可采用自行设计的仲裁协议 比如FIFO 双口RAM 三态非反转透明锁存器 单片机 DSP datasingalprocessing 与双口RAM的接口电路 TMS320VC33的数据线宽度为32位 而CY7C028的数据位宽为16位 因此采用将TMS320VC33数据总线的低16位与双口RAM的数据总线相连 TMS320VC33在发送32位的数据至又口RAM时 分两次完成 先写低16位 再写高16位 从双口RAM读取数据操作与发送类似 如前所述 使用双口RAM的关键是解决左右端口同时操作同一RAM单元的竞争问题 图3中采用了硬件判优的方法 即将左右端口的BUSY信号经相应处理后分别引至支持插入等待时序的TMS320VC33和TMS320F240的对应引脚 以解决左右端口对同一单元的争用问题 基于FPGA的双口RAM应用 双口RAM在数字系统中应用广泛 高速数据采集系统中 一般的数据传输系统在大数据量情况下会造成数据堵塞现象 在一些实时控制场合 实时算法经常需要由几个DSP串行或并行工作以提高系统的运行速度和实时性 以双口RAM构成的数据接口可以在两个处理器之间进行高速可靠的信息传输 此外 双口RAM可以应用在智能总线适配卡 网络适配卡中作为高速数据传输的接口 在许多宽带信号处理领域 如无线通信 多媒体系统 卫星通信 雷达系统等 FPGA技术已代替DSP实现许多前端的数字信号处理算法 用FPGA来实现数字信号处理能很好地解决并行性和速度问题 而且其灵活的可配置特性 使得FPGA构成的数字信号处理系统易于修改 测试及系统升级 降低设计成本 缩短开发周期 任何一种自动控制系统都离不开数据采集系统 数据采集系统的质量直接影响整体系统的工作性能 数据采集系统高速 实时发展趋势 对数据的传输和控制速度提出较高要求 而采用双口RAM可有效提高速度 解决速度匹配问题 FPGA FPGA Field ProgrammableGateArray 即现场可编程门阵列 它是在PAL GAL CPLD等可编程器件的基础上进一步发展的产物 它是作为专用集成电路 ASIC 领域中的一种半定制电路而出现的 既解决了定制电路的不足 又克服了原有可编程器件门电路数有限的缺点 FPGA工作原理 FPGA采用了逻辑单元阵列LCA LogicCellArray 这样一个概念 内部包括可配置逻辑模块CLB ConfigurableLogicBlock 输入输出模块IOB InputOutputBlock 和内部连线 Interconnect 三个部分 现场可编程门阵列 FPGA 是可编程器件 与传统逻辑电路和门阵列 如PAL GAL及CPLD器件 相比 FPGA具有不同的结构 FPGA利用小型查找表 16 1RAM 来实现组合逻辑 每个查找表连接到一个D触发器的输入端 触发器再来驱动其他逻辑电路或驱动I O 由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块 这些模块间利用金属连线互相连接或连接到I O模块 FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的 存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I O间的联接方式 并最终决定了FPGA所能实现的功能 FPGA允许无限次的编程 FPGA基本特点 1 采用FPGA设计ASIC电路 专用集成电路 用户不需要投片生产 就能得到合用的芯片 2 FPGA可做其它全定制或半定制ASIC电路的中试样片 3 FPGA内部有丰富的触发器和I O引脚 4 FPGA是ASIC电路中设计周期最短 开发费用最低 风险最小的器件之一 5 FPGA采用高速CMOS工艺 功耗低 可以与CMOS TTL电平兼容 可以说 FPGA芯片是小批量系统提高系统集成度 可靠性的最佳选择之一 双口RAM在FPGA中的实现 选用Xilinx公司的Spartan 6FPGA器件 基于低功耗45nm 9 金属铜层 双栅极氧化层工艺技术 提供高级功耗管理技术 150000个逻辑单元 集成式PCIExpress模块 高级存储器支持 250MHzDSPslice和3 125Gb s低功耗收发器 通过VerilogHDL语言对双口RAM功能的描述就能在一片FPGA器件内实现8位16字节的双口RAM 并进行读写操作控制 双口RAM读写操作控制采用VerilogHDL代码 VerilogHDL语言 VerilogHDL是一种硬件描述语言 是一种以文本形式来描述数字系统硬件的结构和行为的语言 用它可以表示逻辑电路图 逻辑表达式 还可以表示数字逻辑系统所完成的逻辑功能 VerilogHDL和VHDL是目前世界上最流行的两种硬件描述语言 都是在20世纪80年代中期开发出来的 前者由GatewayDesignAutomation公司 该公司于1989年被Cadence公司收购 开发 两种HDL均为IEEE标准 双口RAM应用例子 设计一块数据采集系统板 用FPGA实现双口RAM功能 并且控制A D采样与转换 以及数据写入双口RAM 利用单片机控制双口RAM的存取 构成一个独立的数据采集系统 并可以通过串行接口把数据发送给PC机 首先 时钟产生启动信号 FPGA向采样开关发出选通信号 选定模拟开关采样 第0路模拟量进入 经A D转换后变为8位数字量并存储于双口RAM中 ADC0809反馈给FPGA内控制电路并告知转换完毕 FPGA内控制电路再选通第1路模拟量进入 重复上述过程 经过0 1ms后 时钟又产生一个脉冲启动信号 FPGA又重新从第o路模拟量选通 在时钟脉冲信号0 1ms过程中 FPGA顺序通过0 7路模拟开关 在每次选通时须判断是否为第7路模拟量 若是则FPGA不再响应A D反馈信号 而是等待0 1ms的时钟脉冲信号到达再重新开始工作 单片机用于与外部PC机通信 PC机查询是否在双端口RAM中有新数据 并经接口电路读入数据 其中双口RAM具有2组独立的数据 地址和控制总线 可对任何一个端口进行独立的操作 若未采用双口RAM FPGA采取中断方式对CPU传输数据时 CPU就会停止当前工作而去处理外部请求 当处理完外部事件后再回到原来被中止处 继续原来的工作 这样会影响CPU的速度 因此引入双口RAM存储FPGA传送来的数据 然后CPU再从双口RAM中读数 从而提高效率 本数据采集系统采用基于FPGA双口RAM 单片机等实现数据运行处理和控制功能 使系统的通信和处理能力大大加强 保证了系统的实时性 可以灵活地通过多种方式控制数据读写 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.