《【2017年整理】四位全加器实验报告》由会员分享,可在线阅读,更多相关《【2017年整理】四位全加器实验报告(10页珍藏版)》请在金锄头文库上搜索。
1、武汉轻工大学数学与计算机学院计算机组成原理实验报告题 目: 4 位二进制计数器实验 专 业: 软件工程 班 级: 130X 班 学 号: 1305110XXX 姓 名: XX 指导老师: 郭峰林 2015 年 11 月 3 日【实验环境】1. Win 72. QuartusII9.1 计算机组成原理教学实验系统一台。【实验目的】1、熟悉 VHDL 语言的编写。 2、验证计数器的计数功能。【实验要求】本实验要求设计一个 4 位二进制计数器。要求在时钟脉冲的作用下,完成计数功能,能在输出端看到 0-9,A-F 的数据显示。 (其次要求下载到实验版实现显示)【实验原理】计数器是一种用来实现计数功能的
2、时序部件,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。计数器由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有 RS 触发器、T 触发器、D 触发器及 JK 触发器等。计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。计数器按计数进制不同,可分为二进制计数器、十进制计数器、其他进制计数器和可变进制计数器,若按计数单元中各触发器所接收计数脉冲和翻转顺序或计数功能来划分,则
3、有异步计数器和同步计数器两大类,以及加法计数器、减法计数器、加/减计数器等,如按预置和清除方式来分,则有并行预置、直接预置、异步清除和同步清除等差别,按权码来分,则有“8421”码, “5421”码、余“3”码等计数器,按集成度来分,有单、双位计数器等等,其最基本的分类如下:计数器的种类 进 制 计 数 器十 进 制 计 数 器二 进 制 计 数 器进 制 可 逆 计 数 器减 法 计 数 器加 法 计 数 器功 能 异 步 计 数 器同 步 计 数 器结 构 N、321下面对同步二进制加法计数器做一些介绍。同步计数器中,所有触发器的 CP 端是相连的,CP 的每一个触发沿都会使所有的触发器状
4、态更新。因此不能使用 T触发器。应控制触发器的输入端,即将触发器接成 T 触发器。只有当低位向高位进位时(即低位全 1 时再加 1) ,令高位触发器的 T=1,触发器翻转,计数加 1。例如由 JK 触发器组成的 4 位同步二进制加法计数器,令其用下降沿触发。下面分析它的工作原理。输出方程 nQC0123驱动方程 nQKJ0123210状态方程本实验中要求用 VHDL 语言设计同步 4 位二进制计数器,令其上升沿触发。说明:为了方便在 QuartusII9.1 sp2 中完成编译和功能仿真,我们选择芯片 Cyclone II,EP2C70F89C6,而在 DE2-115 开发板中进行下载时,则需
5、要选择与开发板相匹配的芯片Cyclone IVE 中的 EP4CE115F29C7。 (芯片选择见下文详述,注意每次变换芯片后都需要重新编译)【实验步骤】1.1.1 创 建 项 目 工 程 1、首先新建一个文件夹。利用资源管理器,新建一个文件夹,如:d : test1 。 作 为 本 项目 所 有 文 件 存 放 位 置 。2、创建一个工程(1)、双击桌面上的图标 ,打开 Quartus II 软件。(2) 、再开始建立新项目工程。点击:【File】菜单,选择下拉列表中的【New Project Wizard.】命令,打开建立新项目工程的向导对话框。点击 next。完成以上命名工作后,点击 N
6、ext,进入下一步。图 1.1.3 添加其他工程的文件到本项目工程中(5)选择设计文件所需要的可编程芯片的型号,实验中我们所用的实验平台是 DE2-115 开发板。由于 DE2-115 实验板中的 FPGA 芯片较新,QuartusII9.1 sp2 软件还没有为其提供相应的仿真功能,因此,我们要选择较早的芯片 Cyclone II,EP2C70F89C6 图 1.1.4 选择目标芯片的型号点击 Next,进入下一步。如下图对话框:点击 Finish,完成新建项目工程的任务。1.1.2 创 建 源 程 序 文 件(1)新建一个 VHDL 项目文件。打开 QuartusII,选择菜单“File”
7、“New” ,在 New 窗中的“ Design Files”中选择编译文件的语言类型,选“VHDL File” (如图所示) 。图 1.1.6 选择编辑文件的语言类型(2)然后在 VHDL 文本编译窗中键入 VHDL 程序。VHDL 语言的程序代码如下图所示:图 1.1.7 VHDL 语言的程序代码其中,CLK 是时钟信号,CQ 是 4 位数据输出端。每当检测到 CLK 出现一个上升沿时,计数器就自加 1 并输出结果。(3)键入程序后,点击保存,选择默认保存名。在对工程进行编译处理前,必须做好必要的设置: (1)选择目标芯片。目标芯片的选择也可以这样来实现:选择 Assignments 菜单
8、中的 Settings 项,在弹出的对话框中选择 Category 项下的 Device(也可以直接选择Assignments 菜单中的 Device 项) ,然后选择目标芯片(方法同创建工程中的第 5 步) 。(2)选择目标器件闲置引脚的状态。点击 Assignments-Device,在 Device & Pin Options 窗口中,选择 Unused Pin 项,设置目标器件闲置引脚的状态为输入状态(呈高阻态 As input tri-stated) 。图 1.2.1 设置目标器件闲置引脚的状态为呈高阻态1.2.2 编译文件。设计好的电路若要让软件能认识并检查设计的电路是否有错误,需
9、要进行项目工程编译,QuartusII 软件能自动对我们设计的电路进行编译和检查设计的正确性。方法如下:在【Processing 】菜单下,点击【Start Compilation】命令,或直接点击常用工具栏上的 按钮,开始编译我们的项目。编译成功后,点击 确定 按钮。点击 Processing-Start Compilation,如下图:下图表示编译成功,没有报错,警告一般不用管。图 1.2.3 编译成功 1.3 波形仿真在【File】菜单下,点击【New】命令。在随后弹出的对话框中,选择【Verification/Debugging Files】模块,选中【Vector Waveform
10、File】选项,点击 OK 按钮。即出现空白的波形编辑器(图 2-14) 。图 1.3.1 新建矢量波形文件(2)设置仿真时间区域。为了使仿真时间轴设置在一个合理的时间区域上,在 Edit 菜单中选择 End Time 项,在弹出的窗口中的 Time 栏中输入 1.0,单位选择“us” ,即整个仿真域的时间设定为 1.0s,单击“OK” ,结束设置。图 1.3.2 设置仿真时间区域(3)在【Edit】菜单下,点击【Insert Node or Bus】命令,或在下图 Name 列表栏下方的空白处双击鼠标左键,打开编辑输入、输出引脚对话框。弹出 Insert Node or Bus 对话框, (
11、4)在上图新打开的对话框中点击【Node Finder】按钮,打开【Node Finder】对话框。点击【List】按钮,列出电路所有的端子。点击 按钮,全部加入。点击 OK 按钮,确认。点击 OK 回到 Insert Node or Bus 对话框,再点击 OK 按钮,确认。(5)图中带有 符号的,都是输入信号,需要对其进行设置;带 图标的都是输出信号,需要对其仿真以后的结果进行观察。选中 CLK 信号,在 Edit 菜单下,选择【Value = Clock】命令。或直接点击左侧工具栏上的 (时钟按钮)按钮。在随后弹出的对话框的 周期 Period 栏目中设定参数为 20ns,点击 OK 按
12、钮图中的 Duty Cycle 是占空比,可以选 50,即占空比为 50%的方波。可以通过 和直接将信号设为“0”或“1”,也可以按住鼠标左键在波形编辑区拖动选择某一段波形,将其值设为“0”或“1”。对于总线数据,可以通过 设置其波形。此后需要保存该波形文件,如图,选择默认文件名。图 1.3.7 保存该波形文件QuartusII 软件集成了电路仿真模块,电路有两种模式:时序仿真和功能仿真,时序仿真模式按芯片实际工作方式来模拟,考虑了元器件工作时的延时情况,而功能仿真只是对设计的电路其逻辑功能是否正确进行模拟仿真。在验证我们设计的电路是否正确时,常选择“功能仿真”模式。(6)将软件的仿真模式修改
13、为“功能仿真”模式,操作方法如下图所示:图 1.3.8 设置功能仿真模式(7) 选择好“功能仿真”模式后,需要生成一个“功能仿真的网表文件” ,方法如图,选择【Processing】菜单,点击【 Generate Functional Simulation Netlist】命令。 软件运行完成后,点击确定。(8)开始功能仿真,在【Processing】菜单下,选择【Start Simulation】启动仿真工具,或直接点击常用工具栏上的 按钮。仿真成功后,点击确认按钮。(9)观察仿真结果,对比输入与输出之间的逻辑关系是否符合电路的逻辑功能。图 1.3.13 4 位二进制计数器仿真波形图如图所示
14、,时钟每经过一个上升沿,输出加 1,达到设计效果。1.4 下载验证1.4.1 下载验证流程简介(1)检查项目工程支持的硬件型号,选择合适的目标芯片;(2)修改完硬件型号后,最好重新对项目工程再编译一次;(3)给设计好的原理图配置芯片引脚(引脚锁定) ;(4)配置好引脚以后,再编译一次;(5)连接实验板,检查驱动程序(如果没有驱动程序,就安装该程序;如果已经存在驱动,跳过此步骤) ; (6)下载设计文件;(7)在实验版上进行验证。1.4.2 下载步骤1) 检查项目工程支持的硬件型号在开始引脚配置之前,先检查一下我们在开始建立项目工程时所指定的可编程逻辑器件的型号与实验板上的芯片型号是否一致,假如
15、不一致,要进行修改,否则无法下载到实验板的可编程逻辑器件中。修改的方法如下:点击常用工具栏上的 按钮,打开项目工程设置对话框,如下图所示。 (目标芯片的选择也可以这样来实现:选择“Assignmemts”菜单中的 “settings”项,在弹出的对话框中选“Compiler Settings” 项下的 Device,首先选目标芯片: Cyclone IVE 中的 EP4CE115F29C7图 1.4.2 设置目标芯片型号如上图方法,选好芯片型号后,点击 OK,即修改完成。2)修改完硬件型号后,最好重新对项目工程再编译一次,以方便后面配置引脚。编译的方法与上面所叙一样,简单来说,只要再点击一下常用工具栏上的 按钮,编译完成后,点击【确定】即可。3) 给设计好的原理图配置芯片引脚配置芯片引脚就是将原理图的输入端指定到实验板上可编程芯片与按钮相连的引脚编号,将输出端指定到实验板上可编程芯片与 LED 发光二极管相连的引脚编号。方法如下:点击常用工具栏上的 按钮,打开芯片引脚设置对话框,如下图:图 1.4.3 引脚锁定按钮图 1.4.5 4 位二进制计数器引脚设置根据图中提示完成引脚锁定。 芯片的引脚分配列表见附录表一。本试验中,C