北邮数字电路与逻辑设计实验报告Word格式文档下载.doc

上传人:wj 文档编号:8153763 上传时间:2023-05-10 格式:DOC 页数:20 大小:1.17MB
下载 相关 举报
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第1页
第1页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第2页
第2页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第3页
第3页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第4页
第4页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第5页
第5页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第6页
第6页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第7页
第7页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第8页
第8页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第9页
第9页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第10页
第10页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第11页
第11页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第12页
第12页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第13页
第13页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第14页
第14页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第15页
第15页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第16页
第16页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第17页
第17页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第18页
第18页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第19页
第19页 / 共20页
北邮数字电路与逻辑设计实验报告Word格式文档下载.doc_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

北邮数字电路与逻辑设计实验报告Word格式文档下载.doc

《北邮数字电路与逻辑设计实验报告Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《北邮数字电路与逻辑设计实验报告Word格式文档下载.doc(20页珍藏版)》请在冰点文库上搜索。

北邮数字电路与逻辑设计实验报告Word格式文档下载.doc

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

一、实验目的:

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

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

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

(1)计算机;

(2)直流稳压电源;

(3)数字系统与逻辑设计实验开发板。

(1)用VHDL语言设计实现一个共阴极7段数码管译码器;

(2)用VHDL语言设计一个8421码转余三码的代码转换器;

(3)用VHDL语言设计设计一个四位2进制奇校验器。

四、实验代码及仿真波形图

数码管译码器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYshumaguanyimaqiIS

PORT(A:

INSTD_LOGIC_VECTOR(3DOWNTO0);

B:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

C:

OUTSTD_LOGIC_VECTOR(5DOWNTO0));

ENDshumaguanyimaqi;

ARCHITECTUREencoder_archOFshumaguanyimaqiIS

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;

仿真波形图

仿真波形分析:

A是输入,A0-A3是由低位到高位变化,B是数码管的各个部分,随着A输入的变化,B数码管对应译码出相应的数字显示出来。

8421码转余三码

ENTITYjxhyusanmaIS

PORT(A:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDjxhyusanma;

ARCHITECTUREtrans_ex3OFjxhyusanmaIS

1010"

1011"

1100"

ZZZZ"

ENDtrans_ex3;

8421码转换余三码,由0111转换成为了1010可以看出功能已经实现,仿真验证了代码功能正确。

奇校验

ENTITYjxhjijiaoyanIS

PORT(A:

STD_LOGIC;

B:

D:

F:

OUTSTD_LOGIC);

ENDjxhjijiaoyan;

ARCHITECTUREoneOFjxhjijiaoyanIS

SIGNALn1,n2:

STD_LOGIC;

BEGIN

n1<

=AXORB;

n2<

=n1XORC;

F<

=n2XORD;

ENDone;

当ABCD为1111时,输出F为0,ABCD为1110时,输出F为1,可见奇校验功能得以实现。

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

(1)用VHDL语言设计实现一个8421十进制计数器;

(2)用VHDL语言设计一个分频器;

(3)将

(1)、

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

8421十进制计数器

ENTITYjxhshijinzhijishuqiIS

PORT(

clk,reset:

INSTD_LOGIC;

q:

ENDjxhshijinzhijishuqi;

ARCHITECTUREaOFjxhshijinzhijishuqiIS

SIGNALq_temp:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

PROCESS(clk,reset)

IFreset='

0'

THEN

q_temp<

ELSIFclk'

EVENTANDclk='

1'

IFq_temp="

ELSEq_temp<

=q_temp+1;

ENDIF;

q<

=q_temp;

ENDa;

仿真波形图分析:

8421十进制计数器随着时钟的信号进行计数,restart是复位,当复位为零的时候计数器重新计数。

根据仿真结果来看,8421十进制计数器功能得以实现。

分频器

ENTITYjxhfenpinqiIS

clk:

clear:

clk_out:

ENDjxhfenpinqi;

ARCHITECTUREaOFjxhfenpinqiIS

SIGNALtemp:

INTEGERRANGE0TO11;

p1:

PROCESS(clear,clk)

IFclear='

THEN

temp<

=0;

IFtemp=11THEN

ELSEtemp<

=temp+1;

ENDPROCESSp1;

p2:

PROCESS(temp)

IFtemp<

6THEN

clk_out<

='

ELSEclk_out<

ENDPROCESSp2;

分频器将频率分开,置零端正常工作,根据仿真波形可以看出来,分频器的功能得以正常实现。

组合电路

OUTSTD_LOGIC

);

ARCHITECTUREbehaveOFjxhfenpinqiIS

INTEGERRANGE0TO24999999;

SIGNALclktmp:

BEGIN

PROCESS(clk)

BEGIN

IFclk'

eventANDclk='

THEN

IFtemp=24999999THEN

clktmp<

=NOTclktmp;

ELSE

=clktmp;

ENDbehave;

ENTITYjxhshijinzhiIS

PORT(

CLK,CLEAR:

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDjxhshijinzhi;

ARCHITECTUREAOFjxhshijinzhiIS

SIGNALQ_TEMP:

PROCESS(CLK,clear)

IFCLEAR='

Q_TEMP<

elsIF(CLK'

EVENTANDCLK='

)THEN

IFQ_TEMP="

ELSE

=Q_TEMP+1;

ENDIF;

ENDIF;

Q<

=Q_TEMP;

ENDA;

ENTITYjxhshumaguanIS

PORT(a:

b:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

c:

ENDjxhshumaguan;

ARCHITECTUREseg7_archOFjxhshumaguanIS

PROCESS(a)

c<

CASEaIS

b<

01111110"

--0

00110000"

--1

01101101"

--2

01111001"

--3

00110011"

--4

01011011"

--5

01011111"

--6

01110000"

--7

01111111"

--8

01111011"

--9

00000000"

ENDseg7_arch;

ENTITYjxhzuhedianluIS

ain:

bin:

cout:

OUTSTD_LOGIC_VECTOR(7downto0);

cat:

OUTSTD_LOGIC_VECTOR(5downto0)

endjxhzuhedianlu;

ARCHITECTUREbehaveOFjxhzuhedianluIS

COMPONENTjxhfenpinqi

ENDCOMPONENT;

COMPONENTjxhshijinzhi

clk,clear:

OUTSTD_LOGIC_VECTOR(3downto0)

COMPONENTjxhshumaguan

a:

INSTD_LOGIC_VECTOR(3downto0);

b:

c:

endCOMPONENT;

SIGNALd:

SIGNALf:

STD_LOGIC_VECTOR(3downto0);

u1:

jxhfenpinqiPORTMAP(clk=>

ain,clk_out=>

d);

u2:

jxhshijinzhiPORTMAP(clk=>

d,clear=>

bin,q=>

f);

u3:

jxhshumaguanPORTMAP(a=>

f,b=>

cout,c=>

cat);

端口的绑定:

端口分析:

Ain是时钟信号的输入绑定了18串口,bin是置零信号绑定了20串口,cat5-0是每个数码管各自的绑定,根据板子上的串口数字绑定,cout7-0是数码管的每一个亮的部分,根据板子上的提示串口进行绑定,根据编程可以实现让数码管显示不同的数字。

电路图:

代码中是使用PORTMAP进行连接的

在此图中可以看出ain接分频器的clk,分频器的clk_out接十进制译码器的CLK,bin接十进制译码器的CLEAR,十进制译码器的Q接数码管的a,数码管的b,c分别接count和cat。

实验四数码管扫描显示控制器设计与实现

1.掌握VHDL语言的语法规范,掌握时序电路描述方法。

2.掌握多个数码管动态扫描现实的原理及设计方法。

二、实验所用器材:

1.计算机:

装有Quartus软件,为VHDL语言提供操作场所。

2.直流稳压电源:

通过USB接口实现,为实验开发板提供稳定电源。

3.数字系统与逻辑设计实验开发板:

使试验结果下载到开发板上,实现整个实验的最终结果。

1.用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这6个不同的数字图形到6个数码管上。

2.用VHDL语言设计并实现六个数码管滚动显示电路。

(1)循环左滚动,始终点亮6个数码管,左出右进。

状态为:

012345→123450→234501→345012→450123→501234→012345

(2)向左滚动,用全灭的数码管填充右边,直至全部变灭,然后再一次从右边一个一个的点亮。

状态为012345→12345X→2345XX→345XXX→45XXXX→5XXXXX→XXXXXX→XXXXX0→XXXX01→XXX012→XX0123→X01234→012345,其中“X”表示数码管不显示。

四、实验原理

多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环依次点亮多个数码管,利用人眼的视觉暂留现象,只要扫描的频率大于50HZ,将看不到闪烁现象。

如下图10-1,是多个数码管动态扫描显示的电路连接图。

当闪烁显示的发光二极管闪烁频率较高时我们将观察到持续点亮的现象。

同理,当多个数码管依次显示,当切换速度够快时,我们将观察到所有数码管都是同事在显示。

一个数码管要稳定显示要求显示频率>

50hz,那么6个数码管则需要50*6=300hz以上才能看到持续稳定点亮的现象。

cat1~cat6是数码管选通控制信号,分别对应于6个共阴极数码管的公共端,当catn=’0’时,其对应的数码管被点亮。

因此,通过控制cat1~cat6,就可以控制6个数码管循环依次点亮。

五、代码及仿真波形图

1.实现六个数码管串行扫描电路的思路及代码:

串行数码管

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityjxhchuanxingis

port(

clear,clk_in:

instd_logic;

num:

outstd_logic_vector(6downto0);

cat:

outstd_logic_vector(5downto0));

endjxhchuanxing;

architectureoneofjxhchuanxingis

signalstatus:

integerrange0to6;

begin

process(clk_in)

ifclear='

thenstatus<

elsif(clk_in'

eventandclk_in='

)then

ifstatus=6thenstatus<

=1;

elsestatus<

=status+1;

endif;

endif;

endprocess;

process(status)

begin

casestatusis

when1=>

num<

cat<

when2=>

101111"

when3=>

110111"

when4=>

111011"

when5=>

111101"

when6=>

111110"

whenothers=>

num<

0000000"

000000"

;

endcase;

endprocess;

endone;

仿真波形:

由仿真波形可以看出数码管的串行显示得以实现,置零正常。

随着时钟输入的变化,数码管进行串行显示。

端口

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

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2