0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在PCI总线上采用CPLD技术实现多种板卡的设计

电子设计 来源:郭婷 作者:电子设计 2019-08-16 08:00 次阅读

PLD(可编程逻辑器件)以其操作灵活、使用方便、开发迅速、投资风险低的特点,很快发展起来,并越来越受人们的瞩目。PLD是可以由用户在工作现场编程的逻辑器件,它从简单的PAL、GAL,已发展到CPLD、EPLD、FPGA和FLEX系列。他们都具有体系结构和逻辑单元灵活、集成度高以及适用范围广等特点。

同以往的PAL、GAL等相比较,FPGA/CPLD的规模比较大,适合于时序、组合等逻辑电路等场合应用。可编程逻辑器件易学、易用,简化了系统设计,缩小了系统规模,提高了系统的可靠性。一个器件的可用门已达数万门,引脚间延时仅几ns,而且仍在朝着高密度、高速度的方向迅速发展。

计算机总线是计算机各部件之间进行信息传输的公共通道。在当今的微型机中主要采用的是PCI总线,ISA、EISA总线正逐步被淘汰。所以对硬件设计人员来说,掌握PCI总线板卡的开发技术是非常重要的。板卡的设计方法通常有这么几种:一是做ASIC,开发周期长;另一种是在专用接口芯片下开发,但使用不是很灵活,系统规模大;目前最新的方法是用PLD来开发设计。

在进行CPLD设计时,笔者使用的软件是Altera的MAX+PLUSII。Altera的MAX+PLUSII开发系统是一个完全集成化、易学易用的、与结构无关的可编程逻辑设计环境,它使通用系列设计者能方便的进行设计输入、快速处理和器件编程,使用此软件的设计方法是很灵活的,可以采用硬件描述语言(PLD)、电路图,甚至是时序图。根据不同的情况可以采用不同的方法,在一个设计中也可以采用多种方法。下面以一个简单的PCI从设备设计为例,说明设计思想与过程。

在本例中,设计的PCI卡作为从设备使用,可以实现即插即用功能,卡上有1MB的存储器可供使用。在PCI即插即用板卡的设计中,核心设计有两部分:时序控制和配置空间。时序控制保证了板卡能按正常的PCI时序工作,配置空间部分保证了板卡的即插即用功能。

在本例中,这两部分都由AHDL语言来实现的(AHDL语言是Altera公司专门为其芯片设计开发的一种硬件描述语言)。在时序控制程序中采用状态机模型来实现不同时序的转换,采用这种方式既节省资源,程序也简单易懂。

本例中的状态机共使用了七种状态,分别对应空闲、存储器读写的判断、配置读写的判断、读、写、过渡周期、总线忙周期的时序。板卡接到复位信号后,对系统进行复位,然后转入空闲状态。在空闲状态中采样总线,并根据总线的变化来决定下一个时钟上升沿后,状态机转入何种状态。这些时序和程序中用到的信号都是基本且必须的。在进行开发时可以根据需要增添必要的状态和信号。程序描述如下:

在PCI总线上采用CPLD技术实现多种板卡的设计

//定义状态机变量,共有七个状态空闲状态idle,配置空间操作cmp_cfg,比较地址cmp_addr,读状态read,写状态write,过渡周期状态turn_ar,总线忙状态bus_busy。通过状态机的不同状态实现时序的转换,在每个状态中实现不同的时序周期。

BEGIN

初始化:对内部信号和各个输入输出引脚进行初始化,设定它们的连接关系。

IFrst==b“0”THEN//判断是否复位

实现复位的时序操作。

ELSE

CASEpci_stateIS

WHENidle=》//空闲状态

在此状态中,每个时钟周期判断frame和idsel信号的变化,一旦发现frame被置为有效,就根据idsel信号判断下一状态转入对配置空间操作的cmp_cfg或是比较地址对存储器操作的cmp_addr

WHENcmp_cfg=》//对配置空间操作的状态

在此状态中根据地址线的低两位判断是否是对配置空间的操作,若不是转入总线忙状态bus_busy;若是则根据cbe的信号是A或B来判断是读还是写,转入相应的状态read,write。

WHENcmp_addr=》//地址比较状态

在此状态中判断要读写地址的高位与配置空间中分配的地址是否相同,若不同转入总线忙状态bus_busy;若相同则根据cbe的信号是6或7来判断是读还是写,转入相应的状态read,write。

WHENread=》//读状态

在此状态中,根据cbe的值判断是配置读还是存储读,然后控制输出信号mem_rd,cfg_rd,trdy,devsel产生相应的读时序,同时在此周期中判断frame,irdy信号,若irdy变低并且frame变高,则读状态结束,转入turn_ar状态.

WHENwrite=》//写状态

在此状态中,根据cbe的值判断是配置写还是存储写,然后控制输出信号mem_wr,cfg_wr,trdy,devsel产生相应的写时序,同时在此周期中判断frame,irdy信号,若irdy变低并且frame变高,则写状态结束,转入turn_ar状态。

WHENturn_ar=》//信号的过渡周期状态

按照PCI的总线规范,S/T/S信号,从有效变为浮空之前必须保证使其具有至少一个时钟周期的高电平状态,此状态中,将所有的S/T/S信号置为高。

WHENbus_busy=》//总线忙状态

总线不对本卡操作,因此通过对frame信号的判断,来决定何时脱离本状态。

WHENOTHERS=》

若进入此状态,则应根据需要,马上转入bus_busy或idle

ENDCASE;

ENDIF;

END;

配置空间部分也采用AHDL语言来描述实现,在配置空间中定义PCI卡的功能、内存空间的分配、以及产品号、ID号等.通过对配置空间的定义,才能保证板卡的即插即用功能.描述如下:

写入系统启动时分配给本卡的中断向量

endif;

end;

两部分都通过软件生成模块,两模块之间的接口部分,可以很容易的通过电路图的连接来实现。两个模块图如图。

使用CPLD技术开发PCI板卡有以下优点:

1、开发周期短、成本低、投资风险小,标准产品无需测试、质量稳定,可实时在线检验。采用CPLD技术设计完成后,可以进行实时的时序仿真。验证改进设计结果,而不需重复的硬件试验。设计通过后写入芯片,通过测试即可投入使用。比使用一些专用的PCI芯片开发要简单,而且省去了其他开发设备,所以成本也较低。比之ASIC开发的周期则要短的多。

2、使用灵活方便。由于开发的板卡是直接在总线的基本规范上进行,没有使用一些专用芯片,因而开发更灵活、自由,受到的限制更少,整个硬件模块的规模也较小,可以将很多自己的算法与技术和PCI合成在一起,做出技术含量更高的产品。

3、有利于知识产权的保护和软件性能的提高。利用这项技术可以将自己的的算法、技术和一些软件做成硬件固化到卡上,既提高了运行速度,也使盗版者难以复制。

本文结合一个实例给出了在PCI总线上利用CPLD技术设计各种板卡的设计方案,简单实用,有很高的应用价值。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpld
    +关注

    关注

    32

    文章

    1247

    浏览量

    169201
  • pci总线
    +关注

    关注

    1

    文章

    203

    浏览量

    31794
  • vhdl
    +关注

    关注

    30

    文章

    816

    浏览量

    128076
收藏 人收藏

    评论

    相关推荐

    基于CPLD器件实现双主设备PCI总线仲裁器的设计

    PCI设备能够更方便地应用在嵌入式系统中,本文介绍了一种基于CPLD(复杂可编程逻辑器件)的PCI总线仲裁器的设计方法,此方法可以为系统量身定制适合于系统本身的
    发表于 06-26 09:30 1193次阅读
    基于<b class='flag-5'>CPLD</b>器件<b class='flag-5'>实现</b>双主设备<b class='flag-5'>PCI</b><b class='flag-5'>总线</b>仲裁器的设计

    基于PCI总线和DSP技术的虚拟仪器设计

    。  1 PCI接口的实现  PCI总线适配卡的设计中,采用专用的
    发表于 04-20 10:51

    采用PCI总线流水式高速数据采集系统设计

    很好地发挥PCI总线的性能。针对这些不足,分析了流水线技术特点的基础上,论述了采用流水线技术
    发表于 10-30 15:09

    采用CH365芯片实现PCI总线接口卡设计

    总线规范相同,而配置空间是PCI所特有的。配置空间使系统处理器能够枚举PCI总线上的各种设备,并根据设备要求自动配置存储器和I/O的地址空间。操作系统
    发表于 04-29 07:00

    基于PCI总线CPLD实现

    近年来随着计算机技术的发展,PCI局部总线已逐步取代ISA总线成为家用电脑的标准总线PCI
    发表于 05-29 05:00

    采用PCI总线集成电路实现测试仪接口设计

    IP核来实现PCI接口,利用基于PCI协议的IP核来实现PCI接口,这种设计开发速度较快,灵活性较好,但是IP核价格昂贵。
    发表于 05-30 05:00

    采用CPLD实现32 bit 33 MHzPCI从设备接口

    近年来随着计算机技术的发展,PCI局部总线已逐步取代ISA总线成为家用电脑的标准总线PCI
    发表于 06-20 05:00

    使用CPLD技术开发PCI板卡有什么优点?

    CPLD技术PCI总线开关中的应用使用CPLD技术
    发表于 04-08 06:47

    求一款PCI总线上利用FPGA技术设计PCI总线接口的设计方案

    PCI总线特点及开发现状PCI接口配置空间的实现求一款PCI
    发表于 04-15 06:17

    PCI总线至UTOPIA接口控制的CPLD设计实现

    摘 要: 本文采用Altera的CPLD实现PCI总线至UTOPIA接口的逻辑转换控制,为低成本
    发表于 03-11 13:16 970次阅读
    <b class='flag-5'>PCI</b><b class='flag-5'>总线</b>至UTOPIA接口控制的<b class='flag-5'>CPLD</b>设计<b class='flag-5'>实现</b>

    AMCCS5933 PCI板卡设计中的应用

    AMCCS5933 PCI板卡设计中的应用 PCI总线是计算机主机中最常见的总线。它是一种高
    发表于 05-14 12:46 2323次阅读
    AMCCS5933 <b class='flag-5'>在</b><b class='flag-5'>PCI</b><b class='flag-5'>板卡</b>设计中的应用

    CPLD基于PCI总线的功率模块设计中的应用

    基于CPLD的PWM控制器电路结构简单,设计方便,简化了外部线路设计,节省了PCB板空间,解决了机电一体化开发平台中MCU模块与功率模块基于PCI总线的通信
    发表于 05-24 10:26 988次阅读
    <b class='flag-5'>CPLD</b><b class='flag-5'>在</b>基于<b class='flag-5'>PCI</b><b class='flag-5'>总线</b>的功率模块设计中的应用

    PCI总线从设备接口的CPLD实现

    出了一种PCI总线从设备的CPLD实现方法。该方法遵从PCI规范2.2版,实现了资源自动配置并且
    发表于 11-30 17:06 60次下载
    <b class='flag-5'>PCI</b><b class='flag-5'>总线</b>从设备接口的<b class='flag-5'>CPLD</b><b class='flag-5'>实现</b>

    PCI总线接口芯片可以在哪里应用

     PCI9052是PLX技术公司继PCI9050之后推出的低成本、低功耗、高性能总线接口芯片,通过该芯片可以使多种局部
    的头像 发表于 10-22 16:46 3823次阅读

    采用CPLD技术实现PCI从设备接口的设计

    实现PCI总线协议目前主要有专用接口芯片和CPLD实现两种方式。专用接口芯片使用简单方便、工作稳定可靠,但往往具体应用中只用到部分功能,并且
    发表于 03-20 09:54 1555次阅读
    <b class='flag-5'>采用</b><b class='flag-5'>CPLD</b><b class='flag-5'>技术</b><b class='flag-5'>实现</b><b class='flag-5'>PCI</b>从设备接口的设计