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

发布者:纸扇轻摇最新更新时间:2012-12-03 来源: 现代电子技术 关键字:双口RAM  PCI9O52接口  状态机 手机看文章 扫描二维码
随时随地手机看文章

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.可以独立访问端口。[page]

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所示。


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

[page]

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

3 FPGA仿真实现
    在Modelsim开发平台下,实现了PCI9052读写双口RAM的仿真过程,该仿真波形如图4所示。从仿真波形可以看出该代码可以实现将PCI90-52的读写控制信号转换成双口RAM的读写控制信号,完成时序的匹配。

4 结语
    本设计采用了可编程逻辑芯片来实现PCI访问双口RAM的接口电路,该接口电路具有可改性与适用性。随着微电子技术的发展,可编程器件的容量已经达到千万门级,越来越多过去必须由专用芯片或器件才能完成的工作现在都可以通过设计软件由FPGA来实现了。硬件的软件化已经成为电子行业中不可阻挡的趋势。

关键字:双口RAM  PCI9O52接口  状态机 引用地址:基于FPGA的双口RAM与PCI9O52接口设计

上一篇:基于MFRC523的非接触式读写13.56MHz通信设计方案
下一篇:基于MCF52233的通用远程测控系统平台的研究

推荐阅读最新更新时间:2024-03-16 13:14

学海拾贝状态机思路在单片机程序设计中的应用
状态机思路在单片机程序设计中的应用 状态机的概念   状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。   比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些,但这不影响我们对状态机的认识。   进一步看,击键动作本身也可以看做一个状态机。一个细小的击键动作包含了:释放、抖动、闭合、抖动和重新释放等状态。   同样,一个串行通信的时序(不管它是遵循何种协议,标准串口也好、I2C也好;也不管它是有线的、还
[单片机]
学海拾贝<font color='red'>状态机</font>思路在单片机程序设计中的应用
RAM通讯在电机控制中的应用
引言 在冶金行业中,绝大部分控制信息的传递基本上都是依靠总线进行的,通过总线还可以实现对各个生产加工环节的实时监控,所以总线技术无处不在,其中VME计算机因其支持多个CPU,64位的寻址和数据传输能力,IEC 297 欧卡标准,机械性能可靠和稳定,并具有可靠的接插件,带电热插拔,多厂商支持等优点得到广泛应用。这里介绍一个用双口RAM实现变频器和VME通讯的实际例子。 1 总体结构 如图所示,整个通讯由三部分组成:DSP,VME双口RAM。 1.1 DSP部分 这部分是整个电机控制系统的核心。DSP主要被用来产生控制电机的PWM脉冲,本项目使用的芯片是德州仪器的TMS320LF2407A芯片,它内部有两个事件管理器
[应用]
LabVIEW设计模型——事件状态机
上一篇文章说了说标准状态机,这种模型在自动测试系统(ATS)和自动控制系统(ACS)的编程应用中应用非常方便。因为在ATS和ACS系统运行的过程中几乎不需要与用户互动,只要按照事先设定好的逻辑来判断程序的走向,直到程序结束。但是,在大部分桌面应用和部分工业应用中,程序都需要和用户互动。比如说,需要用户输入参数、下达命令甚至判断程序走向。 如果程序的用户互动环节比较多,用标准状态机来实现就回比较困难,即使实现了也会使程序代码臃肿、结构混乱。 那么如何来方便的实现状态机与用户互动的完美结合呢?那就要用到状态机的一个变种 事件状态机。 与标准状态机相比,事件状态机要稍微复杂一些。他们都包含一个While循环,所不同
[测试测量]
LabVIEW设计模型——事件<font color='red'>状态机</font>
基于RAM的LonWorks智能通信节点设计
介绍一种基于双口RAM的LonWorks现场总线智能通信节点的设计方法,并给出详细的设计步骤、硬件及软件实现。通过此LonWorks智能通信节点,能够完成RS-232-C/RS-485标准与LonTalk协议间的转换提供RS-232-C/RS-485网络到LonWorks网络的接口,因此,具有很高的应用价值。 引言 LonWorks(Local Operating Networks,局部操作网络)总线是由美国Echelon公司推出的一种现场总线技术。由于LonWorks控制网络的开放性、高速性和互操作性,它已广泛用于工业、楼宇、家庭、办公设备、交通运输、能源等自动化领域。EIA RS-232-C/RS-485通信网络在控制
[网络通信]
降低FPGA功耗的设计技巧和ISE功能分析工具
新一代FPGA的速度变得越来越快,密度变得越来越高,逻辑资源也越来越多。那么如何才能确保功耗不随这些一起增加呢?很多设计抉择可以影响系统的功耗,这些抉择包括从显见的器件选择到细小的基于使用频率的状态机值的选择等。 为了更好地理解本文将要讨论的设计技巧为什么能够节省功耗,我们先对功耗做一个简单介绍。 功耗包含两个因素:动态功耗和静态功耗。动态功耗是指对器件内的容性负载充放电所需的功耗。它很大程度上取决于频率、电压和负载。这三个变量中的每个变量均在您的某种控制之下。 动态功耗=电容×电压2×频率 静态功耗是指由器件中所有晶体管的泄漏电流(源极到漏极以及栅极泄漏,常常集中为静止电流)引起的功耗,以及
[嵌入式]
CoolRunner-Ⅱ器件的I2C接口状态机
    I 2 C接口主状态机如图所示。    如图  I 2 C接口主状态机   无论是主模式,还是从模式,状态机都是相同的。在每个状态,模式都会被检测,以决定输出和下一个状态。如果仲裁失败或 I 2 C控制器被确定为从模式,控制器会自动由主模式切换到从模式。   此状态机用到一个位计数器和两个移位寄存器,位计数器对从总线上接收到的位进行计数,其中一个移位寄存器用来存储I 2 C的HEADER;另一个用来存储接收到的数据或待发送的数据。   当检测到START信号时,状态机进入HEADER状态。在HEADER状态,如果是主模式,MBDR寄存器中的HEADER被发送。当所有8位数据发送完毕时,状态机转入ACK HEADER
[嵌入式]
状态机的协同设计
作者Email: zlyadvocate@163.com 随着微电子技术的迅速发展,人们对数字系统的需求也在提高 。不仅要有完善的功能,而且对速度也提出了很高的要求。对于大部分数字系统,都可以划分为控制单元和数据单元两个组成部分。通常,控制单元的主体是一个有限状态机 ,它接收外部信号以及数据单元产生的状态信息,产生控制信号序列。有限状态机设计的关键是如何把一个实际的时序逻辑关系抽象成一个时序逻辑函数,传统的电路图输入法通过直接设计寄存器组来实现各个状态之间的转换, 而用硬件描述语言来描述有限状态机, 往往是通过充分发挥硬件描述语言的抽象建模能力,通过对系统在系统级或寄存器传输级进行描述来建立有限状态机。EDA 工具的快速发展,使通过
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved