《2014年测控专业Verilog HDL课程设计》由会员分享,可在线阅读,更多相关《2014年测控专业Verilog HDL课程设计(15页珍藏版)》请在金锄头文库上搜索。
1、2014年测控专业Verilog HDL课程设计一、资料下载1、软件包下载(软件破解过程搜索“百度经验”)Quartus II 9.0软件下载(包含安装软件,破解介绍)http:/ 提取码 75332、例程下载http:/ 提取码 25f63、期末复习资料下载http:/ 提取码 dfe8二、课程设计1、多路选择器设计实验要求:教材P-111 4-1例程:EXPERIMENTsEXP0_MUX41根据例程写出实验报告,包括程序设计、软件编译、仿真分析,给出实验分析报告、仿真波形及分析报告。2、乐曲硬件演奏电路设计要求:教材P-225 8-5 实验任务一、实验任务二例程:EXPERIMENTsE
2、XP4_Music根据例程写出实验报告,包括程序设计、软件编译、仿真分析,给出实验分析报告、仿真波形及分析报告。参考格式:直流电机的PWM控制器的设计目录1.绪论1.1直流电机介绍直流电机是实现直流电能与机械能之间相互转换的一种电力机械,按照直流电机的用途分为直流电动机和直流发电机两类。能够将机械能转换成直流电能的电机称为直流发电机;能够将直流电能转换成机械能的电机称为直流电动机。1.1.1直流电机的特点从直流电机与交流电机相比中可以看出,直流电机具有优良的调速性能和启动性能。直流电机具有宽广的调速范围,平滑的无级调速特性,可实现频繁的无级快速启动、制动和反转;过载能力大,能承受频繁的冲击负载
3、;能满足自动化生产系统中各种特殊运行的要求。而直流发电机则能提供无脉动的大功率直流电源,且输出电压可以精确地调节和控制。1.1.2直流电机的应用直流电机是交通、工矿、建筑等行业中的常见动力机械,是机电行业人员的重要工作对象和工具。在某些要求调速范围广、速度快、精密度高、控制性能优异的场合,直流电机的应用目前仍占有较大的比重,如大型可逆式轧钢机、内燃机车、矿井卷扬机、造纸和印刷机械、宾馆高速电梯、城市电车、电动自行车、龙门刨床、电力机车、地铁列车、船舶机械、大型精密机床和大型起重机等生产机械中。1.2 EDA介绍EDA电子设计自动化是Electronic Design Automation的简称
4、,从20世纪60年代中期发展开始至今,已经取得了飞跃性的进步,在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已经非常普及,这些可编程逻辑器件为数字系统的设计带来了相当大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构和改变,这就使得硬件的设计可以如同软件设计那样方便快捷效率高,可编程逻辑器件加快了EDA技术的发展,在现代社会,尤其是电子信息科技行业发展突飞猛进,在化工、机械、电子、通信、医学、航空航天、矿产、生物、军事等各个领域都有EDA的广泛应用,相信在为了社会EDA技术会发展的更加发达。1.3 FPGA介绍FPGA是FieldProgrammable
5、Gate Array的简称,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列,内部包括可配置逻辑模块、输出输入模块和内部连线三个部分。FPGA具有一些重要的特点,例如:采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片;FPGA可做其它全定制或半定制ASIC电路的中试样片;FPGA内部有丰富的触发器和IO引脚;FPGA是ASIC电路中设计周期最短、开发费用最低、风险最
6、小的器件之一;FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。所以可以这么认为,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片E
7、PROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。1.4 Verilog HDL硬件描述语言1.4.1 Verilog HDL硬件描述语言介绍本文的程序采用Verilog HDL硬件描述语言,Verilog HDL硬件描述语言时目前应用最广泛的硬件描述语言,Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述。本文就是基于FPGA,产生PWM波形,通过Verilog HDL语言编程实现电机的运转控制的
8、。1.4.2 Verilog HDL功能Verilog HDL典型的功能,基本逻辑门,例如a n d、o r和n a n d等都内置在语言中。 用户定义原语( U D P)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。 开关级基本结构模型,例如p m o s 和n m o s等也被内置在语言中。 提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。 可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式使用过程化结构建模;数据流方式使用连续赋值语句方式建模;结构化方式使用门和模块实例语句描述建模。 Verilog HDL中有两类数据类型
9、:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。能够描述层次设计,可使用模块实例结构描述任何层次。 设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。Verilog HDL不再是某些公司的专有语言而是I E E E标准。人和机器都可阅读Verilog 语言,因此它可作为E D A的工具和设计者之间的交互语言。Verilog HDL语言的描述能力能够通过使用编程语言接口( P L I)机制进一步扩展。P L I是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。 设计能够在多个层次上加以描述,从开关级、门
10、级、寄存器传送级( RT L)到算法级,包括进程和队列级。能够使用内置开关级原语在开关级对设计完整建模。 同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。 Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。 在行为级描述中, Verilog HDL不仅能够在RT L级上进行设计描述,而且能够在体系结构级描述及其算 法级行为上进行设计描述。 能够使用门和模块实例化语句在结构级进行结构描述。 在Verilog HDL 的混合方式建模能力,即在一个设计中每个模块均可以在不同
11、设计层次上建模。 Verilog HDL 还具有内置逻辑函数,例如&(按位与)和|(按位或)。对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。可以显式地对并发和定时进行建模。 提供强有力的文件读写能力。 1.5 PWM脉冲宽度调制介绍脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,
12、也是人们研究的热点。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。1.6直流电机的PWM控制PWM信号可以由CPU产生,也可以由FPGA产生。由CPU产生PWM信号时,是通过模拟比较器产生的,比较器
13、的一端接一个给定的参考电压,另一端接周期性线性增加的锯齿波电压。当锯齿波电压小于参考电压时输出低电平,当锯齿波电压大于参考电压时就输出高电平。所以改变参考电压就可以改变PWM波形的高电平的宽度,也就是改变PWM波形的占空比。CPU产生PWM信号,需要D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟比较器输出PWM,因此外围电路很复杂。而用FPGA的数字PWM控制产生PWM信号,只需要FPGA内部资源就可以实现,FPGA的优点和工作原理前文已经描述,运用可编程逻辑器件,采用Verilog HDL硬件描述语言编程。数字比较器的一端接设定值计数器输出,另一端接线性递增计数器输出。如果线性计数器
14、的计数值小于设定值是就输出低电平,如果线性计数器的计数值大于设定值时输出高电平。FPGA的数字PWM控制与模拟PWM控制相比,省去了外接的D/A转换器和模拟比较器,FPGA外部连线很少、电路简单、便于控制。2.设计原理2.1设计原理框图直流电机控制电路主要由3部分组成:(1) FPGA中产生PWM脉宽调制信号电路(2) FPGA中的工作/停止和正/反转方向控制电路(3) 记速显示模块计数器设置PWM信号的占空比。通过设定duty_cycle的值改变占空比,当pwm_en =1时,counter计数器的输出值增加,当计数器的值小于duty_cycle时,PWM的占空比就会增加,电机转速就会加快;
15、否则 PWM的占空比减小,电机转速就会变慢。在电机控制模块里,设置了按键消抖部分,防止按键的不灵敏带来的误差,同时设置了3个按键,通过按键1控制电机速度,按键1可以改变duty_cycle的值,近而通过pwm_logic模块改变PWM波形达到改变速度的目的;通过按键2控制电动机启动、停止,按键2可以改变pwm_en的值,使电源接通或者关闭以使电机启动或者停止;通过按键3控制电动机正/反转,按键3可以改变电机控制模块内部的直流电流方向,从而改变电机的运转方向。2.2原理图2.3 模块设计2.3.1 moto_test模块该模块设计了3个按键,Key2:按下该键产生信号,可以使PWM波形翻转,以控制电机正/反转;Key1:按下该键测试信号,控制PWM波形输出或停止,从而控制电动机启动、停止;Key0: 按下该键时,可以改变PWM波形的占空比,占空比增加,电机加快,占空比减少,电机变慢,如下图所示:模块程序如下:module moto_test(clock,key,duty_cycle,pwm_en,pwm_in,motoa,motob,led);input clock;/系统时钟(48MHz)input2:0 key;/按键输入(KEY1KEY3)output3:0duty_cycle;/PWM占空比控制