利用FPGA设计PCI桥的系统方案.doc_第1页
利用FPGA设计PCI桥的系统方案.doc_第2页
利用FPGA设计PCI桥的系统方案.doc_第3页
利用FPGA设计PCI桥的系统方案.doc_第4页
利用FPGA设计PCI桥的系统方案.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

All rights reserved. Passing on and copying of this document, use and communication of its contents not permitted without written authorization from Shanghai Bell. Security: PUBLIC SiteSbell SRD Originators利用FPGA设计PCI桥的系统方案Domain :Division :Rubric :Type : Distribution CodesInternal:External:ABSTRACTApprovalsNameApp.NameApp.REVIEWHISTORYREFERENCE1、 简介PCI是高宽带总线,32位的同步总线提供132Mbps的数据吞吐量,总线也可扩展到64位宽,使吞吐量增倍。在ATM的ET板上,APC负责ATM的接口控制,当它与PCI总线进行数据传输时,需要一个PCI桥实现PCI总线和APC之间的连接,见图1。图1 APC和PCI总线连接示意图PCI桥的功能要求:1. PCI接口符合PCI2.1规范;2. LOCAL侧运行于异步方式;3. LOCAL侧总线支持4位地址、32位数据非复用;4. CPU可以通过PCI总线对APC进行寄存器配置;5. APC可以通过PCI桥进行DMA的数据捕获和插入操作;6. PCI桥能够完成APC中断或内部中断请求的上传,其中APC中断从APC到PCI总线,内部中断包括PCI Master终止、PCI Master 接收到Target 终止、DMA传输结束而引起的中断;7. 在LOCAL侧PCI桥具有USERI和USERO引脚,可以用于一般的测试或应用输入、输出。2、 PCI CORE及FPGA芯片2.1 PCI规范PCI总线接口设计与ISA、EISA总线接口设计有较大差别,必须严格遵守PCI总线规范、电气规范,一般的集成电路(IC)不宜做PCI接口电路。 PCI总线是一个CMOS总线,在传输信号消失后,静态电流非常小,实际上,直流驱动电流主要消耗在上拉电阻上。PCI规范对IC的要求:1. 引脚有上拉电阻以防止震荡或在输入缓冲器上的功率消耗;2. 专用输入和I/O引脚具有钳位功能;3. PCI要求输入电容小于10pf,时钟和I/O引脚小于12pF;4. PCI标准对器件有严格的时间要求,最短CLK信号建立时间7ns,最大CLK输出信号时间11ns;除了要求兼容PCI电气规范外,FPGA也必须满足时序特性。对于最大频率33MHz的PCI器件,PCI时钟可以是033MHz之间任何频率,因此最小PCI周期为30ns。在这30ns中,规范允许10ns的波形传输,另外也允许2ns的从PCI器件到PCI器件的时钟歪率,即已有40%的时钟周期用于信号和时钟分配。图2说明33MHz时序,剩余18ns分为时钟到信号输出有效时间和信号建立时间两部分。Tckq 表示时钟到信号输出有效时间,时钟沿后最大11nsFPGA输出引脚必须数据有效。TSU 表示7ns的信号建立时间,在时钟沿前7ns数据必须出现。另外,还有PCI器件的保持时间,th ,可以为0ns(图2未加说明)。如何处理这些时序将影响应用设计,每个特性要求将会限制逻辑和物理上的实现和其结构。图2 33MHz时序特性2.2 Xilinx FPGA芯片Xilinx的Spartan-II系列器件具有PCI兼容特性,达到PCI总线的规范要求。该系列容量最大15万门、200MHz特性,其容量、性能、价格在许多情况下和掩膜ASIC相似。Spartan-II系列FPGA主要由五部分组成,见图3:l IOB(Input/Output Block):提供封装引脚和内部逻辑之间的接口,支持许多信号标准,如:PCI、AGP、LVTTL、HSTL等,芯片引脚有可选的上拉或下拉电阻;l CLB(Configurable Logic Block):组成逻辑的功能单元。CLB由逻辑单元(LC)组成,每个LC包括一个4输入函数生成器(function generator)、进位位(carry bit)和一个存储单元(storage element)组成。每个CLB由4个LC组成,分为两个一样的部分(slice)。另外,CLB还包含用于构成5输入或6输入函数生成器的逻辑,所以当估算一个器件系统门数时每个CLB包含4.5个LC;l 专用BlockRAM:提供大的RAM模块。BlockRAM按列放置,沿垂直边每侧各有一列,共两列。一个BlockRAM有4个CLB高,所以对于一个有8个CLB高的器件,每列2个BlockRAM,两列共有4个BlockRAM。一个BlockRAM有4Kbits,可以用于生成双端口异步FIFO,以便高速DMA传输;l 时钟延迟锁定环(clock delay-locked loop):用于芯片内部时钟的延迟补偿。利用DLL并结合全局时钟输入缓冲,可以减小外部时钟输入和内部时钟信号之间的歪率,每个DLL可以驱动2个全局时钟,另外,DLL还可以对时钟倍频、分频;l 多级互连布线结构:芯片内部的最长路径限制了设计速度的结果,所以布局布线软件优化、减小长路径延迟,从而达到最好的性能。图3 Spartan-II 系列FPGA模块2.3 Xilinx PCI CORE当前许多FPGA厂商都提供一种预定义的接口内核,这种接口内核提供了到PCI总线的标准接口,设计者可以将精力主要集中在用户侧的逻辑上。接口内核还可以根据系统要求进行灵活配置,以节省逻辑资源。接口内核其实是一种和工艺紧密相关的网表,并由相关的约束文件将其关键路径和特定引脚锁定在FPGA中,这样使其具有可预测的时序行为。Xilinx LogiCORE PCI32是一种32位,0-33MHz全兼容PCI规范的接口,设计者可以结合具体的设计要求使用这种预定义内核完成高性能的PCI设计,设计主要在于后端应用部分(BACKEND),而不用将主要精力集中在PCI侧的设计上,因此会大大减少产品的开发周期。LogiCORE主要特性:l 完全兼容PCI2.2 32位、33MHz、Master 和Target接口;l 支持0等待突发模式操作;l 支持用户后端功能可编程解决方法;l 预定义、可预测时序的PCI实现方法;l 支持的Master操作:1. 存储器读、存储器写、存储器多行读、存储器一行读命令;2. I/O读、I/O写;3. 配置读、配置写;4. 总线停靠;5. 特殊周期、中断响应;l 支持的Target操作:1. 0配置类型;2. 3个基址寄存器(可设置为存储器或I/O,可调块大小16Byte-2Gbytes);3. 奇偶校验产生、检错;4. 存储器读、存储器写、存储器多行读、存储器一行读,存储器写无效命令;5. I/O读、I/O写;6. 配置读、配置写;7. 中断响应;8. Target终止、再试、断开;Xilinx芯片满足PCI所要求的电气和时序特性,包括:交流输出驱动、输入电容特性(10pF)、相对于时钟的7ns建立和0ns保持时间以及11ns的时钟到输出有效时间等。另外,Xilinx芯片下述特性可有效利用来实现PCI系统的设计:l BlockRAM存储器块:在片超高速RAM块可用于在PCI接口中实现FIFO,以应用于APC和PCI之间的DMA传输;l 每个端口的独立的输出使能控制;l 内部的三态总线;l 4个低歪率全局时钟驱动网;l 支持IEEE1149.1兼容边界扫描逻辑(BST);LogiCORE分为6个主要模块,见图4:图4 LogiCOREPCI接口模块图l 奇偶校验产生/检测(Parity Generator/Check):产生和检验地址/数据、CBE(控制/字节使能)总线和PAR的偶校验位,数据奇偶错误在PERR信号线上报告,地址错误在SERR上报告。l Target状态机:控制PCI接口的Target功能,控制器是一个one-hot解码的高性能状态机,支持连续的突发传输;l Master状态机:管理PCI接口的Master功能,也是一个one-hot解码的高性能状态机,支持连续的突发传输;l PCI配置空间:提供可配置的64字节0类配置,2.1版配置空间头标(confiiguration space header)支持软件驱动的初始化,配置使用CLB触发器(DFF)和查找表(LUT)结合而用作读写或只读寄存器;l 用户专用配置:允许设计者选择基址寄存器的数目、配置基址寄存器、设置延时计数和设备识别号等参数,从而根据应用要求使内核LogiCORE灵活的用户参数化。2.4 LoagiCORE信号定义LogCORE的接口信号分为PCI侧接口和User Application侧接口,见图5。2.4.1 PCI 接口信号图中symbol的左侧为PCI信号,TARGET和MASTER的LogiCORE PCI接口信号基本一样,引脚位置和器件等特性在约束文件(*.ucf)中都有设置。2.4.2 User Interface 信号User Interface为LogiCORE内部数据通道和状态机的控制提供了信号接口,设计者可以根据设计要求灵活地使用这些信号,用以使User Application模块用户化。在我们的设计中,要求既能通过桥对APC进行寄存器配置,又能将数据在APC和PCI之间DMA传输,因此必须采用既具有MASTER又具有TARGET功能的pci_lc_i LogiCORE。User Interface中的configuration接口CFG255:0,用以对PCI头64字节256bits进行配置;Cycle Control 信号的FRAMEQ_N、IRDYQ_N、TRDYQ_N、STOPQ_N、DEVSELQ_N是PCI上对应的FRAME、TARGET READY、STOP、DEVSEL信号的锁存;地址、数据中的ADDR31:0为锁存的PCI地址,可以用以DMA传输,ADIO31:0是双向的地址数据复用总线,可以结合其他控制信号用以产生User Application中的地址数据非复用总线;TARGET CONTROL用以进行User Application和LogiCORE之间的控制握手,这一部分影响CORE 的TARGET状态机,又影响User Application的对应TARGET操作的状态机;相似地,MASTER CONTROL 是Application和LogiCORE之间的控制握手,这一部分影响CORE 的MASTER状态机,又影响User Application的对应MASTER操作的状态机;MASTER 和TARGET状态机信号输出LogiCORE状态机的状态信息。另外,还有其他的几种接口,其中CSR39:0提供配置头空间和一些附加状态,表示当前总线操作处理的命令/状态寄存器的内容。图5 LogiCORE接口图(左为MASTER,右为TARGET)3、 PCI桥设计结构3.1 PCI桥设计的FPGA原则1) 在进行PCI接口和应用设计前,确定设计的物理结构是非常重要的。一般地,将设计划分为几个模块会有利于设计者分段时序分析,缩短开发时间。图6给出了FPGA设计PCI的一种推荐使用的版面布局,这里设计分为PCI接口、应用逻辑和二者之间的逻辑接口。这样当我们有了PCI LogiCORE后,就可以结合CORE的说明主要设计应用逻辑部分。这种布局也使用了水平长线作为数据通路,而垂直方向作为模块逻辑的设计使用。使用这种长线可以减小布局延迟并提高时序性能,另外,例如:计数器、寄存器、加法器等对象的结构版图可以利用垂直方向的长线,这样可以减小应用设计的逻辑/布线延迟。图6 推荐的FPGA版面布局2) 一个设计良好的LOCAL接口应当是可以方便、准确传送信号以便应用模块快速传送数据。通过组合逻辑直接应用总线信号到应用模块是行不通而且会违犯PCI总线的时序要求。在PCI接口上总线信号被充分驱动,为了满足PCI严格的性能要求,PCI CORE Pipelining所有的数据和控制信号。在应用模块和二者之间的接口部分也应该使用Pipilining技术,从而大大提高数据通道的传送效率和减小每个相应周期的时间延迟,保证PCI设计的可靠性和正确实现。图7是信号Pipeline地示意图,说明了PCI LogiCORE如何实现Pipeline技术。应用设计中尽可能的沿水平长线利用Pipeline技术,可以而减小数据通道的负载。图7 信号Pipeline示意图3) 许多PCI的应用设计要求运行于33MHz,LogiCORE支持XC4000XL、SPARTAN等高速器件,触发器之间现在最多可以应用4层组合逻辑,5层以上或许无法达到PCI33MHz的性能要求。因此,在应用设计中应该注意触发器之间的逻辑层数。4) FPGA中简化时序和提高性能的办法之一就是将信号寄存器化,也就是说将应用设计模块的输入和输出连接到寄存器以便保存,简化时间分析和设计。5) FPGA的的设计中,Xilinx提供了某些常用的可以参数设置的器件,这样可以大大减少开发周期。这种方法就是Core Genertor System,它与原理图、VHDL、VERILOG是兼容的,性能与FPGA的大小无关,而且其具有优化的布局布线。因此,在设计中系统级设计合理后,就可以使用Core Generator,从而既缩短开发周期,又可为后期的布局布线带来一定的优化。3.2 桥完成的主要功能在应用设计之前,设计者需要确定应用设计在PCI上进行的主要几种处理方式。在我们的应用要求中,既有TARGET方式,又有MASTER方式,TARGET方式主要用于PCI总线对APC进行寄存器配置,MASTER方式主要用于APC和PCI之间的DMA传输,另外,桥必须还能完成各种中断请求向PCI侧的传输,其中当然包括APC的中断,同时也需要PCI桥的配置空间,能够灵活地完成PCI的在线配置。1) TARGERT方式:1. 通过桥可以从PCI总线对APC进行寄存器配置,在PCI总线上使用的是PCI的读写周期和命令,数据和地址是复用的。通过桥将数据、地址映射到APC,在APC接口上地址、数据是非复用的,数据总线32位,地址总线4位。因为对APC寄存器配置,因此TARGET方式采用单步Single方式的操作,即每次一个地址只对应一个32位数据的传输,PCI数据是LittleEndia模式,APC数据是BigEndia模式。2. 根据应用模块数据的准备情况可以对PCI上的MASTER提出Retry、Abort和Disconnect各种TARGET的终止。Retry发生在第一个数据周期,但没有数据传输进行,因为Target数据并没有准备好。Abort是在TARGET发生一些系统错误,使得当前从设备无法进行正常的传输,而不得不终止当前操作。Disconnect是在进行了一些数据传输后,TARGET要求断开当前的操作,在断开操作提出后既可以进行有数据传输的断开操作,也可以进行无数据传输的断开操作,后者类似于再试(Retry)。对于大多数的从设备都要求能实现再试功能,而其他终止方式可作为选项。在我们的应用中TARGET方式采用Single操作,因此断开方式不可能发生,我们的TARGET设计采用再试和断开两种终止方式。3. 在APC和PCI之间进行DMA传输时,如果有TARGET的操作,即PCI总线对APC进行寄存器设置,则DMA的操作可以被打断,直到寄存器设置结束后,又可恢复DMA传输的进行。2) MASTER方式:1. 对于APC和PCI总线之间的DMA数据传输,在PCI总线上可以进行突发(Burst)方式进行,在APC接口上采用异步(无同步时钟)方式进行。2. 在APC接口上有APC DMA捕获和APC DMA插入两种操作,当要进行DMA时APC先进行DMA请求,当获得响应后就可以进行数据传输。当APC的DMA捕获和插入同时向桥请求DMA时,我们设定DMA的捕获操作优先于插入操作,即先进行DMA捕获操作,用以保证APC FIFO中的数据及时地被PCI读取,而后进行DMA的插入操作将PCI上的数据写入APC的插入FIFO。3. MASTER方式下,可以处理TARGET终止方式,并记录对应的状态信息位。MASTER对于连续的256次TARGET再试将引起一次TARGET Abort,并记录在PCI的头标空间命令/状态位中,并可通过设置而决定是否引起PCI的中断(MASTER可以因为MASTER Abort或因为检测到TARGET Abort而引发中断)请求。4. MASTER可以产生终止方式,一种是最常见的方式,即住设备已做完要做的事,另一种就是当住设备的GNT#信号无效并且其内部延时计数器已满,从而不得不终止传输,即所谓超时。MASTER的终止在PCI的头标空间命令/状态位中有对应的状态位表示。3) 桥的配置:1. PCI规范中定义了PCI配置空间的组织结构,配置空间已定义容量为256字节并具有特定记录结构或模型的地址空间。该空间又分为头标区和设备有关区两部分。头标区的长度64字节,每个PCI设备都必须支持该区的寄存器。该区中的各个字段用来唯一地识别设备,并使设备能以一般的控制,其余字节因设备而异。LogiCORE提供了和PCI的接口,也为我们的设计提供了支持PCI配置空间的接口,在PCI上可以对桥的基址寄存器、中断寄存器等空间进行设置,从而保证桥能够根据实际的应用设置要求进行工作。2. 在桥的使用过程中,桥本身还需要的一些寄存器用以表示local侧、DMA、中断、状态等PCI配置空间不能记录的信息,因此在我们的设计中将PCI的一部分空间映射为桥本身的寄存器配置空间,以PCI配置空间的基址BAR0作为PCI上的基址寄存器,并以单步(Single)方式访问。3. 在桥作为TARGET方式时需要将PCI上的地址和数据映射到APC侧的LOCAL总线上,因此在桥的内部必须完成总线之间的地址、数据映射。设计中我们使用PCI配置空间的基址BAR1作为PCI侧存储器映射的基地址,在后端应用设计中还提供LOCAL侧的基地址配置寄存器。4. 在桥作为MASTER进行DMA传输时,需要在PCI上的基地址和LOCAL侧的基地址,因此桥必须提供MASTER处理时的PCI基地址和LOCAL基地址寄存器,以便方便的进行两侧总线上数据和地址的存储器映射。4) 中断的传输:1. APC内部产生中断后,输入到PCI桥,如果LOCAL侧的中断是使能的,则桥必须上传中断请求到PCI总线上,同时设置相关的状态信息位,清零LOCAL侧的中断信号就清除中断。2. 在进行DMA捕获或插入结束后,如果DMA中断是使能的,则会在PCI上发出中断请求INT#,并设置相应的中断信息状态位,清零对应的DMA中断控制位可以清除中断。3. 桥作为MASTER时,可以以Abort方式终止当前MASTER的传输,或检测到当前TARGET操作发出的Abort。设计中我们提供了使能位,可以使MASTER将上述两种情况用以产生PCI中断,并设置对应的状态位在PCI的配置头标命令/状态位,清除Abort状态位就清除中断。PCI桥的设计:设计中我们采用功能模块化,这样适合于用VHDL语言来描述各个部分之间的关系,同时又方便地于各个模块在各自的调试和仿真阶段独立进行。PCI桥的设计结构图,见图8。1) 引脚信号定义:1. PCI总线信号:PCI LogiCORE为PCI提供了总线的标准接口信号,包括:地址、数据复用总线AD_IO,命令/字节使能CBE_IO,奇偶校验PAR_IO,帧周期信号FRAM_IO,主、从设备准备信号IRDY_IO、TRDY_IO,停止数据传送信号STOP_IO,设备选择信号DEVSEL_IO,初始化设备选择信号IDSEL_IO,PCI中断请求信号INTA_IO,校验错误信号PERR_IO,系统错误信号SERR_IO,总线请求、响应信号REQ_O、GNT_I,以及复位、时钟信号RST_I、PCLK。2. APC接口信号:APC和桥LOCAL侧的接口是异步的,通过二者之间的控制信号的握手而完成APC和PCI桥之间数据和地址总线的传输。 l MDATA31:0:数据总线32位,双向信号,完成桥和APC之间数据传送;l MADDR3:0:地址总线4位,输出信号,提供APC的直接寄存器地址;l MWEN:写使能控制信号,输出信号,确定桥与APC之间数据的传输方向。MWEN为低表示写周期,MWEN为高表示读周期;l MCSELN:片选APC信号,输出信号,低电平时表示桥对APC读写过程中的下列信号有效:MDATA31:0,MADDR3:0,MWEN,MDIACKN和MDCACKN。l MINTN:APC中断请求信号,输入信号,低电平时表示APC内部产生了中断源;l MRDYN:APC数据准备完成信号,输入信号,平常为三态,电平为低表示APC数据已经可以被桥读取或进行写操作;l MDIREQN:APC DMA插入请求信号,输入信号,由APC驱动,低电平表示APC请求桥对APC DMA插入 FIFO进行写操作;l MDIACKN: 桥对APC DMA插入FIFO请求的响应信号,输出信号,低电平表示桥对APC DMA插入FIFO的请求写操作做出响应;l MDCREQN:APC DMA捕获请求信号,输入信号,由APC驱动,低电平表示APC请求桥对APC DMA 捕获FIFO进行读操作;l MDCACKN: 桥对APC DMA捕获FIFO请求的响应信号,输出信号,低电平表示桥对APC DMA捕获FIFO的请求读操作做出响应;3. 测试信号的引脚定义:在做好FPGA芯片后,还需要硬件测试,另外在实际的应用调试中,有时需要知道:设计中的内部信号是如何变化的,以便在调试碰到问题后寻找相关原因。因此,在我们设计中需要给出芯片设计中一些比较重要的内部信号,用以做为外部的测试引脚。在进行功能仿真和时序仿真中,我们会根据实际情况给出定义重要的测试引脚。定义测试引脚的原则:尽量减少测试引脚的数量,有效合理地利用芯片内部资源,从而减小其对布局布线资源的整体影响;同时,尽量保证通过测试引脚可以检测内部关键信号的变化,一般地,我们对于每个模块的状态机变化都应当有一个测试信号输出。2) PCI桥设计结构图:图8中PCI LogiCORE是PCI总线接口,而另一侧是APC的接口。结构图大致可分为配置模块、TARGET模块和DMA MASTER模块。1. 配置模块:图中Register select Logic,Configure Register,PCI CMD组成了桥的Configure配置模块,将PCI LogiCORE的BAR0配置成256字节的存储器空间用以映射桥的user configure寄存器。该空间的访问只支持单步方式,不支持burst方式的操作。其中大致包括:l LOCAL寄存器:LOCAL BASE ADDRESS, LOCAL BASE RANGE.l DMA0、DMA1 PCI ADDRESS,DMA0、DMA1 LOCAL ADDRESS,DAM0、DMA1 TRANSFER SIZE;l 中断控制、状态位,DMA控制、状态位;l User pin 接口,可用于测试或应用的某个星系状态位传输。2. TARGET模块:REGISTER SELECT LOGIC,PCI CMD,TARGET DATA/ADDR REGISTER ,TARGET TERM LOGIC,TARGET GLUE LOGIC部分组成了TARGET模块。TARGET DATA/ADDR LOGIC用于存储读写的数据,TARGET TERM LOGIC用于产生再试、ABOR两种终止方式。TARGET模块利用一个状态机Target State Controller进行PCI TARGET操作,其又分为READ、WRITE两种操作,对应地,如果有等待时间过长而TARGET没有准备好,则产生TARGET再试终止方式。对于TARGET内部的非正常操作,如:SERR#,PERR#,则产生TARGET ABORT。图8 PCI桥系统结构3. DMA MASTER模块:DMA FIFO,DMA CONTROLLER,MASTER STATE MACHINE和DMA GLUE LOGIC组成DMA MASTER模块。DMA FIFO是异步FIFO,即两端的读写是不同步的,对应地,在DMA FIFO和PCI LogiCORE之间有一个状态机STATE_MACHINE_CORE,处理DMA FIFO和CORE的接口控制、数据传送;在DMA FIFO和APC 的DMA GLUE LOGIC之间也有一个状态机STATE_MACHINE_GLUE,可以进行APC的数据传送、控制信号。APC DMA捕获时,当DMA请求发出后,先产生DMA通道选择(插入),当FIFO中的数据ALMOST FULL无效时,状态机SATAE_MACHINE_GLUE将APC数据读入捕获FIFO中,DMAACK#有效;当FIFO中的数据ALOMOST EMPTY无效时,可触发STATE_MACHINE_CORE,传送数据到PCI总线上。APC DMA插入时,当DMA请求发出后,先产生DMA通道选择(插入),当FIFO中的数据ALMOST FULL无效时,状态机STATE_MACHINE_CORE将PCI数据写入插入FIFO中;当FIFO中的数据ALOMOST EMPTY无效时,可触发STATE_MACHINE_GLUE,传送数据到APC总线上,DMACACKN#有效。4. 中断生成:PCI桥对APC的中断请求APC_INT直接上传到PCI侧。当PCI桥作为MASTER时可以检测到TARGET引起的ABORT,也可以检测到MASTER引发的ABORT,并记录在PCI的命令/状态寄存器中,对于这些ABORT我们可以通过设置决定是否引起中断触发。另外,DMA0、DMA1的传输结束可以通过设置决定是否引发PCI中断请求。3) 各个模块实现方法:1. TARGET模块:TARGET模块主要完成PCI总线对USER CONFIGURE寄存器的读写、对APC寄存器的读写控制和TARGET终止的产生。图9是TARGET和LogiCORE之间的信号连接示意图,USER CONFIGURE REG采用PCI的BAR0作为地址映射寄存器,即:当读写PCI BAR0 图9 TARGET和LogiCORE之间的信号连接示意的数据时,就进行桥的USER CONFIG REG的配置;TARGET的数据、地址寄存器采用PCI BAR1作为地址映射寄存器,即:当读写PCI BAR1的数据时,就进行桥的TARGET读写操作,从而可以进行APC的寄存器读写。图10 是TARGET的状态机,桥作为TARGET时,地址有效后,就根据PCI命令和映射基址决定TARGET的操作,决定是配置桥的寄存器、配置桥的寄存器还是进行PCI的配置空间操作。图10 TARGET的状态机另外,在进行TARGET的操作过程中,还需要根据桥的实际情况做出对应的可终止方式,如:再试(RETRY)、废止(ABORT)。图11 TARGET 终止方式与LogiCORE的信号接口。当TARGET的数据未准备好时,TARGET使S_READY=0,PCI MASTER对桥进行再试访问,当S_READY=0 & STERM=0时LogiCORE在PCI总线上产生STOP#,并终止TARGET操作。TARGET操作过程中,因为桥内部的系统错误而使桥不能继续正常工作,必须ABORT当前的TARGET操作。设计中,当PCI的SERR#、PERR#有效表明当前操作的地址或数据传送有误,必须ABORT该操作;另外,考虑到设计中TARGET的操作只有存储器读写、配置读写,因此其他的PCI COMMAND是错误的,必须给出TARGET ABORT操作。因此,如图11中所示,当SERRQ_N, PERRQ_N或CMD_ERR(USER CONCONFIG REG状态)有效时,必须引发TARGET ABORT操作。图11 TARGET 终止方式与LogiCORE的信号接口2. DMA MASTER模块:该模块主要完成APC和PCI总线之间数据的DMA传送,分为捕获(APC-PCI)和插入(PCI-APC)两个方向的操作,每个方向的操作各有一个异步FIFO对应。因为PCI总线和APC接口之间数据是异步操作的,因此在数据的传送过程中,我们的设计采用了异步FIFO,引脚信号见图12。图12 异步FIFO 在APC的DMA捕获时,FIFO和APC接口之间的DMA GLUE LOGIC 状态机,将数据由APC读入异步捕获FIFO;同时,位于LogiCORE和FIFO之间的DMA MASTER状态机,也将数据送入LogiCORE,最后由LogiCORE的状态机将数据写到PCI总线上。上述三个状态机之间的变化,在某一个时刻是相互独立的,数据是通过捕获FIFO做缓冲的。类似地,在APC的DMA插入时,LogiCORE和FIFO之间的DMA MASTER状态机,将数据由LogiCORE读出, 存入异步插入FIFO;同时,异步插入FIFO和APC接口之间的DMA GLUE LOGIC 状态机,也将数据从异步捕获FIFO取出,DMA MASTER状态机和DMA GLUE LOGIC状态机变化在某个时刻是相互独立的。图13是DMA MASTER状态机变化示意图,图14是DMA GLUE LOGIC状态机变化示意图。图13 DMA MASTER状态机变化图图14 DMA GLUE LOGIC状态机变化3. 中断生成:桥内部必须要有中断请求生成,用以向PCI总线传送APC的中断请求或报告桥内部的一些操作结果和信息,示意图见图15。首先,在进行DMA 结束后,可以由对应的DMA DONE状态位结合配置使能控制位,从而引发对应的中断请求, 见图中的DMA_CAPTURE_DONE、DMA_INSERT_DONE。桥作为MASTER时,可以以MASTER ABORT方式终止PCI操作或检测到TARGET所引起的TARGET ABORT,并设置对应的状态位。对于此两种操作,我们可以通过对寄存器的设置而使能中断请求。同样地,来自APC的中断请求,可以通过寄存器的设置使其有效地传送到PCI总线上。另外,寄存器还提供了一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论