总线数据传输实验Word文件下载.docx

上传人:b****6 文档编号:21984613 上传时间:2023-02-02 格式:DOCX 页数:6 大小:85.64KB
下载 相关 举报
总线数据传输实验Word文件下载.docx_第1页
第1页 / 共6页
总线数据传输实验Word文件下载.docx_第2页
第2页 / 共6页
总线数据传输实验Word文件下载.docx_第3页
第3页 / 共6页
总线数据传输实验Word文件下载.docx_第4页
第4页 / 共6页
总线数据传输实验Word文件下载.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

总线数据传输实验Word文件下载.docx

《总线数据传输实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《总线数据传输实验Word文件下载.docx(6页珍藏版)》请在冰豆网上搜索。

总线数据传输实验Word文件下载.docx

3、总线数据传输时,控制信号中只能有一个有效,寄存器的端口送至数据总线,所以每个BUS接口对应每个R寄存器的显示;

4、通过读写的双重作用,实现R1和R2的数据交换。

表达式

Reg3←Reg1;

Reg1←Reg2;

Reg2←Reg3

方法一:

vhdl代码

libraryieee;

useieee.std_logic_1164.all;

entityexp_busis

port(clk:

instd_logic;

sw_bus,r1_bus,r2_bus,r3_bus:

k:

instd_logic_vector(7downto0);

lddr:

instd_logic_vector(3downto1);

l:

inoutstd_logic_vector(7downto0));

endexp_bus;

architecturertlofexp_busis

signalr1,r2,r3,bus_Reg:

std_logic_vector(7downto0);

begin

ldreg:

process(clk,lddr,bus_reg)

begin

ifclk'

eventandclk='

1'

then

iflddr

(1)='

thenr1<

=bus_reg;

elsiflddr

(2)='

thenr2<

elsiflddr(3)='

thenr3<

endif;

endprocess;

bus_reg<

=kwhen(sw_bus='

0'

andr1_bus='

andr2_bus='

andr3_bus='

)else

r1when(sw_bus='

r2when(sw_bus='

r3when(sw_bus='

(others=>

'

);

l<

=bus_regwhen(sw_bus='

orr1_bus='

orr2_bus='

orr3_bus='

Z'

endrtl;

 

方法二:

bdf实验原理图

二、功能验证

波形图(图):

12345678910

操作步骤(对应波形图列表说明每步状态、有效控制信号)

①设置初值,swr3r2r1_bus=1111,lddr=000,数据初始置k为00,总线输出为高阻态;

②设置数据k=E1,swr3r2r1_bus=0111,lddr=001,将数据E1传至总线,通过L[7..0]显示总线数据,数据E1存入r1并显示出来;

③swr3r2r1_bus=1110,lddr3=100,将R1的数据E1写入总线并存入R3,总线显示从R1传至总线的数据E1;

④swr3r2r1_bus=1011,lddr=000,将R3的数据E1写入总线中;

⑤设置数据k[7..0]=D2,swr3r2r1_bus=0111,lddr2=010,将数据D2传至总线并存入R2,通过L[7..0]显示总线数据D2;

⑥swr3r2r1_bus=1101,lddr=100,将R2的数据D2写入总线并存入R3,总线显示从R2传至总线的数据D2;

⑦swr3r2r1_bus=1011,lddr=000,将R3的数据D2写入总线中;

⑧swr3r2r1_bus=1110,lddr=100,将R1的数据E1传至总线并存入R3中,实现R1数据传输到R3中,并显示数据E1;

⑨swr3r2r1_bus=1101,lddr=001,将R2的数据D2传至总线并存入R1中,实现R2数据传输到R1中,并显示数据D2;

⑩swr3r2r1_bus=1011,lddr=010,将R3的数据E1传至总线并存入R2中,实现R3数据传输到R2中,并显示数据E1,交换完毕。

数据记录

R1

R2

R3

初态

E1H

D2H

R1→R3

R2→R1

R3→R2

仿真结论

波形仿真逻辑功能验证正确,通过总线数据传输的原理,用一个八位单向三态缓冲器74244和三个带三态输出的八位寄存器74374实现了数据的显示和交换。

三、实验日志

实验问题

Q1.在使用bdf实验原理图方法中的仿真未出现L~result

A1.在对L[7..0]的定义中将bidir双向数据端口定义为output单向数据端口

思考题

Q1.总线数据传输的基本特性是什么?

A1.总线是一组进行互联和传输信息(指令、数据和地址)的信号线,总线的基本特性是不允许挂在总线上的部件同时有一个以上的部件向总线发出信息,但允许挂在总线上的多个部件同时从总线上接收信息。

Q2.从74374和74244内部电路结构图上说明它们的逻辑功能?

A2.74244是八位单项三态缓冲器,使用了两个反相器(端口是1G和2G)和8个三态缓冲器构成,所以低电平有效,在有效时,输入传至输出,当1G、2G为高电平即无效时,输出端口为高阻态;

74374是带三态输出的八位寄存器,低电平有效,由一个反相器,8个D锁存器和8个三态反相器所构成。

OEN是控制端口,为高电平时,输出为高阻态,低电平时有效,时钟的上升沿触发,将输入传至输出端口,时钟处于低电平时,输出保持不变。

Q3.实验电路中BIDIR端口的用途是什么?

A3.BIDIR是双向数据端口,实际应用中,数据总线是双向的,所以要有双向的数据端口,不仅做信号的输入也做信号的输出。

Q4.举例说明画电路图中连线busline(粗线)和nodeline(细线)区别。

总线与支线命名方式是什么?

A4.在电路图中,lddr[3..1]是粗线,通过它的命名方式可以知道lddr有三条与之对应的支线,分别是lddr[3]、lddr[2]、lddr[1],这三条分线要与总线对应命名。

Q5.实验需要互换R1和R2数据,但是电路图中R3的连线有问题,错在哪里?

为什么?

A5.电路图中R3的连线错误在于R3的输出支线命名全是LE,只是用来显示R3上的数据,而无法让R3上的数据传至总线,所以更改方法是将R3的输出与R1,R2一样,全部改为L,那么便可向总线传输数据。

Q6.exp_bus.vhd代码中如何实现双向总线的端口定义与缓冲?

A6.双向总线线的端口定义是通过inout来实现的。

Q7.写出exp_bus.vhd代码中(others=>

”Z”)的其他描述方式?

A7.高阻态。

Q8.编写VHDL的组合逻辑是如何实现多路选择器?

A8.用when…else…的语句来实现的。

Q9.编写VHDL代码时如何为寄存器赋初值?

A9.bus中当出现一个或一个以上为0,那么便会将bus_reg赋值给l;

当不出现0时,总线为高阻态,从而实现了给寄存器赋初值。

l<

orr1_bus='

orr3_bus='

实验总结

本次实验明白了数据传送的过程和具体操作,了解如何单个开启数据传送,如何控制数据流的方向,并掌握总线数据传输的原理。

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

当前位置:首页 > 高等教育 > 农学

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

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