计算机组成原理4位二进制计数器实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机组成原理实验一
4位二进制计数器实验
姓名:李云弟 学号:1205110115 网工1201
【实验环境】
1. Windows 2000 或 Windows XP
2. QuartusII9.1 sp2、DE2-115计算机组成原理教学实验系统一台,排线若干。

【实验目的】
1、熟悉VHDL 语言的编写。

2、验证计数器的计数功能。

【实验要求】
本实验要求设计一个4位二进制计数器。

要求在时钟脉冲的作用下,完成计数功能,能在输出端看到0-9,A-F 的数据显示。

(其次要求下载到实验版实现显示)
【实验原理】
计数器是一种用来实现计数功能的时序部件,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。

计数器由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS 触发器、T 触发器、D 触发器及JK 触发器等。

计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。

计数器按计数进制不同,可分为二进制计数器、十进制计数器、其他进制计数器和可变进制计数器,若按计数单元中各触发器所接收计数脉冲和翻转顺序或计数功能来划分,则有异步计数器和同步计数器两大类,以及加法计数器、减法计数器、加/减计数器等,如按预置和清除方式来分,则有并行预置、直接预置、异步清除和同步清除等差别,按权码来分,则有“8421”码,“5421”码、余“3”码等计数器,按集成度来分,有单、双位计数器等等,其最基本的分类如下:
计数器的种类⎪⎪⎪⎪⎪⎪⎩
⎪⎪⎪⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎩⎪⎨⎧⎩⎨⎧进制计数器十进制计数器二进制计数器进制可逆计数器减法计数器
加法计数器功能异步计数器同步计数器结构N 、、、321 下面对同步二进制加法计数器做一些介绍。

同步计数器中,所有触发器的CP 端是相连的,CP 的每一个触发沿都会使所有的触发器状态更新。

因此不能使用T′触发器。

应控制触发器的输入端,即将触发器接成T 触发器。

只有当低位向高位进位时(即低位全1时再加1),令高位触发器的T=1,触发器翻转,计数加1。

例如由JK 触发器组成的4位同步二进制加法计数器,令其用下降沿触发。

下面分析它的工作原理。

①输出方程
n n n n Q Q Q Q CQ 0123=
②驱动方程
⎪⎪⎩⎪⎪⎨⎧========n n n n n n
Q Q Q K J Q Q K J Q K J K J 0
12330
122011001 ③状态方程
本实验中要求用VHDL 语言设计同步4位二进制计数器,令其上升沿触发。

【实验步骤】
1.1 顶层VHDL 文件设计
1.1.1 创建工程和编辑设计文件
首先建立工作库,以便设计工程项目的存储。

任何一项设计都是一项工程(Project ),都必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被EDA 软件默认为工作库(Work Library )。

在建立了文件夹后就可以将设计文件通过QuartusII 的文本编辑器编辑并存盘,详细步骤如下: 首先新建一个文件夹。

利用资源管理器,新建一个文件夹,如:d : \li1 。

注意,文件夹名不能用中文。

1、创建一个工程
(1)、双击桌面上的图标 ,打开Quartus II 软件。

(2)、再开始建立新项目工程。

点击:【File 】菜单,选择下拉列表中的【New Project Wizard...】命令,打开建立新项目工程的向导对话框。

点击next.
(3)出现对话框,让你选择项目工程保存位置、定义项目工程名称以及设计文件顶层实体名称。

如图:
第一栏选择项目工程保存的位置,方法是点击 按钮,选择到刚才我们在第一步建立的
文件夹。

第二栏用于指定项目工程名称。

项目名可以取任意名字,也可以直接用顶层文件名作为项目名(建议使用)。

第三栏用于指定顶层文件的实体名称。

软件会默认为与之前建立的项目工程名称一致。

没有特别需要,我们一般选择软件的默认,不必特意去修改。

需要注意的是:以上名称的命名中不能出现中文字符,否则软件的后续工作会出错。

完成以上命名工作后,点击Next,进入下一步。

(4)这一步的工作是让你将之前已经设计好的工程文件添加到本项目工程里来,我们之前若没有设计好的文件,就不用理它,跳过这一步,直接点Next,再进入下一步。

如下图对话框:
(5)这一步的工作是让你选择好设计文件下载所需要的可编程芯片的型号,实验中我们所用的实验平台是DE2-115开发板,因此我们选择Cyclone IV E,EP4CE115F29C7。

点击Next,进入下一步。

如下图对话框:
(6)这一步是让你选择第三方开发工具,我不需要,直接点击Next,进入下一步。

出现下图页面
(7)以上页面显示刚才我们所做的项目工程设置内容的“报告”。

点击Finish,完成新建项目工程的任务。

2、输入源程序。

(1)新建一个VHDL项目文件。

打开QuartusII,选择菜单“File” “New”,在New窗中的“ Design Files”中选择编译文件的语言类型,选“VHDL File”(如图所示)。

图选择编辑文件的语言类型
(2)然后在VHDL文本编译窗中键入VHDL程序。

VHDL语言的程序代码如下图所示:
其中,CLK是时钟信号,CQ是4位数据输出端。

每当检测到CLK出现一个上升沿时,计数器就自加1并输出结果。

(3)键入程序后,点击保存,选择默认保存名。

1.1.2 编译文件。

设计好的电路若要让软件能认识并检查设计的电路是否有错误,需要进行项目工程编译,QuartusII软件能自动对我们设计的电路进行编译和检查设计的正确性。

方法如下:
在【Processing】菜单下,点击【Start Compilation】命令,或直接点击常用工具栏上的按钮,
开始编译我们的项目。

编译成功后,点击确定按钮。

点击Processing--->Start Compilation,如下图:
QuartusII编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错,逻辑综合和结构综合。

即将设计项目适配进FPGA/CPLD目标器中,同时产生多种用途的输出文件,如功能和时序仿真文件,器件编程的目标文件等。

编译器首先从工程设计文件间的层次结构描述中提取信息,包括每个低层次文件中的错误信息,供设计者排除,然后将这些层次构建产生一个结构化的以网表文件表达的电路原理图文件,并把各层次中所有的文件结合成一个数据包,以便更有效地处理。

下面首先选择Processing菜单的“Start Compilation”项,启动全程编译。

注意这里所谓的编译(Compilation)包括QuartusII对设计输入的多项处理操作,其中包括排错、数据网表文件提取、逻辑综合、适配、装配文件(仿真文件与编程配置文件)生成,以及基于目标器件的工程时序分析等。

如果工程中的文件有错误,在下方的Processing处理栏中会显示出来。

对于Processing栏显示出的语句格式错误,可双击此条文,即弹出vhdl文件,在闪动的光标处(或附近)可发现文件中的错误。

再次进行编译
直至排除所有错误。

下图表示编译成功,没有报错,警告一般不用管。

1.1.3 波形仿真
仿真是指利用QuartusII软件对我们设计的电路的逻辑功能进行验证,看看在电路的各输入端加上一组电平信号后,其输出端是否有正确的电平信号输出。

因此在进行仿真之前,我们需要先建立一个输入信号波形文件。

方法和步骤如下:
(1)新建一个波形仿真文件
在【File】菜单下,点击【New】命令。

在随后弹出的对话框中,选择【Verification/Debugging Files】模块,选中【Vector Waveform File】选项,点击OK按钮。

(2)在【Edit】菜单下,点击【Insert Node or Bus…】命令,或在下图Name列表栏下方的空白处双击鼠标左键,打开编辑输入、输出引脚对话框。

弹出Insert Node or Bus对话框,如图所示:
(3)在上图新打开的对话框中点击【Node Finder…】按钮,打开【Node Finder】对话框。

点击【List】按钮,列出电路所有的端子。

点击>>按钮,全部加入。

点击OK按钮,确认。

点击OK回到Insert Node or Bus对话框,再点击OK按钮,确认。

(4)图中带有符号的,都是输入信号,需要对其进行设置;带图标的都是输出信号,需要对其仿真以后的结果进行观察。

选中CLK信号,在Edit菜单下,选择【Value => Clock…】命令。

或直接点击左侧工具栏上的(时钟按钮)按钮。

在随后弹出的对话框的Period栏目中设定参数为20ns,点击OK按钮
QuartusII软件集成了电路仿真模块,电路有两种模式:时序仿真和功能仿真,时序仿真模式按芯片实际工作方式来模拟,考虑了元器件工作时的延时情况,而功能仿真只是对设计的电路其逻辑功能是否正确进行模拟仿真。

在验证我们设计的电路是否正确时,常选择“功能仿真”模式。

(5)将软件的仿真模式修改为“功能仿真”模式,操作方法如下图所示:
(6)选择好“功能仿真”模式后,需要生成一个“功能仿真的网表文件”,方法如图,选择【Processing】菜单,点击【Generate Functional Simulation Netlist】命令。

此后需要保存该波形文件,如图,选择默认文件名。

软件运行完成后,点击确定。

(7)开始功能仿真,在【Processing】菜单下,选择【Start Simulation】启动仿真工具,或直接点击常用工具栏上的按钮。

仿真成功后,点击确认按钮。

(8)观察仿真结果,对比输入与输出之间的逻辑关系是否符合电路的逻辑功能。

如图所示,时钟每经过一个上升沿,输出加1,达到设计效果。

1.2 下载验证
要将设计文件下载到硬件芯片中,我们事先一定要准备好一块装有可编程逻辑器件的实验板(或开发板)和一个USB下载工具,如下图ED2-115数字电子技术实验板。

由于不同的可编程逻辑器件的型号及其芯片的引脚编号是不一样的,因此在下载之前,我们先要对设计好的数字电路的输入、输出端根据芯片的引脚编号进行配置。

在我们以后所做的实验中经常会用到的电路部分是拨动开关、按钮开关、二极管部分(如图所示)。

芯片的部分引脚分配列表见附录1。

1)检查项目工程支持的硬件型号
在开始引脚配置之前,先检查一下我们在开始建立项目工程时所指定的可编程逻辑器件的型号与实验板上的芯片型号是否一致,假如不一致,要进行修改,否则无法下载到实验板的可编程逻辑器件中。

修改的方法如下:
点击常用工具栏上的按钮,打开项目工程设置对话框,如下图所示。

(目标芯片的选择也可以这样来实现:选择“Assignmemts”菜单中的“settings”项,在弹出的对话框中选“Compiler Settings”项下的Device,首先选目标芯片:Cyclone IVE 中的EP4CE115F29C7(此芯片已在建立工程时选定了))。

如上图方法,选好芯片型号后,点击OK,即修改完成。

修改完硬件型号后,最好重新对项目工程再编译一次,以方便后面配置引脚。

编译的方法与上面所叙一样,简单来说,只要再点击一下常用工具栏上的按钮,编译完成后,点击【确定】即可。

2)给设计好的原理图配置芯片引脚
配置芯片引脚就是将原理图的输入端指定到实验板上可编程芯片与按钮相连的引脚编号,将输出端指定到实验板上可编程芯片与LED发光二极管相连的引脚编号。

方法如下:
点击常用工具栏上的按钮,打开芯片引脚设置对话框,如下图:
根据图中提示完成引脚锁定。

芯片的引脚分配列表见附录表一。

本试验中,CLK连接到KEY[1]号按键,每按一下KEY[1]按键,都会产生一个脉冲,计数加1输出。

CQ[0]--CQ[3]分别连接到LEDR[0]--LEDR[3]这4个红色二极管上,以二进制数输出0--15(0--1111)。

配置好引脚以后,再编译一次。

3)连接实验板,下载设计文件
完成以上工作之后,我们现在就可以进行下载了。

软件下载之前先将实验板接通电源,并通过USB—Blaster下载器将实验板的JTAG接口连接到计算机。

一般情况下,计算机会自动搜索和安装USB下载器的驱动程序。

如果没有驱动程序,也可以通过以下方法安装。

右键单击【我的电脑/计算机】--->【管理】--->【设备管理器】--->【通用串行总线控制器】右键单击所要安装的硬件设备,选择【更新驱动程序软件】
选择【浏览计算机以查找驱动程序软件】
点击【浏览】,找到quartus的安装地址,在quartus文件夹中点击“drivers”文件夹,点击“确定”,然后点击“下一步”,就可以完成安装了。

等驱动安装完成后,点击QuartusII软件常用工具栏上的按钮,打开下载界面,按下图所示设置好相关内容,点击Start按钮即可完成下载。

如下图所示,表示下载完成:
另外需要说明一下,通过JTAG模式下载的文件是不能保存到实验板上的,实验板断电后就不能再工作了。

若要将设计文件永久保存在实验板上,则需要通过实验板上的AS接口,以Active Serial模式将后缀名为.pof文件下载并保存到可编程芯片中,这样实验板断电后,设计文件是不会丢失的。

下载完成以后就可以在实验板上验证程序了。

按下KEY[1]按键,观察LEDR[0]--LEDR[3]这4个红色二极管是否会以二进制数输出0--15(0--1111)。

实验总结:通过本次试验,我熟悉VHDL语言的编写,还验证计数器的计数功能。

相关文档
最新文档