北邮数电实验报告 1Word下载.docx

上传人:b****5 文档编号:17636603 上传时间:2022-12-07 格式:DOCX 页数:16 大小:113.10KB
下载 相关 举报
北邮数电实验报告 1Word下载.docx_第1页
第1页 / 共16页
北邮数电实验报告 1Word下载.docx_第2页
第2页 / 共16页
北邮数电实验报告 1Word下载.docx_第3页
第3页 / 共16页
北邮数电实验报告 1Word下载.docx_第4页
第4页 / 共16页
北邮数电实验报告 1Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

北邮数电实验报告 1Word下载.docx

《北邮数电实验报告 1Word下载.docx》由会员分享,可在线阅读,更多相关《北邮数电实验报告 1Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

北邮数电实验报告 1Word下载.docx

13

(一)实验名称及实验任务要求

实验一

名称:

QuartusII原理图输入法设计与实现

实验任务要求:

EDA基础实验1

(1)、

(2)、(3)必做,选做VHDL实现加法器。

实验二

用VHDL设计与实现组合逻辑电路

四人表决器、8421码转格雷码、数码管译码器(下载测试)。

实验三

用VHDL设计与实现时序逻辑电路

分频器、8421十进制计数器、将分频器/8421十进制计数器/数码管译码器3个电路进行连接并下载。

实验四

用VHDL设计与实现相关电路

数码管动态扫描控制器、点阵扫描控制器。

(2)模块端口说明及连接图

1.1实验三(3)模块端口说明

cp:

时钟信号输入;

rst:

8421十进制计数器异步置位;

c[6...0]:

七段二极管数码管显示;

cat[7...0]:

数码管显示。

1.2实验三(3)连接图

2.1实验四模块端口说明

cp:

8421计数器异步复位;

lgt[6...0]:

2.2实验四连接图

(3)原理图或VHDL代码

1.实验一

(2)原理图

半加器:

全加器:

2.实验三(3)VHDL代码

//分频器部分

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entitydiv_12is

port

cp:

instd_logic;

clk1:

outstd_logic

);

enddiv_12;

architectureaofdiv_12is

signaltmp:

integerrange0to11;

begin

process(cp)

begin

if(cp'

eventandcp='

1'

)then

iftmp=11thentmp<

=0;

elsetmp<

=tmp+1;

endif;

iftmp<

=5thenclk1<

='

0'

;

elseclk1<

endprocess;

enda;

//8421十进制加法器部分

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityjisuqi8421is

port

clk2,rst:

q:

outstd_logic_vector(3downto0)

endjisuqi8421;

architectureaofjisuqi8421is

signalq_temp:

std_logic_vector(3downto0);

process(clk2,rst)

begin

if(rst='

q_temp<

="

0000"

elsif(clk2'

eventandclk2='

ifq_temp>

1001"

thenq_temp<

else

=q_temp+1;

endprocess;

q<

=q_temp;

enda;

//译码管部分

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYyimaguanIS

PORT(

a:

INSTD_LOGIC_VECTOR(3downto0);

b:

OUTSTD_LOGIC_VECTOR(6downto0);

cat:

outstd_logic_vector(7downto0)

endyimaguan;

ARCHITECTUREseg7_1_archOFyimaguanIS

BEGIN

PROCESS(a)

BEGIN

CASEaIS

WHEN"

=>

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

1111011"

--9

WHENOTHERS=>

0000000"

ENDCASE;

ENDPROCESS;

cat<

11101111"

END;

//整体显示

entitydisplayis

cp,rst:

c:

outstd_logic_vector(6downto0);

enddisplay;

architecturerofdisplayis

componentdiv_12

cp:

instd_logic;

clk1:

outstd_logic

endcomponent;

componentjisuqi8421

clk2,rst:

q:

outstd_logic_vector(3downto0)

componentyimaguan

instd_logic_vector(3downto0);

signalx:

std_logic;

signaly:

std_logic_vector(3downto0);

u1:

div_12portmap(cp=>

cp,clk1=>

x);

u2:

jisuqi8421portmap(clk2=>

x,rst=>

rst,q=>

y);

u3:

yimaguanportmap(a=>

y,b=>

c,cat=>

cat);

endr;

3.实验四VHDL代码

//分频器分频部分

entitydivis

enddiv;

architectureaofdivis

integerrange0to49;

)then

iftmp=49thentmp<

=25thenclk1<

//计数器计数部分

entitycountis

clk,rst:

endcount;

architectureaofcountis

signaltemp:

process(clk,rst)

temp<

elsif(clk'

eventandclk='

iftemp>

thentemp<

=temp+1;

=temp;

//译码管显示部分

entityyimaqiis

led:

outstd_logic_vector(7downto0)

endentity;

architecturertlofyimaqiis

process(a)

caseais

when"

=>

led<

11111110"

when"

11111101"

11111011"

11110111"

11011111"

whenothers=>

11111111"

endcase;

end;

//合成数码管显示

entityshowis

rst:

lgt:

architecturertlofshowis

componentdiv

cp:

endcomponent;

signalx:

componentcount

clk,rst:

q:

signaly:

componentyimaqi

port

a:

u0:

divportmap(cp=>

countportmap(clk=>

yimaqiportmap(a=>

y,cat=>

cat,led=>

lgt);

endrtl;

(4)仿真波形

1.实验一

(2)仿真波形

2.实验三(3)仿真波形

3.实验四仿真波形

(5)仿真波形分析

1.实验一

(2)仿真波形分析

a,b,ci均为输入信号,s,co为输出信号

其逻辑功能为:

s=axorbxorci

co=((axorb)andci)or(aandb)

2.实验三(3)仿真波形分析

rst,cp均为输入信号,c,cat为输出信号。

当rst为1时,输出信号c置零;

当rst为0时,信号c以八为周期,周期性输出,从该波形看出下

载后显示的结果应为第四个数码管连续性显示输出0~8。

3.实验四仿真波形分析

rst,cp均为输入信号,lgt,cat为输出信号。

当rst为1时,输出信号lgt置零;

当rst为0时,信号lgt以六为周期,周期性输出,从该波形可以

看出,下载后现实的结果应为cat[0]~cat[5]六个数码管分别显示

输出0、1、2、3、4、5。

(6)故障及问题分析

1.电路连接问题:

为连接错误;

2.管脚名问题:

2.1原理图连接的时候如果没有将管脚名修改的话,也可能报错,

不过个人没有遇到过;

2.2如果不慎将两个管脚的名称写成了一样的,则会有报错Error:

Illegalname"

管脚名"

--pinnamealreadyexists

3.存储问题:

3.1老师说工程得全英文路径,可是个人试了一下发现存储工程

的文件夹名称为中文的运行也能成功,可能是有某些案例显

示中文路径会报错吧;

3.2编写的VHDL代码或原理图文件都应该存储到与工程的同一

路径下,否则将报错Error:

Top-leveldesignentity"

工程名"

is

undefined;

3.3需要引用到新建的工程或元件时该工程应与新建的工程或元

件存储到同一路径下,否则报错Error:

Nodeinstance"

某管脚"

instantiatesundefinedentity"

新建工程名称"

或者显示unknown

3.4如果存储的工程名称与VHDL代码中的工程名称不一致则会

报错Error:

isundefined;

4.VHDL代码问题:

4.1在port的“)”前多加了个“,”,如Error(10500):

VHDLsyntax

erroratcount.vhd(12)neartext"

)"

expectinganidentifier,or

"

constant"

or"

file"

signal"

variable"

4.2赋值语句没写“<

”,如Error(10500):

VHDLsyntaxerrorat

div_12.vhd(22)neartext"

expecting"

("

'

"

."

4.3类型使用错误,如Error(10517):

VHDLtypemismatcherrorat

div_12.vhd(24):

std_logic_vectortypedoesnotmatchinteger

literal;

4.4元件与元件之间的连接缺少signal,如Error(10482):

VHDLerror

atshow.vhd(50):

object"

clk"

isusedbutnotdeclared

5.下载

5.1管脚的adress没有填对,比如数码管的a~f七段二极管应分别

对应AA~AF,而经常会犯错将其分别对应AF~AA,这样数码管

也将会显示错误;

5.2填完管脚后没有从新编译,则下载完成后得不到所需结果

(7)总结和结论

通过这几周的数字电路与逻辑设计实验,个人受益匪浅。

首先是养成了一个实验课前预习的好习惯,而刚开始实验的时候没有提前预习,等到老师讲的时候感觉思路跟不上,错过很多要点,并且不能很好的操作QuartusII软件;

接着是对EDA有了初步的了解,知道了通过vhdl里的那短短的代码就能实现数字可编程器件的各种功能。

这几周的实验是以数码管的显示为主的,个人从中也了解到了挺多的,比如计数器的实现,分频器的实现等;

然后是通过这几周的实验,个人对数字电与逻辑设计这门课有了不同以往的兴趣,在未来的日子里也将会更加努力的去学习这门课程;

最后,感谢老师的谆谆教导。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1