可编程ASIC设计与应用实验报告

上传人:沈*** 文档编号:82764231 上传时间:2022-04-29 格式:DOC 页数:11 大小:4.06MB
返回 下载 相关 举报
可编程ASIC设计与应用实验报告_第1页
第1页 / 共11页
可编程ASIC设计与应用实验报告_第2页
第2页 / 共11页
可编程ASIC设计与应用实验报告_第3页
第3页 / 共11页
点击查看更多>>
资源描述
可编程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的直流电机速度控制系统的理论及其软件仿真。九、讨论、建议、质疑疑问:在entity模块中引进一个新的synopsys(library synopsys;),并用了名为attributes的模块(即use synopsys.attributes.all),此模块的功能是自行设定type的状态,而不需要依靠计算机设定。上述的synopsys库文件是如何定义和声明的?建议:虽然没有成功利用Xilinx XUPV5-LX110T实验板和对应ISE操作平台完成实验,但是根据查阅网络资料,相信应该是个不错的平台,建议继续研究使用。 2011-11-17第 11 页 共 11 页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!