




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安工业大学毕业设计(论文)基于FPGA自适应PID控制器的NIOS系统设计毕业论文1 绪论1.1前言由于AD采集,PID控制,DA输出及双口RAM等功能模块计算要求速度较快,用C语言无法达到其运算速度,这是就需要采用硬件编程方法来实现,如VHDL硬件语言等,同时RAM或单片机都无法实现此高速处理,所以FPGA的应用成为必然,因为其运算速度可达纳秒级, 其中处理系统NIOS是采用流水线技术和哈弗结构的通用RISC(Refined Instruction Set Computer,精简指令计算机)10处理器,本设计在FPGA的实现基础上完成NIOS系统的控制结构设计。1.2 FPGA的现状及应用领域可编程逻辑器件(Programmable Logic Device, PLD))是20世纪70年代发展起来的一种新型逻辑器件,是目前数字系统设计的主要硬件基础。早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但过于简单的结构也只能完成规模较小的电路。可擦除的EPLD(Erasable Programmable Logic Device,可编程逻辑器件)的基本逻辑结构是宏单元,由可编程的与或阵列、可编程寄存器和可编程I/O三部分组成。由于EPLD特有的宏单元结构、大量增加的输出宏单元数和大的与阵列,使一块芯片内能够更灵活地实现较多的逻辑功能。20世纪80年代中期Altera和Xilinx公司分别推出了类似于PAL结构的扩展型CPLD(Complex programmable Logic Device)和与标准门阵列类似的FPGA,都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可以实现较大规模的电路,编程灵活,与门阵列等其它ASIC相比,又具有设计开发周期短、设计制造成本低、开发工具先进等优点,因此被广泛地用于产品的原型设计和产品生产之中。FPGA趋势发展包括四个方面:(1)大容量、低电压、低功耗FPGA;(2)系统级高密度 FPGA;(3)FPGA出现与ASIC相互融合;(4)动态可重构FPGA。其应用领域相当广泛。在数据采集领域,FPGA主要用于高速数据采集系统;在信号处理方面,FPGA主要应用于视频采集压缩、高阶高速FIR滤波器、雷达图像采集等;在医疗领域,FPGA在医疗设备如心电检测设备、超声设备和电子内窥镜中都有应用;在无线领域,FPGA技术已应用于TETRA无线终端;在控制领域,FPGA已应用于微型攀爬机器人、直流电机调速控制器和工业运动控制器;或者将将FPGA技术与DSP技术相结合,充分利用DSP的适合于数字运算的特点和FPGA高集成度,实现对高速信号的实时采样和实时视频处理。FPGA在SOC/SOPC出现了新的应用。SOC是System on Chip的简称,称作“系统集成芯片”,其中包含完整系统并有嵌入式软件的全部内容。SOPC是System on Programmable ChiP,即可编程片上系统,是基于FPGA的SOC策略。相比于SOC设计,SOPC既有嵌入的处理器、支持电路,也有PLD;嵌入的处理器可以是软核,也可以是硬核;用户根据应用选择配置处理器和各种I/O模块,还可以在系统中加入拥护自定义的逻辑模块,构建定制的系统。1.3 NIOS系统NIOS系统是采用流水线技术和哈弗结构的通用RISC(Refined Instruction Set Computer,精简指令计算机)处理器,一个NIOS处理器系统由NIOS CPU和一系列的外设组成。NIOS CPU,片内外设,片内存储器和片外外设的接口都在Altera公司的芯片上实现,相当于在单片上实现一台计算机或微控制器。所有的NIOS处理器系统使用统一的指令和编程方式。由于FPGA是可编程的,在FPGA上实现NIOS处理器可以根据设计者的需要对特性进行裁剪,使其符合性能和成本的要求。NIOS系统处理器系统的外设配置具有很大的灵活性,设计者可以根据实际需求来添加必要的外设,这是NIOS系统与其他固化的微处理器之间最显著的区别。NIOS处理器是一种软核,它描述的并不是硬件实现,而是对一个指令的支持。NIOS处理器构架包括下列功能单元:寄存器文件,ALU,自定制指令逻辑接口,异常控制器,中断控制器,指令总线,数据总线,指令高速缓存和数据高速缓存,指令和数据的紧耦合存储器接口,JTAG调试模块。1.4 自适应PID控制器及其发展状况过程控制中应用最广范的控制和策略是PID控制.PID控制技术的发展可以分为两大阶段.第一阶段为发明阶段(1900-1940),PID控制思想开工始变明确,此时主要采用气动控制,仪表工业的重心放到实际PID控制器的结构上.第二阶段为革新阶段(1940以后)PID控制器已经发展成为一种可靠的易于应用的控制器现阶段PID的实现一般有两种方法一种是以储存器和处理器为基础,基于软件方法实现的存储器用于存储程序,处理器取指令,译码,执行指令随着糸统规模和复杂性的曾加,ASIC惭惭的被采用在嵌入式测控糸统中,先进控制方法以硬件技术应用于片上糸统为嵌入式控制的热点课题,FPGA的出现也惭惭的成为PID实现的一种选择尤其是FPGA现有越来越多的IP核心库的扶持用户可以利用这些一定意义和预测式的软件模块在FPGA内迅速实现糸统功能IP包括从复杂数字信号处理方法,存储器,控制器,到总线接口和成熟的软件器等内在的一切模块因此FPGA技术的发展为片上可编程糸统SOPC的实现提供了物质基础而传统控制有很多的局限性,不构灵活,不构可靠等所以自适应PID控制的出现必将取代传统意义上的PID控制所以基于FPGA的自适应PID控制器的开发将事在必行 在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。因此PID控制由于其简单,稳定性好,可靠性高等优点等被广泛应用于冶金,机械,化工等工业过剩控制之中。 1.5课题背景在控制理论和技术飞跃发展的今天,PID控制由于其简单,稳定性好,可靠性高等优点,仍有其强大的生命力。PID控制广泛应用于冶金,机械,化工等工业过剩控制之中。而传统的PID控制对对象数学模型的依赖过高,且参数不便调整,系统扰动明显,难以满足实时控制的要求,自适应PID将是解决这一问题的有效途径。自适应控制系统是一个具有一定适应能力的系统,他能够认识环境条件的变化,并自动校正控制动统作,使系达到 或次优的控制效果,且随着FPGA(现场可编程门阵列)技术的迅猛发展, FPGA以其独有的优势在电子设计领域得到愈来愈广泛的应用,所以把原由计算机程序实现的PID控制算法从计算机中分离出来,设计基于FPGA的通用PID自适应控制数字芯片,内具参数的整定功能。FPGA最明显的优势在于集成度高、体积小、功耗低、可靠性高、电路设计灵活,此外,FPGA技术的快速发展与VHDL硬件描述语言的支持,以及该软件语言被IEEE制定为国际标准具有直接关系。1.6 本文主要研究工作 本文主要研究的是基于FPGA高速处理系统的设计,主要是NIOS系统的设计,其中涉及硬件语言VHDL的应用及软件quartus的设计方法学习,主要工作内容有:1) 了解NIOS系统和控制系统。2) 了解控制算法流程,实现控制算法。3) 熟悉器件组成,完成整体框图设计。4) 运用VHDL硬件语言实现AD采集程序,FIR滤波程序,PID控制程序,DA输出程序及双口RAM等,并生成IP软核。5) 应用软件quartus完成NIOS系统IP软核设计。6) 实现整体IP软核设计,完成系统调试7) 后期思考反馈。602控制算法实现.2.1控制算法在图2.1所示的计算机控制系统中,G(s)是被控对象的传递函数,H(s)是零阶保持器,D(z)是数字控制器。现在的设计问题是:根据已知的系统性能指标和G(s)来设计出数字控制器D(z)。 图2.1计算机控制系统的结构图设假想的连续控制器为D(S),对图2.2假想的连续控制系统进行设计 图2.2 控制系统流程2.1.1将D(s)离散化为D(z)由图2.2可可计算出传递函数29:U(s)=E(s)D(s),所以D(s)=U(s)/E(s);将连续控制器D(s)离散化为数字控制器D(z)的方法很多,如双线性变换法,后向差分法,前向差分法,冲击响应不变法,零极点匹配法,零阶保持法等。本设计采用后向差分方法进行离散化:由Z变换的定义可知29:z=eST利用级数展开可将z=eST写成以下形式:Z=eST/e-ST1/(1ST);由上式可得:s=(z-1)/Tz;且有D(z)= D(s)S=(Z-1)/TZ;同时后向差分也可由数值微分中得到,设微分控制规律为u(t)= =de(t)/dt;两边求拉氏变换可推导出控制器为:D(s)=U(s)/E(s)=s;采用后向差分法近似可得:U(k)=e(k)-e(k-1)/T;两边求Z变换可得数字控制器为:D(z)=U(z)/E(z)=(Z-1)/TZ=D(s)S=(Z-1)/TZ2.1.2设计控制算法令控制器D(z)的一般形式为30:D(Z)=U(z)/E(z)=(b0+b1z-1+.+bmz-m)/(1+a1z-1+.+anz-n) (2.1.1)所以:U(z)=(-a1z-1-.-anz-n)U(z)+ (b0+b1z-1+.+bmz-m)E(z) (2.1.2)上式用时域表示为:U(k)=-a1u(k-1)-a2u(k-2)-anu(k-n)+b0e(k)+b1e(k-1)+bme(k-m); (2.1.3)由此可得控制算法的一般形式,其实现控制过程流程图为: 图2.3控制过程流程2.1.3选择采样周期香农采样定理给出了从采样信号恢复连续信号的最低采样频率。计算机控制系统中,完成信号恢复功能一般由零阶保持器H(s)来实现。零阶保持器的传递函数为29:H(s)=(1e-ST)/s (2.1.4)其频率特性为:H(jw)=(1e-jwT)/jw=(TsinwT/2)/( wT/2)-wT/2; (2.1.5)从上式可以看出,零阶保持器将对控制信号产生附加项移。对于小的采样周期,可把零阶保持器H(s)近似为:H(s)= (1e-ST)/s=T(1ST/2+)Te-sT (2.1.6)上式表明,零阶保持器H(s)可用半个采样的时间滞后来近似。假定裕亮为5-15。,则采样周期应选为:T(0.150.5)/WC (2.1.7) 其中WC为连续系统的剪切频率。 2.2一般控制方法2.2.1自适应控制自适应控制是在对于参数的选择时,它能自动修正自己的特性以适应对象和扰动的动态特性的变化。自适应控制的研究对象是具有一定程度不确定性的系统,这里所谓的“不确定性”是指描述被控对象及其环境的数学模型不是完全确定的,其中包含一些未知因素和随机因素。任何一个实际系统都具有不同程度的不确定性,这些不确定性有时表现在系统内部,有时表现在系统的外部。从系统内部来讲,描述被控对象的数学模型的结构和参数,设计者事先并不一定能准确知道。作为外部环境对系统的影响,可以等效地用许多扰动来表示。这些扰动通常是不可预测的。此外,还有一些测量时产生的不确定因素进入系统。面对这些客观存在的各式各样的不确定性,如何设计适当的控制作用,使得某一指定的性能指标达到并保持最优或者近似最优,这就是自适应控制所要研究解决的问题。自适应控制和常规的反馈控制和最优控制一样,也是一种基于数学模型的控制方法,所不同的只是自适应控制所依据的关于模型和扰动的先验知识比较少,需要在系统的运行过程中去不断提取有关模型的信息,使模型逐步完善。具体地说,可以依据对象的输入输出数据,不断地辨识模型参数,这个过程称为系统的在线辩识。随着生产过程的不断进行,通过在线辩识,模型会变得越来越准确,越来越接近于实际。既然模型在不断的改进,显然,基于这种模型综合出来的控制作用也将随之不断的改进。在这个意义下,控制系统具有一定的适应能力。比如说,当系统在设计阶段,由于对象特性的初始信息比较缺乏,系统在刚开始投入运行时可能性能不理想,但是只要经过一段时间的运行,通过在线辩识和控制以后,控制系统逐渐适应,最终将自身调整到一个满意的工作状态。再比如某些控制对象,其特性可能在运行过程中要发生较大的变化,但通过在线辩识和改变控制器参数,系统也能逐渐适应。常规的反馈控制系统对于系统内部特性的变化和外部扰动的影响都具有一定的抑制能力,但是由于控制器参数是固定的,所以当系统内部特性变化或者外部扰动的变化幅度很大时,系统的性能常常会大幅度下降,甚至是不稳定。所以对那些对象特性或扰动特性变化范围很大,同时又要求经常保持高性能指标的一类系统,采取自适应控制是合适的。但是同时也应当指出,自适应控制比常规反馈控制要复杂的多,成本也高的多,因此只是在用常规反馈达不到所期望的性能时,才会考虑采用。2.2.2 PID控制根据偏差的比例(P),积分(I),微分(D)进行控制简称PID控制,是控制系统中应用最广泛的一种控制规律,实际运行的经验和理论分析都表明,运用这种控制规律对许多工业过程进行控制时,都能得到满意的效果。不过,用计算机实现PID控制,不是简单的模拟PID控制规律数字化,而是进一步与计算机的逻辑判断功能结合,使PID控制规律更加灵活,更能满足生产过程提出的要求。在工业控制系统中常采用的PID控制规律为29: (2.2.1)其中Kp为比例增益,TI为积分时间常数,TD为微分时间常数,u(k)为控制量,e(t)为偏差。对于微分部分和积分部分可分别做以下近似: (2.2.2) (2.2.3)由以上各式可得: (2.2.4) (2.2.5)可知: (2.2.6)其中q0=Kp(1+T/TI+TD/T); q1=Kp(1+2TD/T); q2=KpTD/T;可知PID控制系统的控制流程为: 图2.4 PID控制流程图 2.2.3自适应PID控制参数整定方法NIOS系统中在实现参数调整上有两种方法:(1) 通过人机接口键盘和显示,来实现参数变换的调整,这是一种基本参数更改方法,操作员通过显示的信息判断系统的工作方式,并通过键盘输入参数值来改变这种状态。(2) 第二种方法是通过NIOS系统的自调整来实现参数调整的,在本设计中,主要采用模糊自整定来实现参数调整。模糊自适应控制通过模糊逻辑和近似推理方法,让计算机把人的经验形式化、模型化,根据所取得的语言控制规则进行模糊推理,给出模糊输出判决,并将其转化为精确量,作为馈送到被控对象(或过程)的控制作用。模糊控制表是模糊控制算法在计算机中的表达方式,它是根据输入输出的个数、隶属函数及控制规则等决定的。目的是把人工操作控制过程表达成计算机能够接受,并便于计算的形式。模糊控制规则一般具有如下形式: ife=Aiandec=Bi thenu=Ci, i= 1, 2,其中e, ec和u分别为误差、误差变化和控制量的语言变量,而Ai、Bi、Ci为其相应论域上的语言值。PID参数模糊自整定是找出PID的3个参数(KP、KI、KD)与e和ec之间的模糊关系,在运行中通过不断检测e和ec,根据模糊控制原理对3个参数进行在线修改,以满足不同e和ec是对控制参数的不同要求,从而使对象具有良好的动、静态性能;模糊控制的核心是总结工程设计人员的技术和实际操作经验,建立合适的模糊规则表,得到针对3个参数KP、KI、KD分别整定的模糊规则表。自适应PID控制过程与控制参数整体直观图如图2.4图2.4 自适应PID参数控制原理图在具体实现本设计中,AD使用AD9220,DA输出用AD420,PID控制,fir滤波,双口RAM读取功能等分别都采用硬件语言VHDL来实现其功能。对于参数则由NIOS系统来提供。在设计中特别要注意的就是PID控制和NIOS在通过双口RAM进行信息交互的实现。2.3数据交换计算方式在PID参数控制过程中参数的计算读取,信号在PID控制器与NIOS系统之间的交换是通过双口RAM来实现的。其中一种实现方式表明如下:(1)当某一时刻系统给定脉冲高电平时,AD采集的数据送入运算器,运算器根据采集信号并从双口RAM中读取参数值进行计算,并将结果写入双口RAM中,完成之后系统脉冲变为低电平。(2) 当(1)完成以后,NIOS系统从双口RAM中进行读数据,结合NIOS给定参数进行参数计算整定,整定方法有两种:通过键盘与显示器整定和参数自整定(模糊自整定)。其实现方式可表示为(设周期为5000ns): 图2.5 双口RAM读写方式图在信息交互的过程中PID控制器与NIOS系统读写操作不是同时进行的,在控制系统工作过程中,脉冲时钟驱动有NIOS系统来控制。3系统硬件电路3.1 FPGA简介FPGA发展非常迅速,形成了各种不同的结构。按逻辑功能块的大小,FPGA可分为细粒度FPGA和粗粒度FPGA。细粒度FPGA的逻辑功能块小,资源可以充分利用,但连线和开关多,速度慢;粗粒度FPGA的逻辑功能块规模大,功能强,但资源不能充分利用。从逻辑功能块的结构上分类,可分为查找表的结构、多路开关结构和多级与非门结构。根据FPGA内部连线的结构不同,可以分为分段互联型和连续互联型。根据编程方式,FPGA可分为一次编程和可重复编程两种。基于SRAM查找表LUT结构的FPGA本质上就是一个RAM。目前FPGA中多使用4输入LUT,所以每一个LUT可以看成一个有4位地址线的16xl的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每一个信号进行逻辑运算时就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。FPGA开发流程主要包括电路设计与输入、功能仿真、逻辑综合、前仿真、布局布线以及时序仿真(又称为后仿真)等主要步骤,每一步骤都有相应的开发工具。整体设计采用“自顶向下”的设计方法。“自顶向下”(Top-down)即从系统级设计入手,把系统划分为若干个基本单元,然后把每个基本单元划分为下一层次的基本单元,如此类推,直到可以直接用EDA元件库中的基本单元来实现为止。“Top-down”设计方法有利于在早期发现产品结构设计中的错误,提高设计的一次成功率,在EDA技术中广泛采用。图2.3为自顶向下(Top-down)的示意图 图3.1 Top-down设计思想对于采用硬件语言VHDL来时现的AD采集,控制部分,DA输出及双口RAM等功能计算速度较快,一般运算速度可达纳秒级,而ARM,430等处理系统一般的速度为毫秒级,如果用他们来实现控制系统速度无法满足要求,因此采用FPGA来实现设计要求。3.2硬件设计组成器件介绍本文采用的FPGA芯片是 ALTERA的CYCLONE系列芯片Cyclone Ep2c35。FPGA片上电路配置器的控制、存储、运算、输出电路由硬件语言生成。AD9220采集控制电路实现对模数转换信号的进行高速采集;FIR滤波电路截取有用的数字信号,去除高频干扰;1024位字节的片上双口RAM存储器,对采集到的数据进行存储;256字节片上双端口RAM实现对后续积分数据的存储;NIOS系统主要对系统进行监控,保证系统的稳定正确运行;积分电路对存储的加速度进行一次和二次积分,输出速度与位移信号;AD420输出电路对积分运算的结果进行高速输出。各个片上电路运行相对独立,电路间由中间信号量进行通信,整体采用流水线工作方式,提高了整个系统的运行速度。NIOS处理器构架包括下列功能单元:寄存器文件,ALU,自定制指令逻辑接口,异常控制器,中断控制器,指令总线,数据总线,指令高速缓存和数据高速缓存,指令和数据的紧耦合存储器接口,JTAG调试模块。所以NIOS系统的部分硬件有特殊要求。其中部分外设介绍如下:AVALON总线,AVALON总线可以用于描述一个传统的外设接口,还可以用来描述更复杂的外设接口,如可以进行突发数据传输的流水线接口。AVALON总线规范为外设的端口与总线模块之间的数据传输提供了互联模型。它定义了一种可配置的互联策略,允许设计者只保留特定的数据传输模式所需要的信号。这种互联策略使设计者在不了解主端口或从端口的情况下,将任由住外设和从外设连接在一起。Flash存储器是一种可在系统进行电擦写,掉电后信息不丢失的存储器,在嵌入式系统中广泛应用。它在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。常用的Flash为8位或16位的数据宽度,编程电压为单3.3V。系统中选用一片16位的Flash存储器SST39VF160,单片存储容量4MB,用于存放操作系统和程序代码,系统上电或复位后从此获得第一条指令并开始执行,因此,应将Flash存储器配置到ROM/SRAM/FALSH BANK0,即将 EP1C12的VSS0,VSS1接到电源地端,选择ROM/SRAM/FALSH Bank0为16位工作方式。与Flash存储器相比,SDRAM不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器,因此,它在系统中主要用作程序的运行空间、数据及堆栈区。当系统启动时,CPU首先从复位地址即FLASH的0x0处读取启动代码,在完成系统的初始化后,程序代码将被调入SDRAM中运行以提高系统的运行速度。同时,系统及用户堆栈、运行数据也都存放在其中。系统中选用HY57V641620,它的存储容量为8MB,工作电压为3.3V,16位数据宽度。根据系统需求,可以构建16位或32位的SDRAM存储系统,但为了节约有限的I/0资源,且50Mhz的系统时钟,足以满足数据存储要求,故本系统采用16位的SDRAM存储系统。I2C(InterIntegrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。其最主要的优点是其简单性和有效性。采用I2C总线技术的串行EEPOM存储器FM24256具有以下特点:高度标准化的接口;控制器和存储器之间只需两条线(SDA ,SCLK);而且具有灵活的时序要求,可以由软件驱动。JTAG (Joint Test Action Group)是1985年制定的检测PCB和IC芯片的一个标准,1990年被修改后成为IEEE的一个标准,即IEEE1149.1-1990。通过这个标准,可对具有JTAG接口的芯片的硬件电路进行边界扫描和故障检测。JTAG编程方式是在线编程,传统生产流程为先对芯片进行预编程后再装到板上。简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对DSP芯片内部的所有部件进行编程。JTAG接口芯片,引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。本系统采用RT320240 A液晶显示器,由于其采用的是COMS电平,采用了八双向总线收发器HC74LS245 并使用排阻上拉,增加驱动能力。一个友好的人机界面,必定有一个可靠、功能齐全的输入设备.在本系统中,一些重要的配置信息都需要用户输入和保存。根据输入要求的内容的不同,在此本系统设计一个4x5的键盘,3.3系统整体设计框图图3.2 系统框图 4 控制系统的硬件实现4.1 HDL硬件描述语言硬件描述语言(HDL)是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。它是硬件电路设计人员与EDA工具之间沟通的桥梁, 其主要目的是用来编写设计文件、建立电子系统行为级的模拟模型, 即利用计算机的巨大能力对用Verilog 或VHDL等建模的复杂数字逻辑进行模拟, 然后再利用逻辑综合工具自动生成符合要求且在电路结构上可以实现的数字逻辑网表(Netlist)。根据网表和某种工艺进行版图设计, 然后生成该工艺条件下电路的延时模型, 模拟验证无误后用于制造ASIC芯片或者写入CPLD和FPGA器件中。在EDA 技术领域中把用HDL语言建立的数字模型称为软核( soft core) , 把用HDL 建模和综合后生成的网表称为固核(hard core)。这些模块的重复再使用, 缩短了开发时间, 提高了产品设计、开发的效率。随着PC平台上的EDA工具的发展, PC平台上的Verilog和VHDL模拟综合工具的性能已相当优越, 这就为大规模普及这种新技术铺平了道路。目前国内利用Verilog 和VHDL建模(包括可综合和不可综合的) 进行复杂的数字逻辑系统设计的单位正在逐渐增多。随着电子系统向集成化、大规模和高速度的方向发展, HDL语言必将成为电子系统硬件设计工程师必须掌握的语言。4.2 HDL的主要特点数字系统的设计通常采用自上而下、由粗到细、逐步求精的方法, 可以分解成为三个域五个抽象层次, 行为域侧重于描述系统的功能,而结构域侧重于描述系统的逻辑结构, 即组成系统的各个组成模块之间的相互连接的描述, 物理域侧重于描述系统的物理实现。 域层次行为域 结构域 物理域系统级性能描述部件及它们之间的逻辑连接芯片.模块.电路板及其系统的物理划分算法级I/O应答算法硬件模块,数据结构的互连体部件之间的物理连接等寄存器传输级(RTL)并行操作,寄存器传输状态时序算数运算部件,多路选择器,寄存器,总线,微存储器等功能模块的互连体芯片.宏单元等逻辑级(门级)用布尔方程叙述门电路.触发器.锁存器为元件的电路标准单元布图电路级微分方程表达晶体管.电阻.电容为元件的电路晶体管布图(1)HDL支持数字电路的设计、验证、综合和测试,可以在行为域和结构域对数字系统建模,支持这两个域的所有描述层次。能够支持模拟电路的描述的 HDL尚在研究开发之中6。(2)HDL既是包含一些高级程序设计语言的结构形式, 又是兼顾描述硬件电路连接的具体构件。(3)HDL是并发的,即具有在同一时刻执行多任务的能力。一般来讲, 程序设计语言是串行的, 但在实际硬件中许多操作都是在同一时刻发生的, 所以HDL语言具有并发的特征,为分布式系统提供了一个有力的实现工具。(4)HDL有时序的概念。一般地说, 程序设计语言是没有时序概念的, 但在硬件电路中, 从输入到输出总是有延时存在。为描述这些特征,HDL需要建立时序的概念。因此使用HDL除了可以描述硬件电路的功能外, 还可以描述其时序要求。4.3 HDL开发流程用VHDL/VerilogHD语言开发PLD/FPGA的完整流程为:1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)的EDA工业标准文件。4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内。5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真)。6.编程下载:确认仿真无误后,将文件下载到芯片中。通常以上过程可以都在PLD/FPGA厂家提供的开发工具(如MAXPLUSII,Quartus II,Foundation,ISE)中完成,本次设计采用Quartus II开发软件,但许多集成的PLD开发软件只支持VHDL/Verilog的子集,可能造成少数语法不能编译,如果采用专用HDL工具分开执行,效果会更好,否则这么多出售专用HDL开发工具的公司就没有存在的理由了。4.4功能模块VHDL语言实现4.4.1 VHDL程序模板对于任何一个VHDL程序,即可以独立运行,又可以给更高的程序提供服务,也就是说一个VHDL程序即可以作为一个独立的程序运行,又可以作为是一个子模块,子程序。如果作为一个子模块使用时其模型结构如图4.4.1所示: 图4.1 PE模型结构 不管完成一个复杂功能的大程序,还是完成小功能的小程序,都以PE模型去思考,都有外部的输入参数,输出参数,学习参数和意识参数,内部的过程、知识库、作用和反馈组成。在实现过程可以为空,但在设计过程不代表没有。而且每个程序都是相对独立的,在时间是并行工作。这样做对于完成一个简单功能的小的程序显现不出它的优点,在完成一个复杂功能的程序时它的优点就显现出来。每一个程序PE可以给任何一个PE提供服务,如果各种PE编写完成后,程序的编写,就是其连接的关系,如用VHDL实现系统功能控制时,“初始化”对各个PE模块使用的信号及内部变量初始化,“管理程序”根据系统功能或者任务要求将PE“输入”“输出”连接起来完成其任务。“维护更新”目的修改PE内部的知识库。大的功能是通过小的功能,通过不同的关系组合起来。为了实现采集处理的高速性,我们把采集,滤波,存储,处理,输出都由VHDL硬件描述语言进行编写,从而生成相应硬件控制处理模块。各个部分相对独立,模块间通过全局变量来进行信息的沟通。整个系统采用顺序工作方式,过程采用流水线工作,即采集,滤波,存储,处理,输出逻辑上并行,时间上是并行的,是真正意义上的并行处理4.4.2AD采集模块 其初始化程序分布在整个采集程序的各个进程中,它主要对全局信号和各进程中局部变量赋初值。而读取双口RAM,采集A/D转换值,输出采集数据三个功能模块,采用三个并行进程来实现其各自功能,且它们的运行都与时钟同步,,能够消除不必要的等待时间,尽量保证系统稳定高速的运行。程序的流程图如下(图4.2): 图4.2 A/D采集流程图a.程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity ad9220 is port( reset_n,clk:in std_logic; jdata:in std_logic_vector(11 downto 0); jsclk,firclk:out std_logic; ad_out:out std_logic_vector(1 downto 0); ad_caiji:out std_logic_vector(11 downto 0); ad_geiding:out std_logic_vector(15 downto 0) );end entity ad9220;architecture behav of ad9220 issignal ad_cs:std_logic_vector(1 downto 0);signal ad_data1,ad_data2:std_logic_vector(11 downto 0); signal present_state,next_state:std_logic_vector(2 downto 0);beginprocess(clk,reset_n) variable fir_count:std_logic_vector(11 downto 0); variable firclk_ctrl:std_logic; beginif(reset_n=0) then firclk_ctrl:=0;fir_count:=x000;elsif (clkevent and clk=1) thenfir_count:=fir_count+1;if(fir_count = x0FA) then -250*20ns*2 = 5us*2 = 100kHz=1e5fir_count:=x000;if(firclk_ctrl=0) thenfirclk_ctrl:=1;fircl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位招聘考试教师招聘数学学科专业知识试卷(数学化学天体物理化学)
- 2025年涂装工(初级)职业技能鉴定涂装设备试题试卷
- 2025年物流师(初级)职业技能鉴定试卷:物流企业物流成本核算与控制试题汇编
- 2025年数字合成师考试:数字制作中特效素材的选用与处理试卷
- 2025年探伤工(工程师)考试试卷:探伤技术职称申报技巧
- 2025年事业单位招聘考试卫生类临床医学专业知识试卷(权威)
- 2025年事业单位招聘考试法律类专业能力测试试卷(法律援助案例解析)
- 2025年天车工(中级)职业素养提升考试试卷
- 2025年事业单位招聘考试综合类专业技能测试试卷(含经济学报告)
- 2025年通信设备安装调试通信工程师考试真题模拟试卷
- 董事长的权利、职责、义务(5篇)
- K31作业现场安全隐患排除(K3)
- 港口基础设施监测技术
- 回顾长征路课件
- 为什么你的学生不思考?主题班会分享
- 医疗废物交接登记表(诊所、医务室、卫生所等)
- 气雾培技术行业市场突围建议书
- 2025届云南省施甸县第一中学物理高一下期末学业水平测试试题含解析
- python程序设计-说课
- ISO15614-1 2017 金属材料焊接工艺规程及评定(中文版)
- 学生床上用品采购投标方案(技术方案)
评论
0/150
提交评论