可编程逻辑器件实验指导书版.docx
- 文档编号:27694730
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:23
- 大小:407.11KB
可编程逻辑器件实验指导书版.docx
《可编程逻辑器件实验指导书版.docx》由会员分享,可在线阅读,更多相关《可编程逻辑器件实验指导书版.docx(23页珍藏版)》请在冰豆网上搜索。
可编程逻辑器件实验指导书版
《可编程逻辑器件与硬件描述语言》
实验指导书
(2011版)
晋春编写
适用专业:
电子信息工程
电子信息科学与技术
江苏科技大学电子信息学院
2011年5月
前言
本课程实验是在学习《可编程逻辑器件与硬件描述语言》课程中为加强理解可编程逻辑器件(CPLD和FPGA)的工作原理、掌握CPLD和FPGA设计的基本方法而开设的实践性课程。
主要教学对象为电子信息工程、电子信息科学与技术专业的学生,此外对自动化专业、电气工程及自动化专业的《电子设计自动化》课程,测控技术与仪器专业的《EDA设计基础》课程也适用。
本课程实验项目的安排遵循由简到难、循序渐进的原则,让学生从初步掌握相关软硬件的使用,逐步灵活运用实验工具进行常用电路的设计,最终能熟练使用各种可编程逻辑器件(CPLD和FPGA)设计方法,进行综合电子电路设计。
项目设置有3个综合性实验:
简单数字逻辑电路设计、全加器设计与应用、计数器设计与应用;3个设计性实验:
频率计设计、序列检测器设计、电子密码锁设计。
内容由浅入深,循序渐进,有效帮助学生更好地学习本课程。
通过本实验课程,使学生掌握QuartusII软件的使用,进一步熟悉CPLD/FPGA结构和工作原理,熟悉VHDL硬件描述语言,掌握原理图输入法以及用VHDL文本输入法进行常用电子电路设计,掌握仿真波形分析方法。
熟练使用实验箱硬件资源,掌握硬件测试方法,熟练掌握EDA技术进行电子系统设计和开发的流程。
实验一:
简单数字逻辑电路的设计
实验学时:
2
实验类型:
综合
实验要求:
必修
一、实验目的
1、熟悉QuartusII软件的使用,熟练进行程序输入、综合、仿真。
2、熟悉实验箱硬件资源的使用,熟练进行引脚锁定和硬件测试,掌握EDA技术设计流程,掌握数字逻辑电路设计的方法;
3、学习简单数字逻辑电路的设计、仿真和硬件测试。
二、实验内容
1、设计四选一多路选择器,利用QuartusII软件完成程序输入、综合和仿真验证,给出仿真波形并进行结果分析。
2、利用GW48EDA实验系统完成硬件测试,验证本项目设计的功能,记录引脚设置和测试结果。
三、实验原理、方法和手段
多路选择器可以从多组数据源中选取一组送入目的地,应用相当广泛,从组合逻辑的执行到数据路径的选择,经常可以看到它的踪影。
多路选择器的结构是
个输入数据对应N个数据输出选择控制线和一个输出线。
在VHDL中描述一个多路选择器的方法有多种,例如:
在一个进程中使用if-then-else语句;在一个进程中使用case语句;使用选择信号带入语句或条件信号代入语句(when-else语句)。
推荐使用when-else语句,如:
……
PORT(DATA0,DATA1,DATA2,DATA3:
INSTD-LOGIC_VECTOR(3DOWNTO0);
A,B:
INSTD_LOGIC;
Y:
OUTSTD-LOGIC_VECTOR(3DOWNTO0)
……
ARCHITECTUREARTOFMUX41IS
SIGNALSEL:
STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
SEL<=B&A;
Y<=DATA0WHENSEL=”00”ELSE
DATA1WHENSEL=”01”ELSE
DATA2WHENSEL=”10”ELSE
DATA3WHENSEL=”11”ELSE
“0000”;
ENDARCHITECTUREART;
四、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生拟定实验方案,编写完整的实验程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;
4、教师在学生实验过程中予以必要的辅导,帮助学生独立完成实验;
5、采用开放运行方式,教师做适当讲解。
五、实验条件
1、提供一台具有WINDOWS2000/XP操作系统的计算机;
2、提供QuartusII软件开发环境。
六、实验步骤
1.前期准备,首先新建一个工作库目录文件夹,如F:
/mywork,便于存储工程项目。
此文件夹在后面操作中将被软件默认为工作库,不同的设计项目最好放在不同的文件夹中,同一工程的所有文件必须放在同一文件夹中。
再双击桌面图标“QuartusII7.2”进入QuartusII软件用户界面。
2.编辑设计文件(VHDL文本输入法)
选择File|New,在New窗口中的DeviceDesignFiles中选择设计文件类型为VHDLFile,确认后将打开VHDL文本编辑器,输入所设计的四选一多路选择器的源程序,并选择File|Save命令进行存盘,存储在如F:
/mywork文件夹中,存储的文件名应与实体名相同,如MUX41.vhd。
3.创建工程项目
1)在File菜单中选择NewProjectWizard项,将出现工程项目建立向导对话框。
2)首先出现的对话框中,在最上面的文本输入框中输入项目所在的目录名(F:
/mywork),在中间的文本输入框中输入项目名称(MUX41,也可以用其他名称),在最下面的文本输入框中输入最顶层模块的名称(MUX41,必须是最顶层模块的实体名)。
3)点击“Next”,进入到设计文件选择对话框,添加与工程相关的所有VHDL文件。
本例中只有一个MUX41.vhd。
4)点击“Next”,进入到器件选择对话框,在“Family”下拉菜单中选择“Cyclone”,在“AvailableDevices”列表栏中选择“EP1C6T240C8“(根据实验箱硬件资源选取)。
5)点击“Next”进入到第三方EDA工具选择对话框,在这个界面我们可以选择第三方的综合工具、仿真工具和时延分析工具。
由于在本例中我们的综合、仿真和时延分析都采用QuartusII内置的工具,所以在这个页面不作任何选择。
6)点击“Next”进入到“Summary”对话框,在这个窗口列出了前面所作设置的全部信息。
点击“Finish”完成工程项目建立过程,回到主窗口。
4.编译前设置,可参考教材第五章,本实验可省略这些操作。
5.编译综合选择菜单Processing|StartCompilation,启动全程编译。
注意下方Processing栏中的编译信息,深红色标记条即为文件中的错误,修改后再次编译直至排除所有的错误。
编译成功后,可在界面各栏中参看编译与分析结果的详细信息。
6.时序仿真
在做仿真之前,必须要先建立波形激励文件,具体步骤如下:
1)打开波形编辑器,选择File|New,选择New窗口中的“OtherFiles”中“VectorWaveformFile”项后选择“OK”。
2)
设置仿真时间区域,选择菜单Edit|EndTime,在弹出的对话框中输入时间和单位(如50,us)。
3)导入端口信号名,首先选择View|UtilityWindows|NodeFinder,在弹出框中Filter栏下选择Pin:
all,在单击List按钮,将显示本设计中所有的端口引脚名,再将所需要的各端口信号拖入到波形编辑器,完成后关闭NodesFound窗口。
4)编辑输入波形,并保存。
利用波形编辑器工具栏提供的工具为输入信号赋值,工具栏中主要按钮的功能介绍如下:
放大和缩小工具:
利用鼠标左键放大/右键缩小显示仿真波形区域;
全屏显示:
全屏显示当前波形编辑器窗口;
赋值“0”:
对某段已选中的波形,赋值‘0’,即强0;
赋值“1”:
对某段已选中的波形,赋值‘1’,即强1;
时钟赋值:
为周期性时钟信号赋值;
十进制、十六进制等数值赋值。
选择File|Saveas,以默认名存盘。
5)仿真参数设置,选择Assignment|Settings,在Settings窗口下选择Category|SimulatorSettings,在右侧的Simulationmode项下选择Timing(时序仿真),Simulationinput栏中选中前面设计好的波形文件(默认)。
6)启动仿真器,选择Processing|StartSimulation,直到出现Simulatewassuccessful,仿真结束。
7)观察并记录仿真结果。
7.硬件测试
先要将程序中输入输出信号和实验箱芯片的引脚进行锁定,再编译后下载,完成硬件测试。
根据附录,选择适当的电路模式(如No.5)。
1)选择Tools菜单中的Assignments项,进入AssignmentEditor编辑器窗。
在Category栏中选择Pin,或直接单击右上侧的Pin按钮。
2)双击“To”栏的New,在出现的下拉栏中分别选择本工程要锁定的端口信号;再双击Location栏New,通过查阅附录“GW48-EDA芯片引脚对照表”选择好对应端口号的器件引脚号,
3)重新保存文件,再编译(启动StartCompilation)一次,才能将引脚锁定信息编译进编程下载文件中。
4)首先将实验系统和USB通信线连接上电脑,打开电源,安装好驱动文件。
驱动文件默认在安装路径c:
\Altera\quartus72\drive\Usb-Blaster下。
5)打开编程窗口,选择菜单Tools中Programmer。
Mode栏中选择编程模式JTAG(默认)。
核实文件路径和文件名,可单击左侧AddFile按钮手动选择配置文件。
6)设置编程器,单击上图界面中左上角HardwareSetup…按钮,在弹出对话框中,选择Hardwaresetting页,选好合适的下载方式(如,Usb-Blaster)。
可点击AddHardware按钮,添加下载方式。
关闭对话框。
7)单击Star按钮,进入配置文件的下载操作。
当Progress显示100%,表示编程下载成功。
8)下载成功后,操作实验箱各按键,进行硬件测试,观察和记录实验结果。
七、思考题
除了使用选择信号带入语句或条件信号代入语句(when-else语句)实现四选一选择器,还有其他很多方法,试列写1~2种实现方法。
八、实验报告撰写要求
1、撰写实验预习报告,包含实验目的、实验内容,并根据实验内容撰写相关的实验原理和实验程序;完成思考题。
以备实验前检查。
2、记录仿真波形,完成仿真结果的详细分析。
3、整理硬件测试记录,验证本项目的功能。
4、撰写实验心得,简述在实验过程中出现的问题,是何原因以及如何解决的。
实验二:
全加器设计与应用
实验学时:
2
实验类型:
综合
实验要求:
必修
一、实验目的
1、进一步熟悉全加器的原理与功能应用;
2、掌握层次化设计的方法;
3、进一步熟悉QuartusII软件的使用,掌握多层次电路设计、仿真和硬件测试。
二、实验内容
1、设计一个全加器,利用QuartusII软件进行程序输入、综合、仿真和硬件测试,记录和整理实验结果。
2、利用所设计的全加器构成一个8位串行进位加法器,硬件测试验证其功能。
三、实验原理、方法和手段
加法器有全加器和半加器之分。
半加器是两个一位二进制数相加,有两个二进制输入、一个和输出,以及一个进位输出。
使用VHDL文本输入法设计半加器有很多种方法,可以使用逻辑操作符进行功能描述,也可以使用CASE语句对其真值表进行描述。
全加器是两个一位二进制数以及一个来自低位的进位信号进行相加,相当于三个一位二进制数进行相加,有三个二进制输入、一个和输出,以及一个进位输出。
全加器的设计也有很多种方法,可以采用逻辑操作符进行功能描述,也可以使用CASE语句对其真值表进行描述,另外还可以由两个半加器和一个或门来构成全加器。
这里主要学习元件例化方法,使用两个半加器和一个或门来构成全加器。
元件例化语句由两部分组成,第一部分是对一个现成的设计实体定义为一个元件,语句的功能是对待调用的元件作出调用声明,它的最简表达式如下所示:
COMPONENT元件名IS
PORT(端口名表);
ENDCOMPONENT文件名;
元件例化语句的第二部分则是此元件与当前设计实体(顶层文件)中元件间及端口的连接说明。
语句的表达式如下:
例化名:
元件名PORTMAP([端口名=>]连接端口名,...);
8位串行进位加法器由8个全加器串行连接构成,从低位到高位逐次进位。
可以采用元件例化方式进行程序设计,也可以采用原理图设计方法构制电路。
四、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生拟定实验方案,编写完整的实验程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,服从管理;
4、教师在学生实验过程中予以必要的辅导,帮助学生独立完成实验;
5、采用开放运行方式,教师做适当讲解。
五、实验条件
1、提供一台具有WINDOWS2000/XP操作系统的计算机;
2、提供QuartusII软件开发环境。
六、实验步骤
详细操作步骤参见实验一,这里不在详述。
七、思考题
试采用逻辑操作符进行全加器的功能描述。
八、实验报告撰写要求
1、撰写实验预习报告,包含实验目的、实验内容,并根据实验内容撰写相关的实验原理和实验程序;完成思考题。
以备实验前检查。
2、记录仿真波形,完成仿真结果的详细分析。
3、整理硬件测试记录,验证本项目的功能。
4、撰写实验心得,简述在实验过程中出现的问题,是何原因以及如何解决的。
实验三:
计数器设计与应用
实验学时:
2
实验类型:
综合
实验要求:
必修
一、实验目的
1、熟悉十进制加法计数器的原理与功能应用;
2、学习计数器的设计、仿真和硬件测试;
3、进一步掌握多层次电路设计、仿真和硬件测试。
二、实验内容
1、程序设计一个带异步清零、同步时钟使能和并行置数的十进制加法计数器,再通过QuartusII软件进行编辑输入、综合、仿真和硬件测试。
2、采用多层次电路设计方法,设计一个数字时钟,再进行仿真和硬件测试。
三、实验原理、方法和手段
计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频、定时、进行数字运算等。
十进制计数器有控制线4个,清零信号Clrn、时钟使能信号En、置数信号Load、时钟信号Clk;并行数据输入线4个D3、D2、D1、D0;数据输出线4位:
Q3、Q2、Q1、Q0;输出进位线端口1个C0。
真值表如下:
Clk
Clrn
Load
En
D[3..0]
Q[3..0]
D3
D2
D1
D0
Q3
Q2
Q1
Q0
↑
0
X
X
X
X
X
X
0
0
0
0
↑
1
0
X
D3
D2
D1
D0
D3
D2
D1
D0
↑
1
1
0
X
X
X
X
Q(不变)
↑
1
1
1
X
X
X
X
计数
两位十进制计数器可由2个十进制计数器级联构成,个位计数器的进位输出信号作为十位计数器的时钟驱动信号即可。
数字时钟实际上是对一个标准1Hz秒脉冲信号进行计数的计数器,秒计数器满60后向分计数器进位,分计数器满60后向时计数器进位,时计数器按24进制计数器规律计数,各计数器的数值经译码器送LED显示。
提示:
分别设计带清零和时钟控制的2个模60计数器和1个模24计数器,按照串行进位的关系连接即可实现一个简易的数字时钟;
四、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生拟定实验方案,编写完整的实验程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,服从管理;
4、教师在学生实验过程中予以必要的辅导,帮助学生独立完成实验;
5、采用开放运行方式,教师做适当讲解。
五、实验条件
1、提供一台具有WINDOWS2000/XP操作系统的计算机;
2、提供QuartusII软件开发环境。
六、实验步骤
操作步骤参见实验一,这里不在详述。
七、思考题
60/24进制的2位数十进制计数器除了用2个一位数十进制计数器串接实现之外,怎样用其他方法实现?
八、实验报告撰写要求
1、撰写实验预习报告,包含实验目的、实验内容,并根据实验内容撰写相关的实验原理和实验程序;完成思考题。
以备实验前检查。
2、记录仿真波形,完成仿真结果的详细分析。
3、整理硬件测试记录,验证本项目的功能。
4、撰写实验心得,简述在实验过程中出现的问题,是何原因以及如何解决的。
实验四:
频率计设计
实验学时:
2
实验类型:
综合
实验要求:
必修
一、实验目的
1、熟悉简易频率计的工作原理;
2、学习频率计的分析、设计方法,学习较复杂系统的EDA设计方法;
3、进一步掌握多层次电路的设计、仿真和硬件测试。
二、实验内容
1、设计一个2位频率计,对待测信号的频率(0~99Hz)进行测量、显示,给出设计方案,并进行仿真和硬件测试,验证设计方案的功能。
2、构建一个8位频率计,并进行仿真和硬件测试。
三、实验原理、方法和手段
频率计是能够测量和显示信号频率的电路。
常用的直接测频法有两种,一种是测周期法,一种是测频率法。
测周期法是在待测信号一个周期内,记录基准系统时钟频率的周期数。
测频率法是在一定时间间隔内测量待测信号的周期数。
一般对于低频信号采用测周期法,对于高频信号采用测频率法。
本实验采用测频率法来设计2位频率计,在指定的1s时间间隔内(下图中CNT_EN=1持续时间为1s),用2位十进制计数器对待测信号进行计数,测得的周期数为N,则待测信号的频率就为N/1s即NHz,再通过显示电路显示出数值N。
所以方案中需要设计带时钟使能的2位十进制计数器、七段显示译码器。
此外还需要一个时序控制电路,产生复位-计数-锁存周期循环的工作时序(如下图)。
频率计的设计原理图可参看下图,主要有时序控制电路、计数主电路、锁存电路和译码显示电路。
四、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生拟定实验方案,编写完整的实验程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,服从管理;
4、教师在学生实验过程中予以必要的辅导,帮助学生独立完成实验;
5、采用开放运行方式,教师做适当讲解。
五、实验条件
1、提供一台具有WINDOWS2000/XP操作系统的计算机;
2、提供QuartusII软件开发环境。
六、实验步骤
在QuartusII软件开发环境中使用原理图输入法,除了最初的编辑输入与VHDL文本法不同外,其他步骤都一样。
1、建立工程文件夹,如F:
\adder
2、编辑原理图输入
1)选择File|New,在对话框中选择DeviceDesignFiles页中的BlockDiagram/SchematicFile,OK即可。
2)在编辑窗口任意位置右击鼠标,在出现的快捷菜单中选择Insert|Symbol。
3)单击按钮“...”,找到基本元件库d:
\altera\72\quartus\libraries\primitives\logic项,选中需要的元件,此元件将显示在窗口中,单击OK按钮就可将元件调入原理图编辑器中。
分别调入所有元件,连线,完成原理图设计。
4)保存,File|SaveAs,选择前面的文件夹F:
\adder,保存为*.bdf。
3、设置成可调用元件
为了顶层设计,可以将当前设计变成一个元件符号,选择菜单File|Create/Update|CreateSymbolFilesforCurrentFile项即可。
4、设计顶层文件
重新打开原理图编辑器,在路径F:
\adder中可以找到刚才所定义的元件,调入,再分别调入其他元件,连线,构造顶层设计。
5、建立工程、编译、仿真
创建一个新的工程项目,添加顶层文件,再进行编译前设置、全局编译、最后再创建波形仿真文件,波形参数设置,给定输入波形,启动仿真。
这一系列步骤与VHDL文本输入法相同,参见实验一。
6、硬件测试,一系列步骤与VHDL文本输入法相同,参见实验一
七、思考题
所设计的2位频率计的测试误差为多少?
简述其引起原因。
八、实验报告
1、撰写实验预习报告,包含实验目的、实验内容,并根据实验内容撰写相关的实验原理和实验程序;完成思考题。
以备实验前检查。
2、记录仿真波形,完成仿真结果的详细分析。
3、整理硬件测试记录,验证本项目的功能。
4、撰写实验心得,简述在实验过程中出现的问题,是何原因以及如何解决的。
实验五:
序列检测器设计
实验学时:
2
实验类型:
设计
实验要求:
必修
一、实验目的
1、进一步熟悉序列检测器的原理;
2、学习用状态机实现序列检测器的设计,掌握一般状态机的设计与应用;
3、进一步熟悉QuartusII的使用,掌握多层次电路的设计、仿真和硬件测试。
二、实验内容
1、设计一个序列检测器,检测“11100101”序列,给出设计方案(包括状态图)和源程序,完成软件仿真和硬件测试。
2、利用实验系统中ADC0809芯片,用状态机方式实现数据采集。
三、实验原理、方法和手段
序列检测器可用于检测一组或者多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。
这就要求检测器必须记住前一次的正确的代码及正确序列,直到在连续的检测中所收到的每一位码都与预置的对应码相同。
提示:
本实验中要求检测“11100101”序列,电路需要分别记忆:
初始状态、1、11、111、1110、11100、111001、1110010、11100101共9种状态。
先构造序列检测器的状态图,再使用状态机进行程序设计。
ADC0809的采样控制原理已在教材中作了详细说明。
ADC0809是CMOS的8位A/D转换器,片内有8路模拟开关,可控制8个模拟量中的一个进入转换器中。
转换时间约100μs,含锁存控制的8路多路开关,输出有三态缓冲器控制,单5V电源供电。
主要控制信号如下图所示:
START是转换启动信号,高电平有效;ALE是3位通道选择地址(ADDC、ADDB、ADDA)信号的锁存信号。
当模拟量送至某一输入端(如IN1或IN2等),由3位地址信号选择,而地址信号由ALE锁存;EOC是转换情况状态信号,当启动转换约100μs后,EOC产生一个负脉冲,以示转换结束;在EOC的上升沿后,若使输出使能信号OE为高电平,则控制打开三态缓冲器,把转换好的8位数据结果输至数据总线,至此ADC0809的一次转换结束。
四、实验组织运行要求
1、学生在进行实验前必须进行充分的预习,熟悉实验内容;
2、学生拟定实验方案,编写完整的实验程序;
3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,服从管理;
4、教师在学生实验过程中予以必要的辅导,帮助学生独立完成实验;
5、采用开放运行方式。
五、实验条件
1、提供一台具有WINDOWS2000/XP操作系统的计算机;
2、提供QuartusII软件开发环境。
六、实验步骤
学生自行进行设计方案,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 逻辑 器件 实验 指导书