VHDL实验完整版Word格式文档下载.docx
- 文档编号:17666845
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:28
- 大小:2.16MB
VHDL实验完整版Word格式文档下载.docx
《VHDL实验完整版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VHDL实验完整版Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
文件夹不能用中文命名,也不要用纯数字)
选择主页面的File——New——VHDLFile——OK,如下图所示
新建VHDL文件
将下面源程序复制进去(十进制计数):
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycnt10bis
port(
clk,rst,en:
instd_logic;
cq:
outstd_logic_vector(3downto0);
cout:
outstd_logic);
endcnt10b;
architecturebehavofcnt10bis
begin
process(clk,rst,en)
variablecqi:
std_logic_vector(3downto0);
begin
ifrst='
1'
thencqi:
=(others=>
'
0'
);
--计数器异步复位
elsifclk'
eventandclk='
then
ifen='
then--检测是否允许计数
ifcqi<
9thencqi:
=cqi+1;
--小于9,计数
elsecqi:
--大于9,计数器清零
endif;
ifcqi=9thencout<
='
;
--大于9,输出进位信号
elsecout<
cq<
=cqi;
--将计数器值向端口输出
endprocess;
endbehav;
复制完成后将VHDL文件存盘,选择File——SaveAs,找到已建立的文件夹d:
\cnt10b,存盘名称自定,同样不能为中文,我们用文件夹命名cnt10.vhd。
当出现“Doyouwanttocreateanewprojectwiththisfile?
”时,选择是,随即进入工程建立流程。
将会出现下图,说明各行的意义,第一行D:
/cnt10b/,说明你的工程文件的路径。
第二行cnt10b,是工程的名字。
第三行cnt10b为当前工程文件的实体名,这里即为cnt10b。
此方法所有选项会根据你以上的步骤自动记录,直接选择下一步即可。
工程文件建立
点击下一步Next,将设计文件加入工程(如果事先做好的话),我们刚才建立的cnt10b.vhd源程序文件,我们将它加入进来后,选择下一步。
工程文件添加
点击下一步Next后,选择具体芯片型号Family类型选择Cyclone,具体型号为EP1C6Q240C8。
芯片型号一定要选择对,不然无法将程序下载至实验箱。
选择下一步Next,第四项选择工具可以全部不选,直接Next完成。
此时,cnt10b的工程已建立好。
cyclone芯片选择
工程建立成功图示
选择Processing——StartCompilation进行编译,也可点击快捷工具栏中
按钮进行编译操作,编译成功如下图所示。
编译成功界面
若编译时出现其他问题(warming可忽略),软件会提示出现问题的地方,比如:
语句错误等。
根据提示进行修改,若一直跟着此步骤做下来,应该不会有问题。
未注册的软件是100%无法编译成功的)
5.建立波形文件进行仿真。
选择File——new——OtherFiles——VectorWaveformFile——OK,建立波形仿真软件,然后选择View——UtilityWindows——NodeFound【快捷键(ALT+1)】,然后再弹出的对话框中Filter选择Pins:
all——点击list,将出现9个信号源(若未出现说明未编译成功,重新编译一次),框选全部信号源,添加至波形文件的Name下面,然后点击保存,将波形文件命名为cnt10b.vwf。
信号源的添加
信号源添加至波形文件
进行信号源的属性设置,首先设置仿真的起止时间,Edit——EndTime,选择仿真时间10S。
然后将clk时钟源设置为时钟模式OverwriteClock图标为
,点击后选择周期等属性,
Endtime设置时钟周期设置
将其他信号源(en,rst)按照仿真图进行设置,然后执行波形仿真,点击
进行编译,结果如下图所示。
波形仿真结果图
6.引脚设置。
选择assignments——pins进行引脚设置,将引脚设置为同下图一样。
引脚设置完毕后,再进行一次编译(StartCompilation)才能进行下载。
引脚设置界面
到此本次实验仿真部分完成,接下来是将程序下载至实验箱的实操部分。
7.源程序下载。
USB下载器驱动安装,将下载器连接到USB口,此时电脑将出现新硬件,QuartusII软件安装时就会将驱动程序一起安装,默认路径C:
\altera\quartus60\drivers\usb-blaster,所以我们只要找到驱动路径进行指定就OK了,具体方法见下图(图为WIN7环境下的驱动安装)
发现新硬件
选择驱动文件路径
若出现验证选择始终安装
USB驱动安装完毕后,点击Tools——Programmer进行下载步骤,点击HardwareSetup进行硬件设置,在此选择USB-Blaster,点击close。
若安装了驱动却没出现USB-Blaster,请拔掉下载器重新插入。
然后勾选Program/Configure后点击Start将编译好的程序下载至实验箱。
Progress旁边的蓝色条出现100%,并且页面下部出现绿色字样:
Info:
Configurationsucceeded--1device(s)configured就表示下载成功。
下载页面
HardwareSetup页面设置
下载成功界面
8.功能介绍。
十进制计数器程序已经被我们下载到实验箱,是不是特别想看看实物的结果,我们这个实验的引脚使用的是模式5的电路,所以按模式选择,将指示灯按成5,就是模式5。
按键设置键1为EN端,即使能端,键2为rst,即复位端,LEDD1为cout,即进位位。
此时我们需要设置时钟频率,在实验箱右下角,最右边一排有插针,请将插针的跳线帽接在16Hz及以下就能清楚的看见我们实验的效果。
实验二组合电路的设计
熟悉使用QuartusII软件的VHDL文本设计流程全过程
学习简单组合电路的设计、多层次电路设计、仿真和硬件测试
1.首先利用QuartusⅡ完成2选1多路选择器(例1-1)的文本编辑输入(mux21a.vhd)。
【例1-1】
ENTITYmux21aIS
PORT(a,b,s:
INSTD_LOGIC;
y:
OUTSTD_LOGIC);
ENDENTITYmux21a;
ARCHITECTUREoneOFmux21aIS
BEGIN
PROCESS(a,b,s)BEGIN
IFs='
THENy<
=a;
ELSEy<
=b;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREone;
2.将此多路选择器看成是一个元件mux21a,利用元件例化语句描述三选一数据选择器图1-1,并将此文件放在同一目录中。
以下是MUX31部分参考程序:
...
COMPONENTMUX21A
PORT(a,b,s:
OUTSTD_LOGIC);
ENDCOMPONENT;
u1:
MUX21APORTMAP();
u2:
ENDARCHITECTUREBHV;
图1-13选1多路选择器
3.请根据VHDL例化语句部分内容把MUX31的程序补充完整,之后进行编译、仿真、引脚设置、硬件下载。
图1-2实验电路结构图NO.5
选择实验电路模式5,可以任意选择两个键控制s0和s1;
a3、a2和a1分别接clock5、clock0和clock2;
输出信号outy接扬声器spker(引脚号为174)。
通过跳线帽选择clock0,clock5,clock2接不同频率的信号。
最后进行编译、下载和硬件测试实验(通过选择按键,控制s0、s1,可使扬声器输出不同clock频率的音调)。
图1-3实验箱引脚图
五、实验内容记录
1.将设计好的3选1程序写在实验报告上
2.将3选1电路时序仿真结果图画在实验报告上
3.将3选1电路的引脚设置情况写在实验报告上
4.将3选1电路的硬件测试情况列表描述状态(按键s0、s1是什么状态时,输出的是哪个clock的信号?
)
实验三QuartusII原理图输入法设计4位全加器
熟悉使用QuartusII软件的原理图输入设计流程全过程
学习原理图输入法的设计、多层次电路设计、仿真和硬件测试
1、首先,使用原理图输入设计方法(具体方法查看书本),建立1位半加器原理图,将原理图设置成可调用的元件,将2个半加器组成一个1位全加器,再将全加器设置成可调用的元件去搭建4位全加器。
2、一个4位全加器由4个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相临的高位加法器的最低进位输入信号cin相接。
4位全加器原理图
3、选择好电路模式,从以下模式中选择你需要的电路模式进行设计和配置引脚,并完成编译、波形仿真、引脚设置和硬件测试。
1.说明半加器和全加器的区别
2.本次实验可以使用哪几个电路模式完成实验?
3.请根据下载实验箱后的情况填写下表
a0-a3
b0-b3
cin
cout
sum
C
2
1
9
5
6
7
8
A
D
E
F
实验四数控分频器的设计
一、实验目的
学习数控分频器的设计、分析和测试方法。
二、实验原理
数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可。
三、实验内容
(1)分析:
根据下图的波形提示,分析实验程序各语句功能、设计原理及逻辑功能,详述进程P_REG和P_DIV的作用,并画出该程序的RTL电路图。
图当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns)
(2)仿真:
输入不同的CLK频率和预置值D,给出时序波形。
(3)在实验系统上硬件验证本次实验功能。
按照步骤对上例分别进行编译、综合、仿真。
并对其仿真波形作出分析说明。
请将实验程序补齐,然后进行编译、仿真、下载。
将P_REG和P_DIV的作用写在实验报告上。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYDVFIS
PORT(……);
END;
ARCHITECTUREoneOFDVFIS
SIGNALFULL:
STD_LOGIC;
P_REG:
PROCESS(CLK)
VARIABLECNT8:
STD_LOGIC_VECTOR(7DOWNTO0);
IFCLK'
EVENTANDCLK='
THEN
IFCNT8="
"
CNT8:
=D;
--当CNT8计数计满时,输入数据D被同步预置给计数器CNT8
FULL<
='
--同时使溢出标志信号FULL输出为高电平
ELSECNT8:
=CNT8+1;
--否则继续作加1计数
--且输出溢出标志信号FULL为低电平
ENDPROCESSP_REG;
P_DIV:
PROCESS(FULL)
VARIABLECNT2:
IFFULL'
EVENTANDFULL='
CNT2:
=NOTCNT2;
--如果溢出标志信号FULL为高电平,D触发器输出取反
IFCNT2='
THENFOUT<
ELSEFOUT<
ENDPROCESSP_DIV;
实验五序列检测器设计
用状态机实现序列检测器的设计,了解一般状态机的设计与应用
序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。
由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。
在检测过程中,任何一位不相等都将回到初始状态重新开始检测。
电路完成对序列数“”的检测,当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。
三、实验内容
(1)实验内容1:
利用QuartusII进行文本编辑输入、仿真测试并给出仿真波形,了解控制信号的时序,最后进行引脚锁定并完成硬件测试实验。
建议选择电路模式No.8(附录图10),用键7(PIO11)控制复位信号CLR;
键6(PIO9)控制状态机工作时钟CLK;
待检测串行序列数输入DIN接PIO10(左移,最高位在前);
指示输出AB接PIO39~PIO36(显示于数码管6)。
下载后:
①按实验板“系统复位”键;
②用键2和键1输入2位十六进制待测序列数“”;
③按键7复位(平时数码6指示显“B”);
④按键6(CLK)8次,这时若串行输入的8位二进制序列码(显示于数码2/1和发光管D8~D0)与预置码“”相同,则数码6应从原来的B变成A,表示序列检测正确,否则仍为B。
(2)实验内容2:
将8位待检测预置数由键4/键3作为外部输入,从而可随时改变检测密码。
四、实验仪器、设备
五、实验步骤
1、实验程序
LIBRARYIEEE;
ENTITYSCHKIS
PORT(DIN,CLK,CLR:
--串行输入数据位/工作时钟/复位信号
AB:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
--检测结果输出
ENDSCHK;
ARCHITECTUREbehavOFSCHKIS
SIGNALQ:
INTEGERRANGE0TO8;
SIGNALD:
--8位待检测预置数(密码=E5H)
D<
="
;
--8位待检测预置数
PROCESS(CLK,CLR)
IFCLR='
THENQ<
=0;
ELSIFCLK'
EVENTANDCLK='
THEN--时钟到来时,判断并处理当前输入的位
CASEQIS
WHEN0=>
IFDIN=D(7)THENQ<
=1;
ELSEQ<
ENDIF;
WHEN1=>
IFDIN=D(6)THENQ<
=2;
WHEN2=>
IFDIN=D(5)THENQ<
=3;
WHEN3=>
IFDIN=D(4)THENQ<
=4;
WHEN4=>
IFDIN=D(3)THENQ<
=5;
WHEN5=>
IFDIN=D
(2)THENQ<
=6;
WHEN6=>
IFDIN=D
(1)THENQ<
=7;
WHEN7=>
IFDIN=D(0)THENQ<
=8;
WHENOTHERS=>
Q<
ENDCASE;
ENDIF;
ENDPROCESS;
PROCESS(Q)--检测结果判断输出
IFQ=8THENAB<
1010"
--序列数检测正确,输出"
A"
ELSEAB<
1011"
--序列数检测错误,输出"
B"
ENDbehav;
2、根据实验要求配置好实验参数,完成实验内容
(1)和
(2),包括编译、引脚设置、硬件下载测试。
六、实验内容记录
1、将实验内容
(2)需要更改的程序进行说明。
实验六实操考试
一、考试时间及要求
考试时间为2节课,90分钟,一人一台电脑和实验箱,随机抽题,独立完成,不能使用U盘,手机,可以带书。
做完所有步骤后,举手示意老师,准备答辩。
于考试完一周内上交VHDL考试报告。
二、考试题目
题目一:
8位全加器的设计
要求:
用原理图的输入方式,按照半加器,一位全加器,8位全加器的分层设计方法,具体内容可参考实验三。
最后,验收内容包括:
8位全加器的原理图,波形仿真,引脚设置,下载测试。
题目二:
密码锁的设计
密码可以外界输入,VHDL文本编辑,具体内容可参考实验五。
编程,波形仿真,引脚设置,下载测试。
题目三:
7段数码显示译码器设计
VHDL文本编辑,具体内容可参考书上P117,最后,验收内容包括:
题目四:
3-8译码器设计
VHDL文本编辑,具体内容可参考书上P85,最后,验收内容包括:
三、注意事项
每个题目的编程不唯一,大家可以创新,但要能实现每个题目的功能!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 实验 完整版