基于FPGA的PCI总线接口设计.doc_第1页
基于FPGA的PCI总线接口设计.doc_第2页
基于FPGA的PCI总线接口设计.doc_第3页
基于FPGA的PCI总线接口设计.doc_第4页
基于FPGA的PCI总线接口设计.doc_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

xx学院 毕业设计(论文)题目名称: 基于FPGA的PCI总线接口设计 学生姓名: xxx 系 (部): 信 息 系 专业班级: 自动化xx班 指导教师: xx 辅导教师: xx 时 间: xx目录毕业设计(论文)任务书毕业设计(论文)开题报告毕业设计(论文)指导教师审查意见毕业设计(论文)评阅教师评语毕业设计(论文)答辩会议记录中文摘要英文摘要1 绪论11.1课题研究的目的与意义11.2 PCI发展的历史及现状22 FPGA技术概述52.1 FPGA简介52.2 FPGA设计流程52.3 VHDL测试平台简介83 PCI总线技术研究103.1计算机系统结构103.2 PCI总线概述113.3 PCI总线控制器的实现164 PCI总线接口模块214.1 PCI设备的配置空间234.2 内部寄存器组254.3 地址译码模块:294.4 奇偶校验304.5设计的仿真验证介绍315 PCI总线接口的简化设计335.1 PCI总线信号定义335.2 PCI总线配置空间的实现345.3 配置空间读写操作仿真355.4 从模式下的目标状态机设计365.5 存储器单周期读写操作仿真375.6 PCI系统的仿真386 总结40参考文献41致谢42xx大学毕业设计(论文)任务书学院(系) 信息系 专业 自动化 班级 xx 学生姓名 xxx 指导教师/职称 xx 1. 毕业设计(论文)题目:基于FPGA的PCI总线接口设计2. 毕业设计(论文)起止时间:200 年 月 日200 年 月 日3毕业设计(论文)所需资料及原始数据(指导教师选定部分)1)Advanced FPGA Design Architecture, Implementation,and Optimization,Steve Kilts Spectrum Design Solutions Minneapolis, Minnesota,The Institute of Electrical and Electronics Engineers, Inc., New York2)FPGA嵌入式系统设计,孟宪元等,电子工业出版社,2007年3)VHDL教程(原书第3版) (美)巴斯克尔,机械工业,20064)CNKI上关于FPGA实现PCI接口设计的论文4毕业设计(论文)应完成的主要内容1)熟悉进行FPGA开发的过程;2)掌握PCI总线的结构、原理、时序和相关的协议;3)用FPGA设计PCI总线接口,并将PCI总线的时序、协议用VHDL或者Verilog HDL实现;4)对PCI所设计结果进行仿真测试。5毕业设计(论文)的目标及具体要求目标及要求1)熟悉VHDL语言或者Verilog HDL语言的语法,会用它进行FPGA的开发;2)熟悉altera FPGA开发环境MaxPlus或者Quartus 6的使用方法;3)熟悉PCI总线的接口和相关协议;4)熟悉如何利用仿真工具,对自己所做的设计进行正确性验证;5)能从毕业设计中锻炼自己的分析问题,提出方案,进行实施的能力。6、完成毕业设计(论文)所需的条件及上机时数要求所需条件:计算机,Internet, MaxPlus开发环境或者Quartus 6机时:200任务书批准日期 年 月 日 教研室(系)主任(签字) 任务书下达日期 年 月 日 指导教师(签字) 完成任务日期 年 月 日 学生(签名) XX 大 学xx学院毕业设计(论文)开题报告题 目 名 称 基于FPGA的PCI总线设计 题 目 类 别 毕业设计 系 (部) 信 息 系 专 业 班 级 自动化xx 学 生 姓 名 xx 指 导 教 师 xx 辅 导 教 师 xx 开题报告日期 xx 一、题目来源科研真题生产实际实验室建设其它二、研究目的和意义总线是计算机系统中广泛采用的一种技术,任何一个处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路设计和系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这样的共用连接线路被称为总线。微型计算机系统中广泛采用总线结构,其优点是系统成本低、组态灵活、维修方便。采用总线标准设计、生产的硬件模块兼容性强,并通过系统总线可以方便的组合在一起,以构成满足不同需要的微机系统。PCI 局部总线不仅是目前最新的计算机总线, 而且是一种兼容性最强、功能最全的计算机总线。它可同时支持多组外围设备, 而且不受制于处理器, 为CPU 及高速外围设备提供高性能、高吞吐量的数据通路。PCI 总线是一种高速同步总线, 具有32bit 总线宽度, 工作频率是33MHz, 同时也支持64 位总线宽度, 66MHz 的工作频率, 最大传输速率达528Mbyte/s, 远远大于ISA 总线5Mbyte/s 的速率。另外, PCI 总线对PCI 扩展卡及组件能够自动配置, 实现设备的即插即用, 而且还具有低随机访问延迟、处理器/内存子系统能力完全一致等优点。这些优点都是其它总线所不能及的, 因此PCI 总线被计算机界公认为最具高瞻远瞩和发展潜力的局部总线标准。随着图形用户界面(GUI) 、高清晰度电视(HDTV) 、三维视频多媒体显示等新技术的发展以及高速通讯系统的广泛需求,PCI 总线具有越来越广阔的应用前景。针对这种趋势, 国外许多芯片厂家设计生产了各种各样的PCI 专用集成电路, 可以实现完整的PCI 接口功能, 将复杂的PCI 总线接口转换为相对简单的用户接口, 缩短了开发周期。但是这样设计的缺点是用户可能只用到部分PCI 接口功能, 造成了一定的逻辑资源浪费,而且专用集成电路也缺乏灵活性, 很可能增加电路板上的组件, 导致产品成本的增加和可靠性的降低。目前开发PCI 接口大体有两种方式。一是使用专用的PCI 接口芯片, 可以实现完整的PCI 主控模块或目标模块功能, 将复杂的PCI 总线接口转换为相对简单的用户接口, 但缺点是用户可能只用到部分PCI 接口功能, 而且缺乏灵活性, 增加板上的组件, 导致产品成本的增加。二是使用可编程器件, 其优点在于灵活的可编程性, PCI 接口可以依据插卡功能进行最优化, 而不必实现所有的PCI 功能, 而且用户可以将插卡上的其他用户逻辑与PCI接口逻辑集成在一个芯片上, 实现紧凑的系统设计。现在已经有越来越多的用户使用可编程器件如FPGA、CPLD 进行PCI设备的开发。随着FPGA(现场可编程门阵列)技术的快速发展,很多制造厂商都开始供PCI接口核逻辑(IP core),设计者可以将PCI用户逻辑和PCI核逻辑集成到FPGA里面,并且可以在顶层通过仿真来验证PCI接口以及用户逻辑设计的正确与否,这样较之使用那些PCI专用接口芯片,使用IP core就可以大幅度的提高调试度,缩短开发周期,提高电路板的集成度和系统的性能。 三、阅读的主要参考文献及资料名称1)Advanced FPGA Design Architecture, Implementation, and Optimization,Steve Kilts Spectrum Design Solutions Minneapolis, Minnesota,The Institute of Electrical and Electronics Engineers, Inc., New York2)FPGA嵌入式系统设计,孟宪元等,电子工业出版社,2007年3)VHDL教程(原书第3版) (美)巴斯克尔,机械工业,20064)曾家智,向世清.微型计算机系统与接口. 成都电子科大出版社四、国内外现状和发展趋势与研究的主攻方向PC工总线作为一种同步的独立于处理器的高性能局部总线,是目前技术成熟的总线中速度最快,性能最稳定的,最能充分利用系统资源的总线形式,已广泛用于PC、工作站及其他许多封闭式和开放式系统,PCI芯片的市场需求将是十分巨大的。针对这种趋势,国外许多芯片厂家设计生产了各种各样的PC工专用接口芯片。但是这些专用芯片功能繁杂、不能灵活配置、不利于系统的升级优化。为此,各大FP以厂商纷纷推出基于各自可编程逻辑器件结构与工艺的PCI的IP(Intellectual Property,知识产权)模块(软核、固核或硬核)。Intel于1996年7月正式推出了AGP(加速图形接口,Accelerated Graphics Port)接口,这是显示卡专用的局部总线,是基于PCI2.1版规范并进行扩充修改而成,工作频率为66MHz,IX模式下带宽为266MB/S,是PCI总线的两倍。来依次又推出了AGPZX、AGP4X,现在则是AGPSX,传输速度达到了2.IGB/S。国内目前有许多的工控计算机开发厂商,他们现在也都在开发PCI总线的设备,同时PCI总线设备也是今后开发的方向和重点。所以PCI总线的设备前景很好,当然PCI总线控制芯片作为此类设备的核心,市场需求将会很大。目前国内系统厂家的PCI总线接口绝大部分采用国外的PC工专用芯片,如TUNDRA公司的Ospan、PLX公司9054和9052、INTEL公司的21554等。目前国内也有自主开发的PCI接口芯片但很少,例如南京沁恒公司的 CH365,而具有自主知识产权的PCI总线接口IP核几乎没有。五、主要研究内容、需重点研究的关键问题及解决思路本设计采用FPGA开发和编程工具对PCI总线接口进行设计,FPGA设计流程是指利用FPGA开发和编程工具,采用可编程逻辑器件实现待设计芯片的过程,完FPGA设计流程包括电路设计与输入、功能仿真、综合、综合后仿真、实现线后仿真与验证、板级仿真验证与调试等主要步骤。主要研究内容:PCI总线,由于其优异的性能被广泛应用于数据采集和控制系统,相对于专用的PCI接口芯片来说,用FPGA设计PCI接口显得更加自由灵活.为在FPGA上实现简化的PCI接口控制器采用模块设计的方法,将PCI接口逻辑分成四个模块,研究状态机模块的设计,研究PCI总线优于ISA总线部分: (l)独立于处理器。(2)低功耗。(3) 高传输速度。32位PCI总线在读写传送中支持每秒132MB的峰值传送速率,对于64位PCI传送支持每秒264MB峰值传送速率。对于64位66MHz PCI总线,传送速率可达到每秒528MB ISA总线的传送速率每秒只有20MB左右。(4)地址自动配置。配置寄存器的全位级别规范,支持自动的设备检验与配置PCI设备的内存和I/O地址是由软件在系统启动时自动配置的,不需要像ISA总线那样手动设置。解决思路:PCI总线的实现方法一般有3种:(1)ASIC上带有PCI总线接口,有些专用集成电路上带有PCI接口,使用起来非常方便,但是带PCI接口的专用集成电路非常有限。(2)采用市场上一些专用的PCI接口芯片。(3)用现场可编程逻辑门阵列FPGA实现。基于模块化的设计是 CPLD/ FPGA 设计经常采用的方法.官方的 IP 核也多采用这种方法,本论文设计思路从PCI接口包含的几个模块:配置模块,状态机模块,地址命令译码模块,奇偶校验模块示意图如下:PCI总线奇偶校验器地址译码模块目标状态机配置寄存器本地总线parPCI地址PCI控制信号PCI数据地址信号目标地址本地控制及数据/地址信号PCI总线接口模块六、完成毕业设计(论文)所必须具备的工作条件(如工具书、计算机辅助设计、某类市场调研、实验设备和实验环境条件等)及解决的办法实验设备:开发板一块开发工具:VHDL开发软件七、工作的主要阶段、进度与时间安排9月11日-9月20日 收集整理资料,构思设计的思路和方法,完成开题报告;9月21日-10月15日 拟定设计方案,进行硬件设计;10月16日-11月30日熟悉编程环境,进行软件设计;12月1日-12月10日 系统调试,修改错误和缺点,优化设计方案;12月15日-1月7日 写毕业论文和论文答辩八、指导教师审查意见xx大学xx学院毕业论文(设计)答辩记录及成绩评定学生姓名专业班级毕业论文(设计)题目答辩时间 年 月 日 时答辩地点一、答辩小组组成答辩小组组长:成 员:二、答辩记录摘要答辩小组提问(分条摘要列举)学生回答情况评判三、答辩小组对学生答辩成绩的评定(百分制):_分 毕业论文(设计)最终成绩评定(依据指导教师评分、评阅教师评分、答辩小组评分和学校关于毕业论文(设计)评分的相关规定)等级(五级制):_答辩小组组长(签名) : 秘书(签名): 年 月 日系答辩委员会主任(签名): 系 (盖章)xx大学xx学院毕业论文(设计)指导教师评审意见学生姓名专业班级毕业论文(设计)题目指导教师职 称评审日期评审参考内容:毕业论文(设计)的研究内容、研究方法及研究结果,难度及工作量,质量和水平,存在的主要问题与不足。学生的学习态度和组织纪律,学生掌握基础和专业知识的情况,解决实际问题的能力,毕业论文(设计)是否完成规定任务,达到了学士学位论文的水平,是否同意参加答辩。评审意见: 指导教师签名: 评定成绩(百分制):_分xx大学xx学院毕业论文(设计)评阅教师评阅意见学生姓名专业班级毕业论文(设计)题目评阅教师职 称评阅日期评阅参考内容:毕业论文(设计)的研究内容、研究方法及研究结果,难度及工作量,质量和水平,存在的主要问题与不足。学生掌握基础和专业知识的情况,解决实际问题的能力,毕业论文(设计)是否完成规定任务,达到了学士学位论文的水平,是否同意参加答辩。评语:评阅教师签名: 评定成绩(百分制):_分基于FPGA的PCI总线接口设计 学 生:xx xx大学xx学院指导老师: xx xx大学电信学院中文摘要摘要 PCI(Peripheral Component Interconnect)局部总线是微型计算机中处理器/存储器与外围控制部件、扩展卡之间的互连接口。PCI局部总线由于其速度快、可靠性高、成本低、兼容性好等特点,在各种计算机总线标准中占主导位置,采用基于PCI标准的接口设计已经成为相关项目开发中的优先选择。随着FPGA(现场可编程门阵列)技术的快速发展,很多制造厂商都开始供PCI接口核逻辑(IP core),将PCI用户逻辑和PCI核逻辑集成到FPGA里面,并且可以在顶层通过仿真来验证PCI接口以及用户逻辑设计的正确与否,这样较之使用那些PCI专用接口芯片,使用IP core就可以大幅度的提高调试度,缩短开发周期,提高电路板的集成度和系统的性能。本文简单介绍了FPGA芯片组和FPGA的设计流程。重点阐述了PCI总线的原理,对PCI总线协议及总线操作做了较为细致的分析和理解。在熟悉PCI总线协议的基础上,研究了PCI总线从接口,对PCI总线从接口IP核进行功能分析和结构分析,实现了PCI总线从接口IP核的整体设计和部分功能子模块的设计,并进行了仿真验证。与采用PCI专用芯片来实现PCI总线从接口相比,本论文采用FPGA设计的PCI总线从接口IP核具有灵活性,同时PCI总线本身又具有广泛的应用,这都使得本论文的研究具有一定的理论价值和重要的应用意义。关键词 PCI总线 FPGA PCI接口 IP核;Design of PCI Bus Interface Based on FPGAStudent: YanBingyu Technology & Engineering of Yangtze UniversityInstructor: XiaZhenhua Electronic of Yangtze UniversityAbstract PCI Local Bus is intended for use as an interconnect mechanism between highly integrated peripheral controller components, peripheral add-in boards, and processor/memory systems. The processing speed of CPU has become higher and higher , and the capability of the extern memory has been increasingly greater. As a result, the higher performance of computer bus has been demanded. Because of higher speed, better reliability, lower cost and more excellent compatibility, PCI Local Bus has taken up the leading position at various PCI bus protocols. It is the first choice to adopt PCI Local Bus in the development of relative projects.With the fast development of the Field Programmable Gate Arrays(FPGA),the PCI IP core has been offered by a great many manufactories, and then the engineers can integrate the users logic and PCI IP core into the FPGA chip, thus the simulations and the verifications of the user logic can be done in the top level. So the engineers can develop PCI productions with using IP core much faster than using special chip of PCI interface, and also can shorten debug periods, highly advance the integration of the PCB board.The text makes a brief account of the FPGA chips and FPGA design flow. It focuses on the principles of the PCI bus on the PCI bus protocol and bus operator which has done a more detailed analysis and understanding. It researches the PCI bus interface and the PCI bus from the interface IP core for functional analysis and structural analysis based on the familiar of PCI bus protocol. So that the PCI buses interface IP from the nuclear part of the overall design and function of sub-modules come to realize. Then it carried out a simulation.In comparison with PCI bus controller implemented in special purpose PCI chips,this design has some flexible properties. Due to these two features, together with the extensive applications of PCI bus,the Working results of this thesis have certain meanings both in theoretical investigation and in practical application.Key words PCI Bus; FPGA; PCI interface; IP kernel;致谢基于FPGA的PCI总线接口设计1 绪论PCI(peripheral Component Interconnect) 总线接口的实现方法主要有以下两种:(1)单独的PCI接口芯片;(2)基于CPLD(Complex Programmable Logical Device)或FPGA(Field Programmable Gate Array)设计PCI接口。1.1课题研究的目的与意义总线是计算机系统中广泛采用的一种技术,任何一个处理器都要与一定数量部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路设计和系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这样的共用连接线路被称为总线。微型计算机系统中广泛采用总线结构,其优点是系统成本低、组态灵活、维修方便。采用总线标准设计、生产的硬件模块兼容性强,并通过系统总线可以方便的组合在一起,以构成满足不同需要的微机系统。计算机总线技术包括通道控制功能、使用方法、仲裁方法和传输方式等。任何系统的研制和外围模块的开发,都必须服从一定的总线规范,总线的结构不同,性能差别很大。计算机总线的主要职能是负责计算机各模块间的信息传输,因此,对总线性能的衡量,也是围绕着这一职能而定义、测试和比较的,总线的传输率是其性能的主要技术指标。另外,总线的可操作性、兼容性和性能价格比,也是很重要的技术特征。随着计算机技术的不断发展,微型计算机的体系结构发生了显著的变化。如CPU运行速度的提高,多处理器结构的出现,高速缓冲存储器的广泛采用等,都要求有高速的总线来传输数据,从而出现了多总线结构。多总线结构是指CPU与存储器、I/O等设备之间有两种以上的总线,这样可以将慢速的设备和快速的设备挂在不同的总线上,减少总线竞争现象,使系统的效率大大提高。在多总线结构中,局部总线(Local Bus)1的发展最令人瞩目。局部总线是指来自处理器的延伸线路,与处理器同步操作。外部设备如果直接挂到局部总线上,就能以CPU的速度运行。由于局部总线具有极高的数据传输率,因此在CPU与高速缓冲存储器(Cache)、CPU与高速图形卡等需要高速传输信息的场合得到了广泛的应用。PCI总线是先进的高性能局部总线,在结构上,PCI总线采用数据/地址总线合一的复用结构、32/64位可选总线带宽、具有多处理器功能却又独立于处理器,以及与其他类型总线联合工作的结构扩展功能;在电气指标上,PCI总线采用33/66MHZ可选主频、5.0/3.3v可选电压;在通讯协议上,PCI总线采用猝发数据传输(Burst)为缺省模式。具有这么多高端性能的总线无疑在众多总线中具有压倒性的优势,成为PC机局部总线的首选。从应用角度看,PCI总线是构建微计算机系统的基础,也是嵌入式计算统和工业控制计算机系统与微机系统互联的重要实现方式,研究PCI总线规其实现具有重要的理论和应用意义。于是PCI总线接口电路的设计方法就必为从事超大规模集成电路设计工作的机构所面临的挑战性课题。1.2 PCI发展的历史及现状2PCI的含义为周边设备互连(Peripheral Component Interconnect),是一种高带宽、即插即用(PnP)的总线协议,它被用来满足当今高性能PC和工作站以及它们的高带宽应用。传统的ISA(Industry Standard Architecture)总线已不能满足如视频系统、图形加速卡、高速网卡、数据采集和数据存储设备的需要,所以PCI总线一出现就在计算机工业得到广泛应用。PCI总线技术规范1.0版由Intel公司开发,现由一个工业协会管理,称为 PCI SIG。CPU(Central Processing Unit)的飞速发展,ISA/EISA(Extended Industry Standard Architecture)逐渐显现出疲态,跟不上时代的步伐。当时CPU的速度甚至还高过总线的速度,造成硬盘、显示卡还有其它的外围设备只能通过慢速并且狭窄的瓶颈来发送和接收数据,使得整机的性能受到严重的影响。为了解决这个问题,1992年Intel在发布486处理器的时候,也同时提出了32-bit的PCI总线。最早提出的PCI总线工作在33MHz频率之下,传输带宽达到了133MB/S(33MHz*32bit),比ISA总线有了极大的改善,基本上满足了当时处理器的发展需要。随着对更高性能的要求,1993年提出了64-bit的PCI总线,后来又提出把PCI总线的频率提升到66MHz。目前广泛采用的是32-bit、33MHz的PCI总线。总线是独立于CPU的系统总线,采用了独特的中间缓冲器设计,可将显示卡、声卡、网卡、硬盘控制器等高速的外围设备直接挂在CPU总线上,打破了瓶颈,使得CPU的性能得到充分的发挥。可惜的是,由于PCI总线只有133MB/S的带宽,对付声卡、网卡、视频卡等绝大多数输入/输出设备也许显得绰绰有余,但对于胃口越来越大的3D显卡却力不从心,并成为了制约显示子系统和整机性能的瓶颈。因此,PCI总线的补充AGP总线就应运而生了。Intel于1996年7月正式推出了AGP(加速图形接口,Accelerated Graphics Port)接口,这是显示卡专用的局部总线,是基于PCI2.1版规范并进行扩充修改而成,工作频率为66MHz,IX模式下带宽为266MB/S,是PCI总线的两倍。来依次又推出了AGPZX、AGP4X,现在则是AGPSX,传输速度达到了2.IGB/S。如果计算机只需要进行上网浏览和软件下载等简单的应用,PCI技术也就足够了。然而时光飞逝,转眼就到了2004年,新的技术和设备层出不穷,特别是游戏和多媒体应用越来越广泛,PCI的工作频率和带宽都己经无法满足要求。此外,PCI还存在IRQ共享冲突,只能支持有限数量设备等问题。现今的软件应用对硬件平台提出了更多的要求,特别是帕(In Put/out Put)子系统。用台式机和笔记本电脑等设备,来处理不同来源的视频和音频数据流己经司空见惯了,而在PCI2.2或者PCI-X规范里对这种与时间有关的数据却缺乏相关的支持。比如视频点播和音频再分配等应用都使服务器受到实时限制。此外,如今的平台需要越来越高的带宽来处理多种同时传输的数据,不能再以同样方式对等处理所有的数据了,因为延迟的实时数据与没有数据一样都毫无意义。对于整个电脑架构来说,PCI总线只有可怜的133MB/S,带宽早已是不堪负荷,处处堵塞。在经历了长达10年的修修补补,PCI总线已经无法满足电脑性能提升的要求,必须由带宽更大、适应性更广、发展潜力更深的新一代总线取而代之,这就是 PCI Express总线,由于是第三代输入/输出总线,所以简称3GIO-,另外它的开发代号是Arapahoe,所以又称为Arapahoe总线。处理器总线随着频率和电压一直都在稳定增长,而内存的带宽为了保持与处理器的速度,也在提高。但芯片组充当的是Memory Hub和I/O Hub的作用,内存总线一直在随着处理器的更新换代而改变着。由于总线的带宽是有限的,因此在内存带宽提升的同时,I/O总线也被逐渐减少。PCI总线相对于ISA总线有以下一些特点和优点:(l)独立于处理器。因为PCI总线设计的器件是针对PCI的,而不是针对理器的,因此设备的设计独立于处理器的升级。(2)低功耗。PCI技术规范的主要设计目标是实现尽可能小电流的系统设计。(3)传输速度高。32位PCI总线在读写传送中支持每秒132MB的峰值传送速率,对于64位PCI传送支持每秒264MB峰值传送速率。对于64位66MHzPCI总线,传送速率可达到每秒528MB ,ISA总线的传送速率每秒只有20MB左右。(4)地址自动配置。配置寄存器的全位级别规范,支持自动的设备检验与配置PCI设备的内存和I/O地址是由软件在系统启动时自动配置的,不需要像ISA总线那样手动设置。课题的研究内容本论文主要研究内容与具体工作如下:学习PCI总线协议、FPGA设计的基本流程和方法。在深刻理解PCI总线协议的基础上,研究PCI IP Core的各个功能及实现方法,采用状态机技术协调各个功能模块的工作和实现PCI总线复杂的时序信号。目标是用VHDL语言完成PCI的部分接口模块设计。本论文是按照PCI总线从接口IP核的设计与实现过程来安排的,论文重点在PCI总线从接口IP核的功能模块设计、实现及验证上。第一章绪论,介绍了课题的背景和PCI发展的历史及现状。第二章FPGA技术,介绍了FPGA的概念、设计流程。第三章PCI总线技术研究,介绍了计算机总线技术的发展和PCI总线统结构、PCI总线信号、传输特点以及总线具体的操作过程等。第四章是PCI总线的接口模块,具体介绍了PCI设备的配置空间和内部寄存器组。第五章PCI总线简化接口设计,主要介绍了设计思路、总线的结构划分,详细分析了配置空间模块和状态机模块的具体设计和仿真验证。第六章为总结。2 FPGA技术概述本文所研究的PCI总线从接口IP核的设计与实现是基于FPGA芯片的,用VHDL语言设计实现的,所以在详细设计之前对FPGA开发技术进行简要介绍。2.1 FPGA简介现场可编程门阵列FPGA是Xilinx公司在1985年推出的一种高密度可编程逻辑器件。FPGA将很多基本逻辑单元集成在一个芯片中,采用RAM、Flash或反熔丝等工艺,使这种特殊芯片具有可配置性和可编程性。近年来,FPGA市场发展十分迅速,FPGA器件已经广泛应用于通信、自动控制、信息处理等领域。简化的FPGA基本由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。可编程I/O单元是FPGA内部的一个重要单元,它提供了器件引脚和内部逻辑阵列之间的连接,通常排列在芯片的四周。通过配置相应的选项,可使I/O单元适配不同的I/O接口标准,不同的器件可支持的I/O标准不同。基本可编程逻辑单元是可编程逻辑的主体,可以根据设计灵活地改变其内部连接与配置,完成不同的逻辑功能。2.2 FPGA设计流程FPGA(Field programmable Gate Array)3设计流程是指利用FPGA开发和编程工具,采用可编程逻辑器件实现待设计芯片的过程。一般来说,完FPGA设计流程包括电路设计与输入、功能仿真、综合、综合后仿真、实现线后仿真与验证、板级仿真验证与调试等主要步骤,如图2-l所示。4(1)电路设计与输入电路设计与输入是指通过某些规范的描述方式,将工程师电路构思输入给EDA工具。常用的设计输入方法有硬件描述语言(HDL)和原理图设计输入方法等。原理图设计输入法在早期应用得比较广泛,它根据设计要求,选用器件、绘制原理图、完成输入过程。这种方法的优点是直观、便于理解、元器件库资源丰富。但是在大型设计中,这种方法的可维护性较差,不利于模块构造与重用。更主要的缺点是当所选用芯片升级换代后,所有的原理图都要做相应的改动。目前进行大型工程设计时,最常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和Verilog HDL。它们的共同特点是利于自顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构的不同而变化,更利于向ASIC的移植。系统设置电路图构想电路设计与输入(HDL代码,原理图,波形,状态机)功能仿真是否正确综合优化综合后仿真是否正确?实现与布局布线时序仿真与验证是否正确板级仿真与验证是否正确加载配置在线调试是否为综合优化的问题是否为实现的问题NYYNNYYNNNYY图2-1 FPGA设计流程(2)功能仿真电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。功能仿真有时也被称为前仿真。常用的仿真工具有Model Tech公司的Mode1Sim、Synopsys公司的VCS、Cadence公司的NC-Verilog和NC-VHDL、Aldec公司的Active HDL VHDL/Verilog HDL等。通过仿真能及时发现设计中的错误,加快设计进度,提高设计的可靠性。(3)综合优化综合优化(Synthesize)是指将HDL语言、原理图等设计输入翻译成由与、或、非门,RAM,触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所生成的逻辑连接,输出EDF和EDN等标准格式的网表文件,供FPGA/CPLD厂家的布局布线器进行实现。(4)综合后仿真综合完成后需要检查综合结果是否与原设计一致,做综合后仿真。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。综合后仿真虽然比功能仿真精确一些,但是只能估计门延时,不能估计线延时,仿真结果与布线后的实际情况还有一定的差距,并不十分准确。这种仿真的主要目的在于检查综合器的综合结果是否与设计输入一致。(5)实现与布局布线综合结果的本质是一些由与、或、非门,触发器,RAM等基本逻辑单元组成的逻辑网表,它与芯片实际的配置情况还有较大差距。此时应该使用FPGA/CPLD厂商提供的软件工具,根据所选芯片的型号,将综合输出的逻辑网表适配到具体FPGA/CPLD器件上,这个过程就叫做实现过程5。因为只有器件开发商最了解器件的内部结构,所以实现步骤必须选用器件开发商提供的工具。在实现过程中最主要的过程是布局布线。所谓布局(Play)是指将逻辑网表中的硬件原语或者底层单元合理地适配到FPGA内部的固有硬件结构上,布局的优劣对设计的最终实现结果(在速度和面积两个方面)影响很大;所谓布线(Route)是指根据布局的拓扑结构,利用FPGA内部的各种连线资源,合理正确连接各个元件的过程。FPGA的结构相对复杂,为了获得更好的实现结果,特别是能够满足设计的时序条件,一般采用时序驱动的引擎进行布局布线。(6)时序仿真与验证将布局布线的时延信息反标注到设计网表中,所进行的仿真就叫时序仿真或布线后仿真,简称后仿真。布局布线之后生成的仿真时延文件包含的时延信全,不仅包含门延时,还包含实际布线延时,所以布线后仿真最准确,能较反映芯片的实际工作情况。一般来说,布线后仿真步骤必须进行,通过布局后仿真能检查设计时序与FPGA实际运行情况是否一致,确保设计的可靠性定性。布局布线后仿真的主要目的在于发现时序违规(Timing violation),满足时序约束条件或者器件固有时序规则(建立时间、保持时间等)的情况。(7)板级仿真与验证在有些高速设计情况下还需要使用第三方的板级验证工具进行仿真与验证。 (8)调试与加载配置设计开发的最后步骤就是在线调试或者将生成的配置文件写入芯片中进行测试。示波器和逻辑分析仪(LA,Logic Analyzer)是逻辑设计的主要调试工具。任何仿真或验证步骤出现问题,都需要根据错误的定位返回到相应的步骤更改或者重新设计。2.3 VHDL测试平台简介无论是功能仿真还是时序仿真,其仿真方法有两种:(1)交互式仿真方法。大多数的VHDL仿真器都允许进行实时的交互式的操作,允许在仿真运行期间对输入信号赋值,指定仿真执行时间,并观察输出波形。最终在经过多次的仿真过程后,在系统的逻辑和时序都满足要求后,仿真结束。(2)测试平台法。测试平台是被测单元的一个验证环境。利用测试平台,我们可以实现自动的对被测试单元输入测试矢量,并且通过波形输出,文件记录输出,或与测试平台中的设定输出矢量进行比较,从而验证仿真结果。与交互式方法相比,测试平台法提供了一种更为系统的仿真途径。一旦建立了测试平台确定了测试矢量后,在对设计进行多次修改后,仍然可以很容易的重新进行仿真,并且可以在功能仿真和时序仿真中使用。对测试平台的书写也有一定的要求。一般而言,测试平台程序应包括:(1)被测实体引入部分;(2)被测实体仿真信号输入部分;(3)被测实体仿真信号输出部分;(4)被测实体工作状态激活部分;(5)仿真的数据比较、结果判别输出部分(错误警告、成功通过信息);(6)仿真的波形比较处理部分。由于被测实体对端口已作了定义,测试平台实体的端口定义部分就省去了。在结构体中利用断言语句Assert来输出仿真错误信息,出错级别则根据实际情况而确定。利用配置语句(CONFIGURATION)可以选择被测实体的不同结构体进行仿真,这给仿真提供了极大的方便。对被测实体的激励可以在测试平台的结构体中定义,也可以从外部文件读入。对于不同的仿真目的,对测试平台设计的要求也不一样。比如用于行为级的测试平台,抽象程度较高,所有的VHDL语句和数据类型都可以使用,重点在于功能行为的验证,一般不需考虑电路的传输延时。当被测实体及其测试平台都完成后,就可以开始仿真验证,但我们是对测试平台进行仿真而不是对被测实体,因为此时被测实体只是测试平台中的一个例化元件。3 PCI总线技术研究3.1计算机系统结构图3-1给出了一个典型的计算机系统框图,由图可见,PCI通过一种称之为“桥”(Bridge)的接口连接计算机的不同部分。图3-1 计算机系统框图现代PC机工业通常把主板芯片按不同功能分成两个功能组:一个功能组称为Host/PCI桥(通常称为“北桥”),PCI总线通过“北桥”(North Bridge)连接处理器总线到基础PCI总线。另一个功能组称为PCI/ISA桥(通常称为“南桥”),PCI总线通过“南桥”(South Bridge)连接基础PCI总线到ISA(EISA)总线。“南桥”通常含有中断控制器、IDE控制器、USB控制器、DMA控制器。“南桥”和“北桥”共同构成了计算机的桥芯片组。另外,还可能有PCI扩展桥(PCI-to-PCI Bridge),将基础的PCI总线连接到次级PCI总线,从而突破PCI总线的负载限制。作为目前微型计算机主流总线标准的PCI总线,原来专门是为了提高系统数据传输性能的,现在也作为一个高性能的外设接口,比如显卡,声卡,网卡,硬盘驱动器以及其他一些高速外设。3.2 PCI总线概述78随着计算机微处理器性能的迅速提高,以及多媒体技术、高速网络技术等对数据传输要求较高的技术不断发展,原有的计算机总线(如EISA;ISA等)适应不了发展的需要。在这种情况下,Intel公司提出了将高速高带宽的外围功能转移到靠近CPU的地方,并通过一个系统接口(主桥路)与处理器/存储器连接的“局部总线”解决方案,这种总线被称之“外部器件互联(Peripheral Component Interconnect)总线”,即PCI总线。PCI总线具有严格的技术规范,符合PCI技术规范的扩展卡可插入任何PCI系统可靠地工作,这保证了它具有良好地兼容性。PCI总线可以提供极高的数据传输速度(132MBpS),并且PCI总线可以从32位升级到64位。PCI总线与CPU无关,可适用于各种平台,支持多处理器和并发工作。PCI总线具有良好的可扩展性,通过PCIPCI桥路,可以允许无限的扩展。PCI总线支持自动配置

温馨提示

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

最新文档

评论

0/150

提交评论