北京邮电大学数电实验报告Word格式.docx

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

北京邮电大学数电实验报告Word格式.docx

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

北京邮电大学数电实验报告Word格式.docx

(2)用实验内容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号;

(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数F=,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

原理图及仿真波形图:

(1)半加器

原理图:

仿真波形图:

分析:

S=ab;

C=ab

其中a,b为输入端,C为进位端,S为本位和,当ab=‘00’‘01’‘10’时不用进位,故C=‘0’,当ab=‘11’时需要进位使得C=‘1’,S=‘0’。

(2)全加器

Si=AiBiCi-1;

Ci=AiBi+Ci-1(AiBi)

全加器与半加器的不同在于,全加器需要考虑低位的进位,而半加器不需要。

因而对于全加器,Ai、Bi为加数和被加数,Ci-1为低位的进位,Ci为进位,Si为本位和,实质上相当于Ai+Bi+Ci-1,满2进1,Ci为进位,Si为本位和。

(3)译码器

又有要实现的功能为F=,又根据74LS138的使用原理可得图示的连接方法。

实验二:

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

(1)熟悉用VHDL语言设计组合逻辑电路的方法;

(2)熟悉用QuartusⅡ文本输入法进行电路设计;

(3)熟悉不同的编码及其之间的转换。

(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,7段数码管显示输出信号;

(2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号;

(3)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个‘1’时,输出为‘1’,否则输出为‘0’,仿真验证其功能,并下载到实验板测试。

VHDL代码及仿真波形图:

(1)数码管译码器

VHDL代码:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYseg7_1IS

PORT(

a:

INSTD_LOGIC_VECTOR(3downto0);

b:

OUTSTD_LOGIC_VECTOR(6downto0)

);

endseg7_1;

ARCHITECTUREseg7_1_archOFseg7_1IS

BEGIN

PROCESS(a)

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=>

b<

0000000"

ENDCASE;

ENDPROCESS;

END;

数码管译码器主要运用case语句,将每一种情况罗列出来,而仿真波形图既是每一种情况的一种直观体现

(2)8421码转换为余3码的代码转换器

libraryieee;

useieee.std_logic_1164.all;

entityTWOis

port(

instd_logic_vector(3downto0);

outstd_logic_vector(3downto0)

endTWO;

architectureTWO_archofTWOis

begin

process(a)

caseais

when"

1010"

1011"

1100"

whenothers=>

b<

endcase;

endprocess;

end;

余三码实际为8421码加上3的结果,可以用case列举的方式,也可以用加号,但需要加上相应的库

(3)奇校验器

entityTHREEis

outstd_logic_vector(0downto0)

endTHREE;

architectureTHREE_archofTHREEis

0"

1"

--10

--11

--12

1101"

--13

1110"

--14

1111"

--15

实验三:

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

(1)熟悉用VHDL语言设计时序逻辑电路的方法;

(3)熟悉计数器和分频器的设计与应用。

(1)用VHDL语言设计实现一个带异步复位的8421码十进制计数器,仿真验证其功能,并下载到实验板测试。

要求用按键设定输入信号,发光二极管显示输出信号;

(2)用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器,要求在QuartusⅡ平台上设计程序并仿真验证设计;

(3)将

(1)

(2)和数码管译码器三个电路进行连接,并下载到实验板显示计数结果。

VHDL代码、仿真波形图、模块端口说明:

(1)计数器

useieee.std_logic_arith.all;

entitycount_10is

clk,clear:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDcount_10;

architectureaofcount_10is

signalcn:

integerrange0to10;

process(clk)

IF(clear='

0'

ORcn=10)THEN

cn<

=0;

ELSIF(clk'

eventANDclk='

1'

)THEN

=cn+1;

ELSEcn<

=cn;

ENDIF;

q<

=CONV_STD_LOGIC_VECTOR(cn,4);

ENDa;

输入为时钟信号和复位信号。

由于是异步复位,所以复位信号的优先级最高。

当复位信号为0时,输出变为0000;

当复位信号为1时,每当遇到时钟上升沿,输出状态加1,实现加计数,计数循环为0000→·

·

1010,其中1010与0000占用同一个周期的clk,因此输出波形会出现“芒刺”。

(2)分频器

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYdiv_12IS

clk:

clear:

clk_out:

OUTSTD_LOGIC);

ENDdiv_12;

ARCHITECTUREaOFdiv_12IS

SIGNALtmp:

INTEGERRANGE0TO5;

SIGNALclktmp:

STD_LOGIC;

PROCESS(clear,clk)

IFclear='

THEN

tmp<

ELSIFclk'

IFtmp=5THEN

clktmp<

=NOTclktmp;

ELSE

tmp<

=tmp+1;

ENDIF;

clk_out<

=clktmp;

在本段设计中,clear=0不再是简单的清零操作,而是重新计算clk数目的操作,当出现clear=0时,将会重新计算6个时钟周期,再进行输出状态的翻转。

(3)计时器与分频器的连接

ENTITYtheIS

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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