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

摘要:为了解决PCI9052和双口RAM之间读写时序不匹配的问题,本设计采用可编程器件来实现它们之间的接口电路。此电路可以使系统更加紧凑。核心逻辑部分采用有限状态机实现,使控制逻辑直观简单,提高了设计效率。
通过仿真工具ModelSim Se对该接口电路进行了验证,得出的仿真波形符合要求。
关键词:PCI9052;双口RAM;FPGA;状态机

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


    当系统复位后,BTERM、M S被拉高,LHOLD、MODE拉低,读控制信号无效,状态机处于写空闲状态。
    当状态机处于读空闲状态时,在每次上升沿采样到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来实现了。硬件的软件化已经成为电子行业中不可阻挡的趋势。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的...

关键字: FPGA DS18B20温度传感器

这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。

关键字: FPGA OLED屏幕

第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。

关键字: FPGA DS18B20传感器

这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计...

关键字: FPGA OLED屏幕

这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结合上一例,以及第四例多bytes串口通信做一个有趣的例程。

关键字: FPGA OLED屏 串口

电子设计自动化

21260 篇文章

关注

发布文章

编辑精选

技术子站

关闭