北邮数电实验报告Word文档格式.docx
- 文档编号:17709312
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:19
- 大小:478.51KB
北邮数电实验报告Word文档格式.docx
《北邮数电实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《北邮数电实验报告Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
输入A,B,C,输出为3。
四个输出对应F中的四个最小项,Y0、Y2、Y4、Y7,以实现函数功能。
二.实验二:
用VHDL设计与实现组合逻辑电路
(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能。
要求用拨码开关设定输入信号,7段数码管显示输出信号。
(2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能。
要求用拨码开关设定输入信号,发光二极管显示输出信号。
(3)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个’1’时,输出为’1’,否则输出’0’,仿真验证其功能。
2.实验代码及波形图
(1)共阴极7段数码管译码器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYGUANIS
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
B:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
C:
OUTSTD_LOGIC_VECTOR(5DOWNTO0));
ENDGUAN;
ARCHITECTUREencoder_archOFGUANIS
BEGIN
PROCESS(A)
C<
="
011111"
;
CASEAIS
WHEN"
0000"
=>
B<
1111110"
--0
0001"
0110000"
--1
0010"
1101101"
--2
0011"
1111001"
--3
0100"
0110011"
--4
0101"
1011011"
--5
0110"
1011111"
--6
0111"
1110000"
--7
1000"
1111111"
--8
1001"
1111011"
--9
WHENOTHERS=>
ZZZZZZZ"
ENDCASE;
ENDPROCESS;
ENDencoder_arch;
(2)8421码转换为余3码
ENTITYYUSANIS
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDYUSAN;
ARCHITECTUREtrans_ex3OFYUSANIS
1010"
1011"
1100"
ZZZZ"
ENDtrans_ex3;
(3)4位二进制奇校验器
ENTITYJIOUIS
PORT(a,b,c,d:
INSTD_LOGIC;
y:
OUTSTD_LOGIC);
ENDJIOU;
ARCHITECTUREbehavOFJIOUIS
PROCESS(a,b,c,d)
VARIABLEcomb:
STD_LOGIC_VECTOR(3DOWNTO0);
comb:
=a&
b&
c&
d;
CASEcombIS
y<
='
0'
1'
1101"
1110"
1111"
ENDbehav;
3.仿真波形分析
(1)8421码转为余三码:
输出在输入基础上加011
(2)四位二进制奇校验码:
当输入有奇数个一时,输出1,偶数个一时,输出0。
三.实验三:
(1)用VHDL语言设计实现一个带异步复位的8421码十进制计数器,仿真验证其功能,并下载到实验版测试。
要求用按键设定输入信号,发光二极管显示输出信号;
(2)用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器,仿真验证其功能;
(3)将
(1),
(2)和数码管译码器3个电路进行链接,并下载到实验板显示计数结果。
2.实验代码及波形图
(1)8421码十进制计数器
ENTITYjishuqiIS
PORT(
clk,reset:
q:
ENDjishuqi;
ARCHITECTUREaOFjishuqiIS
SIGNALq_temp:
PROCESS(clk,reset)
IFreset='
THEN
q_temp<
ELSIFclk'
EVENTANDclk='
IFq_temp="
ELSEq_temp<
=q_temp+1;
ENDIF;
q<
=q_temp;
ENDa;
(2)分频器
ENTITYfenpinqiIS
clk:
clear:
clk_out:
ENDfenpinqi;
ARCHITECTUREaOFfenpinqiIS
SIGNALtemp:
INTEGERRANGE0TO6;
p1:
PROCESS(clear,clk)
IFclear='
temp<
=0;
IFtemp=11THEN
ELSEtemp<
=temp+1;
ENDPROCESSp1;
p2:
PROCESS(temp)
IFtemp<
6THEN
clk_out<
ELSEclk_out<
ENDPROCESSp2;
3.模块端口说明
(1)带异步复位的四位二进制减计数器
(3)三个连接
4.波形分析
(1)8421十进制计数器
由波形图可见,随着时钟不停的变化,输出也从0——9不停的显示。
到9之后,会自动复位,回复到0,继续循环。
此外,计数器还可以手动复位。
Reset为1时,计数器复位,重新开始计数,当reset为0时,计数器正常工作。
由波形可见,时钟进行12个周期,输出为1个周期,即周期变为原来的12倍,频率变为原来的1/12,实现分频系数为12。
实验中用到分频为50MHz,需将VHDL代码中的6改成2499999。
四.实验四:
用VHDL设计与实现相关电路
(1)用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示xxxxxx这6个不同的数字图形带6个数码管上,仿真验证其功能。
(2)用VHDL语言设计并实现六个数码管滚动显示电路。
循环左滚动,时钟点亮6个数码管,左出右进。
状态为:
xxxxxx。
仿真验证其功能,并下载到实验板上测试。
2.实验代码及仿真图
(1)扫描
ENTITYbugundongIS
PORT(CLK:
SG:
CAT:
END;
ARCHITECTUREarcOFbugundongIS
componentdiv
port(clk_in:
instd_logic;
clk_out:
outstd_logic);
endcomponent;
SIGNALCNT6:
SIGNALL:
INTEGERRANGE0TO5;
SIGNALclk_tmp:
STD_LOGIC;
u1:
divportmap(clk_in=>
CLK,clk_out=>
clk_tmp);
P1:
process(CNT6)
CASECNT6IS
WHEN0=>
CAT<
L<
WHEN1=>
101111"
=1;
WHEN2=>
110111"
=2;
WHEN3=>
111011"
=3;
WHEN4=>
111101"
=4;
WHEN5=>
111110"
=5;
NULL;
IFclk_tmp'
EVENTANDclk_tmp='
CNT6<
=CNT6+1;
ifCNT6=5then
endif;
CASELIS
SG<
0101110"
0001110"
0000101"
1001101"
0000001"
ENDPROCESSP1;
ENDarc;
(2)滚动
ENTITYsoamiaoIS
PORT(CLK:
tubeout:
catout:
OUTSTD_LOGIC_VECTOR(5DOWNTO0);
constlow:
ENDENTITY;
ARCHITECTUREbehaveOFsoamiaoIS
SIGNALtube:
STD_LOGIC_VECTOR(6DOWNTO0);
SIGNALcat:
STD_LOGIC_VECTOR(5DOWNTO0);
SIGNALnumber:
SIGNALtempclk:
SIGNALmove:
INTEGERRANGE0TO24999;
SIGNALtemp1:
INTEGERRANGE0TO24999999;
SIGNALa:
INTEGERRANGE0TO1;
SIGNALb:
constlow<
p1:
PROCESS(CLK)--fenpinqi1kHz
BEGIN
IFCLK'
EVENTANDCLK='
IFtemp=24999THENtemp<
tempclk<
=NOTtempclk;
ELSEtemp<
ENDIF;
ENDIF;
ENDPROCESSp1;
p2:
PROCESS(tempclk)
IFtempclk'
EVENTANDtempclk='
CASEcatIS
WHEN"
cat<
WHENothers=>
ENDCASE;
ENDPROCESSp2;
catout<
=cat;
p3:
PROCESS(CLK)--fenpinqi1Hz
IFtemp1=24999999THENtemp1<
move<
=NOTmove;
ELSEtemp1<
=temp1+1;
ENDPROCESSp3;
p4:
PROCESS(tempclk,move)
IFmove'
EVENTANDmove='
THENa<
IFa=0THEN
CASEnumberIS
WHEN"
number<
WHENothers=>
ENDCASE;
b<
ELSE
IFb=1THENa<
ENDPROCESSp4;
p5:
PROCESS(number)
CASEnumberIS
WHEN"
tube<
0111001"
1100110"
0000111"
1110111"
0001010"
WHENothers=>
0000000"
ENDCASE;
ENDPROCESSp5;
tubeout<
=tube;
ENDbehave;
扫描显示
由波形可见,随时钟模6计数不断重复,数码管依次显示不同的数字。
从左到右依次显示xxxxxx,当频率很大,扫描速度很快的时候,我们就看到了静止显示的数字。
五.故障及问题分析
1.在实验一的时候,初次接触quartus,大部分问题是由于对软件使用的不熟悉。
比如在连接原理图的时候,把线连到组件的内部导致的错误。
2.工程名和文件名要一致,否则会出现无法运行的情况。
3.在生成波形文件之后,要设置输入波形,由于波形设置不正确,所以仿真之后输出波形都是0。
比如有好几个输入的时候,他们的周期应该是1,2,4,8·
·
但是我开始会设置成1,2,3,·
这样也得不到正确的输出。
4.有时候编译会进行很久,一直编译不出来。
后来经过老师的解答,才知道分频器的分频系数不能太大去编译,这样编译时间会很长。
应该在分频系数还小的时候进行编译检验代码的正确性,改系数之后直接下载。
5.有时候输出波形会出现毛刺,这个时候就需要修改VHDL代码。
6.在下载的时候如果不编译,下载就不会成功。
在进行任何修改之后都需要先编译再下载。
如果下载了但是有些灯不亮,或者开关不灵敏,有可能是实验板除出了问题,可以再换个管脚试试。
六.总结及结论
通过本学期的数电实验,我首先学会了quartus这个软件的使用。
还掌握了VHDL语言的基本使用。
在利用VHDL设计数字电路的时候,不需要去了解电路的内部结构,只需要注重它的功能。
使得设计分析十分简单。
同时,通过这几次的实验,也让我对数电书中的一些器件的功能更加的熟悉,对各种数字电路有了更深的理解。
为我们下学期的实验和学习打下了基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北邮数电 实验 报告