首页 > 技术 > 内容

基于AHDL语言和CPLD技术实现PCI总线板卡的设计开发

时间:2025-11-29  作者:Diven  阅读:0

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公司专门为其芯片设计开发的硬件描述语言)。在时序控制程序中采用状态机模型来实现不同时序的转换,采用这种方式既节省资源,程序也简单易懂。

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

subdesignstatESMachine

(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

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

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号等.通过对配置空间的定义,才能保证板卡的即插即用功能.描述如下:

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

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

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

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

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

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

猜您喜欢


弹簧缓冲器是应用于机械、汽车和建筑等领域的重要装置,其主要优势体现在以下几个方面。弹簧缓冲器具有良好的减震效果。通过弹簧的弹性变形,能够有效吸收和消散冲击力,减...
2010-09-24 00:00:00
非金属垫片应用于机械、电子、化工等领域,其规格尺寸因不同用途而异。常见的非金属垫片材料包括橡胶、聚四氟乙烯(PTFE)、纸质和复合材料等。通常,非金属垫片的直径...
2022-06-05 00:00:00
梅花槽沉头自攻螺钉是应用于机械、电子和建筑等领域的紧固件。规格尺寸通常包括螺钉直径、长度、螺纹类型和沉头角度等。常见的直径有3mm、4mm、5mm、6mm等,长...
2009-02-01 00:00:00
电子元器件中,二极管是重要的基础元件,应用于整流、信号处理、开关电源等领域。随着科技的不断进步,市场上涌现出众多二极管品牌,但只有少数品牌凭借其卓越的品质和技术...
2025-04-06 03:30:03
现代电气设备和电子产品中,保险丝作为重要的保护元件,起到了防止电路过载和短路的关键作用。保险丝的核心功能是当电流超过设计值时,迅速熔断,从而切断电路,保护设备和...
2025-11-04 07:31:11
保险丝作为保护电路安全的重要元件,有着着不可替代的作用。作为行业内知名品牌,Kacon 凯昆保险丝很好的性能和的应用赢得了市场的高度认可。本文将详细介绍Kaco...
2020-03-29 02:09:30
十字槽圆头带介平尾自攻螺钉在结构和用途上有着明显的区别。十字槽设计使得螺丝在安装时更易于对准,减少滑动的可能性,提升了工作效率。圆头的设计则提供了良好的外观,适...
2014-06-24 00:00:00
贴片电阻,也叫片式电阻或芯片电阻,是指以矩形或圆柱形的陶瓷为基体,在其表面涂敷一层金属膜或金属氧化膜而制成的电子元件。别看它身材小巧,却在电子电路中扮演着至关重...
2025-04-14 15:02:20
作者:李晓欢,陈倩,李全,陈石平引言随着UWB(ultra wide band)信号产生与接收技术的发展,对UWB信号传播特性的认识逐渐完善,UWB在通信、...
2021-01-11 12:51:00
VQFN(薄型方形无引脚封装)是一种广泛应用于电子元件的小型封装形式,尤其是在空间受限的应用场景中。VQFN-20_3.5X4.5MM-EP是一种特定尺寸的VQ...
2025-02-24 10:33:40