EDA技术及应用项目教程 课件全套 项目1-6 认识EDA技术 -小型数字系统的应用实例_第1页
EDA技术及应用项目教程 课件全套 项目1-6 认识EDA技术 -小型数字系统的应用实例_第2页
EDA技术及应用项目教程 课件全套 项目1-6 认识EDA技术 -小型数字系统的应用实例_第3页
EDA技术及应用项目教程 课件全套 项目1-6 认识EDA技术 -小型数字系统的应用实例_第4页
EDA技术及应用项目教程 课件全套 项目1-6 认识EDA技术 -小型数字系统的应用实例_第5页
已阅读5页,还剩355页未读 继续免费阅读

下载本文档

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

文档简介

项目1

认识EDA技术摘要ABSTRACT

当前人们已经进入了数字化和信息化时代,其特点是各种数字产品的广泛应用。现代数字产品在性能提高、复杂度增大的同时,更新换代的步伐越来越快。电子系统设计所采用的技术也越来越先进,利用现代电子技术设计高性能、高可靠性的电子系统已成为设计人员必须掌握的一门技术。本项目知识图谱本项目学习目标知识目标①了解EDA技术的含义及其发展历史②熟悉EDA技术的主要内容③理解数字系统的设计方法与IP核复用技术④掌握EDA技术的设计流程本项目学习目标技能目标①能够了解EDA技术的中文含义、特点以及主要内容②能够掌握CPLD/FPGA的设计方法与设计流程本项目学习目标素养目标①养成自主学习、协作学习、探究学习的意识②树立技能成才,技能报国的人生理想1目录CONTENTS了解EDA技术及其发展2熟悉EDA主要内容掌握EDA设计流程43理解数字系统的设计方法与IP核复用任务1.1了解EDA技术及其发展

伴随着计算机、集成电路和电子系统设计的发展,融合了计算数学、优化理论、图论和拓扑学等多学科精髓发展起来的电子设计自动化(EDA)技术,正在成为现代电子设计技术的核心。1.1.1EDA技术的含义与特点

EDA:ElectronicDesignAutomation(电子设计自动化)

狭义EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(HardwareDescriptionLanguage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC芯片中,实现既定的电子电路设计功能的一门新兴技术,或称为IES/ASIC自动设计技术。1.

EDA技术的含义

广义EDA技术除了狭义的EDA技术外,还包括计算机辅助分析CAA技术(如PSPICE、Multisim、MATLAB、Proteus等)和印刷电路板计算机辅助设计PCB-CAD技术(如AltiumDesigner、Cadenceallegro、MentorPADS等)。

1.1.1EDA技术的含义与特点2.EDA技术的特点●

用软件的方式对系统进行硬件设计;●

用软件方式设计的系统到硬件系统的转换是由开发软件自动完成的;●

设计过程中可用有关软件进行各种仿真;●

具有高层综合和优化的功能,能在系统对系统进行综合、优化和仿真;●

采用大规模可编程器件实现系统;●所设计的系统可现场编程,在线升级;●提供开放性和标准化和操作环境,可实现资源共享、设计的移植;

●采用平面规划技术,可对逻辑综合和物理版图设计进行联合管理;

●带有嵌入IP(IntellectualProperty,知识产权)核的ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)设计,提供软、硬件协同设计工具;●支持多人的并行设计,适合团队协作、分工设计。

1.1.2EDA技术的发展与展望1.

EDA技术的发展历程ESDA

电子系统设计自动化CAED

计算机辅助工程设计CAD

计算机辅助设计20世纪90年代20世纪80年代20世纪70年代1.1.2EDA技术的发展与展望2.EDA技术的发展趋势(1)可编程逻辑器件的发展趋势向高密度、高速度、宽频带方向发展;向系统内可重构的方向发展;向可预测延时方向发展;向混合可编程技术方向发展;向低电压、低功耗方面发展

1.1.2EDA技术的发展与展望2.EDA技术的发展趋势(2)开发工具的发展趋势具有混合信号处理能力;高效的仿真工具;理想的逻辑综合、优化工具。(3)系统描述方式的发展趋势描述方式简便化;描述方式高效化和统一化。任务1.2熟悉EDA主要内容

作为一门发展迅速,有着广阔应用前景的新技术,EDA技术涉及面广,内容丰富。要系统、全面掌握EDA技术,必须掌握一系列的相关知识和理论。比如作为载体的大规模可编程逻辑器件,作为主要表达手段的硬件描述语言等。1.2.1EDA技术的主要内容主要内容大规模可编程逻辑器件:FPGA(现场可编程门阵列)、CPLD(复杂可编程逻辑器件)硬件描述语言:VHDL、VerilogHDL、Superlog、SystemVerilog和SystemC等软件开发工具集成开发工具:QuartusPrime、Vivado等前端输入与系统管理工具:HDLTurboWriter、VisualVHDL/Verilog、VisualElite等逻辑综合器:Synplify、PrecisionSynthesis、LeonardoSpectrum等仿真器:ModleSim、ActiveHDL等其他EDA工具:DSPBuilder、SOPCBuilde等SOPCBuilde1.2.2主要EDA技术厂商主要厂商Altera公司(已被Intel公司收购)Xilinx公司(已被AMD公司收购)Lattice公司(已被绿洲控股收购)Actel公司最大的3家EDA厂商任务1.3理解数字系统的设计方法与IP核复用

本任务主要讲述数字系统的设计方法和IP核复用相关知识1.3.1数字系统的设计方法1.Bottom-up设计法设计方法没有明显的规律可循,采用试探的方法完成系统设计。设计依赖于设计者的经验,不易实现系统化、清晰易懂的设计;系统的性能分析和测试、功能验证和仿真只能在系统构成后进行,调试复杂,修改设计比较困难;设计依赖于现有的通用元器件,设计实现周期长、灵活性差、费时费用、效率较低。1.3.1数字系统的设计方法2.Top-down设计法自顶向下设计方法是一种模块化设计方法,对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思维习惯;应用自顶向下的设计方法便于由多个设计者同时进行设计,对设计任务进行合理分配,用系统工程的方法对设计进行管理;自顶向下的设计方法使得高层设计完全独立于目标器件的结构,在设计的初级阶段,设计人员可以摆脱芯片结构的束缚,将精力集中在可以规避传统设计方法中的再设计风险的环节,缩短了产品的开发周期,降低了成本。1.3.2IP复用技术与SoC1.IP复用技术IP核分为软核(SoftCore)、固核(FirmCore)和硬核(HardCore)这三种。

软核只完成RTL级的行为设计,以HDL的方式提交使用;描述方式高效化和统一化固核比软核有更大的设计深度,已完成了门级综合、时序仿真并经过硬件验证,以门级网表的形式提交使用;硬核以IC版图的形式提交,并经过实际工艺流片验证。

1.3.2IP复用技术与SoC2.SoCSoC(SystemonChip,片上系统)又称芯片系统或系统芯片,它是在单个芯片上就能完成一个电子系统的功能,而这个系统在以前往往需要一个或多个电路板,以及板上的各种电子器件、芯片和互连线共同配合来实现。SoC有两个显著的特点:一是需要硬件规模庞大,目前是基于IP设计模式;二是软件比重大,需要进行软硬件协同设计。

任务1.4掌握EDA设计流程

本任务主要讲述CPLD/FPGA和ASIC的设计流程1.4.1CPLD/FPGA设计流程设计输入●原理图●硬件描述语言●波形图设计准备设计处理●优化●综合●适配●分割●布局●布线器件编程设计完成功能仿真时序仿真器件测试1.4.1CPLD/FPGA设计流程1.设计准备定义I/O端口选择CPLD/FPGA器件逻辑划分2.设计输入

设计输入

原理图输入

HDL文本输入

波形图输入1.4.1CPLD/FPGA设计流程设计编译和检查:在编译过程中,首先进行语法检验,然后进行设计规则检查;逻辑优化和综合:化简所有的逻辑方程或用户自建的宏,使设计所占用的资源最少。适配和分割:确定优化以后的逻辑能否与下载目标器件CPLD或FPGA中的宏单元和I/O单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。布局和布线:在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现元件间的布线互联。

生成编程数据文件:产生可供器件编程使用的数据文件。3.设计处理1.4.1CPLD/FPGA设计流程4.设计校验时序仿真功能仿真接近真实器件运行特性的仿真,仿真文件中己包含了器件硬件特性参数,因而,仿真精度高。直接对VerilogHDL、原理图描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计要求的过程,仿真过程不涉及任何具体器件的硬件特性。1.4.1CPLD/FPGA设计流程通过下载电缆连接PC机(串口、USB口)和器件电路板上的下载接口,将设计文件下载到PLD器件中。

5.器件编程器件在编程完毕之后,可以用编译时产生的文件对器件进行检验、加密等工作,或采用边界扫描测试技术进行功能测试,测试成功后才完成其设计。

6.器件测试和设计验证1.4.2ASIC设计流程ASIC大致可分为数字ASIC、模拟ASIC和数/模混合ASIC。1.ASIC设计方法全定制半定制门阵列法标准单元法可编程逻辑器件法1.4.2ASIC设计流程

2.ASIC的一般设计流程

系统规范说明

系统划分

逻辑设计与综合

综合后仿真

版图设计

版图验证

参数提取与后仿真

制版、流片

芯片测试项目2

认识可编程逻辑器件摘要ABSTRACT

可编程逻辑器件是20世纪70年代发展起来的一种由用户编程以实现某种逻辑功能的新型逻辑器件,也是一种半定制的集成电路。大规模可编程逻辑器件结合计算机软件技术(EDA技术)可以快速、方便地构建数字系统。因此,在进行数字系统的开发前,需对CPLD/FPGA硬件知识进行相应的了解。本项目知识图谱本项目学习目标知识目标①了解CPLD/FPGA的内部结构及工作原理②熟悉EDA主要厂商的PLD器件③掌握CPLD/FPGA器件的编程和配置方法本项目学习目标技能目标①能够了解CPLD与FPGA的内部结构和工作原理②能够掌握CPLD/FPGA的编程和配置方法本项目学习目标素养目标①养成独立思考、触类旁通、举一反三的能力②弘扬精益求精,科学严谨、追求卓越的工匠精神1目录CONTENTS初识可编程逻辑器件2了解CPLD/FPGA的结构与工作原理掌握CPLD/FPGA器件的配置与编程43熟悉CPLD/FPGA产品任务2.1初识可编程逻辑器件

逻辑器件分为两大类:固定逻辑器件和可编程逻辑器件。固定逻辑器件中的电路是固定、永久性的,它们能够完成特定的一项或多项任务,器件一旦制造完成,其内部电路就无法改变,如74系列、54系列、CD4000系列等逻辑器件。可编程逻辑器件(PLD)是能够为客户提供范围广泛的多种逻辑能力、特性、速度和电压特性的标准成品部件,其内部电路功能可由客户通过编程的方式进行改变。一般的PLD的集成度很高,足以满足设计一般的数字系统的需要。这样就可以由设计人员自行编程而把一个数字系统“集成”在一片PLD上,而不必去请芯片制造厂商设计和制作专用的集成电路芯片了。2.1.1PLD的发展历程PROM:ProgrammableReadOnlyMemory

(可编程只读存储器)PLA:ProgrammableLogicArray

(可编程逻辑阵列)PAL:ProgrammableArray

Logic(可编程阵列逻辑)GAL:Generic

Array

Logic(通用阵列逻辑)EPLD:ErasableProgrammableLogicDevice

(可擦除可编程逻辑器件)2.1.1PLD的发展历程

20世纪70年代PROM、PLA

20世纪70年代末PAL20世纪80年代初GAL

20世纪80年代中EPLD

20世纪80年代末CPLD、FPGA

20世纪90年代后SOPC2.1.2PLD的分类PLD按集成度分简单PLD复杂PLDPROMPLAPALGALEPLDFPGAPLD按结构分查找表结构(FPGA)PLD按编程次数分一次可编程(PROM、PAL)多次重复可编程CPLD乘积项结构(简单PLD和CPLD)2.1.3PLD的基本结构与电路表示1.PLD的基本结构输入电路与门阵列或门阵列输出电路输入输入项乘积项或项输出…………图2-2基本PLD的原理结构框图2.1.3PLD的基本结构与电路表示2.PLD电路的表示方法非门与门或门异或门常用符号国际符号逻辑表达式表2-1常用逻辑门符号2.1.3PLD的基本结构与电路表示2.PLD电路的表示方法图2-3PLD互补缓冲器图2-4PLD互补输入

2.1.3PLD的基本结构与电路表示2.PLD电路的表示方法

任务2.2了解CPLD/FPGA的结构与工作原理

本任务学习以MAX3000A为例讲述CPLD的结构与工作原理,以及CycloneIVE为例讲述FPGA的内部结构与工作原理2.2.1CPLD的结构与工作原理图2-9MAX3000A内部结构逻辑阵列块(LAB)

由多个宏单元(LMC)构成可编程连线(PIA)可编程I/O模块CPLD的结构组成:2.2.1CPLD的结构与工作原理图2-10MAX3000A宏单元结构逻辑阵列功能块可编程与阵列和固定或阵列构成实现组合逻辑,可提供5个乘积项乘积项选择矩阵功能模块分配乘积项作为或门和异或门的输入,实现组合逻辑函数作为寄存器的辅助输入:清零、置位、时钟、使能等。可编程寄存器功能模块可配置寄存器和多种触发器方式,也可旁路2.2.1CPLD的结构与工作原理图2-11PIA布线到LAB的方式不同的LAB通过在可编程连线阵列(PIA)上布线,以相互连接构成所需的逻辑。将器件中的任何信号连接到目的地2.2.1CPLD的结构与工作原理图2-12MAX3000AI/O控制模块每个I/O引脚可单独配置为输入、输出、双向工作方式。所有I/O都有一个三态缓冲器,其控制信号由选择器提供。控制端地时,配置为输入引脚,控制端接VCC时,为普通输出引脚。2.2.2FPGA的结构与工作原理图2-13FPGA查找表单元一个N输入查找表可以实现N个输入变量的任何逻辑功能,如N输入“与”、N输入“异或”等。输入多于N个的函数、方程必须分开用几个查找表(LUT)实现图2-14FPGA查找表单元内部结构2.2.2FPGA的结构与工作原理CycloneIVE系列器件内部构成主要由逻辑阵列块(LAB)、嵌入式存储器块、嵌入式乘法器、I/O单元和PLL等模块构成2.2.2FPGA的结构与工作原理图2-15CycloneIVE的LE结构图

LE主要由一个4输入的查找表LUT、进位链逻辑、寄存器链逻辑和一个可编程的寄存器构成2.2.2FPGA的结构与工作原理图2-16CycloneIVE的LAB结构2.2.2FPGA的结构与工作原理图2-17CycloneIVE的LAB阵列互连2.2.2FPGA的结构与工作原理图2-18CycloneIVE的LAB控制信号生成的逻辑图2.2.2FPGA的结构与工作原理图2-19嵌入式乘法器2.2.2FPGA的结构与工作原理图2-20时钟网络的时钟控制任务2.3熟悉CPLD/FPGA产品

当前,PLD供应商主要有Altera、Xilinx、Lattice、Actel和Atmel等公司,其中Altera、Xilinx、Lattice分别是CPLD、FPGA和ISP技术的发明者,发展起步较早,占据了大部分的市场份额,从而共同决定了PLD技术的发展方向。本任务主要讲述前3大国外公司CPLD/FPGA产品的相关知识,以及介绍国内影响力较大3家公司的PLD产品。2.3.1Altera(Intel)公司的PLD器件1.Altera(Intel)公司的Agilex系列FPGA器件

Agilex系列FPGA具备强大的计算和数据处理能力,它集成了高性能的ARM处理器,可实现复杂的控制和运算任务。同时,Agilex系列FPGA还配备了专用硬件加速器,可加速特定任务,如图像处理、加密算法和高性能网络处理能力。

目前Agilex系列FPGA针对不同的市场又分为Agilex9、Agilex7、Agilex5、Agilex3二级系列FPGA。2.3.1Altera(Intel)公司的PLD器件2.Altera(Intel)公司的Statix系列FPGA器件StatixV系列FPGA提供28.05G和14.1Gbps收发器速率选项,多达6个72个DDR3内存接口,嵌入HardCopy模块提供了多达1430万个ASIC逻辑门或者多达119万个逻辑元件。Statix10系列FPGA在性能、能效、密度和系统集成方面都具有创新优势,采用Intel的Hyperflex架构(一种超融合基础设施解决方案),与StatixV系列FPGA相比时钟频率提高了2倍,收发器带宽提升了7倍。采用异构3D系统级封装(SiP)技术,在一个封装中集成了单片FPGA内核结构和3DSiP收发器块以及其他先进组件。配备高达1.35GHz的64位四核ARMCortex-A53处理器、硬化外设和能够以30Gbps的速度直接连接FPGA结构的高带宽接口。嵌入了一个新型的针对人工智能优化模块(AITensorBlock),该模块针对人工智能计算中使用的通用矩阵-矩阵乘法或矢量-矩阵乘法进行了调整,其功能可实现小型以及大型矩阵的高效工作。2.3.1Altera(Intel)公司的PLD器件3.Altera(Intel)公司的Arria系列FPGA器件

ArriaVGX/GT/SX/GZ系列FPGA内置频率高达1.05GHz的双核ARMCortex-A9MPCore处理器;四个硬件32位存储控制器,具有高达533MHz的存储总线速度和可选纠错码(ErrorCorrectionCode,ECC);处理器与FPGA互联,最高总带宽大于125Gps。可满足远程射频单元、10G/40G线路卡和演播室设备的带宽要求。Arria10系列FPGA的许多功能都具突破性,例如采用了20nm工艺技术、性能高达28.05Gbps的高级串行接口技术等。实现了比ArriaVGX/GT/SX/GZ系列FPGA更低的功耗和更高的速度,同时支持全面的节能技术,如可编程功耗技术和智能电压ID技术,这些技术不仅降低了电路的器件功耗,还通过集成节省了电路板空间。2.3.1Altera(Intel)公司的PLD器件4.Altera(Intel)公司的Cyclone系列FPGA器件

CycloneIV系列FPGA是2009年推出的,采用60nm工艺技术,集成了高性能的收发器,支持多种协议。该系列拥有多达15万个垂直排列的逻辑单元、以M9K模块形式排列的6.5Mbit的嵌入式存储器,以及360个18×18嵌入乘法器,可实现DSP处理密集型的应用。CycloneV系列FPGA采用了28nm工艺技术,可满足大批量低成本应用对最低功耗、最低成本,以及最优性能水平的需求。它具有高效的逻辑集成功能,提供功耗最低的串行收发器,每通道在5Gbps时功耗只有88mW,处理性能高达4000MIPS,而功耗不到1.8W。针对不同的用户群体,CycloneV系列FPGA又细分为E、GX、GT、SE、SX、ST类型。

最新的Cyclone10系列FPGA主要包含两种类型Cyclone10LP和Cyclone10GX。Cyclone10LP采用65nm工艺技术,主要针对低静态功耗和低成本应用,如I/O扩展、传感器融合、电机/运动控制、芯片到芯片桥接和控制等。2.3.1Altera(Intel)公司的PLD器件5.Altera(Intel)公司的MAX系列CPLD器件MAXV采用非易失体系结构的瞬时接通单芯片CPLD,集成了以前的一些外部功能(例如闪存、RAM和振荡器等)。MAXVCPLD能够在单位空间中提供大量I/O和逻辑,同时提供了用户闪存和嵌入式闪存,为关键系统信息提供非易失性内存存储。MAXVCPLD还具备快速开机和复位功能(500μs或更短),非常适用于PCB上其他设备的功耗管理、上电排序和监控。2014年推出的MAX10属于非易失可编程逻辑器件的FPGA,采用55nm工艺技术,提高了外部系统组件功能的集成度,从而降低了系统级成本。MAX10FPGA内部集成了数字信号处理(DSP)、DDR3外部存储器接口、具有模数转换器(ADC)的模拟模块、锁相环(PLL)等,支持温度传感器和嵌入式软核处理器,还有存储控制器和双配置闪存等。2.3.2Xilinx(AMD)公司的PLD器件1.Xilinx(AMD)公司的主流CPLD器件XC9500系列被广泛应用于通信、网络和计算机等领域,该系列器件采用快闪存储技术(FastFlash),比EECMOS工艺的速度更快、功耗更低。tPD(引脚到引脚的固定延时)延时仅为4ns,宏单元数为36~288个,系统时钟可达到200MHz,支持PCI总线规范和JTAG边界扫描测试功能;具有ISP在系统编程能力,可反复编程10000次。该系统主要包含XC9500、XC9500XV和XC9500XL这3个子系列,内核电压分别为5V、2.5V和3.3V。CoolRunner系列CPLD是基于XC9500系列的高速度和易用性开发出现的产品,它包括CoolRunnerII和CoolRunnerXPLA3系列器件。CoolRunner-II系列采用180nm工艺制造,核心工作电压为1.8V,I/O电压支持1.5V、1.8V、2.5V和3.3V,密度范围从32至512个宏单元,性能高达300MHz,tPD延时仅为3.5ns,静态电流小于100μA。2.3.2Xilinx(AMD)公司的PLD器件2.Xilinx(AMD)公司的主流FPGA器件Xilinx7系列FPGA采用28nm工艺,是近年来Xilinx公司推出的一系列高性价比的、应用领域最广泛的可编程逻辑器件。28nmFPGA包含了多个不同的产品线,如Spartan-7、Artix-7、Kintex-7和Virtex-7以及ZYNQ7000。UltraScale架构是Xilinx推出的一种先进的FPGA架构,它涵盖了高性能的FPGA、MPSoC和RFSoC系列,旨在满足各种系统需求,同时重点关注降低总功耗。在20nm工艺技术领域,Xilinx推出了ASIC-Class架构,不仅支持数百Gb级的系统性能,在全线路速度下还支持智能处理。在16nm工艺方面,UltraScale+系列将全新存储器、3D-on-3D和多处理SoC(MPSoC)技术进行完美结合。VirtexUltraScale+系列FPGA是在UltraScale架构中具有最高收发器带宽、最多DSP数量、最高内置和封装内存可用性。可提供多种功率选项,实现系统性能与最小功耗包络之间的最佳平衡。2.3.3Lattice公司的PLD器件1.Lattice公司的主流CPLD器件

ispLSI系列CPLD是Lattice公司20世纪90年代推出的产品,具有ISP在系统编程能力,允许用户在使用过程中对器件进行重新配置,提高了设计的灵活性和可维护性;集成度为2000至数千等效门,引脚到引脚延时(tPD)最小为3ns,工作速度可达300MHz,广泛应用于通信设备、计算机、DSP系统和仪器仪表中,但现在已退出历史舞台,被ispMACH系列和ispXPLD系列等替代。ispMACH系列主要是提供低成本的I/O接口板和评估套件,这些接口板和评估套件为MachXO和其他PLD设备提供了便捷的访问途径,特别是对于那些需要I/O扩展和桥接的应用。ispXPLD(eXpandedProgrammableLogicDevices)属于ISP在系统可编程且动态可重构的CPLD产品系列,该系列结合了E2PROM和SRAM单元在同一个器件中,允许无限可重构。2.3.3Lattice公司的PLD器件2.Lattice公司的主流FPGA器件Lattice公司的FPGA器件主要有EC/ECP系列、ECP2/M系列、ECP5系列、SC/M系列、XP/XP2系列、MachXO系列和ispXPGA系列等。ispXPGA系列是最早采用ispXP技术的FPGA器件;EC/ECP系列是经济型FPGA器件;XP/XP2系列是将EC/ECP2系列FPGA和低成本的130nm/90nmFlash技术合成在单个芯片上的非易失性FPGA;SC/M系列是其最高性能FPGA产品。2.3.4国产PLD器件

紫光同创是紫光集团旗下的子公司,成立于2013年,具备大规模FPGA工艺开发设计能力,产品布局涵盖高、中、低端PLD产品。其产品主要有Titan-2系列、Logos-2系列、Logos系列、Compa系列等。

安陆科技‌成立于2011年,专注于FPGA芯片设计领域,是国内FPGA芯片的行业创新者。安陆科技通过多年的技术积累,在FPGA芯片设计技术、SOC系统集成技术、FPGA专用EDA软件技术、FPGA芯片测试技术和FPGA应用解决方案等领域取得了技术突破。其PLD产品主要包括高性价比SALEAGLE系列、低功耗SALELF系列、高性能SALPHOENIX系列。

高云半导体‌是一家以国内现场可编程逻辑器件(FPGA)为核心的专业研发和产业化公司,致力于推出具有核心自主知识产权的FPGA芯片。高云半导体于2016年成功推出国内55nm非易失性FPGA芯片,并于2018年成功研发国内28nm中高密度FPGA芯片。其PLD产品主要有晨熙家族、小蜜蜂家族。

任务2.4掌握CPLD/FPGA器件的配置与编程

本任务主要讲述CPLD/FPGA器件的配置与编程方法2.4.1配置与编程工艺目前,常见的大规模可编程逻辑器件的编程和配置工艺有:

①基于EEPROM或Flash技术的电可擦编程工艺。这种工艺的优点是掉电后编程信息不会丢失,但编程次数有限,编程速度不快。

②基于SRAM查找表的编程工艺。这种编程工艺,编程信息是保持在SRAM中的,SRAM在掉电后编程信息立即丢失,在下次上电后,需要重新载入编程信息。通常将编程数据下载到可编程逻辑芯片的过程,对于CPLD来讲我们称之为编程,而对于FPGA来讲我们称之为配置(Configure)。

2.4.2下载电缆与接口引脚AS模式PS模式JTAG模式信号名称功能信号名称功能信号名称功能1DCLK时钟信号DCLK时钟信号TCK时钟信号2GND信号地GND信号地GND信号地3CONF_DONE配置完成CONF_DONE配置完成TDO目标器件数据输出4VCC(TRGT)目标板电源VCC(TRGT)目标板电源VCC(TRGT)目标板电源5nCONFIG配置控制nCONFIG配置控制TMSJTAG时序控制6nCE器件片选-未连接-未连接7DATAOUT串行配置器件数据输出nSTATUS配置状态-未连接8nCS串行配置器件片选-未连接-未连接9ASDI串行配置器件数据输入DATA0目标器件配置数据输入TDI目标器件数据输入10GND信号地GND信号地GND信号地图2-21目标板上10针插座表2-610针插座在不同模式下对应的信号2.4.3CPLD器件的编程图2-22CPLD的ISP编程下载连接图2.4.4FPGA器件的配置FPGA六种配置模式配置器件,如用EPC器件进行配置;PS(PassiveSerial,被动串行)模式:MSEL1=0、MSEL0=0;PPS(PassiveParallelSynchronous,被动并行同步)模式:MSEL1=1、MSEL0=0;PPA(PassiveParallelAsynchronous,被动并行异步)模式:MSEL1=1、MSEL0=1;PSA(PassiveSerialAsynchronous,被动串行异步)模式:MSEL1=1、MSEL0=0;JTAG模式:MSEL1=0、MSEL0=0。1.FPGA的JTAG在线配置2.4.4FPGA器件的配置1.FPGA的JTAG在线配置图2-23FPGA芯片的JTAG配置电路2.4.4FPGA器件的配置2.专用配置器件配置FPGA图2-24EPC2配置器件配置单个FPGA2.4.4FPGA器件的配置3.用单片机配置FPGA图2-25单片机配置FPGA2.4.4FPGA器件的配置4.用CPLD配置FPGA图2-26用CPLD配置FPGA项目3

熟悉常用EDA开发软件的使用摘要ABSTRACT

EDA应用开发系统是以CPLD/FPGA为核心,配以相应的外围电路及软件来完成某些特定功能的系统。它包括硬件和软件两部分,硬件是系统的躯体,软件是系统的灵魂。当前进行简单的EDA应用系统开发时会用到一些常用的软件:如QuartusPrime、Vivado等,其中QuartusPrime和Vivado分别为Altera(Intel)和Xilinx(AMD)公司CPLD/FPGA集成开发软件。本项目知识图谱本项目学习目标知识目标①了解EDA集成开发软件的设计流程②掌握常用EDA集成开发软件的使用方法本项目学习目标技能目标①会使用QuartusPrime软件采用原理图或文本方式进行项目设计②会使用Vivado软件进行项目的创建、仿真、调试与下载本项目学习目标素养目标①加强实践练习,掌握一定的专业技能和职业素养②树立不懈奋斗、努力拼搏、追求卓越的人生信念1目录CONTENTS了解EDA集成开发软件2熟悉QuartusPrime原理图输入设计熟悉Vivado软件的使用43掌握QuartusPrime文本输入设计任务3.1了解EDA集成开发软件

进行EDA应用系统开发时,所使用的集成开发软件通常是由相应的CPLD/FPGA芯片厂家提供,通过使用厂家提供的软件基本上都可以完成所有的设计输入(原理图或HDL)、仿真、综合、布线、下载等工作。

从QuartusII15.1版本开始,QuartusII更名为QuartusPrime,QuartusPrime集成了新的SpectraQ综合工具,支持数百万LE单元的FPGA器件的综合;集成新的前端语言解析器,扩展了对VHDL-2008和SystemVerilog-2005的支持。Vivado设计套件是Xilinx公司(后被AMD公司收购)于2012年推出的集成设计环境。包括高度集成的设计环境和新一代从系统到IC级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。3.1.1QuartusPrime软件简介QuartusPrime的主要特点和功能:●

QuartusPrime具备先进的逻辑合成和优化功能,能够将高级硬件描述语言转化为实际的逻辑电路。●

QuartusPrime提供全面的时序分析和约束功能,用户可以对电路进行时序约束设置、时序分析和时序优化。●

QuartusPrime具备先进的布局和布线功能,能够将逻辑设计映射到实际的可编程逻辑器件上。●

QuartusPrime提供强大的逻辑仿真和验证工具,用户可以对电路进行仿真和功能验证。●

QuartusPrime内置了丰富的IP核(知识产权核心)和模块库,包括处理器核、通信接口、存储器等。●QuartusPrime支持团队协作和版本管理,用户可以进行电路设计的版本控制、协作开发和团队合作。3.1.2QuartusPrime的设计流程设计输入综合布局布线时序分析仿真编程和配置功耗分析调试工程更改管理时序逼近3.1.3Vivado设计套件简介Vivado设计套件的主要特点和功能:●

Vivado集成了设计输入、‌实现、‌综合、‌布局布线、‌仿真、‌调试等各个阶段的工具,‌支持从设计到实现的整个流程。●

Vivado提供了直观、‌灵活且可重复的探测方法,‌支持RTL设计文件、‌综合设计和XDC约束文件的调试,‌以及网表插入和互动式TCL或脚本的自动运行探测。●

‌Vivado设计套件特别适用于赛灵思的“全部可编程”器件。●

Vivado提供了易于安装和使用的界面,‌支持VerilogHDL语言设计,‌并提供详细的用户指南和设计流程说明,‌适合初学者和专业设计师使用。●

Vivado设计套件通过提供这些功能和特性,‌帮助设计师在汽车、‌消费类、‌工业控制、‌有线与无线通信、‌医疗等多个应用领域实现前所未有的设计效率和性能提升。●Vivado分为Vivado标准版和Vivado企业版,其中Vivado标准版可免费下载,支持有限的器件,提供对核心特性和功能性的即时访问;Vivado企业版是设计套件的全功能版本,支持所有AMD器件。3.1.2Vivado的设计流程创建项目添加并编辑设计文件行为仿真约束文件综合实现生成文件下载到目标器件任务3.2熟悉QuartusPrime原理图输入设计QuartusPrime支持的设计输入方法很多,比如文本法(如VerilogHDL)和图形法(如原理图)。文本法使用硬件描述语言进行设计,控制灵活,适用于复杂逻辑控制和子模块的设计。图形法形象直观、简单易用,使用起来非常方便,适用于顶层和高层次模块的构造及已有器件的调用。

原理图输入是一种最直接的图形法输入方式。通过原理图输入方式,可使用系统提供的元件库和元件符号完成电路原理图,形成原理图输入文件。它多用在对系统电路很熟悉的情况或系统对时间要求较高的场合,且设计者要具有一定的硬件电路知识。其缺点是当系统功能复杂时,原理图输入方式效率低,同时原理图通用性差。在原理图编辑器中是以符号的方式将需要的逻辑器件引入,设计电路的信号输入引脚与信号输出引脚也需要以符号的方式引入。3.2.1应用基本元件库设计4选1数据选择器符号输入输出Fs1s0dcbay00×××00a×××1101××0×0b××1×110×0××0c×1××1110×××0d1×××1表3-14选1数据选择器的符号和真值表3.2.1应用基本元件库设计4选1数据选择器1.项目的创建(1)先建一个文件夹,用于保存项目中的文件。(2)创建新的项目。3.2.1应用基本元件库设计4选1数据选择器2.编辑设计原理图文件(1)新建原理图文件(2)编辑输入原理图文件3.2.1应用基本元件库设计4选1数据选择器3.项目的编译更改目标芯片3.2.1应用基本元件库设计4选1数据选择器3.项目的编译选择目标器件编程配置方式3.2.1应用基本元件库设计4选1数据选择器执行菜单命令“Processing”→“StartCompilation”

,开始执行全功能的编译

3.项目的编译3.2.1应用基本元件库设计4选1数据选择器4.功能仿真

建立波形文件。执行菜单命令“File”→“New...”,在new对话框的“Verification/DebuggingFiles”项中选择“VectorWaveformFile”,再单击“OK”按钮,QuartusPrime的主窗口界面进入波形文件编辑环境界面。

插入节点。执行菜单命令“Edit”→“Insert”→“InsertNodeorBus...”,或在波形文件编辑窗口中单击鼠标右键,在弹出的菜单中选择“InsertNodeorBus”命令

3.2.1应用基本元件库设计4选1数据选择器4.功能仿真调入节点信号。在NodeFinder对话框的“Filter”栏中选择“Pins:all”后,再单击“List”按钮,这时在窗口左边的“NodesFound:”(节点建立)框中将列出该设计项目的全部信号节点。

3.2.1应用基本元件库设计4选1数据选择器4.功能仿真设置仿真时长。执行菜单命令“Edit”→“EndTime...”,在弹出对话框的“Time:”栏中输入合适的仿真时间。3.2.1应用基本元件库设计4选1数据选择器4.功能仿真设置输入信号波形参量。3.2.1应用基本元件库设计4选1数据选择器4.功能仿真

设置仿真模式。执行菜单命令“Simulation”→“SimulationSettings”,弹出“SimulationOptions”的对话框。在此对话框点击“FunctionalSimulationSettings”选项卡,选择功能仿真,然后点击“Save”按钮。

运行仿真功能。执行菜单命令“Simulation”→“FunctionalSimulation”运行功能仿真3.2.1应用基本元件库设计4选1数据选择器5.引脚锁定和器件编程

锁定各引脚。执行菜单命令“Assignment”→“PinPlanner”,将弹出引脚锁定窗口。在引脚锁定窗口的AllPins区域的Location列中,根据实际电路连接情况对各输入、输出端口锁定引脚。3.2.1应用基本元件库设计4选1数据选择器5.引脚锁定和器件编程

未使用引脚设置。为了防止系统上电后,未用到管脚电平为GND或VCC,造成系统混乱,需将未用到管脚设置为输入高阻态。在QuartusPrime中执行菜单命令“Assignments”→“Device”→“DeviceandPinOptions…”,在弹出的对话框中将UnusedPins项目中的状态更改为“Asinputtri-stated”即可。3.2.1应用基本元件库设计4选1数据选择器5.引脚锁定和器件编程

设置编程器。在QuartusPrime中执行菜单命令“Tools”→“Programmer”,在对话框中点击“HardwareSetup...”按钮,选择USB-Blaster[USB-0]。

程序固化。设置好编程器后,在图3-15中点击“Start”按钮就可通过下载电缆将sof文件固化到目标芯片中。3.2.2应用宏函数设计十进制计数器3.2.3应用宏功能模块设计十进制计数器

调用宏功能模块。在原理图编辑界面中双击鼠标左键,将弹出Symbol对话框。在Symbol对话框中点击Libraries栏下执行“megafunctions”→“arithmetic”→“lpm_counter”,调用一个新宏功能模块LPM_COUNTER到原理图编辑界面中3.2.3应用宏功能模块设计十进制计数器

设置LPM_COUNTER引脚。LPM_COUNTER的引脚端口中,只有时钟端是必选的,需要外界提供计数信号,而其他引脚端都为可选项,当这些引脚端未选中时,其值为缺省值。

设置LPM_COUNTER参数。在SymbolProperties对话框Parameter选项卡设置LPM_MODULUS为10,表示LPM_COUNTER为十进制计数器;LPM_DIRECTION为UP,表示加计数;LPM_WIDTH为4,表示输入/输出的数据宽度为4位。其余选项使用默认值。3.2.3应用宏功能模块设计十进制计数器任务3.3熟悉QuartusPrime文本输入设计

使用VerilogHDL的文本编辑器输入方法是EDA的重要特色,QuartusPrime软件的文本输入法与图形输入法的设计步骤基本相同,此处将不再对项目建立、编译、仿真、下载等过程做详细的讲解,而只是给出相应过程的结果文件,供大家参考。3.3.1四个开关分别控制四只信号灯的文本输入设计

3.3.1四个开关分别控制四只信号灯的文本输入设计2.建立文本编辑文件3.3.1四个开关分别控制四只信号灯的文本输入设计4.观察RTL电路

在QuartusPrime中执行菜单命令“Tools”→“NetlistViewers”→“RTLViewer”,可以打开RTL电路图3.3.2应用层次法设计简易四人抢答器2.建立文本编辑文件(1)创建answer.v文件1.项目创建//抢答模块moduleanswer(s1,s2,s3,s4,s5,data);inputs1,s2,s3,s4;

//抢答按钮inputs5;

//允许抢答按钮outputreg[3:0]data;reg[3:0]d;//暂存抢答组号

regenable;

//允许抢答regflag;

//抢答锁定标志reg[3:0]s; initial

//初始化 begin flag=1'b1;

d<=4'b0000;

endalways@(s1,s2,s3,s4,s5)

begin

s<={s1,s2,s3,s4};

if(s5==1'b0)enable<=1'b1;elseif(s!=4'b1111)enable<=1'b0;

endalways@(s1,s2,s3,s4,s5)

begin

if(enable==1'b1&&flag==1'b1)

begin

if(s1==1'b0)begind=4'b0001;flag=1'b0;end

elseif(s2==1'b0)begind=4'b0010;flag=1'b0;end

elseif(s3==1'b0)begind=4'b0100;flag=1'b0;end

elseif(s4==1'b0)begind=4'b1000;flag=1'b0;endendif(s5==1'b1)begind=4'b0000;flag=1'b1;enddata<=d;endendmodule3.3.2应用层次法设计简易四人抢答器(2)创建display.v文件//显示模块moduledisplay(Din,seg,LED);input[3:0]Din;outputreg[7:0]seg;outputreg[3:0]LED;always@(Din)case(Din)

4'b0000:beginseg<=8'h3F;LED<=4'b0000;end

4'b0001:beginseg<=8'h06;LED<=4'b0001;end

4'b0010:beginseg<=8'h5B;LED<=4'b0010;end

4'b0100:beginseg<=8'h4F;LED<=4'b0100;end

4'b1000:beginseg<=8'h66;LED<=4'b1000;end

default:beginseg<=8'h00;LED<=4'b0000;end

endcaseendmodule3.3.2应用层次法设计简易四人抢答器(3)创建ex5_answer.v文件moduleex5_answer(s1,s2,s3,s4,s5,seg,LED);inputs1,s2,s3,s4,s5;output[7:0]seg;//共阴极数码管显示output[3:0]LED;//抢答成功组号指示wire[3:0]data;//元件例化调用两个子模块

answerU1(.s1(s1),.s2(s2),.s3(s3),.s4(s4),.s5(s5),.data(data));

displayU2(.Din(data),.seg(seg),.LED(LED));endmodule3.3.2应用层次法设计简易四人抢答器4.观察RTL电路3.项目的编译与时序仿真

执行菜单命令“Tools”→“NetlistViewers”→“RTLViewer”,可以打开简易四人抢答器项目的RTL电路图3.3.3应用层次法混合式设计双二选一多路选择器2.建立文本编辑文件(1)创建MUX21.v文件1.项目创建moduleMUX21(a,b,s,y);inputa,b,s;outputregy;always@(a,b,s)if(s==1'b0)y<=a; elsey<=b;endmodule(2)生成元件图形符号。执行菜单命令“File”→“Create/Update”→“CreateSymbolFilesforCurrentFile”,将生成元件图形符号3.3.3应用层次法混合式设计双二选一多路选择器4.项目的编译与时序仿真(1)创建原理图文件3.编辑设计原理图文件(2)编辑输入原理图任务3.4熟悉Vivado软件的使用

在此以使用VerilogHDL语言设计10进制计数器为例,介绍在Vivado环境下运行VerilogHDL程序的流程,包括源程序的编写、编译、仿真及下载。本例是基于Vivado2020.2版本,其他不同版本的Vivado使用方法与此类似。3.4.1项目创建并输入源程序1.创建新的项目

(1)启动Vivado进入项目向导。双击启动Vivado2020.2软件,将出现Vivado启动界面。在QuickStart栏中选择CreateProject,或者执行菜单命令“File”→“Project”→“New…”,进入图3-24所示项目向导,可进行项目的创建。

(2)设置项目名称及保存路径。在图3-24所示项目向导中点击“Next>”按钮,将进入“ProjectName”对话框,在此对话框的“Projectname:”栏中设置项目名称,“Projectlocation:”栏中指定项目的保存路径。勾选“Createprojectsubdirectory”复选框,可为此项目指定路径下建立独立的文件夹,最终整个项目保存在所设置的路径文件夹中。3.4.1项目创建并输入源程序1.创建新的项目(3)选择项目类型。在“ProjectName”对话框中设置完项目名称及保存路径后,点击“Next>”按钮,将进入图3-25所示的项目类型选择对话框。在此对话框中选择“RTLProject”类型,如果再勾选“Donotspecifysourcesatthistime”复选框,则跳过后面的(4)和(5),表示当前项目不需要添加源文件和约束文件。3.4.1项目创建并输入源程序1.创建新的项目

(4)添加源文件、选择设计语言。在图3-25中选择项目类型后,点击“Next>”按钮,将进入“AddSources”所示的对话框。在此对话框中可添加源文件并选择设计语言,其中“Targetlanguage”和“Simulatorlanguage”均选择Verilog。

(5)添加约束文件。在“AddSources”所示对话框中设置完后,点击“Next>”按钮,将进入添加约束文件对话框。对于本例,不需添加约束文件,因此直接点击“Next>”按钮。

(6)目标器件选择。在(5)中点击“Next>”按钮后,将进入如图3-26所示目标器件选择对话框。用户根据目标板,选择合适的目标器件。

(7)项目概况。在图3-26中选择目标器件并点击“Next>”按钮后,将进入“NewProjectSummary”项目概况界面。此界面对项目信息进行汇总,用户可检查相关信息是否正确,包括项目类别、源文件、所用的FPGA器件等。如果没有问题,则单击“Finish”按钮完成项目的创建。3.4.1项目创建并输入源程序3.4.1项目创建并输入源程序2.输入源设计文件

(1)打开设计文件导入窗口,并选择源文件类型。项目创建后,将显示如图3-27所示的项目管理界面。在此界面左侧窗口中选择FlowNavigator下的PROJECTMANAGER中的AddSources选项,打开“AddSources”设计文件类型选择界面。在此界面中,选择第二项“Addorcreatedesignsources”,添加或创建Verilog源文件。3.4.1项目创建并输入源程序2.输入源设计文件

(2)创建源设计文件。选择第二项“Addorcreatedesignsources”并点击“Next>”按钮后,在弹出的对话框中点击“CreateFiles”按钮,将进入CreateSourceFile对话框,如图3-28所示。在CreateSourceFile对话框中输入文件名为ex_cnt10,单击“OK”按钮后在再点击“Finish”按钮,即可完成源设计文件的创建。3.4.1项目创建并输入源程序2.输入源设计文件

(3)定义源程序模块。在图3-28界面中点击“Finish”按钮后,将进入“DefineModule”定义源程序模块对话框。在此对话框的“Modulename”栏中填写模块名称;在I/OPortDefinitions栏中填写模块端口并设置端口方向,如果端口为总线型,则勾选Bus选项,并通过MSB和LSB确定总线宽度。

(4)输入VerilogHDL源程序。在“DefineModule”对话框中完成定义模块并点击“OK”按钮后,回到项目管理界面。在此界面中间的Source窗格的DesignSource中出现新建的设计文件ex_cnt10,双击打开ex_cnt10文件,在图3-29所示的Vivado自带文本编辑器中输入以下VerilogHDL源程序代码。3.4.1项目创建并输入源程序//ex_cnt10的源程序代码moduleex_cnt10(clk,rst,LED);inputclk;inputrst;outputreg[3:0]LED;reg[3:0]cnt;always@(posedgeclk,negedgerst)begin

if(!rst)

begin

cnt<=0;LED<=4'b0;

endelseif(cnt<9)

begin

LED<=LED+4'b1;cnt<=cnt+1;

endelse

beginLED<=4'b0;cnt<=4'b0;

end

endendmodule3.4.1项目创建并输入源程序

(5)保存VerilogHDL源程序。源程序文件输入完后,在图3-29所示的Vivado自带文本编辑器上方点击

图标,保存VerilogHDL源程序,至此已完成源程序文件输入,可对源文件进行行为(功能)仿真,以测试其功能。3.4.2行为仿真

(1)创建仿真激励文件。在项目管理界面左侧窗口中点击FlowNavigator下的PROJECTMANAGER中的AddSources选项,选择第三项Addorcreatesimulationsources,单击“Next>”按钮。在弹出的对话框中点击“CreateFiles”按钮,将进入CreateSourceFile对话框。在CreateSourceFile对话框中输入激励文件名为tb_cnt10,文件类型为Verilog。单击“OK”按钮,确认添加完成后再点击“Finish”按钮,即可完成仿真激励文件的创建。

(2)定义仿真模块。创建仿真激励文件后,将进入图3-30所示的定义仿真模块对话框。在此对话框的“Modulename”栏中填写模块名称tb_cnt10即可。因为激励文件不需要对外端口,所以I/OPortDefinitions部分不需要填写。

(3)输入仿真测试程序。在图3-30中完成定义仿真模块并点击“OK”按钮后,回到项目管理界面。在此界面中间的Source窗格的DesignSource中出现新建的仿真测试文件tb_cnt10,双击打开tb_cnt10文件,在Vivado自带文本编辑器中输入以下TestBench激励代码。3.4.2行为仿真`timescale1ns/1nsmoduletb_cnt10();parameterDelay=20;regclk;regrst;wire[3:0]LED;ex_cnt10u1(.clk(clk),.rst(rst),.LED(LED));initialbeginclk=1'b0;rst=1'b0;#(Delay*2)rst=1'b1;endalwaysbegin#(Delay/2)clk=~clk;endendmodule3.4.2行为仿真

(3)启动仿真界面。在项目管理界面左侧窗口中点击FlowNavigator下的SIMULATION中的RunSimulation选项,并选择RunBehavioralSimulation,启动仿真界面,如图3-31所示。3.4.2行为仿真

(4)仿真设置。在波形仿真时,可通过仿真工具条对仿真进行设置和操作。3.4.2行为仿真

(5)仿真分析。最终得到的仿真波形如图3-33所示,通过观看该波形可检查此波形是否与所设计的功能相符,以验证源设计文件的正确性。3.4.3综合与引脚约束1.编译与综合

(1)综合编译。在项目管理界面左侧窗口点击FlowNavigator下的SYNTHESIS中的RunSynthesis选项,对当前项目进行综合。在Options中选择“Launchrunsonlocalhost”单选项,在“Numberofjobs”中选择最大值(此处为8),以缩短编译时间。若勾选“Don’tshowthisdialogagain”,则下次就不会弹出该对话框直接进行综合。设置完后,单击“OK”按钮进行综合编译。综合时,软件右上角有实时动态。综合后,弹出如图3-34所示综合结束对话框,在此对话框中点击“Cancel”即可完成综合过程。3.4.3综合与引脚约束1.编译与综合

(2)观看综合后的电路图。综合编译成功后,在项目管理界面左侧窗口点击FlowNavigator→SYNTHESIS→OpenSynthesizedDesign→Schematic,可以查看综合后的电路图。本例综合后的电路如图3-35所示。

(3)观看RTL的电路图。综合编译成功后,在项目管理界面左侧窗口点击FlowNavigator→RTLANALYSIS→OpenElaboratedDesign→Schematic,可以查看综合后的RTL电路图。3.4.3综合与引脚约束2.添加引脚约束

第一种方法的操作如

温馨提示

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

评论

0/150

提交评论