在系统编程实验.docx
- 文档编号:23154351
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:62
- 大小:1.10MB
在系统编程实验.docx
《在系统编程实验.docx》由会员分享,可在线阅读,更多相关《在系统编程实验.docx(62页珍藏版)》请在冰豆网上搜索。
在系统编程实验
《在系统编程技术》
实验指导书
前言
《在系统编程技术》实验是与理论课程《在系统编程技术》配套开出的,是电气信息类专业的一门必修实验课程,对电气信息类专业的学生具有非常重要的作用。
本实验课与理论课同时进行,与理论课有着较密切的联系。
因此同学们在做本实验之前必须具备以下的基础知识:
1、较好的数字电路基础知识;
2、电子计算机常用操作系统的使用方法;
3、一定的英语基础;
4、有一定的理论知识做基础,与理论课同时进行。
本实验课程是电子设计技术、ISP(在系统可编程)技术、PLD(可编程逻辑器件)与EDA(电子设计自动化)紧密结合、同时进行的。
它代表了数字系统设计领域的最高水平,给数字电路的设计带来了革命性的变化。
学生通过学习大规模和超大规模FPGA和CPLD;EDA技术;硬件描述语言HDL;ISP技术等,具有了一定的现代电子设计技术方面的基本知识和基本理论。
在通过本课程的演示型、验证型、设计型实验后,达到掌握现代电子设计技术方法和使用FPGA/CPLD的基本技能,为深入学习系统设计技术及其在专业中的应用打下基础
本实验不同于其它实验,他的实验手段和实验方法都有了重大的变化,主要体现在以下几个方面:
首先:
实验方法不同
本实验是在PC平台上,用原理图或文本进行输入,然后进行编译、仿真、下载。
并迅速定位电路系统的错误所在,随时对源文件进行修改。
其流程图如下:
其次:
实验手段不同
本实验课依据电子技术基础、CPLD/FPGA、EDA技术、硬件描述语言HDL、ISP技术等基本理论,以大规模集成电路为物质基础设计数字电路(系统)。
目录
实验室实验守则····················································································································2
GW48EDA系统使用说明··································································································3
实验一1位全加器设计·······················································································23
实验二两位十进制计数器设计············································································42
实验三8位串入并出寄存器设计··········································································44
实验四2选1多路选择器VHDL设计·······························································46
实验五1位全加器VHDL设计···············································································49
实验六8位硬件加法器VHDL设计···········································································51
实验七含异步清0和同步时钟使能的4位加法计数器设计·······································53
实验八7段数码显示计数器设计···············································································55
实验九4位十进制频率计设计·················································································57
实验十用状态机实现序列检测器的设计··································································59
实验十一数字钟的设计····························································································61
实验十二用状态机对ADC0809的采样控制电路实现······················································63
实验室实验守则
为了培养严肃认真、实事求是的科学实验态度和善于思考、勤于动手的学习作风以及保证实验教学的正常进行,电子信息与电气工程系实验室特制定以下规则,望遵照执行:
1、禁止一切无关人员随意进入实验室和动用实验仪器设备和实验室内物品,确需进入实验室工作学习的的一切人员要必须严格遵守实验室的规章制度,服从实验室管理人员的安排。
2、学生应认真预习实验内容,预习不合格者不得参加实验,认真完成指定的实验内容或实验作业,并交指导教师审阅。
3、学生不得迟到、早退、无故缺席,进入实验室后应按指定位置就座,迟到超过五分钟不得参加实验,实验未完成早退者均按旷课论处。
严禁代替他人做实验,缺实验者,课程结束后,考试前主动来补做实验,否则不得参加考试。
4、进入实验室请自带鞋套。
书包、水杯等个人物品应放到指定处,且衣冠整齐,保持安静,严禁吸烟、吃食物、随地吐痰和乱丢杂物等不文明行为,否则实验工作人员有权停止其实验。
5、实验前应先检查实验所需的工具、仪器、材料等是否齐全完好。
如有缺漏、损坏应及时报告请老师处理。
6、听从指导教师的指导,带硬件的实验接好线路后,应先认真检查,关键处确保无误。
如无把握时,须请指导教师审核后方可通电;进行大型仪器和强电实验务必经指导教师检查同意后,才可按操作规程通电实验。
7、实验时必须持严谨的科学态度,励行节约,严格按照实验步骤和正确的方法进行操作,要细心观察记录实验结果,碰到疑难故障,应冷静分析原因,积极排除,如发生意外及时报告;独立完成实验任务,不得抄袭他人实验结果。
8、欲增加或改变实验内容,须征得指导教师同意。
9、注意人身安全,爱护仪器和设备,实验时仪器、设备、工具、材料不得乱放、乱抛;不做与实验无关的事情,不动与本次实验无关的仪器设备,不进入与实验无关的场所,不随便串组,有以上表现而又不服从管理教育者,不得参加实验;
10、完成实验后主动整理放好相关设备,搞好卫生,实验中的废弃固体物品、腐蚀性液体必须倒入指定的容器中,不许倒入水池中,经实验室工作人员、指导教师同意后方可离去。
11、实验室的任何物资不可擅自带走,在实验室中损坏仪器、工具等,应及时向工作人员报告,主动说明原因,并按实验室仪器设备损坏、丢失赔偿制度处理。
GW48EDA系统使用说明
GW48教学实验系统原理与使用介绍
一、GW48系统使用注意事项
a:
闲置不用GW48EDA系统时,关闭电源,拔下电源插头!
!
!
b:
EDA软件安装方法可参见光盘中相应目录中的中文README.TXT;详细使用方法可参阅本书或《EDA技术实用教程》、或《VHDL实用教程》中的相关章节。
c:
在实验中,当选中某种模式后,要按一下右侧的复位键,以使系统进入该模式工作。
d:
换目标芯片时要特别注意,不要插反或插错,也不要带电插拔,确信插对后才能开电源。
其它接口都可带电插拔(当适配板上的10芯座处于左上角时,为正确位置)。
e:
系统板上的空插座是为单片机AT89C2051准备的,除非进行单片机与FPGA/CPLD的接口实验和开发,平时在此座上不允许插有任何器件,以免与系统上的其它电路发生冲突。
单片机与系统的连接情况可参阅以下的附图2-13。
该单片机和相应的编程器需自备或另购。
f:
对工作电源为5V的CPLD(如1032E/1048C、95108或7128S等)下载时。
最好将系统的电路“模式”切换到“b”,以便使工作电压尽可能接近5V。
g:
最好通过对PC机的CMOS的设置,将打印机口的输入输出模式改成“EPP”模式。
实验一1位全加器设计
一、预习要求
1.结合教材中的介绍熟悉QuartusⅡ软件的使用及设计流程;
2.1位全加器设计原理。
二、实验目的:
1.掌握图形设计方法;
2.熟悉QuartusⅡ软件的使用及设计流程;
3.掌握全加器原理,能进行多位加法器的设计。
三、实验内容:
1.用图形输入法设计一个1位半加器;
2.用图形设计方法构成一个1位全加器的顶层文件;
3.完成1位全加器的时序仿真
4.在GW48实验教学系统上硬件实现
四、实验原理
1位全加器可以如下图所示,首先完成半加器的设计,再由两个半加器及一个或门构成1位全加器。
五、实验仪器、设备:
PC机一台、GW48教学实验系统一台、下载电缆一根(已接好)
六、实验注意事项
1.实验系统在不使用时请不要通电。
2.仿真结果不正确时,请不要下载。
七、实验步骤
步骤1:
为本项设计建立文件夹
任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被EDA软件默认为工作库(WorkLibrary)。
一个设计项目可以包含多个设计文件,一般不同的设计项目最好放在不同的文件夹中。
注意:
文件名不能用中文,且不可带空格。
假设本项设计的文件夹取名为h_adder,在F盘中,路径为:
F:
\h_adder。
步骤2:
输入设计项目和存盘
1、打开QuartusII,单击“File”菜单,将鼠标移到NewProjectWizard…选项并单击,屏幕如图1-1所示。
图1-1建立新项目的屏幕
2、在图1-1中分别键入新项目的工作路径、项目名和实体名(在本实验中,我们分别键入F:
\h_adder、h_adder、h_adder),如图1-2所示。
图1-2指定项目名
3、在图1-2中,单击“Finish”按钮(如果文件夹不存在,系统会提示用户,确认后系统会自动建立该文件夹),如图1-3所示。
图1-3确定项目名
4、在图1-3中,选择FileNew,如图1-4所示。
选择原理图编辑器,双击“BlockDiagram/SchematicFile”,或者选中该项后单击“OK”按钮,如图1-5所示。
图1-4编辑方式选择
图1-5空白的图形编辑器
5、在图1-5的图形编辑器的空白处(有点阵方格)双击,如图1-6所示。
图1-6键入元件符号的屏幕
6、在图1-6的Name输入编辑框中键入and2后,单击“OK”,如图1-7所示。
7、此时可以看到光标上粘着被选的符号(2输入与门),将其移动到合适的位置。
图1-7与门放置就绪的屏幕
8、重复5、6、7三个步骤,给图中放置not、xnor、input和output符号,如图1-8所示。
图1-8放置了所有元件符号的屏幕
9、把所有元件用线连好,完成半加器的设计如图1-9所示。
图1-9完成全部连线的屏幕
10、在图1-9中,双击其中的一个input-name使其衬底变黑后,再键入a,即可命名该输入信号名为a,用相同的方法将另一个input-name和两个out-name分别命名为b、co、so,如图1-10。
图1-10输入输出信号命名的原理图
11、在图1-10中单击
,屏幕如图1-11所示。
图1-11欲保存文件前的屏幕
12、在图1-11中,缺省情况下“文件名(N)”的文本编辑框中为h_adder,单击保存按钮即可保存文件。
步骤3:
选择目标器件并编译
1、在Assignments选项的下拉菜单中选择器件选择项Device...,如图1-12所示。
在Family(器件序列栏)中选定目标器件对应的序列名,EP1C3对应的是Cylone系列。
在AvailableDevices里选择EP1C3T144-C8(有时需要把Showadvanceddevices的勾消去,以便显示出所有速度级别的器件)。
注意:
所选器件必须与目标板的器件型号完全一致。
图1-12选择最后实现本项设计的目标器件
2、在图1-12中,单击“Device&PinOptions...”,在弹出的“Device&PinOptions...”窗口中,单击“UnusedPins”标签,如图1-13所示。
图1-13处理未使用的引脚
3、在图1-13中做如图所示的选择(由于学习机的“FPGA”具有很多功能,为了避免使用引脚对其它元器件造成影响,保证本系统可靠工作,宜将未使用引脚设定为三态输入方式)后,单击确定后,屏幕如图1-12。
无误后单击“OK”按钮。
4、编译工程项目。
单击水平工具条上的编译按钮
开始编译,并伴随着进度不断变化屏幕,编译完成后的屏幕如图1-14所示。
图1-14编译完成后的屏幕
5、在图1-14中单击确定,如图1-15所示。
在该图中显示了编译时的各种信息,其中包括警告和出错信息。
根据信息提示,如果有错误,则再做相应的修改。
重复步骤4,直到没有错误提示为止。
图1-15编译完成后的信息屏幕
步骤4:
时序仿真
1、建立波形文件:
选择FileNew,在New窗中选中“OtherFile”标签,屏幕如图1-16所示。
图1-16“OtherFile”标签
2、在图1-16中选择VectorWaveformFile项,单击“OK”,如图1-17。
图1-17编辑仿真文件屏幕
3、在图1-17中,双击“Name”下方的空白处,弹出“InsertNodorBus”对话框,单击该对话框的“NodeFinder...”,如图1-18。
图1-18“NodeFinder...”对话框
4、在图1-18中,在Filter中选择Pins:
All,单击“List”,如图1-19。
图1-19列出所有输入/输出的“NodeFinder...”对话框
5、在图1-19中,单击“>>”,如图1-20。
从图中可以看到所有输入/输出都被拷贝到右边的一侧,这些正是我们希望的各个引脚;也可以只选其中的一部分,根据实际情况决定。
图1-20完成所有输入/输出拷贝的“NodeFinder...”对话框
6、在图1-20中单击OK按钮后,屏幕如图1-21所示。
图1-21完成欲观察的输入、输出的屏幕
7、在图1-21中单击OK按钮,屏幕如图1-22所示。
图1-22未曾编辑的仿真波形的屏幕
8、如图1-23所示,设定仿真时间宽度。
选择EditEndtime...选项,在Endtime选择窗中选择适当的仿真时间域,如可选34us(34微秒),以便有足够长的观察时间。
图1-23设定仿真时间长度
9、加上输入信号。
现在可以为输入信号a和b设定测试电平了。
如图1-24标出的那样,利用必要的功能键为a和b加上适当的电平。
图1-24为输入信号设定必要的测试电平或数据
仿真工具栏图标功能介绍如下:
:
在波形文件中添加注释。
:
修改信号的波形值,把选定区域的波形更改成原值的相反值。
:
放大缩小波形(左键放大,右键缩小)。
:
全屏显示波形文件。
:
在波形文件信号栏中查找信号名,可以快捷地找到待观察信号。
:
给选定信号赋值,U表示未初始化状态,X表示不定态,0表示赋0值,1表示赋1值,Z表示高阻态,W表示弱信号,L表示地电平,H表示高电平,Dc表示不赋值。
:
给选定信号赋原值的反相值。
:
专门设置时钟信号。
:
把选定的信号用一个时钟信号或是周期信号(周期可由用户来设定)来代替。
:
给总线信号赋值。
10、波形文件存盘。
选择FileSaveas选项,由于图1-25所示的存盘窗中的波形文件名是默认的(这里是h_adder.vwf),所以直接存盘即可。
图1-25仿真波形文件存盘
11、仿真器参数设置。
选择彩单Assignment中的Settings项,在Settings窗口下选择CategorySimulatorSettings项,并做如图1-26所示的设置,单击OK。
图1-26仿真参数设置
12、运行仿真器。
在Processing菜单下选择StartSimulation项,直到出现Simulatorwassuccessful,仿真结束。
图1-27是仿真运算完成后的时序波形。
图1-27半加器的仿真波形
13、观察分析波形。
对照半加器功能,图1-27显示的半加器的时序波形是正确的。
(注意:
仿真波形文件通常会自动弹出,如果仿真完成后,没有出项仿真完成后的波形图,可通过选择ProcessingSimulationReport命令自己打开仿真波形报告。
)
步骤4:
包装元件入库
1、往往一个工程是另外一个项目工程的子项目(半加器是下面做的全加器的自项目),该子项目在总的工程项目中只是一个实现某种功能的符号图。
因此,在完成一个小的工程时,要产生一个可供其他项目工程可使用的符号图。
为此,在图1-27中,单击
标签,转换到原理图窗口,如图1-28。
图1-28原理图窗口
2、在图1-28中,选择FileCreat/UpdateCreateSymbolFilesforCurrentFile选项。
此时即将当前文件变成了一个包装好的单一元件,并被放置在工程路径指定的目录中以备后用。
步骤5:
引脚锁定
将设计编程下载进选定的目标器件中,如EP1K30,作进一步的硬件测试,将半加器的4引脚a、b、co和so分别与目标器件EP1C3的第1、2、11和32脚相接,操作如下:
1、选择AssignmentsAssignmentsEditor,即进入如图1-29所示的AssignmentsEditor编辑器窗。
在Category栏选择Pin,或直接单击右上侧的Pin按钮。
图1-29AssignmentsEditor编辑器
2、双击TO栏的《new》,在出现如图1-30所示的下拉栏中选择工程要锁定的端口信号名(如so);然后双击对应的Location栏的《new》,在出现的如图1-31所示的下拉栏中选择对应的端口信号名的器件引脚号,如对应so,选择32脚。
图1-30进入AssignmentsEditor编辑器准备引脚锁定
图1-31已将所有引脚锁定完毕
3、最后存储这些引脚锁定信息后,必须再编译(启动StartCompilation)一次,才能将引脚锁定信息编译进编程下载文件中。
此后就可以准备将编译好的SOF文件下载到实验系统的FPGA中去了。
步骤6:
编程下载
首先将下载线把计算机的打印机口与目标板(如开发板或实验板)连接好,打开电源:
1、打开编程窗和配置文件。
选择ToolProgrammer,弹出如图1-32所示的编程窗。
在Mode栏中选择JTAG,并在Program/Configure选项下的小方框打勾。
注意核对下载文件路径与文件名。
如果此文件没有出现或者出错,单击左侧AddFile按钮,手动选择配置文件h_adder.sof。
图1-32编程窗
最后单击下载标符Start按钮,即进入对目标器件FPGA的配置下载操作。
当Progress显示100%,以及在底部的处理栏中出现CofigurationSucceeeded时,表示编程成功。
注意,如果必要时,可再次单击Start按钮,直至编程成功。
2、设置编程器。
若是初次安装的QuartusⅡ,在编程前必须进行编程器选择操作。
在图1-32所示的编程窗中,单击HarewareSetup按扭可设置下载接口方式。
这里选择ByteBlasterMV[LPT1]。
方法是单击HarewareSetup按钮,即弹出HarewareSetup对话框(如图1-33所示);选择此对话框的HarewareSettings页,如果打开图1-33所示窗口内Currentlyselectedhardware显示NoHardware,则必须加入下载方式,即单击AddHardware按钮,在弹出的窗口中单击OK(如图1-33所示),再在图1-34中的Currentlyselectedhardware选择ByteBlasterMV[LPT1]。
此项设置只在初次装软件后第一次编程前进行,设置确定后就不必重复此设置了。
图1-33加入编程方式
图1-34选中ByteBlasterMV[LPT1]编程方式
步骤7:
设计顶层文件
可以将前面的工作看成是完成了一个底层元件的设计和功能检测,并被包装入库。
现在利用已设计好的半加器,完成顶层项目全加器的设计,详细步骤可参考以上设计流程:
1、仿照前面的“步骤1”和“步骤2”,建立一个新的工程项目f_adder,在先前的工程项目文件中找到已包装好的半加器元件h_adder,并将它调入原理图编辑窗中。
2、完成全加器原理图设计(图1-35),并以文件名f_adder.bdf存在新工程项目目录中。
3、选择目标器件为EP1C3T144C8。
4、编译此顶层文件f_adder.bdf,然后建立波形仿真文件。
5、对应f_adder.bdf的波形仿真文件如图1-36所示,参考图中输入信号cin、bin和ain输入信号电平的设置,启动仿真器Simulator,观察输出波形的情况。
6、锁定引脚、编译并编程下载,硬件实测此全加器的逻辑功能。
建议使用模式5完成该硬件测试。
图1-35在顶层编辑窗中设计好全加器
图1-361位全加器的时序仿真波形
八、实验报告要求
1.写出实验过程,并附上综合结果和仿真波形;
2.分析实验结果;
3.心得体会――本次实验中你的感受;你从实验中获得了哪些收益;本次实验你的成功之处;本次实验中还有待改进的地方;下次实验应该从哪些地方进行改进;怎样提高自己的实验效率和实验水平等等。
4.完成实验思考题。
七、问题及思考
试用已完成的1位全加器使用图形输入法实现一个4位全加器
实验二两位十进制计数器设计
一、预习要求
1.结合教材中的介绍熟悉QuartusⅡ软件的使用及设计流程;
2.两位十进制计数器(含时钟使能、进位扩展)的设计原理,画出原理图。
二、实验目的:
1.掌握图形设计方法;
2.熟悉QuartusⅡ软件的使用及设计流程;
3.掌握十进制计数器原理
三、实验内容
1.用图形输入法设计一个2位十进制计数器;
2.完成2位十进制计数器时序仿真
3.在GW48实验教学系统上硬件实现
四、实验原理
频率计的核心元件之一是含有时钟使能及进位扩展输出的十进制计数器。
拟用一个双十进制计数74390和其它一些辅助元件来完成。
电路原理图如图2-1所示。
图中,74390连接成两个独立的十进制计数器,待测频率信号clk通过一个与门进入74390的计数器1的时钟输入端1CLKA,与门的另一端由计数使能信号enb控制:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 编程 实验