• 欢迎来到 - 我就爱电子网 - http://www.592dz.com !
您的位置:> 我就爱电子网电子文章EDA/PLD基于FPGA的双口RAM与PCI9O52接口设计 -- 正文
正文

基于FPGA的双口RAM与PCI9O52接口设计

[10-21 14:24:02]   来源:http://www.592dz.com  EDA/PLD   阅读:9312

 

概要:路。在可编程器件设计中,状态机的设计方法是应用最广泛的设计方法之一。有限状态机是一种简单、结构清晰、设计灵活的方法,它易于建立、理解和维护,特别应用在具有大量状态转移和复杂时序控制的系统中,更显其优势。鉴于其优势,本设计采用了Verilog HDL描述的状态机来实现该接口的时序逻辑,并通过仿真工具验证了该设计的正确性。1 PCI9052和双DRAM1.1 PCI9052简介PCI9052是PLX公司继PCI9050之后开发的低价位总线目标接口芯片,低功耗,符合PCI2.1规范,它的局部总线(LOCAL BUS)可以通过可编程设置为8/16/32位的(非)复用总线,数据传输率可达到132Mb/s。它的主要功能和特性如下:(1)异步操作。PCI9052的Local Bus与PCI总线的时钟相互独立运行,两总线的异步运行方便了高、低速设备的兼容。Local Bus的运行时钟频率范围为0~40MHz,TTL电平;PCI的运行时钟频率范围0~33MHz。(2)可编程的局部总线配置。PCI9052支持8位、16位或32位Local Bus,它们可以是复用或非复用。PCI9052有4个字节允许(LBE[3:0]#)信号,26条地址线(LA[27:2]),乖和32位、16位、8位数据线(LAD[3l

基于FPGA的双口RAM与PCI9O52接口设计,http://www.592dz.com

  摘要:为了解决PCI9052和双口RAM之间读写时序不匹配的问题,本设计采用可编程器件来实现它们之间的接口电路。此电路可以使系统更加紧凑。核心逻辑部分采用有限状态机实现,使控制逻辑直观简单,提高了设计效率。

  通过仿真工具ModelSim Se对该接口电路进行了验证,得出的仿真波形符合要求。

  O 引言

  IDT70V28L(双口RAM)的存取时间大于20ns,PCI9052工作于25MHz,其存取时间要大于双口RAM的存取时间。PCI9052是发起交易的主动者,相当于一个慢速器件访问快速器件,通过可编程器件,可以把PCI9052读写控制信号直接传递给IDT70V28L,完成时序的匹配。

  为将PCI9052的局部逻辑转换为双口RAM的读写控制信号和地址信号,本设计采用了可编程器件来实现它们之间的接口逻辑电路。在可编程器件设计中,状态机的设计方法是应用最广泛的设计方法之一。有限状态机是一种简单、结构清晰、设计灵活的方法,它易于建立、理解和维护,特别应用在具有大量状态转移和复杂时序控制的系统中,更显其优势。鉴于其优势,本设计采用了Verilog HDL描述的状态机来实现该接口的时序逻辑,并通过仿真工具验证了该设计的正确性。

  1 PCI9052和双DRAM

  1.1 PCI9052简介

  PCI9052是PLX公司继PCI9050之后开发的低价位总线目标接口芯片,低功耗,符合PCI2.1规范,它的局部总线(LOCAL BUS)可以通过可编程设置为8/16/32位的(非)复用总线,数据传输率可达到132Mb/s。它的主要功能和特性如下:

  (1)异步操作。PCI9052的Local Bus与PCI总线的时钟相互独立运行,两总线的异步运行方便了高、低速设备的兼容。Local Bus的运行时钟频率范围为0~40MHz,TTL电平;PCI的运行时钟频率范围0~33MHz。

  (2)可编程的局部总线配置。PCI9052支持8位、16位或32位Local Bus,它们可以是复用或非复用。PCI9052有4个字节允许(LBE[3:0]#)信号,26条地址线(LA[27:2]),乖和32位、16位、8位数据线(LAD[3l:0])。

  (3)直接从(目标)数据传送模式。PCI9052支持从PCI总线到Local Bus的猝发存储器映射空间的传送和I/O访问。读和写FIFO允许在PCI和局部总线之间的高性能猝发。PCI总线被允许猝发,这样Local Bus能被设置成猝发或持续单周期。

  (4)4个局部片选。PCI9052提供4个片选,每个片选的基地址和范围被编程成独立的由SEEPROM或主机。

  (5)5个局部地址空间。每个局部地址空间的基地址和范围被由SEEPROM或主机编程成唯一的。

  1.2 双口RAM

  IDT70V28是高速64k×16的双端口静态RAM。它能被设计为1024kb的双端口RAM或者是32位字主从双端口RAM。该双口RAM提供两个独立的具有控制、地址和I/O引脚的端口。它的主要特性如下:a.可同时访问双端口同一存储器空间;b.高速存储访问,访问速度可达到20ns;c.低功耗运行;d.同过将多个设备级联,可以方便地将数据线宽扩展到32位或更高;e.具有‘busy’和‘interrupt’旗语。避免访问冲突:f.可以独立访问端口。

  2 PCI和双口RAM之间的接口设计

  为了解决PCI9052和双口RAM之间读写时序不匹配的问题,采用可编程逻辑器件CYCLONE-II来实现它们之间的接口电路,其信号连接关系如图1所示。


  PCI9052对双口RAM发出读写指令需在FPGA配置完之后,这可以通过查询CONF_DONE(和USERl相连)和INIT_DONE(和USER3相连)来确定FPGA是否配置完成。如采样INIT_DONE信号,当其为高,表明FPGA配置完成;如采样CONF_DONE,当其为高,则PCI9052还需要等待tCD2UM(min=18 μs,max=40 μs)时间后,才能对双口RAM进行读写操作双口RAM使用的是IDT70V28L,它的存取时间大于20ns。PCI9052采用非复用、单周期读/写模式,工作于25MHz时钟,PCI访问存储器是以32位位宽,每读写操作一次在Local Bus上都对应2次16位位宽的操作,为了防止相邻二次交易的冲突,每次状态机都是以检测ADS信号有效开始一次读写访问,且插入一个NXDA等待周期。具体读写操作实现过程如下。

  2.1 PCI9052写过程

  写过程是用状态机加以描述,该状态机有6个状态,分别是写空闲、写开始、写等待数据、写过程、写过程等待和写结束。具体的状态转移图如图2所示。


  当系统复位后,BTERM、M S被拉高,LHOLD、MODE拉低,写控制信号无效,状态机处于写空闲状态。

  当状态机处于写空闲状态时,在每次上升沿采样到ADS有效和LW R为高电平,且访问双口RAM空间(CS0或CSl有效),状态机就进入写开始状态。在写开始状态,状态机等待未进行一定的操作。接着是写等待数据状态,此时根据片选信号CS0和CSl的值译出SEML、CEOL、CElL,并输出有效的地址和控制信号R WL、UBL、LBL到双口RAM。接着是写过程状态,为了得到有效的数据,该过程未对输入输出操作。然后是写过程等待状态,此时,置LRDY信号有效且输出有效的数据到双口RAM。最后是写结束状态,将片选信号CEOI。、CElL、SEMI。置位无效,在该过程的下一个周期将其余的写控制信号置为无效,状态机恢复为写空闲状态。

  2.2 PCI9052读过程

  读过程也是用状态机加以描述,该状态机有6个状态,分别是读空闲、读开始、读等待数据、读过程、读过程等待和读结束。其状态转移如图3所示。

[1] [2]  下一页


标签:EDA/PLDeda技术大全,eda技术实用教程EDA/PLD
《基于FPGA的双口RAM与PCI9O52接口设计》相关文章