我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:博发彩票 > 多总线 >

PCI总线接口的VHDL设计与验证

归档日期:07-07       文本归类:多总线      文章编辑:爱尚语录

  文章编号:1671—4598{2006)08—1082一03 中图分类号:TP336 文献标识码:B PCI总线接口的VHDL设计与验证 刘道煦1,一,田书林1,王 毅2 (1.电子科技大学自动化工程学院,四川成都610054;2.北京伽略电子系统技术有限公司,北京100081) 摘要:针对PcI/CompactPcI接口电路使用的广泛性,讨论了基于FPGA的从PCI(PCI—slave)接口电路的VHDL设计,提出了 一种新颖实用的PcI系统验证方法,文章从总体设计思路,本地端通信协议的制定,多状态机的设计以及顶层各功能模块等各个角度对 PCI接口的设计方法进行了介绍,并着重讲述了组建测试平台的方法和步骤,仿真的结果以及在实际PCI数据采集卡中的应用表明,该 设计运行可靠,符合PCI协议规范。 关键词:PCI接口;VHDL;多状态机;测试平台;FlexModels VHDL Design and Verification for PCI—Slave Interface Liu Daoxu, Tian Shulin,Wang Yi (Sch001 of Automation Engineering,UEST,Chengdu 610054,China) Abstract:The VHDL design for PCI—slave interface and a new ve rification methodology for PCI system are discussed.The architecture concept,the local side communication protocol,the multiple state machines,the description of top—level function blocks and other consider— ations from different an91es are involved. In addition,the approach to test bench is also emphasized. Function level and gate level simulations are implemented according to PCI Local Bus Specification. The technology and methods adopted in this design are practical. Key words:PCI interface;VHDL;multiple state machines; test bench;FlexModels 0 引言 PCI总线是最优秀的系统总线之一,其接口电路已经 成为各种计算机系统很重要的功能块电路。目前开发PCI接 口大体有两种方式。一是使用专用的PCI接口芯片,可以实现 完整的PcI主控模块或目标模块功能,将复杂的PCI总线接 口转换为相对简单的用户接口,但缺点是用户可能只用到部分 PCI接口功能,而且缺乏灵活性,增加板上的组件,导致产品 成本的增加。二是使用可编程器件,其优点在于灵活的可编程 性,PCI接口可以依据插卡功能进行最优化,而不必实现所有 的PCI功能,而且用户可以将插卡上的其他用户逻辑与PcI 接口逻辑集成在一个芯片上,实现紧凑的系统设计。现在已经 有越来越多的用户使用可编程器件如FPGA、CPLD进行PCI 设备的开发。 笔者已成功用一块商业可编程器件实现了从模式32 bits, 33 MHz的PCI接口功能。本文介绍了用VHDL语言设计该 PcI接口的思路和方法,并着重讲述了一种新颖的PCI系统仿 真验证的方法——利用synopsys公司的SmartModel模型库组 建测试平台来验证PCI设计[4]。 l PCI接口的VHDL设计 1.1总体考虑 如图1所示的总体考虑中,整个设计分为三大块:PcI总 线接口逻辑、本地总线接口逻辑、配置空间及数据存储单元。 数据存储单元包括内部控制寄存器以及作为传输缓存的读写 收稿日期:2005—12一02; 修回日期:2006一01一08。 作者简介:刘道煦(1977一),男,湖北省阳新县人,工学硕士,主要从 事PCI/CompactPcI/PXI测试系统,电子测量仪器等方面的研究。 田书林,男,教授,博士生导师,主要从事现代测试理论与技术,测试 信号获取与处理,电子系统故障诊断与预测等方面的研究。 FIF0;本地接口逻辑包括little/big endian模式转换、本地状 态机及其他控制逻辑;PCI总线接口逻辑包括地址译码、命令 译码、PcI端状态机、数据输出MUx、奇偶校验输出、地址 溢出检查等功能模块。 地址译码模块检查PCI总线上的地址信号是否是本接口 电路的有效地址。命令译码模块检查PCI主设备发起的操作 命令是否是本设备所支持的命令形式。两个异步FIFo作为缓 存装置,将PCI总线端和本地端隔开,这方便了实现Posted Write以及Prefetched Read功能。值得着重提出的是,由于采 用了两个状态机分别控制接口电路两侧,状态机之间的相互协 调和握手通信是本设计所关注的焦点之一。 兰l 1=l|裟蛐 c【m盎蚝 SpB∞ Rc。蛳刚Il R翻d F聃 Wr沁 F聃 1£ l~~l l圳鼬con州嘶l 二一 u圳Bm———二 图1 Intemal Block Diagram 1.2本地端通讯协议 本地端通信协议参考PCI9030的Non—multiplexed模式, 接口信号的定义如表1所示,但协议细节不在此作详细讨论。 对于慢速的本地设备,使用READY—L插入等待状态,在检 测到READY—L有效时,将数据读入本接口内部FIF0,或 写入本地用户设备,每读写一个数据,地址线自动更新。 中华测控网 万方数据 chinamc.net.cn 箜!塑 型望璺:篁!!垡璺垡量里塑∑望里兰望盐量堕适 :!!!!: 表1本地侧通信接口的信号定义 信号名 方向 说明 BPCLK 0 Buffered PCI clock loc龇一clk LRST L ADS L BLAST—L LBE—L[3:O] W RL LA[27;2] LD[31:o] READY—L I 本地时钟输入,与PcI时钟异步 0 LocaIreset,本地复位输出 o Address Strobe,本地一次数据传输开始 0 Burst Last,一次传输的最后一个数据 o Local Bytes Enable 0 O一>Read。1=>Write O Local Address,本地端地址输出 IO Local Data,本地端数据总线 I Local Ready,用户插入等待状态 (I: input;O:output;10:inout) 刊—i阻 剖l~唧J睁 I, ,1 阳侧 本地端 状态机 ll Readsm 状态机 一 .酬hmy ReBd曲d 一 图2状态机握手通信示意图 需要注意的是,字节使能信号LBE—L由PCI总线信号得到,在burst read操作中,LBE—L [3:o]始终为oooo,这是因为burst read操作启动了 prefetched read功能,若要使用pcl—cbe—l来控制本地读 操作,则只能采用单次传输(single read)。另外,由于本 接口不支持LA[1:o]≠oo的地址,故地址译码模块只 支持Linear sequence模式,而不支持Cacheline wrap Mode。在字节使能总线:o]的辅助下,整地 址的规定既大大简化了地址管理,又可以使总线接口有能 力识别所有地址。 1.3 多状态机的握手通信 设计多状态机的关键在于状态机间的握手通信,如图 2所示。 当检测到PCI总线读命令和有效地址时,PCI侧状态 机处于等待挂起状态(trdy—l一1),同时向本地端发出 Rea0~start信号,启动本地读进程,本地逻辑向Read FIF0写入数据。当Read FIFO非空,并经过规定的时钟 周期后,PCI总线开始读Read FIFo数据。写操作与读操 作不一样,当检测到PCI总线写命令和有效地址时,就可 以向W“te FIF0写人数据。当本地侧检测到write FIFo非 空,并经过规定的时钟周期后,启动本地写进程,本地逻辑从 write FIF0读出数据。在读写过程中,若检测到FIF0s满或 空,接口两侧状态机动作如表2所示。 表2 当FIF0写满或读空时两侧状态机的运行情况 传输 传输 模式 方向 PCI侧状态机 本地端状态机 PCI PCI Write FIFo满 disconnect Write FIF0满 正常运行 Write 至本地 Write FIF0空 正常运行 Write FIFo空 退出进程 PCI 本地 Read FIFo满 正常运行 Read FIFo满 退出进程 Read 至PCI Read FIFO空 dtsconnect Read FIFo空 正常运行 在读操作时,如果打开Prefetched Read计数器,计数满 时,本地就状态机退出进程。当本地读进程正在运行时,若检 测到PCI总线要求结束此次读操作(ReaQ—End一1),无论是 否打开Prefetched Read计数器,或是否计数已满,均退出本 次进程。若本地端的前一次进程还未结束(Local—Busy一1), 就检测到新的PCI总线读写命令和有效地址,则向PCI总线状态机的设计 本文使用的多状态机控制和电路隔离技术是非常有用的设 计方法。当电路过于庞大,状态机过于复杂时,使用数据缓存 区将电路合理地隔离成若干相对独立的功能区,从而使用不同 的状态机控制不同的功能区可以使电路的工作效率得以提高, 这对接口型电路尤其适用。本文使用两个异步FIF0将接口的 两个侧面相对隔离,实现了多状态机控制。PCI侧与本地侧分 别使用独立的状态机,PCI端状态机(图3)产生PCI总线时 序,本地端状态机(图4)产生用户总线时序。为了简明,没 有画出各状态在自身停留的转移过程。 PCI侧状态机的设计严格遵循PCI协议规范要求。devsel—l 的响应速度为medium,即检测到有效地址后的下一个时钟输 出。从图中可看出,状态机由两个部分组成,一是配置读写, 二是对内部控制寄存器和本地用户设备的读写。配置读写以及 内部控制寄存器的读写不支持突发传输,而本地设备的读写支 图3 PCI侧状态机 持单次传输和突发传输。一次配置读写的状态转化过程为idlp con—wait—con-wait2一con—backoff—idle,一次单次传输的基本 状态转化过程为idle—rw一Ⅵ阻it—rw—wait2一single_m—backoff— idle,一次突发传输的基本状态转化过程为idle—rw一、Ⅳait一州一 、vait2÷bursLnⅣ+backoff十idle。本设计支持的transaction ternli— nation方式有abort,retry,disconnecL谢th.data,disconnecL谢thout —data。在突发传输过程中,并没有插入等待状态,这是因为在 读操作时,只要Read FIFD未读空,或在写操作时,只要Write FIFO未写满,trdy一1信号一直输出低电平,否则,向PCI总线 发出disconnect。另外,在突发传输过程中,如果地址溢出检查 模块发现PCI地址信号试图超出配置时规定的范围,也向PcI 万方数据 中华测控网 dhinamc.net.cn :!!!!: 盐篁垫型量量堡型 笙!!鲞 fX等一系列组件。synopsys smartModel模型库提供 了这些模型,并通过SwIFT接口与硬件仿真器相 连,该接口被集成于30多种商业仿真器,包括Syn— opsys的VCS和Scirocco,Cadence的Verilog—XL和 Mentor Grapics的QuickSim II和ModelSimL 5|。 本文利用PCI/PCI—x Fle)【^∞dels模型组建测试平 台,从而实现一个虚拟的PCI系统,将自己的设计放入 这个虚拟的PCI系统中进行仿线所示。设计者 不用关心每一个FlexM0del是怎样实现PcI总线的行为 的,而只需编写命令语句(Co肼mnd stream)或者控制 文件(Control file)来控制这些模型,产生所需要的PcI 总线时序。在仿真时,如果待测试的模块有不符合PCI 协议的地方,测试平台会自动进行检测并给出警告信 图4本地端状态机 息。Sn豫rtModel库推荐的测试平台最小配置包含两个 勰篙烈。。L‘随…啦l+ PCI syst鼬·1weltestbench C orvcfa Con仃ol行le ● ● 芑2基。::2潜。。。I_—一I rm—s·we—fx 卜 C orven C皿订olmo 器:黜‘盎。。L_—一I h1.m“‘‘吡段I— —C 0r vcfa C∞自mlfno PIIll—ups Pci clk IDSELmakcr Rcsct&SigⅡal initi“iza60n Bus自阻ce output矗le pci—rmster—fx,两个pci—slave—fx,一个pci—H10nitor —fx,这其中包括设计者自己开发的待测试模块。 在图5所示的测试平台结构中,Design Under Test为本文的设计。在这里,笔者使用HDL com— mand stream方式将命令语句直接写在测试平台的 VHDL程序中,控制FlexModels的运行,从而对待 测试的模块执行配置,读写等一系列操作。Com— mand stream实际是一些过程(procedure)的调用, 这些过程已经存在于相应的库文件中,用户只需按照 测试的需要加入适当的参数即可。例如,为了验证本 图5 PCI/PCI—X FlexModels in a System 1bstbench(high—level试ew) 设计内部控制寄存器的读写操作不支持突发传输,命 令语句如下,图6为布局布线后的Modelsim门级仿 总线发出disconnect。 本地状态机相对要简单些,如图4,包含4个操作类型: 单次读,单次写,突发读,突发写。他们相对应的状态转化过 程分别为:idle—read—start—reaQ—last—backoff—idle;idle— w“te—start—’write~last—}backoff—}idle;idle—}read—start—卜read— burst·read.1ast斗backoff÷idle;idle斗write—start斗write-burst —write_last—backoff—idle。状态机在reaQ—start或w“te— start状态使ADS~L低电平,开始本地读写;在read一1ast或 write—last状态使BLAST—L低电平,结束本地读写。 受篇幅限制,对其他功能模块以及VHDL源代码本文不 真结果。 nex—print—msg(id一10,”PM:burst write to Internal Control Reg is not supported”, status); flex—print—msg(id一10,”PM:irdy—l is delayed 3 pclks”, status);pcimaster—write—cycle(id一10,PCIMASTER—MEM— WRITE,X”OOO00000”,1,X”OO”,X”6”,3, FLEX—FALSE,FLEX—WAIT—F,status); Dcimaster w“te continue (id 10, X” OO”, X” 6”,4,FLEX—WAIT—F,status); 其他传输过程的仿真跟此类似,亦能很方便的写出相应的 Command stream。 作详细介绍。 2 测试平台 耋_一~ ~ ~ ~ 对于用VHDI。进行PCI接口的设计,设 计的仿真验证是最为关键的。编写测试平台 (TestBench)是进行行为级仿真(Functional Simulation)和门级仿真(Gate level Simula— tion)必不可少的步骤。但由于PcI时序复 杂的原因,编写PCI系统的测试平台比较困 难,而且很难兼顾到PCI协议的各个细节, 这就导致了模拟仿真的结果与PCI协议规范 有较大出入。 Synopsys PCI/PCI—X FlexModels是一 组行为级仿真模型,可以根据用户的需要配 图6 内部控制寄存器的读写不支持突发传输 /tb%d,口clk lO —]jⅥr]r]r]r]r]r]厂 ,tb髓ch,ad FFFF耶FF000∞1 ,tb口ch,p阻 ll /岫ch,p“be∞l m{}珊1100 ^bcncb,—hIⅡe删0 lpFFFFFFup■t1L^FFFt巾prH砌【x置腑l 】F同帮FY日邛冒FW匍陬冒用弗n1啊 珏ⅡⅡⅡⅡ丑Ⅱ珊L珏Ⅱ噩删呻廿IHHH¨*■I 1HHHHllII丌i 越∞ch国两y∞jo r——~ /tbt加d—pk谓dI删0 /tbcncll,phdy皿I O /tbc卿cb/芦‘op皿|l 置成PCI模型或PCI—x模型,包括pcl一 master—fx, pci—slave—fx, pci—monitor一 图7对本地用户设备的突发写操作 (下转第1105页) 中华测控网 万方数据 (-hinamc.neI.cn 第8期 刘雪飘,等:足球机器人动态路径规划方法研究 ·1105· ①避障窗口内没有障碍物,机器人直接朝目标点前迸。 ②避障窗口内有障碍物,且机器人在障碍物的预测区域 外,调用切线法。 ③避障窗口内有障碍物,且机器人在障碍物的预测区域 内,调用滚动窗口法。 步骤4:返回步骤l 3 仿真 在足球机器人的比赛中,在未使用路径规划算法的情况 下,各种仿真平台下机器人与障碍物的碰撞差异很大,如基于 集控式的比赛平台(如仿线、Mirosotllvsll), 机器人之间的碰撞是频繁发生的,基于分布式的比赛平台下机 器人之间的碰撞相对少一些,如在robocup3d仿真平台下,机 器人之间的碰撞就相对少得多,但也与双方的策略有很大关 系,如果比赛时机器人在球场上的位置比较集中,则互相之间 发生碰撞的可能性也是很大的,在使用路径规划算法的情况 下,机器人之间互相碰撞的次数能大幅度减小,下面分别用切 线法、滚动窗口法、本文提出的方法运用到比赛策略中,通过 使用了路径规划算法的NwPu队与ATH一3D队进行比赛, 统计我方机器人与障碍物(己方机器人或对方机器人)的碰撞 次数,路径规划算法主要运用在MovePositon()函数中, MovePositon()函数的功能是从当前位置移动到目标点,在 前进过程中不涉及踢球动作,由于比赛具有随机性,每个策略 共进行10场比赛,统计其平均值,如表1所示。 表1几种路径规划方法的比较 算法 无路径规划 切线法 滚动窗口法 本文算法 与己方机器人 的碰撞次数 6.1 2.6 2.4 0.6 与对方机器 人的碰撞次数 21 8.7 7.1 5.4 比分 NWPU:ATH一3D 1.2;1.3 1.7:1.8 1.8:1.6 2.1:1.8 从比赛的结果可以看出:切线法和滚动窗口法都是可行的 避障方法,如果结合切线法和滚动窗口法的优点则更能减少机 器人与障碍物的碰撞,特别是减少了己方机器人碰撞在一起的 情况,对于与对方机器人碰撞的情况,由于对方机器人可能也 会对我方机器人的运动情况进行预测,从而根据我方机器人的 位置进行调整,所以要避开对方机器人相对困难一些。从比分 上看,运用路径规划以后,我方明显的处于优势。 4 结论 从2005年中国机器人足球大赛的效果来看,运用本文提 出的动态路径规划算法以后,在很大程度上减少了由于互相碰 撞而出现僵持的局面,提高了比赛的流畅性和可观赏性。由于 对障碍物的预测是基于概率统计的,相对于只考虑机器人最大 速度而不考虑方向的预测方法,运用概率统计的方法能减小障 碍物的预测区域,避障的路径比较短,虽然有时候避障也会失 败,但在足球机器人比赛中,首先考虑的是机器人的快速性, 偶尔的碰撞也是可以接受的,由于比赛中双方机器人的位置变 化很快,本文的路径规划算法只考虑机器人周围的障碍物的情 况,算法的计算量小,所以本文的路径规划算法在足球机器人 比赛中是比较有实用价值的。 参考文献: [1]Taylor c J,K riegman D J.Vision—based motion planning and ex— ploration algo“thms for mobile robots[J]. IEEE Trans. Robotics and Automation,1998,14(3):417~426. 厂2]Simmon R.The curvature—velocitv method for local obstacle avoid— ance[A]. Proc.IEEE Int.Conf.Robotics and Automation[c]. USA:Minneapolis,MN,1996.2275—2282. [3]席裕庚,张纯刚.一类动态不确定环境下机器人的滚动路径规划 [J].自动化学报,2002,28(2):1~14. [4]席裕庚.动态不确定环境下广义控制问题的预测控制[J].控制 理论与应用,2000,17(5):665—670. [5]张成钢,孙茂相.移动机器人在障碍物具有不确定性时的运动规 划[J].机器人,2003,25(3):278—281. [6]钟碧良,张祺,杨宜民.基于遇障速度法足球机器人的路径规划 [J]f高技术通讯,2003:56 60 (上接1084页) 又如,为了验证对本地用户设备的突发传输功能,命令语 句如下,图7为ModelSim门级仿真结果。 flex-prim—msg(id.10,”PM:burst write to Write FIFO”,status); pcimaster-write—cycle(id一10,PCIMASTER—MEM—WRITE,X” 00001000”,4,X”OC”,X”OO141”,O, FI.EX—FALSE,FLEX—WAIT—F,status); pcimasteLwrite—continue(id一10,X”08”,X”OOOOOO000000042l”,O, FLEX—WAIT二F,status); pcimaster-w“te_continue(id-10,X”08”,X”0”,O, FLEX—WAIT—F,status); pcimasteLwrite_continue(id_10,X“OC”,X”4”,O, FLEX—WAIT—F,status); 3 结束语 PcI总线协议抽象性很强,时序逻辑复杂,不利于直接进 行硬件设计,而利用VHDL等硬件描述语言则是非常合适的。 万方数据 本文讨论PcI从设备的VHDL设计方法。多状态机控制,通 信协议的制定,顶层结构的总体考虑,数据缓存,整地址操作 等设计概念,方法和技巧,都在一块FPGA芯片上实现了。 文中还讨论了利用PcI/PCI—X FlexModels组建测试平台的方 法,并很方便地对本设计进行了全面的仿真验证。 参考文献: [1]PcI special Interest Group,PcI Local Bus specification,Revisi。n 2.3[s].2001. [2]李贵山,陈金鹏.PcI局部总线及其应用[M].西安:西安电子 科技大学出版社,2003. [3]shanIey T,Anderson D.PcI system Architecture(Pc system Ar— chitecture series)[M]. Addison—wesley Pub co,1996. [4]synopsys Inc,simulator configuration Guide for synopsys Models 厂Z].2001. [5]synopsys Inc,PcI/PcI—x FIexModeI user’ s ManuaI[z]. 2001. 中华测控网 chinalllc.net.cn PCI总线接口的VHDL设计与验证 作者: 作者单位: 刊名: 英文刊名: 年,卷(期): 被引用次数: 刘道煦, 田书林, 王毅, Liu Daoxu, Tian Shulin, Wang Yi 刘道煦,Liu Daoxu(电子科技大学,自动化工程学院,四川,成都,610054;北京伽略电子系统技 术有限公司,北京,100081), 田书林,Tian Shulin(电子科技大学,自动化工程学院,四川,成 都,610054), 王毅,Wang Yi(北京伽略电子系统技术有限公司,北京,100081) 计算机测量与控制 COMPUTER MEASUREMENT & CONTROL 2006,14(8) 3次 参考文献(5条) 1.Synopsys Inc PCI/PCI-X FlexModel Users Manual 2001 2.Synopsys Inc Simulator Configuration Guide for Synopsys Models 2001 3.Shanley T;Anderson D PCI System Architecture (PC System Architecture Series) 1996 4.李贵山;陈金鹏 PCI局部总线.PCI Special Interest Group PCI Local Bus Specification 2001 引证文献(3条) 1.胡伟.慕德俊.刘航.李美峰 嵌入式ATA主机控制器IP核设计[期刊论文]-计算机测量与控制 2009(1) 2.周戌申.张小林.姜大力.李华旺 星载计算机软硬件协同验证技术的研究[期刊论文]-计算机测量与控制 2008(12) 3.马捷中.高辉.丁楠 某仿真系统总线接口的设计[期刊论文]-计算机测量与控制 2008(10) 本文链接:

本文链接:http://dixiebandcamp.net/duozongxian/805.html