可编程ASIC设计与应用实验报告.doc_第1页
可编程ASIC设计与应用实验报告.doc_第2页
可编程ASIC设计与应用实验报告.doc_第3页
可编程ASIC设计与应用实验报告.doc_第4页
可编程ASIC设计与应用实验报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

可编程asic设计与应用实验报告可编程asic设计与应用实验报告课程名称:可编程asic设计与应用 学 院:电子信息与电气工程学部 专 业:计算机科学与技术班 级: 电计0903 学 号: 200981376 学生姓名: 闫江 2011 年 11 月 17 日实验名称:可编程asic设计与应用一、实验目的和要求熟悉并使用xilinx xupv-5lx110t实验板以及对应ise操作平台。熟练掌握vhdl这一硬件描述语言。成功完成实验项目并对仿真结果进行截图。二、实验内容基于vhdl的直流电机速度控制系统的设计。三、实验原理脉冲宽度调制(pwm)是英文“pulse width modulation”的缩写,简称脉宽调制。pwm调速系统的优点:开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好;同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,主电路损耗小,装置效率高。在试验中,利用pwm调速系统的上述优点,通过vhdl语言的描述和控制,实现对直流电机速度控制系统的高效描述和仿真。四、主要仪器设备xupv5-lx110t开发系统:xupv5-lx110t是一款强大的通用fpga平台,它采用的是xilinx公司virtex-5系列芯片:xc5vlx110t。可用于高速io如ge、10ge、pci-e接口开发验证,也可用于其他通信、网络、音视频、cpu验证等领域。强大的opensparc 评估平台是基于xilinx xupv5-lx110t多应用开发平台而开发的,其中搭载了一颗opensparc t1开源微处理器,opensparc 芯片为fpga带来了多线程吞吐特性。开发套件包括 xupv5-lx110t 开发板、1gb闪存卡、256msodimm模块、sata线、xup usb-jtag 编程电缆、dvi-vga转接头及6a电源。核心芯片xilinx virtex-5 xc5vlx110t fpga电源6a电源存储编程方式双xilinx xcf32p platform flash proms (每个32 mbyte),xilinx systemace compact flash,板载32位zbt同步 sram, intel p30 strataflash,64位 256mbyte ddr2 sodimm模块时钟板载100mhz时钟,板载可编程时钟,sma时钟输入输出标准接口sata,ps/2,rs-232,rj-45,vga,dvi,音频输入输出扩展接口单端、差分扩展io其他资源2x16lcd,led(15),按钮开关外围接口:usb (2) host and peripheral ps/2 (2) keyboard, mouse rj-45 10/100/1000 networking rs-232 (male) serial port audio in (2) line, microphone audio out (2) line, amp, spdif video input video (dvi/vga) output single-ended and differential i/o expansion五、实验步骤与操作方法要想控制直流电机就必须产生正确的输出、输入端口信号。通过完成直流电机速度控制系统各个组成部分的设计,再把这些部分组装起来,形成完整的总体设计,命名为motorctrl,对外的端口引脚名称如下:(1) 输入:clk、reset、speed_now70、target_speed70、th_speed70 (2) 输出:pwme 其中,clk为时钟信号,speed_now70为外部检测直流电机的速度, target_speed7 downto 0为设定电流电机预定达到目标的速度值,th_speed70,为设定直流电机进入弱加速度的临界速度差值,pwme为控制直流电机转动信号。直流电机速度控制系统vhdl程序设计entity模块library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; library synopsys; use synopsys.attributes.all; entity motorctrl is port (clk: in std_logic; reset: in std_logic; speed_now: in std_logic_vector (7 downto 0); -加载编码器检测的速度target_speed: in std_logic_vector (7 downto 0); -设定电机预定达到目标的速度值th_speed: in std_logic_vector (7 downto 0); -设定电机进入弱加速的临界速度差值pwme: out std_logic); -脉冲调制的输出,负责控制电机转动的信号end;在entity模块中引进一个新的synopsys(library synopsys;),并用了名为attributes的模块(即use synopsys.attributes.all),此模块的功能是自行设定type的状态,而不需要依靠计算机设定。architecture 模块architecture motorctrl_arch of motorctrl is-define the signal_structure and flow of the device signal cnt125: integer range 0 to 124; signal cnt375: integer range 0 to 374; signal cnt500: integer range 0 to 499; signal dth: std_logic_vector (7 downto 0); signal pwm: std_logic; - user defined encoded state machine: phase type phase_type is (phb1, phb2); attribute enum_encoding of phase_type: type is0 & - phb1 1 ; - phb2 signal phase: phase_type; - eser defined encoded state machine: speeding type speeding_type is (upa, upb ,dn ,final); attribute enum_encoding of speeding_type: type is 00 & -upa 01 & -upb 10 & -dn 11 ; -final signal speeding: speeding_type; begin 直流电机速度设定电路模块- concurrent signals assignments -motorcontrol peeding_machine: process (reset,clk) begin if reset=1 then speeding = upa; dth=00000000; elsif (clkevent and clk=1) then dth if (speed_now = target_speed) then speeding target_speed) then speeding = dn; elsif (speed_now dth) then speeding =dth) and (speed_now target_speed) then speeding if (speed_now = target_speed) then speeding = final; elsif (speed_now dth) then speeding =dth) and (speed_now target_speed) then speeding target_speed) then speeding if (speed_now = target_speed) then speeding = final; elsif (speed_now dth) then speeding target_speed) then speeding =dth) and (speed_now target_speed) then speeding if (speed_now target_speed) then speeding =dth) and (speed_now target_speed) then speeding = upb; elsif (speed_now = target_speed) then speeding = final; elsif (speed_now dth) then speeding null; end case; end if; end process;直流电机相位设定电路模块phase_machine: process (reset,clk) begin if reset=1 then cnt500 = 0; cnt375 = 0; cnt125 = 0; pwm=0; pwme=0; phase=phb1; elsif (clkevent and clk=1) then pwme case speeding is when upa = cnt375=374; cnt125=124; cnt500=499; pwm cnt500=499; cnt375=cnt375-1; cnt125=124; pwm cnt500=499; cnt375=cnt375-1; cnt125=124; pwm cnt500=cnt500-1; cnt375=374; cnt125=124; pwm null; end case; if (cnt375=0 or cnt500=0) then cnt500=499; cnt375=374; phase case speeding is when upa = cnt375=374; cnt125=124; cnt500=499; pwm cnt500=499; cnt375=374; cnt125=cnt125-1; pwm cnt500=499; cnt375=374; cnt125=cnt125-1; pwm cnt500=cnt500-1; cnt375=374; cnt125=124; pwmnull; end case; if (cnt125=0 or cnt500=0) then cnt500=499; cnt125=124; phase null; end case; end if; end process; 六、实验结果的仿真与分析假设电机的起始转速为36,因为转速小于目标速度,所以电机进入加速模式,故pwme维持为1,一直使电机进行加速运转。加速操作模式仿真结果如下图:假设电机的速度已经达到了113,因为转速符合进入弱加速的条件(speed_now=dth) and (speed_nowtarget_speed),所以电机进入弱加速模式,故pwme在375个时钟周期里维持1,125个时钟周期里维持0。减速操作模式仿真结果如下图假设电机的速度已经达到了144,这时就超过了规定速度值(128),因为转速过快,系统要求减速,所以电机进入减速模式,故pwme在125个时钟周期里维持1,375个时钟周期里维持0。减速操作模式仿真结果如下图:假设电机的速度已经达到128,因为转速与目标速度一致,所以电机进入定速模式,因此正传与反转的时间必须相同,故pwme在500个时钟周期里维持1,500个时钟周期里维持0。定速操作模式仿真结果如下图:八、实验总结鉴于quartus ii软件平台的优越性,本文并不是在max+plus2平台而是quartus ii平台上进行的设计、编译以及仿真。通过本实验,达到了以下预期目的:(1)quartus ii软件平台的应用。掌握了基于vhdl语言设计的基本流程和设计输入,设计编译,设计仿真等模块的应用。通过应用使我对vhdl语言深入的了解,可以熟练地使用quartus ii平台进行编程和其他应用。(2)基于vhdl的直流电机速度控制系

温馨提示

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

评论

0/150

提交评论