可编程ASIC设计与应用实验报告 闫江 电计0903.docx
- 文档编号:17085306
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:16
- 大小:3.96MB
可编程ASIC设计与应用实验报告 闫江 电计0903.docx
《可编程ASIC设计与应用实验报告 闫江 电计0903.docx》由会员分享,可在线阅读,更多相关《可编程ASIC设计与应用实验报告 闫江 电计0903.docx(16页珍藏版)》请在冰点文库上搜索。
可编程ASIC设计与应用实验报告闫江电计0903
可编程ASIC设计与应用
实验报告
课程名称:
可编程ASIC设计与应用
学院:
电子信息与电气工程学部
专业:
计算机科学与技术
班级:
电计0903
学号:
200981376
学生姓名:
闫江
2011年11月17日
实验名称:
可编程ASIC设计与应用
一、实验目的和要求
熟悉并使用XilinxXUPV-5LX110T实验板以及对应ISE操作平台。
熟练掌握VHDL这一硬件描述语言。
成功完成实验项目并对仿真结果进行截图。
二、实验内容
基于VHDL的直流电机速度控制系统的设计。
三、实验原理
脉冲宽度调制(PWM)是英文“PulseWidthModulation”的缩写,简称脉宽调制。
PWM调速系统的优点:
开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好;同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,主电路损耗小,装置效率高。
在试验中,利用PWM调速系统的上述优点,通过VHDL语言的描述和控制,实现对直流电机速度控制系统的高效描述和仿真。
四、主要仪器设备
XUPV5-LX110T开发系统:
XUPV5-LX110T是一款强大的通用FPGA平台,它采用的是XILINX公司Virtex®-5系列芯片:
XC5VLX110T。
可用于高速IO如GE、10GE、PCI-e接口开发验证,也可用于其他通信、网络、音视频、CPU验证等领域。
强大的OpenSPARC评估平台是基于XilinxXUPV5-LX110T多应用开发平台而开发的,其中搭载了一颗OpenSparcT1开源微处理器,OpenSPARC芯片为FPGA带来了多线程吞吐特性。
开发套件包括XUPV5-LX110T开发板、1GB闪存卡、256MSODIMM模块、SATA线、XUPUSB-JTAG编程电缆、DVI-VGA转接头及6A电源。
核心芯片
XilinxVirtex-5XC5VLX110TFPGA
电源
6A电源
存储编程方式
双XilinxXCF32PPlatformFlashPROMs(每个32Mbyte),XilinxSystemACECompactFlash,板载32位ZBT 同步SRAM ,IntelP30StrataFlash,64位256MbyteDDR2SODIMM模块
时钟
板载100MHz时钟,板载可编程时钟,SMA时钟输入输出
标准接口
SATA,PS/2,RS-232,RJ-45,VGA,DVI,音频输入输出
扩展接口
单端、差分扩展IO
其他资源
2x16LCD, LED(15),按钮开关
外围接口:
●USB
(2)–HostandPeripheral
●PS/2
(2)–Keyboard,Mouse
●RJ-45–10/100/1000Networking
●RS-232(Male)–Serialport
●AudioIn
(2)–Line,Microphone
●AudioOut
(2)–Line,Amp,SPDIF
●VideoInput
●Video(DVI/VGA)Output
●Single-EndedandDifferentialI/OExpansion
五、实验步骤与操作方法
要想控制直流电机就必须产生正确的输出、输入端口信号。
通过完成直流电机速
度控制系统各个组成部分的设计,再把这些部分组装起来,形成完整的总体设计,命名为motorctrl,对外的端口引脚名称如下:
(1)输入:
clk、reset、speed_now[7…0]、target_speed[7…0]、th_speed[7…0]
(2)输出:
pwme
其中,clk为时钟信号,speed_now[7…0]为外部检测直流电机的速度,target_speed[7downto0]为设定电流电机预定达到目标的速度值,th_speed[7…0],为设定直流电机进入弱加速度的临界速度差值,pwme为控制直流电机转动信号。
直流电机速度控制系统VHDL程序设计
entity模块
libraryIEEE;
useIEEE.std_logic_1164.all;
useIEEE.std_logic_arith.all;
useIEEE.std_logic_unsigned.all;
librarySYNOPSYS;
useSYNOPSYS.attributes.all;
entitymotorctrlis
port(clk:
inSTD_LOGIC;
reset:
inSTD_LOGIC;
speed_now:
inSTD_LOGIC_VECTOR(7downto0);
--加载编码器检测的速度
target_speed:
inSTD_LOGIC_VECTOR(7downto0);
--设定电机预定达到目标的速度值
th_speed:
inSTD_LOGIC_VECTOR(7downto0);
--设定电机进入弱加速的临界速度差值
pwme:
outSTD_LOGIC);
--脉冲调制的输出,负责控制电机转动的信号
end;
在entity模块中引进一个新的synopsys(librarysynopsys;),并用了名为attributes的模块(即usesynopsys.attributes.all),此模块的功能是自行设定type的状态,而不需要依靠计算机设定。
architecture模块
architecturemotorctrl_archofmotorctrlis
--definethesignal_structureandflowofthedevice
signalcnt125:
INTEGERrange0to124;
signalcnt375:
INTEGERrange0to374;
signalcnt500:
INTEGERrange0to499;
signaldth:
STD_LOGIC_VECTOR(7downto0);
signalpwm:
STD_LOGIC;
--userdefinedencodedstatemachine:
phase
typephase_typeis(phB1,phB2);
attributeenum_encodingofphase_type:
typeis
"0"&--phB1
"1";--phB2
signalphase:
phase_type;
--eserdefinedencodedstatemachine:
speeding
typespeeding_typeis(UPA,UPB,Dn,final);
attributeenum_encodingofspeeding_type:
typeis
"00"&--UPA
"01"&--UPB
"10"&--Dn
"11";--final
signalspeeding:
speeding_type;
begin
直流电机速度设定电路模块
--concurrentsignalsassignments
--MotorControl
peeding_machine:
process(reset,clk)
begin
ifreset='1'then
speeding<=UPA;
dth<="00000000";
elsif(clk'eventandclk='1')then
dth<=target_speed-th_speed;
casespeedingis
whenUPA=>
if(speed_now=target_speed)then
speeding<=final;
elsif(speed_now>target_speed)then
speeding<=Dn;
elsif(speed_now speeding<=UPA; elsif(speed_now>=dth)and(speed_now speeding<=UPB; endif; whenUPB=> if(speed_now=target_speed)then speeding<=final; elsif(speed_now speeding<=UPA; elsif(speed_now>=dth)and(speed_now speeding<=UPB; elsif(speed_now>target_speed)then speeding<=Dn; endif; whenDn=> if(speed_now=target_speed)then speeding<=final; elsif(speed_now speeding<=UPA; elsif(speed_now>target_speed)then speeding<=Dn; elsif(speed_now>=dth)and(speed_now speeding<=UPB; endif; whenfinal=> if(speed_now>target_speed)then speeding<=Dn; elsif(speed_now>=dth)and(speed_now speeding<=UPB; elsif(speed_now=target_speed)then speeding<=final; elsif(speed_now speeding<=UPA; endif; whenothers=>null; endcase; endif; endprocess; 直流电机相位设定电路模块 phase_machine: process(reset,clk) begin ifreset='1'then cnt500<=0; cnt375<=0; cnt125<=0; pwm<='0'; pwme<='0'; phase<=phB1; elsif(clk'eventandclk='1')then pwme<=pwm; casephaseis whenphB1=> casespeedingis whenUPA=> cnt375<=374; cnt125<=124; cnt500<=499; pwm<='1'; whenUPB=> cnt500<=499; cnt375<=cnt375-1; cnt125<=124; pwm<='1'; whenDn=> cnt500<=499; cnt375<=cnt375-1; cnt125<=124; pwm<='0'; whenfinal=> cnt500<=cnt500-1; cnt375<=374; cnt125<=124; pwm<='1'; whenothers=>null; endcase; if(cnt375=0orcnt500=0)then cnt500<=499; cnt375<=374; phase<=phB2; endif; whenphB2=> casespeedingis whenUPA=> cnt375<=374; cnt125<=124; cnt500<=499; pwm<='1'; whenUPB=> cnt500<=499; cnt375<=374; cnt125<=cnt125-1; pwm<='0'; whenDn=> cnt500<=499; cnt375<=374; cnt125<=cnt125-1; pwm<='1'; whenfinal=> cnt500<=cnt500-1; cnt375<=374; cnt125<=124; pwm<='0'; whenothers=>null; endcase; if(cnt125=0orcnt500=0)then cnt500<=499; cnt125<=124; phase<=phB1; endif; whenothers=>null; endcase; endif; endprocess; 六、实验结果的仿真与分析 假设电机的起始转速为36,因为转速小于目标速度,所以电机进入加速模式,故pwme维持为1,一直使电机进行加速运转。 加速操作模式仿真结果如下图: 假设电机的速度已经达到了113,因为转速符合进入弱加速的条件((speed_now>=dth)and(speed_now 减速操作模式仿真结果如下图 假设电机的速度已经达到了144,这时就超过了规定速度值(128),因为转速过快,系统要求减速,所以电机进入减速模式,故pwme在125个时钟周期里维持1,375个时钟周期里维持0。 减速操作模式仿真结果如下图: 假设电机的速度已经达到128,因为转速与目标速度一致,所以电机进入定速模式,因此正传与反转的时间必须相同,故pwme在500个时钟周期里维持1,500个时钟周期里维持0。 定速操作模式仿真结果如下图: 八、实验总结 鉴于QuartusII软件平台的优越性,本文并不是在MAX+PLUS2平台而是QuartusII平台上进行的设计、编译以及仿真。 通过本实验,达到了以下预期目的: (1)QuartusII软件平台的应用。 掌握了基于VHDL语言设计的基本流程和设计输入,设计编译,设计仿真等模块的应用。 通过应用使我对VHDL语言深入的了解,可以熟练地使用QuartusII平台进行编程和其他应用。 (2)基于VHDL的直流电机速度控制系统的理论及其软件仿真。 九、讨论、建议、质疑 疑问: 在entity模块中引进一个新的synopsys(librarysynopsys;),并用了名为attributes的模块(即usesynopsys.attributes.all),此模块的功能是自行设定type的状态,而不需要依靠计算机设定。 上述的synopsys库文件是如何定义和声明的? 建议: 虽然没有成功利用XilinxXUPV5-LX110T实验板和对应ISE操作平台完成实验,但是根据查阅网络资料,相信应该是个不错的平台,建议继续研究使用。 2011-11-17
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程ASIC设计与应用实验报告 闫江 电计0903 可编程 ASIC 设计 应用 实验 报告 0903
![提示](https://static.bingdoc.com/images/bang_tan.gif)