电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 接口/总线/驱动 > 详细信息
接口/总线/驱动:CPLD技术在PCI总线开关中的应用
来源:   时间: 2007-9-26 9:51:32    
  PLD(可编程逻辑器件)以其操作灵活、使用方便、开发迅速、投资风险低的特点,很快发展起来,并越来越受人们的瞩目。PLD是可以由用户在工作现场编程的逻辑器件,它从简单的PAL、GAL,已发展到CPLD、EPLD、FPGA和FLEX系列。他们都具有体系结构和逻辑单元灵活、集成度高以及适用范围广等特点。

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

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

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

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

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

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

subdesign statesmachine

(clk,rst,frame,ad[31..0],cbe[3..0],idsel,irdy,mem_bar[12..0] :input;

devsel,trdy,cfg_rd,cfg_wr, mem_rd,mem_wr :output;

cfg_addr[5..0],mem_addr[16..0] :output;)

//以上定义了状态机模块的输入输出引脚

VARIABLE

pci_state :MACHINE

WITHSTATES(idle,cmp_cfg, cmp_addr,read,write,turn_ar, bus_busy);

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

BEGIN

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

 IF rst==b"0" THEN //判断是否复位

实现复位的时序操作。

ELSE

CASE pci_state IS

WHEN idle => //空闲状态

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

WHEN cmp_cfg=> //对配置空间操作的状态

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

WHEN cmp_addr =>//地址比较状态

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

WHEN read=> //读状态

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

WHEN write=> //写状态

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

WHEN turn_ar => //信号的过渡周期状态

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

WHEN bus_busy=> //总线忙状态

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

WHEN OTHERS =>

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

END CASE;

END IF;

END;

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

subdesign config

(add[5..0] ,idata[n..0], int_data[7..0],rd,wr,clk :input;

odata[31..0], barout[12..0]

:output;)//定义输入输出

begin

初始化:对引脚进行初始化,指定它们的逻辑关系.

bar0[]=idata[];

table

add[] => outtri[31..0]。In;

b"000000" => h"88881172";

b"000001" => h"02000002";

b"000010" => h"ff000000";

end table; //配置空间中前三行的内容,可根据需要设定.

if add[]==b"000100" then //对存储

器的地址分配

向配置空间的基址寄存器区的高位,系统启动时写入分配给本卡存储器的起始地址

end if;

if add[]==b"001111" then //写中断

向量

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

end if;

end;

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

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

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

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

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

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

  信息来源:IC72

相关信息
发表评论
打印本页 关闭本页
探究最佳的结构化ASIC设计方法
    由于与深亚微米标准单元ASIC相关的非重复性工程费用(NRE)越来越大,设计周期又很长,因此利用结构化ASIC进行定制IC设计的吸引力正变得越来越大。结构化ASIC能以极具竞争力的单位成本提供优秀的硅片性能,并且NRE费用极低。结 构化ASIC的多样性意味着它即可以用作系统主芯片,也可以用作高性价比的小型辅助芯片。   许多物理设计问题在结构化ASIC的片设计中已经得到解决,...
>>详细内容
基于最佳的结构化ASIC设计方法
    由于与深亚微米标准单元ASIC相关的非重复性工程费用(NRE)越来越大,设计周期又很长,因此利用结构化ASIC进行定制IC设计的吸引力正变得越来越大。结构化ASIC能以极具竞争力的单位成本提供优秀的硅片性能,并且NRE费用极低。结构化ASIC的多样性意味着它即可以用作系统主芯片,也可以用作高性价比的小型辅助芯片。   许多物理设计问题在结构化ASIC的片设计中已经得到解决,因此后端...
>>详细内容
SYNPLICITY为 HAPS ASIC 原型设计系统增添新成员HAPS-51
    Synplicity宣布又为 HAPS (High-performance ASIC Prototyping System) 产品系列增添新成员 HAPS-51。HAPS-51采用业界最大的FPGA 阵列 Xilinx Virtex?-5 LX330 和板上存储器,加快了 ASIC 验证的速度。先前的 HAPS 系统在存储器存取方面采用子板,而最新的 HAPS-51 则采用位于板上并靠近 FPGA 器件的存储器。因此,HAPS-51 系统提供了一种低成本、高性能的原型设计解决方案,能显著缩...
>>详细内容
嵌入式系统中IP协议专用ASIC器件电路设计
    摘要 设计并实现一个能完成IP协议功能的ASIC器件;讨论器件的稳定工作条件。任何数字化的工业设备都可以使用这个IP协议器件直接连接到基于IP的网络中。   关键词 嵌入式系统 IP ASIC 引言   为了实现网络信息处理,嵌入式系统中必须具有强大的网络连接功能。嵌入式系统的网络连接功能不仅需要传输信息,同时还必须具有相应的信息识别能力,以提高系统的网络安全性[1,2]。  ...
>>详细内容
Bluetooth ASIC及其嵌入式应用
  1 引言 Bluetooth(蓝牙)作为新的短程无线电通信技术,可以随时随地用无线接口来代替有线电缆连接,可应用于多种通信场合,如WAP、GSM、 DECT等完成身份识别后可以灵活实现漫游,推动和扩大了无线通信的应用范围,使网络中的各种数字和语音设备互连互通,实现个人区域内快速灵便的数据和语音通信以及资源共享。Bluetooth技术在电信、计算机、家电等方面有着广阔的应用前景[4] ,计算机与...
>>详细内容
可编程ASIC器件主从式下载开发系统的设计
  1 引言 当前在EDA领域,只要具备台式或笔记本电脑并装有工具软件,就可以方便地对可编程ASIC(CPLD/FPGA)进行设计开发,在系统可编程(ISP)器件为我们提供了这种便利条件。ISP方式虽然可以用一根下载电缆代替了编程器,但兼有提供下载和演示环境两大功能的可编程ASIC开发系统对于用户来说仍是必须的。本文提出的主从式下载开发系统可以适配多种目标芯片,具有较宽的开发应用范围,经...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com