gzyueqian
13424082685
首页 > 新闻中心 > > 正文

PCI总线控制器的VHDL设计与FPGA实现

更新时间: 2007-10-05 21:25:01来源: 粤嵌教育浏览量:2023

  摘 要:首先介绍了PCI总线的技术特点,并结合实际应用,重点叙述了PCI总线设备控制器的VHDL设计与FPGA的实现,他是PCI总线和应用设备的接口,并且用VHDL语言对系统进行了详细的描述与功能仿真。

  关键词:PCI总线;设备控制器;FPGA;VHDL

  PCI(PeripheralComponent Interconnection)局部总线不仅是目前的计算机总线,而且是一种兼容性强、功能全的计算机总线。他可同时支持多组外围设备,而且不受制于处理器的限制,为CPU及高速外围设备提供高性能、高吞吐量、低延迟的数据通路。图形用户界面、高清晰度电视、三维视频多媒体显示等新技术的发展以及高速通讯系统的广泛需求使PCI具有良好的应用前景。并在嵌入式计算机和工业控制计算机方面具有广泛的应用前景[1]。

  1 PCI总线及其特点

  Intel公司研制的PCI局部总线既具有VESA局部总线的高数据传输率,又与CPU相对独立且功能更强。他的产生可以说是PC总线技术的第六次创新。1992年6月,Intel公司和多家主要电脑厂商组成了PCI专责小组SIG(SpecialInterestGroup),目的是推广、统筹并强化PCI标准,使PCI总线标准终成为开放的、非专利的局部总线标准。1999年2月PCI2.2版规范的发布,使其得到更加广泛的应用[2]。

  1.1 PCI总线的特点

  图1给出了典型的PCI总线结构框图,可以看出,整个系统存在3种不同的总线:HOST(宿主)总线、PCI总线和LEGACY(遗留)总线。在一个 PCI系统中可以做到高速外部设备和低速外部设备共存,PCI总线与ISA/EISA总线并存。PCI总线的特点有:线性突发传输、存取延误极小、总线主控及同步操作、独立于CPU的结构、低成本高效益、兼容性、预留发展空间[1]。

  1.2 PCI总线信号定义与读写规范

  PCI接口信号线可分为必备的和可选的2大类。条。用这些信号线便可处理数据/地址,实现接口控制及系统功能。综合主设备与目标设备考虑,按功能将这些信号分组表示于图2中。

  当设备开始驱动有效数据到数据总线上时,作为数据源设备的准备信号(IRDY#和TRDY#)必须有效,同时接收数据的设备保持准备信号无效,直到他准备接收数据。当设备的准备信号有效,他就会保持到当前数据段结束。当设备准备完成当前数据段,他必须不改变控制信号。当IDRY#有效表明主设备准备传送当前数据项,不管TRDY#的状态,他可以不改变IDRY#或FRAME#的状态。只要TDRY#或STOP#有效,直到当前数据段结束,才改变 TRDY#,STOP#或DEVSEL#[3]。

  2 PCI总线设备控制器的设计

  2.1 设计思想

  PCI总线设备控制器是PCI总线和应用设备的接口,分为总线主设备控制器和目标设备控制器,可将这2种控制器的功能集成在一个控制器上实现。PCI 总线控制器的主要功能就是要协调PCI总线信号与应用设备信号,使应用设备能够正确使用PCI总线来进行数据传输,即数据传输功能、错误检测与处理功能、命令/地址译码功能、配置功能。因此,PCI总线控制器设计目标就是要在PCI总线和应用设备之间产生正确的控制信号。

  本文实现的是PCI总线目标设备控制器。其中,时钟频率为33 MHz,数据宽度为32 b。支持单数据段和突发传输2种方式。提供奇偶校验生成和奇偶校验检测,实现16个双字的PCI配置空间寄存器,支持配置空间读/写、I/O读写、存储器读/写等PCI总线命令。PCI总线目标设备控制器不会申请对总线的使用权,是响应由总线主设备提出的总线操作来控制PCI总线与应用设备之间的交易。

  2.2 设计的总体框图

  如图3所示,PCI总线目标控制器从功能上划分为8个部分。其中奇偶产生模块是在读周期产生奇偶校验位;奇偶检测模块是控制器对所接收到的数据进行检测,以确定所接受到的数据是否正确,并给出相应的错误报告;命令寄存器/地址计数器在地址期锁存来自总线的PCI命令和地址信息,将命令从总线上分离出来,根据命令译出相应读写操作信号,并将命令及读写信号传送到应用设备接口,对于访问存储器的突发传送,产生后继地址;目标状态机模块通过PCI总线在各个状态的控制下产生相应的PCI总线控制信号和与目标设备相关的应用接口控制信号;数据通路模块;用户控制模块;配置空间模块保留用于实现配置寄存器,使系统上电时执行系统配置;I2C接口模块。 

  2.3 系统描述与功能仿真

  当系统的结构设计确定后,对于每个模块的设计首先要使用硬件描述语言完成系统的描述,然后使用语言及系统仿真及调试工具进行语言级功能仿真与调试。

  2.3.1 系统的VHDL描述

  本系统用VHDL语言来描述。VHDL语言是一种结构化语言,他支持结构化设计。结构化设计就是将一个系统划分为多个子模块,而每个子模块又可以继续划分为更多的模块。首先根据系统的功能描述,将系统划分为接口清晰、相互关系简单的子系统,从而得到系统级的描述。然后,依次对各个子系统(或功能模块)进行结构设计和寄存器传输级描述。

  2.3.2 系统功能仿真

  为了证明上面的设计模块是否正确,还需对这些设计模块进行仿真。本文使用ALDEC公司的设计仿真软件Activ-HDL进行前后仿真。通过仿真工具,设计者对各设计层次的设计模块进行仿真,以确定这些设计模块的功能,逻辑关系及定时关系是否满足设计要求。顶层模块的主要信号仿真波形如图4所示。

  3 PCI总线控制器的FPGA实现

  在本设计中,PCI总线目标控制器的实现是采用了Altera公司的ACEX系列中的EP1K30QC208-1芯片。其封装形式是208管脚PQFP (Plastic Quad FlatPack)封装。布局布线工作是在Altera公司的MAXPLUSII工具上完成的。为了验证PCI总线设备控制器的功能,我们设计了一块 PCB验证板,在设计该验证板时,考虑到布局布线的方便以及PCI信号线的要求,将PCI信号分布到EP1K器件与PCI总线卡的连接器距离近的管脚上。

  4 结 语

  本文的PCI总线目标控制器使应用设备与PCI总线连接变得灵活而方便,设计者通过PCI总线目标控制器连接PCI总线消除了对PCI总线复杂时序和规范的理解,通过验证和实际应用证明我们设计的PCI总线控制器性能完全达到了PCI总线的要求。

  参考文献

  [1]李贵山,戚德虎.PCI局部总线开发者指南[M].西安:西安电子科技大学出版,1997.
  [2]Tom Shanley,Don Anderson.PCI系统结构[M].刘晖,冀然然,夏意军译.北京:电子工业出版社, 2000.
  [3]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学,1999.
  [4]曾繁泰,侯亚宁,崔元明.可编程器件应用导论[M].北京:清华大学出版社,2001.

免费预约试听课