数字逻辑电路与计算机组成原理实验指导书v14.docx
《数字逻辑电路与计算机组成原理实验指导书v14.docx》由会员分享,可在线阅读,更多相关《数字逻辑电路与计算机组成原理实验指导书v14.docx(82页珍藏版)》请在冰豆网上搜索。
数字逻辑电路与计算机组成原理实验指导书v14
数字逻辑电路与计算机组成原理
实验指导书
2016.1
山东大学
目录
第1章QuartusII软件使用介绍-2-
1.1QuartusⅡ图形输入法-2-
1.2仿真验证-2-
1.3QuartusⅡ文本输入法使用介绍-2-
1.4层次化设计方法-2-
第2章实验系统介绍-2-
2.1实验系统组成-2-
2.2实验硬件平台-2-
2.2.1实验硬件平台结构介绍-2-
2.2.2实验硬件平台的资源简介-2-
2.2.3实验硬件平台的连接-2-
2.3实验软件介绍-2-
2.3.1实验软件的安装-2-
2.3.2本地实验-2-
2.3.2远程实验-2-
第3章数字逻辑电路实验-2-
3.1实验用资源介绍-2-
3.2数字逻辑电路实验-2-
实验1数据选择器-2-
实验2全加器-2-
实验3十进制数加法器-2-
实验4译码器-2-
实验5八位寄存器-2-
实验6同步模4可逆计数器-2-
实验7异步模8加1计数器-2-
实验8节拍发生器-2-
3.3数字逻辑课程设计-2-
课题1交通灯信号控制器设计-2-
课题2数字密码锁电路设计-2-
课题3自动升降电梯控制器设计-2-
第4章计算机组成原理实验-2-
4.1实验目的-2-
4.2实验用资源介绍-2-
4.3实验内容-2-
实验1逻辑运算电路-2-
实验2补码加法器-2-
实验3移位器-2-
实验4八位串/并进位运算器-2-
实验5四位补码运算器-2-
实验6控制器实验-2-
实验7CPU综合实验-2-
实验8模型机演示-2-
第5章模型机课程设计-2-
5.1模型机系统结构-2-
5.1.1模型机指令系统-2-
5.1.2模型机总体结构-2-
5.1.3指令流程-2-
5.1.4微指令格式-2-
5.2模型机数据通路设计-2-
5.3简单计算机的设计-2-
附录1JYS实验系统硬件平台资源和FPGA引脚连接表-2-
附录2QuartusⅡ库及库元件说明-2-
附录3JYS-X数字实验扩展板使用说明-2-
第1章QuartusII软件使用介绍
Altera公司的QuartusⅡ软件提供了可编程片上系统(SOPC)设计的一个综合开发环境,是进行SOPC设计的基础。
QuartusⅡ集成环境包括以下内容:
系统级设计、嵌入式软件开发、可编程逻辑器件设计、综合、布局和布线、验证和仿真等。
本章将通过设计一个反相器的简单实例介绍QuartusII软件的使用过程。
1.1QuartusⅡ图形输入法
在桌面上双击QuartusII图标(或从“程序”→“Altera”→Quartus),进入QuartusII项目管理器窗口如图1.1所示。
打开原项目
图1.1QuartusII管理器窗口
1.1.1建立新项目
QuartusⅡ软件的工作对象是项目,一个项目(Project)是一个系统设计的总和,包含了所有的子设计文件和设计项目中的所有辅助文件,所以在进行一个逻辑设计时,首先要指定该设计的项目名称,对于每个新的项目应该建立一个单独的子目录,以后所有与该项目有关的文件都将存在这个子目录下。
1.单击图1.1中间的“新建项目”选项(单击鼠标左键,以后如无特殊说明,则含义不变),屏幕如图1.2所示。
图1.2建立新项目的对话框
2.在图1.2中单击NewProjectWizard窗口中的“NEXT”按钮,弹出如图1.3所示的对话框,从上向下分别键入新项目的文件夹名、项目名后(本例中,我们分别键入D:
\MY_EDA、MY_NOT、MY_NOT)。
图1.3指定项目名对话框
3.在图1.3中,单击“Finish”按钮(如果文件夹不存在,则系统会提示用户,确认后系统会自动建立该文件夹),弹出如图1.4所示的对话框。
图1.4确定项目名对话框
1.1.2建立原理图文件
1.打开原理图编辑器。
在图1.4中,单击“File”菜单→单击New选项(快捷键:
Ctrl+N),弹出如图1.5所示的对话框。
在该对话框中,双击(双击鼠标左键,以后如无特殊说明,则含义不变)“BlockDiagram/SchematicFile”选项,打开原理图编辑器,如图1.6所示。
图1.5选择图形编辑器对话框
图1.6图形编辑器窗口
2.添加元件。
(1)在图1.6中,双击图形编辑窗的空白处,弹出图1.7所示窗口。
(2)在图1.7的Name输入编辑框中输入not后,单击“Ok”按钮,弹出图1.7所示窗口。
(3)此时可以看到光标上站着被选的符号(反相器),将其移动到合适的位置单击鼠标左键,使其固定。
图1.7添加反相器元件符号的窗口
图1.8放置反相器窗口
(4)重复
(1)、
(2)、(3)三个步骤,给图中放置一个input和一个output符号,如图1.9所示。
图1.9放置了所有元件符号的屏幕
3.连线。
(1)如果需要连接两个端口,可将鼠标移到其中一个端口,这时鼠标自动变为
现状,然后一直按住鼠标左键并将其拖到第二个端口,待连接点上出现蓝色的小方块后再释放鼠标左键,即可看到在两个端口之间有一条线生成,如图1.9所示。
(2)重复步骤
(1)的方法,将反相器和output连起来。
完成所有连线的电路图如图1.10所示。
4.为输入/输出端口命名。
在图1.10中,双击pin_name使其衬底变黑后,再键入信号名A并回车确认。
输出端口的标记方法与此相同。
本例中将输出信号命名为B。
5.保存文件。
(1)在图1.10中单击保存文件按钮
,弹出如图1.11的对话框。
(13)在图1.11中,缺省情况下“文件名(N)”的文本编辑框中为MY_NOT,单击“保存”按钮即可已完成的设计,如图1.12所示。
图1.10完成全部连线的窗口
图1.11欲保存文件前的窗口
图1.12文件已保存的窗口
1.1.3目标器件选择
对于进行的设计项目通常需要设计人员自己指定欲使用的目标器件型号,选择目标器件的步骤如下:
1.单击图1.12中的Assignments菜单,选中Device……选项,如图6.13所示。
图1.13选择器件的窗口
2.图1.13中,在Family列表中选择器件系列,在Availabledevice框中选择器件型号,本实验使用的器件系列:
CyclongII,器件型号:
EP2C8Q208C7,选择无误后单击“OK”按钮返回图1.12窗口。
3.在图1.13中,还可以单击“Device&PinOptions”按钮,在弹出的“Device&PinOptions”窗口中,单击“UnusedPins”对未使用引脚进行处理,如图1.14所示。
图1.14未使用引脚的处理
3.在图1.14中选择“Asinputtri-stated”(避免未使用引脚对系统中其他元器件造成影响,保证系统可靠工作,一般可将未使用引脚设定为三态输入方式)后,单击“确定”按钮,返回图1.13所示窗口。
1.1.4设计项目的编译
QuartusⅡ软件的编译器包括多个独立的模块。
各模块可以单独运行,也可以选择Processing->StartCompilation命令启动全编译过程。
1.在图1.12中,单击水平工具条上的编译按钮
(形似向右的小三角),或者使用Processing菜单中的StartCompilation选项开始编译,并伴随着进度不断地变化屏幕,编译完成后的窗口如图1.15所示。
2.在图1.15中单击“确定”按钮后,进入图1.16所示窗口。
在该图中显示了编译时的各种信息,其中包括警告和出错信息。
根据信息提示,如果有错,则再做相应的修改。
重复步骤1,直到没有错误提示为止。
图1.15编译完成的窗口
图1.16编译完成后的信息窗口
1.1.5引脚分配
在选择好合适的目标器件,完成设计的分析综合过程并得到工程的数据库文件之后,需要对设计中的输入、输出引脚指定具体的器件引脚号码,指定引脚号码称为引脚分配或引脚锁定。
1.在图1.12窗口中单击菜单Assignments命令,在弹出的下拉菜单中选择Pins选项,进入如图1.17所示引脚分配窗口。
2.在图1.17中选中引脚“A”,双击“Location”列的蓝色矩形框(与本引脚处于同一行),在弹出的引脚列表中选择合适的引脚,也可直接键入引脚号码,如图1.18所示。
图1.17引脚分配窗口
图1.18指定引脚时的屏幕显示
3.重复步骤2,完成所有引脚的指定,如图1.18所示,本例中输入A接开关K0(77pin),输出B接发光二极管LD0(34pin),保存引脚分配结果,退出引脚分配界面。
4.引脚全部指定完毕之后,需重新进行一次编译,如正确将得到和图1.15的信息窗口。
1.1.6编程下载
使用QuartusⅡ软件完成设计项目的编译之后,将产生以目标器件的编程器对象文件(.pof)或SRAM对象文件(.sof)的形式保存的文件,QuartusⅡ软件的编程器(Programmer)使用该文件对器件进行编程或配置。
1.在图1.12窗口中,单击
下载按钮或是使用Tools->Programmer命令,编程器窗口自动打开,如图1.19所示。
图1.19编程器窗口
2.在图1.19窗口中,单击“Start”按钮,计算机就开始下载编程文件,开始下载后,屏幕上的进度条以百分数表示下载进度。
下载完成后如图1.20所示。
注意:
下载前应检查图1.19窗口中的欲下载的文件名、器件型号和下载模式是否正确、硬件编程器是否存在等,只有上述正确才可以开始下载。
本例中,编程文件为MY_NOT.sof,它是由QuartusII在编译时自动生成的;以后的实验中下载模式全部选择JTAG。
3.在图1.19窗口中,如系统没有找到硬件编程器,则需要自行添加。
添加硬件编程器的方法是单击
按钮,按图1.21所示窗口设置即可。
图1.20下载完成窗口
图1.21“HardwareSetup”窗口
4.图1.19中,点击“mode”下拉窗口,选择JTAG项即可,如图1.22所示。
图1.22下载模式选择窗口
5.拨动开关K0,即可通过发光二极管LD0验证设计结果。
1.1.7符号图的生成
在层次化设计中,一个项目工程往往是另外一个项目工程的子项目,该子项目在总的工程项目中只是一个实现某种功能的符号图。
因此,在完成一个子项目工程时,要产生一个可供顶层项目工程使用的符号图。
1.在图1.12窗口中,单击“File”菜单,选择Create/Update->CreateSymbolFileForCurrentFile命令,如图1.23所示
图1.23选择符号图生成命令窗口
3.按图1.23选择后弹出符号图保存窗口,确定后弹出生成成功的提示,如图1.24所示。
4.在图1.24中,单击“确定”按钮,完成了该设计的符号图生成。
图1.24符号图生成成功的提示窗口
1.2仿真验证
仿真验证是EDA设计技术的重要特征。
在完成了设计项目的输入、综合以及布局布线等步骤以后,则可以使用EDA仿真工具或QuartusⅡ仿真器对设计项目的功能与时序进行仿真,以检查设计结果正确如否。
下面介绍在QuartusⅡ仿真器中对设计项目进行仿真验证的方法。
1.建立仿真波形文件。
(1)在图1.12中,单击File/New菜单命令,弹出New对话框,选中OtherFiles标签,如图1.25所示。
(2)在图1.25中选择VectorWaveformFile选项后,单击“OK”按钮,进入图1.26所示波形编辑窗口。
图1.25OtherFiles标签
图1.26编辑仿真文件窗口
(3)在图1.26窗口中,双击“Name”下方的空白处,弹出“InsertNodorBus”对话框,单击该对话框“NodeFinder...”按钮后,进入NodeFinder窗口,如图1.27所示。
图1.27“NodeFinder”对话框
(4)在图1.27界面中单击“List”按钮,设计项目中的全部输入/输出管脚在左边窗口列出,如图1.28所示。
图1.28“NodeFinder”对话框
(5)在图1.24中,选中欲观察的输入或输出引脚,单击“≥“按钮,将其拷贝到右边窗口中。
如果要将左边窗口中所有输入/输出都被拷贝到右边窗口中,可直接单击“>>”按钮,如图1.29所示。
图1.29选择欲观察的输入/输出对话框
(6)在图1.29中,完成全部引脚选择后单击“OK”按钮,返回图1.30所示界面。
图1.30输入/输出引脚选择完成后的窗口
(7)在图1.30窗口中,单击“OK”按钮,返回图1.31所示的波形编辑窗口。
图1.31波形编辑窗口
(8)在图1.31中,单击“Name”栏下方的“A”,即选中该行编辑输入波形。
再单击工具栏中的“
”按钮,屏幕将弹出“Clock”对话框,此时可以修改信号的周期、相位和占空比,然后故单击“OK”按钮,输入信号A的波形添加完毕,如图1.32。
图1.32完成仿真波形编辑的窗口
(9)保存建立的波形文件。
2.设计的仿真验证
(1)仿真器设置。
选择Assignments->Settings...命令,在Settings对话框的Category列表中选择SimulatorSettings,然后在弹出的界面中进行功能仿真或时序仿真等设置。
(2)启动仿真器。
完成仿真器设置后,在图1.32中窗口中,单击仿真“
”按钮或者使用Processing->StartCompilation命令启动仿真器,并有进度提示。
完成后会弹出一个“QuartusII”对话框,表明仿真是否成功,本例的仿真结果如图1.33所示。
(3)分析仿真结果。
从图1.33中可以看出功能是正确的。
图1.33仿真完成后的窗口
1.3QuartusⅡ文本输入法使用介绍
QuartusⅡ的文本编辑器是一个非常灵活的编辑工具,用于以AHDL、VHDL和VerilogHDL语言形式以及Tcl脚本语言输入的文本型设计。
下面介绍硬件描述语言(HDL)形式的文本输入方法。
1.4.1建立新项目
在图1.4窗口中选择File->NewProjectWizar...命令,按前述原理图输入法中建立新项目的过程,建立一个文件夹名、项目名、顶层实体名分别为MY_EDA、VHDL_nor、VHDL_nor的新项目,如图1.34所示。
1.4.2建立文本文件
1.打开文本编辑器
在创建好新项目后,选择File->New...菜单,在弹出的文件选择窗口(如图1.5所示)中选择DeviceDesignFile标签下的VHDLFile,单击OK,进入文本编辑器窗口,如图1.35所示。
图1.34建立新项目窗口
图1.35空白的文本编辑器窗口
2.编辑文本文件
在对文本文件进行编辑时,文本编辑器窗口的标题名称后面将出现一个(*),表明正在对当前文本进行编辑操作,存盘后星号消失。
在图1.35的文本编辑窗中可以直接输入HDL程序描述语句,此处我们实现一个二输入的“或非门”如图1.36所示。
图1.36完成文本输入后的窗口
3.保存文本设计文件。
为了便于读者输入文本文件,下面给出VHDL语言的源文件“
LIBRARYIEEE;
USEIEEE.std_logic_1164.all;
USEIEEE.std_logic_unsigned.all;
ENTITYVHDL_norIS
PORT(A:
INSTD_LOGIC;
B:
INSTD_LOGIC;
F:
OUTSTD_LOGIC);
ENDVHDL_nor;
architecturebehaverofVHDL_noris
begin
p1:
process(A,B)
begin
if(A=‘0’andB=‘0’)thenF<=‘1’;
elseF<=‘0’;
endif;
endprocessp1;
endarchitecturebehaver;
其余过程和原理图输入方法完全相同,大家可参照1.1节中的步骤完成仿真、器件选择、编程下载和在实验平台上进行验证。
1.4层次化设计方法
前面几节中,我们都是使用单一的描述方法来实现各种电路功能,其所实现的功能相对来说很简单,像这样简单的工程项目,在实际中几乎不存在。
一般情况下,一个实际的工程项目都是由很多功能模块互相连接而构成,其中部分模块还可能由子模块构成。
因此层次化的设计方法在实际工程项目的实现中应用非常广泛。
下面以1.1节和1.3节中设计的两个项目作为新项目的底层子模块说明层次化设计的基本步骤,设计项目本身没有实际意义。
1.建立名为MIXED的工程项目并进入原理图编辑器窗口,如图1.37所示。
图1.37建立MIXED工程项目窗口
2.打开用户工作库。
在图1.37中原理图编辑器的编辑窗口的空白处双击鼠标左键,从弹出的器件库选择窗口中点击Project打开用户工作库,可以看到前面生成的二个器件my_not和my_nor如图1.38所示。
图1.38用户工作库窗口
3.完成原理图编辑。
在图1.38中,选择my_not、my_nor、input、output部件,完成原理图编辑,如图1.39所示。
图1.39完成后的mixed原理图
4.器件选择和器件引脚定义。
根据前面所述方法,选择合适的器件系列和器件型号并完成引脚分配。
5.项目编译。
启动编译器完成项目编译。
6.项目仿真。
仿真结果如图1.40所示。
图1.40mixed项目的仿真波形
7.下载并验证电路功能,A、B、C、D分别接逻辑开关,F接逻辑指示器,本节中的举例在于了解“自底而上”的设计过程,例题本身没有实用价值。
本章仅仅是QuartusII入门的基础,所涉及的内容很少。
要做到灵活使用的目的,还需要大量的练习,并在使用中不断总结经验,提高自己的操作技能。
第2章实验系统介绍
2.1实验系统组成
EDA(ElectronicDesignAutomation)是电子设计自动化的英文缩写。
它是指以计算机为工具,在EDA软件平台上,根据设计者描述的源文件(可以是原理图文件、语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、综合、优化、布局布线以及对特定器件的适配。
设计者的任务仅限于利用软件的方式来完成对系统硬件功能的描述。
尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便。
在数字逻辑电路、计算机组成原理、计算机系统结构和现代数字系统设计中,现场可编程门阵列(FPGA)和电子设计自动化(EDA)技术的使用越来越广,掌握FPGA与EDA技术是从事电子系统设计、计算机硬件开发和研究人员的必备技能,也是电子技术、计算机类专业学生学习的重要内容。
为了提高教学质量,增强计算机组成原理实验系统的功能,降低实验成本,提高系统的灵活性,本实验系统采用先进的EDA技术,设计出一套基于FPGA的数字逻辑与计算机组成原理实验系统,采用该系统学习可利用FPGA和QUARTUSII软件快速、方便地设计出计算机的各种部件,利用硬件实验平台和软件实验平台完成实验调试。
该实验系统可用于数字逻辑电路、计算机组成原理和计算机系统结构等课程的实验教学,同时也适用于本科毕业设计、智能化设计、新产品开发等应用。
实验硬件平台
本实验系统主要由实验硬件平台和实验软件平台二大部分组成,其中实验软件平台由服务器管理软件、本地实验软件和远程实验软件组成。
本地实验用于在本地PC机上进行实验,远程实验用于通过网络进行实验,服务器管理软件用于对远程实验进行管理,包括实验者身份验证、实验时间记录和实验硬件平台使用情况记录等。
由如图2.1所示。
图2.1实验系统结构框图
该实验系统可用于完成数字逻辑电路、计算机组成原理、计算机系统结构等课程的实验设计、实验调试和模型机实验。
下面分别对实验硬件平台和实验软件平台进行详细介绍。
2.2实验硬件平台
2.2.1实验硬件平台结构介绍
硬件平台结构如图2.2所示,该平台主要包括发光二极管指示灯(Ⅰ区)、FPGA电路(Ⅱ区)、ROM、RAM存储器电路(Ⅲ区)、开关信号输入电路(Ⅳ区)、电源电路(Ⅴ区)和单片机及外围电路(Ⅵ区)等部分。
同时图中给出了电源开关、实验模式选择开关、连续脉冲输入选择插座、单脉冲输入按键、单片机复位按键、FPGA复位按键(CPU复位)、FPGA配置插座、RS232串口插座等接口的相对位置,便于学生的实验操作。
2.2.2实验硬件平台的资源简介
硬件实验平台资源包括平台监控资源和提供给用户的实验资源二部分,如图2.3所示。
用户实验资源如下:
1.FPGA电路:
使用超大规模集成电路FPGA芯片EP2C8Q208C8,作为用户完成相关实验的硬件资源。
2.时钟:
实验平台上分别设有一个多频率连续时钟发生器和一个单脉冲信号发生器。
连续时钟发生器可提供2Hz、4Hz、8Hz、16Hz、32Hz、64Hz、128Hz、256Hz、512Hz、1024Hz和2048Hz,占空比为1:
1的脉冲,其频率可通过改变短路块位置选择;单脉冲信号发生器由单脉冲按键产生的宽度为20ms的无抖动负脉冲,常用于单脉冲输入以及存储器的读写信号。
3.RAM存储器:
采用静态的2K×8位的RAM,用于存放指令和数据。
4.ROM存储器:
用于存放系统的微程序。
5.发光二极管指示灯:
共4组(LR15~LR0、LD15~LD0、LA15~LA2、L23~L0)70只发光二极管。
其中LR15~LR0、LD15~LD0、LA15~LA2共46只可由用户随意使用(LA1、LA0由系统占用,用户不能使用);L23~L0用于显示微指令寄存器内容,即当前执行的微指令。
6.开关信号输入:
共24只拨动开关(K23~K0),用于提供高低电平输入。
7.复位信号输入:
包括单片机复位和CPU复位二个按键。
前者用于单片机的复位,后者用于FPGA的复位。
8.接口插座:
包括RS232串口插座、FPGA配置插座和RJ45网络接口插座三个。
RS232串口插座用于本实验平台和PC机之间的通信;
FPGA配置插座用于本地实验和远程实验时对FPGA进行配置;
RJ45网络接口插座用于远程实验时和INTERNET网络的连接。
(和DL2电缆连接)
图2.2硬件实验平台结构示意图
RAM
2.3硬件实验平台主要资源示意图
2.2.3实验硬件平台的连接
为了能够顺利完成相关实验,使用者应根据本地实验还是远程实验对硬件实验平台和PC机及网络进行正确的连接。
系统共提供了二条独立的10线