实验四 32位计数器.docx
《实验四 32位计数器.docx》由会员分享,可在线阅读,更多相关《实验四 32位计数器.docx(21页珍藏版)》请在冰豆网上搜索。
实验四32位计数器
32位计数器
1、实验目的
熟悉ISE系列软件的设计流程和基本工具使用。
2、实验内容
(1)创建ISE工程。
(2)VHDL语言设计输入。
(3)完成简单的设计约束,设计综合和设计实现,并生成下载配置文件。
(4)在Spartan3E开发板上实现32位计数器的计数的显示。
3、实验器材
Spartan3E开发板。
4、实验说明
实验中所需要的源文件在本报告附录中。
5、实验步骤
步骤1:
创建ISE工程
(1)启动桌面上的ISE9.1
图标,在ProjectNavigator中选择File→NewProject。
(2)在弹出的对话框(见图1)中,设置工程名为count32,工程存放路径为E:
\work\,顶层模块类型选择HDL,并单击Next按钮。
图1ISE工程属性对话框
(3)出现图2所示对话框,目标器件选择spartan3E,具体设计如下图
图2ISE工程属性对话框
(4)一直点击Next,直到出现图3(即是刚才所设定的),最后点击Finish。
图3工程设计总表
出现图4,这就是所建立的工程,现在我们需要在里面完成我们的设计。
图4ISE工程属性对话框
步骤2:
创建新的VHDL设计文件
(1)在ISE用户界面中,选择Project→NewSource。
(2)在弹出的对话框(见图5)中,选择VHDLModule作为源程序类型,设置文件名为count32,并单击“下一步”按钮。
图5VHDL的NewSourceWizard
(3)点击Next,直到出现图6,直到Finish。
图6程序总结
(4)点击Finish之后出现程序编辑窗口,在窗口中进行程序编辑。
输入32位计数器程序并保存(程序见附录),编辑窗口如图7。
图7保存后的程序编辑窗口
步骤3:
利用XST进行设计综合并仿真
(1)点击processes目录下的synthesize-XST可以实现综合。
单击synthesize-XST左边的
可以展开它。
综合后可以点击生成相应的文件并观察。
如图8所示。
(必须!
!
)
图8综合后的程序编辑窗口
(2)综合过后,在信息显示窗口中会显示Process"Synthesize"completedsuccessfully即综合成功。
成功后会在相应的地方打勾,即
。
如果有警告会出现感叹号,若为错误会出现叉号,可以点击Transoript下的Errors查看错误信息并修改,警告信息可以忽略。
(3)仿真。
(可不仿真)
步骤4:
设计实现
(1)查看设计(该步操作可不进行)
双击DesignUtilities目录下的CreatSchematicSymbol,创建原理图,创建完成之后,信息窗口中如图16所示。
图16创建原理图后的信息窗口
点击工具栏的
按钮,选择count.SYM,注意是以.SYM结尾的,如图17所示,
图17打开原理图的窗口
点击打开,如图18所示,
图18原理图
(2)创建用户约束文件(必须!
!
)
a:
在processes框中选择userconstraints,打开其+号,选择下拉菜单中的createareaconstraints,双击它来添加约束。
b:
会出现一个问你是否创建约束文件的窗口,点击YES,出现一个窗口,点击右侧的packageview。
c:
在左下的窗口中可以定义输入输出与引脚的连接。
具体的设置如图19,设置后点击保存并关闭窗口。
完成上述步骤后,约束文件就已经创建好了。
图19分配引脚后的封装图
具体的约束条件为:
NET"clk"LOC="C9";--系统时钟,50Mhz
NET"cnt<0>"LOC="F12";--LED0
NET"cnt<1>"LOC="E12";--LED1
NET"cnt<2>"LOC="E11";--LED2
NET"cnt<3>"LOC="F11";--LED3
步骤5:
生成下载配置文件
(1)点击processes中的implementdesign,完成实现设计的三个步骤,即转换、映射和布局布线,如图20,
图20布局布线图
(2)继续点击下一步GenerateProgramFile可以生成位流文件,关闭弹出的对话框。
(3)将板子的电源和数据线连接好,点击GenerateProgramFile的+号,在下拉菜单中选择generatePROM,ACE,or,JTAGFile,并双击。
出现图21,并选择如下配置。
图21iMPACT界面
(4)点击Next,出现图22,
图22PROM文件
(5)点击Next,选择一个PROM。
如图23,
图23具体的XilinxPROM器件
(7)点击Next,直到点击Finish,完成,出现下图24,
图24文件生成总结
(8)点击完成之后,如图25所示,
图25配置文件
(9)点击OK,添加位流文件,如图26所示,
图26添加位流文件
(10)选中count.bit文件,打开它,在接下弹出的窗口中点击NO,如图27所示。
图27增加器件
(11)点击No之后,出现图28,
图28增加器件
(12)如图29所示,
图29PROM文件格式
(13)双击source框中的最后一个PROMFileFormatter,在Processes中双击GenerateFile,生成以.MCS结尾的文件,如图30所示,
图30生成PROM文件
(14)双击source框中的第一个boundaryscan,并在最右侧的空白处右击选择InitializeChain,如图31所示,
图31初始化文件
(15)在弹出的选择添加count32.bit,和Untitled.mcs,后面1个不添加,如图32所示,
图32添加器件之后的图
(16)右击count32.bit文件选择program命令,如图33,
图33
(17)Program之后,会出现下图34:
图34
(18)在弹出的ProgramSucceeded上点击OK
(19)同样,按照下图35所示,下载程序
图35
(20)在弹出的ProgramSucceeded上点击OK
(21)把设计下载到板子中,在板子上可以看到效果。
注意:
板子断电后必须重新载入程序。
6、实验现象
通过把程序下载到Spartan3E板上,可以看到LED发光二极管的低四位按照顺序发光。
7、结语
本实验主要是对ISE软件的熟悉,了解下载的流程。
在做此实验的过程时可以相应的看下其他各种命令会产生什么结果。
熟悉ISE能完成的相关功能,并了解相关设置的含义,以及板子的使用等等。
附录:
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitycountis
Port(clk:
inSTD_LOGIC;
cnt:
outSTD_LOGIC_VECTOR(3downto0)
);
endcount;
architectureBehavioralofcountis
signalcounter:
std_logic_vector(31downto0):
=(others=>'0');
begin
process(clk)
begin
if(clk'eventandclk='1')then
counter<=counter+1;
endif;
endprocess;
cnt<=counter(31downto28);
endBehavioral;