资源描述
使用ECS绘制六十进制计数器
1、实验目的
本实验通过设计一个六十进制计数器,介绍如何使用ECS绘制模块原理图,并通过添加一个分频器来进行模块化设计。
2、实验内容
通过本实验要求掌握以下几点:
1、熟练运用ECS绘制原理图
2、掌握模块化设计方法
3、实验器材
Spartan 3E开发板。
4、实验说明
实验中所需要的源文件在本报告附录中。
5、实验步骤
步骤1:新建工程
1、新建名为cnt_60的工程
(1)启动桌面上的ISE9.1图标,在Project Navigator中选择File→New Project。
(2)在弹出的对话框(见图1)中,设置工程名为cnt_60,工程存放路径为E:\work\,顶层模块类型选择HDL,并单击Next按钮。
图1 ISE工程属性对话框
(3)出现图2所示对话框,目标器件选择spartan3E,具体设计如下图
图2 ISE工程属性对话框
(4)一直点击Next,直到出现图3(即是刚才所设定的),最后点击Finish。
图3 工程设计总表
2、新建原理图资源文件
(1) 双击Creat New Source,点击Execute。选择新建资源类型为Schematic,新建文件名为“cnt60”,并勾选Add to project,如图4,
图4 新建原理图“cnt60”
(2)单击NEXT,单击Finish,启动ECS,如图5,
图5 原理图编辑窗口
3、选择并放置器件符号
“cnt60”是时间计数器,有两个4bit总线输出代表时间的各位与十位数值。在出现的原理图编辑窗口中放置各种逻辑块,单击绘图工具栏中的按钮,在器件符号分类显示目录选择所有器件(All Symbols),在“Filter”中输入“cd4ce”,把选中的器件拖到工作区的合适位子,单击鼠标左键,把该器件放下。再如上放下其它器件。还须2个and2,2个or2, 2 个inv, 1个and4,如图6,
图6 放置器件的原理图编辑窗口
4、添加连线
(1)单击绘图工具栏的按钮,选择智能连线方式,当鼠标移动到可画线区域时,鼠标符号自动变为“+”形状,点击始点管脚,再点击终点管脚
(2)单击右键结束操作
(3)依照原理图连接其它线,并在器件端口拉出一小段线段为添加网线名称与I/O管脚做准备,如图7,
图7 连完线的编辑窗口
5、设置I/O管脚
(1)单击绘图工具栏的按钮,在每个I/O管脚处单击,,为原理图设置I/O管脚,如图8
图8 设置I/O管脚
(2) 在I/O管脚上双击,修改管脚名,如图9
图9 修改I/O管脚的名字
(3)修改完后,单击右键结束操作
6、绘制总线
ECS中没有专用的总线绘制命令,绘制总线时仍然采用绘制总线命令,仅仅用网线名区分总线与普通连线。总线的名称命名格式BusName(X:Y),其中为BusName是总线名称,“()”为总线表示符号,X为MSB,Y为LSB。
(1) 绘制总线并添加总线名
(2) 单击按钮为总线添加分支。适当旋转总线分支方向,使总线分支的三角形连接在总线上。如图10
图10 添加总线分支
(3) 接着单击绘图工具栏的按钮,绘制连线连接总线分支与与单根信号线。
(4) 最后为总线的信号添加网线名称。
总线分支信号网线名称格式为“BusName(a)”的形式,其中”BusName”是总线名称,“ a”为在总线MSN与LSB之间的一个阿拉伯数字,表示信号线标号。要注意的是:总线分之信号的名称一定要与总线信号名称一致,并且注意顺序。而且总线与总线之间的名称不能相同。
7、运用以上步骤把原理图设计完,并保存设计。
原理图绘制完后,还必须检查错误。单击绘图工具栏的按钮,ECS自动检查当前原理图。出现“No error or warning is detected”后,退出ECS。
8、在Project Navigator的Source窗口中选中“cnt60”,展开当前资源操作窗的“Design Utilities”项目,双击”Creat Schematic Symbol”命令生成“cnt60”的模块符号作为顶层原理图的用户模块符号
9、如上在该工程中添加分频器模块,并双击”Creat Schematic Symbol”命令生成模块
10、使用HDL Bencher生成测试激励。
(1) 新建资源,选择新建资源类型为“Test Bench Waveform”。如图11
图11 新建测试激励文件
(2)设置仿真基本参数。具体设置如图12
图12 设置仿真基本参数
(3)编辑激励波形。在信号的适当位置单击鼠标,就能改变信号电平,如图13
图13 编辑测试激励波形
(4)生成仿真波形
单击保存后,在Project Navigator的Source窗口中选择Behavioral Simulation,并选中cnt _wave.tbw后,在双击Process窗口中的Xilinx ISE Simulator 中的Simulate Behavioral Model,出现的仿真结果如图14
图14 仿真结果
11、仿真波形正确后,再新建顶层原理图
(1)启动ECS
(2)选择并放置器件
在Categories窗口中选中“cnt_60”的路径,再在Symbols窗口中把刚生成的模块拖到原理图窗口,按图15设计原理图
图15 分频后的原理图
12、保存后进行管脚约束
约束设置如图16
图16 分配引脚后的封装图
具体的约束条件为:
NET "CE" LOC = "L13" | IOSTANDARD = LVTTL ;
NET "CLK" LOC = "C9" ;
NET "CLR" LOC = "H18" | IOSTANDARD = LVTTL ;
NET "HIGHT<0>" LOC = "C11" ;
NET "HIGHT<1>" LOC = "D11" ;
NET "HIGHT<2>" LOC = "E9" ;
NET "HIGHT<3>" LOC = "F9" ;
NET "LOW<0>" LOC = "F12" ;
NET "LOW<1>" LOC = "E12" ;
NET "LOW<2>" LOC = "E11" ;
NET "LOW<3>" LOC = "F11" ;
13、下载到硬件
(1)点击Implement design自动完成布线和面积约束,如图17所示,
图17 完成实现的原理图
(2)继续点击下一步generate program file可以生成位流文件,关闭弹出的对话框
(3)将板子的电源和数据线连接好,点击generate program file的+号,在下拉菜单中选择generate PROM,ACE,or,JTAG File ,并双击。出现下图,并选择如下配置。
图18 iMPACT界面
(4)点击Next,出现图19,
图19 PROM文件
(5)点击Next,选择一个PROM。如图20,
图20 具体的Xilinx PROM器件
(6)点击Next,直到点击Finish,完成,出现下图21,
图21 文件生成总结
(7)点击完成之后,如图22所示,
图22 配置文件
(8)点击OK ,添加位流文件,如图23所示,
图23 添加位流文件
(9)选中cnt60.bit文件,打开它,在接下弹出的窗口中点击NO,如图24所示。
图24 增加器件
(10)点击No之后,出现图25,
图25 增加器件
(11)如图26所示,
图26 PROM 文件格式
(12)双击source框中的最后一个PROM File Formatter,在Processes中双击Generate File,生成以.MCS结尾的文件,如图27所示,
图27 生成PROM文件
(13)双击source框中的第一个boundary scan,并在最右侧的空白处右击选择Initialize Chain,如图28所示,
图28 初始化文件
(14)在弹出的选择添加cnt60.bit,和Untitled.mcs,后面1个不添加,如图29所示,
图29 添加器件之后的图
(15)右击cnt60.bit文件选择program命令,如图30,
图30
(16)Program之后,会出现下图31:
图31
(17)在弹出的Program Succeeded上点击OK
(18)同样,按照下图32所示,下载程序
图32
(19)在弹出的Program Succeeded上点击OK
(20)把设计下载到板子中,在板子上可以看到实验现象。
注意:板子断电后必须重新载入程序。
6、结语
通过这个实验,你即可以学到一般的下载流程,还可以学习到原理图输入的方法,大家可以用ISE提供的模块自己做个感兴趣的模块。
展开阅读全文