EDA课程实践设计.docx
《EDA课程实践设计.docx》由会员分享,可在线阅读,更多相关《EDA课程实践设计.docx(16页珍藏版)》请在冰豆网上搜索。
EDA课程实践设计
安徽农业大学
综合性(设计性)实践报告书
实践课题:
EDA课程设计实践
班级:
姓名:
学号:
指导教师:
2013年6月22日
一、实践课题名称:
1.十进制加法计数器(CPLD\FPGA)
2.A/D模数转换(FPGA)
二、课程设计目的:
1.课程设计是配合课堂教学而设置的实践性教学环节之一,在课程教学中占有重要的地位。
其总的目的是让学生及时掌握和巩固课堂所学的知识,培养学生独立思考和实际动手的能力,为后续的学习和工作打下良好的科研基础。
2.EDA课程设计的目的是让学生在熟悉传统电子系统设计方法的基础上,熟练掌握现代电子系统的设计和实现,较好地运用“自上而下”的层次设计思想。
3.运用EDA技术的开发工具设计项目,了解项目设计步骤,学习编写技术文档,提高综合应用所学知识的能力,积累CPLD\FPGA的编程、设计经验,培养编写程序、调试程序的能力。
4.培养学生自主独立学习、吸取他人经验、探索研究的习惯。
三、课程设计流程
1.十进制加法计数器(CPLD)
带有异步复位和同步时钟使能的十进制加法计数器。
十进制加法计数器的RTL电路
程序部分:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK,RST,EN:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCNT10;
ARCHITECTUREbehavOFCNT10IS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLECQI:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IFRST='1'THENCQI:
=(OTHERS=>'0');
ELSIFCLK'EVENTANDCLK='1'THEN
IFEN='1'THEN
IFCQI<9THENCQI:
=CQI+1;
ELSECQI:
=(OTHERS=>'0');
ENDIF;
ENDIF;
ENDIF;
IFCQI=9THENCOUT<='1';
ELSECOUT<='0';
ENDIF;
CQ<=CQI;
ENDPROCESS;
ENDbehav;
1)新建设计及工程
打开QuartusⅡ,选择菜单File→New,新建VHDLFile文件。
输入程序(程序见书本89页,例4-22),选择File→SaveAs,同时创建工程。
工程建立中,选择对应的CPLD芯片。
2)程序编译及波形仿真
程序编译,选择Processing→StartCompilation,开始编译。
新建波形仿真文件,New→VectorWaveformFile。
设置仿真时间区域和在仿真文件中添加引脚。
进行仿真参数设置后,选择Processing→StartSimulation,开始进行波形仿真。
3)引脚设置和下载
选择Assignment→Pin,进行引脚设置。
选择Tool→Programmer,弹出窗口,其中Mode中选择为JTAG,再选择HardwareSetup,对其进行设置,设置完成后,再对程序进行一次编译,就能点击Start对芯片进行下载。
(CPLD下载文件是*.pof)
十进制加法计数器(FPGA)
只是在芯片选择和引脚设置上有差异,其余步骤与CPLD中的设置完全一样。
选择Assignment→Device,改换为FPGA对应的芯片。
引脚设置。
编译下载。
(FPGA下载文件是*.sof)
2.A/D模数转换(FPGA)
ADC是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中,转换时间约100us。
START是转换启动信号,高电平有效。
ALE是3位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号。
当模拟量送至某一输入端(如IN1或IN2等),由3位地址信号选择,而地址信号由ALE锁存。
EOC是转换情况状态信号,当启动转换约100μs后,EOC产生一个负脉冲,以示转换结束。
在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输入至数据总线。
至此ADC0809的一次转换结束。
程序部分:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYADCINTIS
PORT(
D:
INSTD_LOGIC_VECTOR(7DOWNTO0);
CLK:
INSTD_LOGIC;
EOC:
INSTD_LOGIC;
ALE:
OUTSTD_LOGIC;
START:
OUTSTD_LOGIC;
OE:
OUTSTD_LOGIC;
ADDA:
OUTSTD_LOGIC;
LOCK0:
OUTSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDADCINT;
ARCHITECTUREbehavOFADCINTIS
TYPEstatesIS(st0,st1,st2,st3,st4);
SIGNALcurrent_state,next_state:
states:
=st0;
SIGNALREGL:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALLOCK:
STD_LOGIC;
BEGIN
ADDA<='1';
Q<=REGL;LOCK0<=LOCK;
COM:
PROCESS(current_state,EOC)BEGIN
CASEcurrent_stateIS
WHENst0=>ALE<='0';START<='0';LOCK<='0';OE<='0';
next_state<=st1;
WHENst1=>ALE<='1';START<='1';LOCK<='0';OE<='0';
next_state<=st2;
WHENst2=>ALE<='0';START<='0';LOCK<='0';OE<='0';
IF(EOC='1')THENnext_state<=st3;
ELSEnext_state<=st2;
ENDIF;
WHENst3=>ALE<='0';START<='0';LOCK<='1';OE<='1';
next_state<=st4;
WHENst4=>ALE<='0';START<='0';LOCK<='1';OE<='1';
next_state<=st0;
WHENOTHERS=>next_state<=st0;
ENDCASE;
ENDPROCESSCOM;
REG:
PROCESS(CLK)
BEGIN
IF(CLK'EVENTANDCLK='1')THENcurrent_state<=next_state;
ENDIF;
ENDPROCESSREG;
LATCH1:
PROCESS(LOCK)
BEGIN
IFLOCK='1'ANDLOCK'EVENTTHENREGL<=D;
ENDIF;
ENDPROCESSLATCH1;
ENDbehav;
1)新建设计及工程
打开QuartusⅡ,选择菜单File→New,新建VHDLFile文件。
输入程序(程序见书本192-193页),选择File→Save。
在最后建立顶层文件时同时创建工程。
选择对应的FPGA芯片。
2)程序编译
对顶层文件的程序进行编译,选择Processing→StartCompilation,开始编译。
3)引脚设置和下载
选择Assignment→Pin,进行引脚设置。
具体引脚设置。
选择Tool→Programmer,弹出窗口,其中Mode中选择为JTAG,再选择HardwareSetup,对其进行设置。
设置完成后,再对程序进行一次编译,就能点击Start对芯片进行下载。
(FPGA下载文件是*.sof)
FPGA试验箱:
四、课程设计心得
经过这次的EDA课程设计,使自己更加熟练的掌握使用EDA的开发工具QuartusⅡ,能够完成“输入”、“编译”、“仿真”、“下载”等步骤。
同时提升了自己对于CPLD\FPGA芯片的理解,使其不仅仅只局限于书本,而是灵活运用于实践当中,并在实践中发挥重要作用。
自己的动手能力得到了很大的提高。
感谢老师给的这次实践的机会,让自己学到了很多。