第一篇:传媒--数据通路实验报告1号
实验四
数据通路实验
一、实验目的
1、理解总线的概念、作用和特性。
2、掌握用总线控制数据传送的方法。
3、进一步熟悉教学计算机的数据通路。
4、掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法。
5、锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。
二、实验设备
1、TWL-PCC计算机组成原理教学实验系统一台,排线若干。
2、PC微机一台(选配)。
三、实验原理
总线用来连接计算机中的各个功能部件,是计算机的各部件之间传输信息的公共通路,包括传输数据信息的逻辑电路、管理信息传输 协议的逻辑线路和物理连线。分时和共享是总线的两大特征。所谓共享,是指在总线上可以挂接多个部件,它们都可以使用这一信息通路来和其他部件传输信息。所谓分时,是指同一总线在同一时刻,只能有一个部件占领总线发送信息,其他部件的信息不能发送到总线上,逻辑上等同于不存在,只有该部件信息发送完毕释放总线后才能申请使用。但在同一时刻可以有多个部件接收信息。
本实验的数据通路图如图6.1所示。本实验将输入设备,输出设备,存储器,通用寄存器等单元都挂至总线上,这些设备都需要有三态输出控制,各个部件都有自己的输入输出控制信号,通过对这些信号的有序控制,就可以正确地通过总线把数据传送给不同的部件。各个部件的控制信号都需要是连接到“开关组单元”的各个独立的二进制开关上来手动控制。连接到总线上的地址寄存器只有输入线,其输出直接连接到存储器的地址用于锁存需读写的存储器的地址。
本实验中时序信号用到T3和T4信号,可将“信号源单元”的时钟输出SY接到“时序发生器单元”的Φ上,将OT3和OT4分别连接到 “总线单元”中相应的T3和T4端上,二进制开关拨至“单步”状态,然后每按动一次启动键START,就会顺序产生一个T3、T4时序信号。
根据挂接在总线上的部件,设计一个简单的实验:将存储器10H地址存入数据93H,然后将存储器10H地址单元中存储的数据送输出单元显示,同时也存入到R0寄存器中。
.D7D0CSOEWECSOEWEA10-----------A0锁存译码(GAL)a b c d e f gORB_LEDWR数据开关输入设备单元输出设备单元.图6.1 总线实验数据通路图
四、实验步骤
1.本实验中各个单元的控制信号分别由不同的开关独立控制,连线参考图见图6.2所示。
2、按照以下几步操作: ① 数据输入开关置10H打入地址寄存器。② 数据输入开关置数据93H打入存储器。③ 存储器输出数据到输出设备同时打入到R0寄存器。
3、连接实验线路。参考实验连线图如图6.2所示。仔细检查无误后,接通电源。
4、置所有控制信号为初始态:输入设备(B_SW=1,RD=1)、地址寄存器(C_AR=0)、存储器(CS=
1、RD=
1、WE=1)、输出设备(B_LED=
1、WR=1)、通用寄存器R0(B_R0=
1、C_R0=0)。
5、“时序发生器单元”中的二进制开关拨至“单步”状态。
① 数据开关置数10H,打开输入设备输出三 态门(B_SW=
1、RD=0),打开地址寄存器打入门控信号(C_AR=1),按动时序启动键START,产生的T3节拍脉冲将总线上的数据打入到地址寄存器中。关掉地址寄存器打入门控信号(C_AR=0)。
② 数据开关置数93H,存储器片选有效写有 效(CS=0、RD=
1、WE=1→0→1),此时将总线上的数据93H写入到存储器当前地址单元中。关掉输入设备三态门(B_SW=1)关掉存储器片选线(CS=1)。③ 存储器片选有效读有效(CS=0、WE=
1、RD=1),输出设备片选有效写有效(B_LED=0、WR=1→0→1),此时存储器中的数打入到输出设备的数码管中显示,同时,打开通用寄存器RO的打入门控信号(C_R0=1),按动时序启动键START,产生的T4节拍脉冲将总线上的数据打入到通用寄存器R0中。然后关存储器(CS=1),关通用寄存器打入门控信号(C_R0=0)。
五、实验要求
1、在数据传送过程中,发现了什么故障?记录故障现象,排除故障的分析思路,故障定位及故障的性质。
2、以第二种实验接线方法实现本实验要求,即存储器、I/O设备(包括输入设备和输出设备)有各自的片选线,但是共用一根读线和一根写线的方式连接实验线路,分析有什么区别,编写执行流程,写出详细的实验步骤,记录实验数据。
5.D7...D0输入设备单元7D.........B_SWSW3(B_SW)0DRDSW2寄存器堆单元7D.........B_R0SW70元DC_R0SW8单线总输出设备单元7D.........B_LEDSW90DWRSW10存储器单元7DCSSW4(CS).........WESW5(WE)0DA7...A0OESW6(OE)T3T4......A7...A0OT3OT4系统总线单元时序信号Φ发生器单元C_ARSW17地址寄存器单元SY开关组单元信号源单元.图6.2参考实验连线图
第二篇:数据通路实验报告
数据通路实验报告
数据通路实验报告
一. 实验概述。
1.数据通路的设计原则。
数据通路的设计直接影响到控制器的设计,同时也影响到数字系统的速度指标和成本。一般来说,处理速度快的数字系统,其中独立传递信息的通路较多。当然,独立数据传送通路的数量增加势必提高控制器设计复杂度。因此,在满足速度指标的前提下,为使数字系统结构尽量简单,一般小型系统中多采用单一总线结构。在较大系统中可采用双总线结构或者三线结构。2.数据通路的结构。
① 算术逻辑单元ALU:有S3,S2,S1,S0,M,CN等6个控制端,用于选择运算类型。
② 暂存器A和B:保存通用寄存器组读出的数据或BUS上来的数据。③ 通用寄存器组R:暂时保存运算器单元ALU算出的结果。④ 寄存器C:保存ALU运算产生的进位信号。
⑤ RAM随机读写存储器:受读/写操作以及时钟信号等控制。⑥ MAR:RAM的专用地址寄存器,寄存器的长度决定RAM的容量。⑦ IR:专用寄存器,可存放由RAM读出的一个特殊数据。
⑧ 控制器:用来产生数据通路中的所有控制信号,它们与各个子系统上的使能控制信号一一对应。
⑨ BUS:单一数据总线,通过三态门与有关子系统进行连接。
数据通路实验报告
二. 实验设计及其仿真检测。
一,运算器。
8位运算器VHDL
数据通路实验报告
数据通路实验报告
二波形仿真
存储器。
顶层设计:
其中sw_pc_ar的VHDL语言描述:,数据通路实验报告
波形仿真
三,原仿真实验电路。
数据通路实验报告
仿真结果:
四,修改电路。
因为此次实验结果需要下载到FPGA板中进行操作及观察,而原始电路中,需要输入的变量数量过多,导致电板中的输入按键不够用,所以需要对电路进行修改。此时我们引入一个计数器PC来代替需要手动输入的指令alu_sel[5..0]以及数据d[7...0]。同时还需要引入数码管的位选信号译码器choose和段选信号译码器xianshi。计数器PC的VHDL语言描述
数据通路实验报告
位选信号译码器choose的VHDL语言描述
数据通路实验报告
段选信号译码器的VHDL语言描述
经过修改和完善以后的电路图为
数据通路实验报告
完善后的电路的引脚分配情况
数据通路实验报告
三. 实验过程。
a)进行数学运算以及将运算结果储存在某个固定的内存地址处。然后从该地址处读出结果 i.ii.打开pc_sel[2],重置地址计数器。
打开总线开关bus_sel[0],和PC_sel[2],pc_sel[1],pc_sel[0],让地址计数器开始计数,跳变到某个地址x时关闭。
iii.打开总线开关BUS_SEL[4],打开暂存器r1的开关ld_reg[4],然后打开计数器开关en计数器开始计数,当计数到需要的数字a时,关闭计数器开关en,此时数字a存入暂存器r1,关闭暂存器的开关ld_reg[4],后再关闭总线开关BUS_SEL[4],然后再打开计数器的清零开关clr再关闭。iv.v.同理第iii步,在暂存器r2中存入数据b。打开总线开关
bus_sel[0].地址计数器开关
ld_reg[0]和pc_sel[2],pc_sel[1],pc_sel[0]选择存储地址 vi.打开运算器到总线的开关bus_sel[1],打开计数器en计数开关en当计数器跳
数据通路实验报告
变到加法指令011001时,关闭计数开关en,然后代开rom的地址开关pc_sel[2],以及可写开关we_rd[1]。将从运算器中计算出来的运算结果a+b存储到ram中的x地址中,关闭可写开关we_rd[1],关闭pc_sel[2]和总线开关,最后将计数器清零。
vii.打开ram的可读开关,读取x地址处的数据a+b。
四. 实验现象。
输入数据a
输入数据b
数据通路实验报告
进行运算并将运算结果写入内存
数据通路实验报告
从内存中读取计算结果
数据通路实验报告
五. 实验心得。
第一次在电板上进行这么多的操作。操作过程虽然很多,但只要理解操作过程,明白各个按键所设置的引脚作用,实验其实并不难,重点在于要理解过程,明白数据的输入,存入寄存器,运算以及往内存中进行存取值的操作,那么数据通路的按键很容易记住。
在实验过程中还是存在很多问题的,尤其的刚开始做实验的时候,不理解数据通路实验过程中各个门的输入的意义和顺序,但真正懂得的时候,实验就变得简单了。
第三篇:运算器数据通路实验报告
运算器数据通路实验
设计报告
学号: 姓名: 成绩: 学号: 姓名: 成绩:
一、实验名称:
总线、半导体静态存储器实验
二、实验目的.1.熟悉函数功能发生器的功能、使用方法。2.熟悉运算器的数据传送通路。
3.完成几种算逻运算操作,加深对运算器工作原理的理解。
三、实验原理
运算器是计算机中对数据进行运算操作的重要部件,它的核心是ALU 函数功能发生器(由EPM7064S 构成),其次还要有存放操作数和运算的中间结果之寄存器以及传送数据的总线等部分。选用不同的控制信号,运算器可以完成不同的运算功能。1.函数功能发生器(ALU)的功能。
该函数功能发生器(ALU),当输入为Aj、Bj,对应输出为Fj(j=0,1,2,3,4,5,6,7),它可 实现8 种不同的算术运算和逻辑算,而且通过对控制参数SEL2~SEL0S0 来选择。2.数据传送通路实验电路方案
实验方案框图见图2—5 所示。
图中SA、SB 为存放两个现行操作的缓冲寄存器,其中SA 兼作存放中间结果的累加器,并且可以通过SA 所连接的八个数据灯显示。SA、SB 接收来自总线的数据信息送入ALU 进行 算术或逻辑操作。通过移位门将运算操作结果送到总线。并且ALU 和总线之间需用三态门隔 离(采用74LS245)。
四、实验内容
1.按照实验电路方案框图,设计一个能完成下列八种补码运算指令的八位运算器。该运算器实现的八种功能如表2—1 所示。
表2—1:
2.根据运算器设计,选择所需元器件,画出实验电路的详细逻辑图,对开关,单脉冲等 定义。因为和上次实验类似,也是绝大多数的器件在“数据通路”中已安排好,只要控制各 个控制点即可,除了开关组通过三态传输门(74LS245)的接法和实验一一样外,设置一个指令寄存器(IR),用74LS573 担当IR。通过八根连接线和“数据通路”中的八位总线连接起来。存放ALU 的控制信息SEL2~SEL0。为了便于观察IR 中内容,可以在IR 的输出端同时接上三 个电平显示灯。有的同学如用三个电平开关设置SEL2~SLE0。当然可以得出结果,但是由于 IR 是一个不可缺少的计算机部件,为了达到完整熟悉计算机各组成部分的目的,这里专门设置了指令寄存器IR。
3.在电路上进行表2—1 所列的八种指令的手动操作,每次一条指令。实验时可由数据 开关输入指令码及操作数,予以功能的验证。4.本实验应实现的操作
K→SA(开关输入的第一个操作数置入SA,LED 显示)K→SB(开关输入的第二个操作数置入SB,无显示)K→IR(开关输入的ALU 控制代码置入IR)
ALU 运算结果通过ALU-244→SA(将运算结果送SA 显示)具体实验过程(仅仅作为参考)如下:
1)从输入设备(八个钮子开关)置入第一个数据,74LS245 的E=0,74LS573 的C 由“0”变为“1”(锁存)后再变为“0”(保持);送入Sa(该寄存器接有LED 显示); 2)从输入设备(八个钮子开关)置入第一个数据,74LS245 的E=0,74LS573 的C 由“0”变为“1”(锁存)后再变为“0”(保持);送入Sb(该寄存器没有接LED 显示); 3)从输入设备(八个钮子开关)将需要进行运算操作(如加法操作)的控制代码(具体内容可见表3-4)置入到IR,74LS245 的E=0,74LS573 的C 由“0”变为“1”(锁存)后再变为“0”(保持);
4)控制接通ALU-244,使运算结果上总线;
5)将结果置入Sa,并通过所接的LED 将结果显示出来。
五、测试结果与性能分析
1、测试结果:
1)数据A准备→三态门①打开→给寄存器Sa脉冲→数据进入Sa;
数据B准备→给寄存器Sb脉冲→数据进入Sb; 数据准备(指令)→给指令寄存器IR脉冲→指令进入IR→三态门①关闭; 2)ALU按照指令进行计算,结果进入总线→三态门②(寄存器Sa往显示灯)打开→给寄存器Sa脉冲→显示灯显示计算结果
实验输入三组数据进行计算 00010000 – 00000001 = 00001111;00010101 & 00001010 = 00000000;00001000 + 00000110 = 00001110;
2、性能分析
单总线结构数据传送慢,使用多总线结构可以提高数据传送效率 另外,EPM7064S 器件性能介绍:
高性能和EEPROM的可编程逻辑器件(PLD)的第二代基于Max 架构 5.0-V在系统可编程能力(ISP)具有完整的EPLD的逻辑密度
5纳秒引脚到引脚的逻辑延时高达175.4 MHz的计数器频率(包括互连)
六、课程设计总结(包括设计的总结和需要改进之处及体会)
通过这次实验设计,我们可以了解运算器数据通路的工作原理,各组数据的走向和时间逻辑关系,也更清楚认识了指令控制的重要性。另外这是第一次在电脑上对运算器芯片的引脚进行设置,稍微有一点差错就会造成实验结果的差异,因此使得我们在实验中更加专注和仔细。这次实验的分工也很明确,我负责在实验台上搭线,张成涛同学负责在电脑上设置运算器引脚。但最终因为实验台的更换问题,实验结果没有调试出来。换了一个电脑进行引脚设置后,终于成功了。由于有协调的合作,实验操作过程也不会复杂繁琐,这次实验过程很有趣,并且让我们对机器内部数据通路的理解有更进一步的启发。
教师评语:
教师签字:
日期:
第四篇:实验4 数据通路 实验报告
班级:计算机科学与技术3班
学号: 20090810310
姓名:
康小雪
日期: 2011-10-14
实验3 存储器实验
预习实验报告
疑问:
1、数据通路是干嘛的?
2、数据通路如何实现其功能?
3、实验书上的存储器部分总线开关接在高电平上,是不是错了?
实验报告
一、波形图:
参数设置:
Endtime:2.0us
Gridsize:100.0ns 信号设置:
clk:
时钟信号,设置周期为100ns占空比为50%。
bus_sel:
sw|r4|r5|alu|pc_bus的组合,分别代表的是总线(sw_bus)开关,将
存储器r4的数据显示到总线上,将存储器r5的数据显示到总线上,将alu的运算结果显示到总线上,将pc的数据打入AR中二进制输入,低电平有效。
alu_sel:
m|cn|s[3..0]的组合,代表运算器的运算符号选择,二进制输入,高
电平有效。
ld_reg:
lddr1|lddr2|ldr4|ldr5|ld_ar的组合,分别表示将总线数据载入寄存器
r1,r2,r4, r5或AR中,二进制输入,高电平有效。
pc_sel:
pc_clr|ld|en的组合,分别代表地址计数器PC的清零(pc_clr)、装
载(pc_ld)和计数使能信号(pc_en),二进制输入,低电平有效。
we_rd:
信号we和rd的组合,分别代表对ram的读(we)与写(rd)的操作,二进制输入,高电平有效
k:
k [7]~ k [0],数据输入端信号,十六进制输入。
d:
d[7]~d[0],数据输出中间信号,十六进制双向信号。
d~result:
d [7] result ~d[0] result,最终的数据输出信号,十六进制输出。ar:
ar[7]~ ar[0],地址寄存器AR的输出结果,十六进制输出。pc:
pc [7]~ pc [0],地址计数器PC的输出结果,十六进制输出。
仿真波形
以在01H单元中写入05H、02H单元中写入0AH并进行【(A加B)减(非A与B)加B】为例:
1)初始状态:bus_sel=11111,alu_sel=00000,ld_reg=00000,pc_sel=100,we_rd=00,k=00H,总线上无数据,呈高阻态。2)读取01H单元的05A:
① 置数法PC=01H:bus_sel=01111,pc_sel=101 ② PC->AR:bus_sel=11110,ld_reg=00001 ③ 读01H单元的数据放入R1中:bus_sel=11111,ld_reg=10000,we_rd=01 3)读取02H单元的0AH:
① PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 ② 读01H单元的数据放入R2中:bus_sel=11111,ld_reg=01000,we_rd=01 4)将地址加到03H :bus_sel=11110,ld_reg=00001,pc_sel=111 5)验证数据并运算: bus_sel=11101 ① 读取R1中的数据:alu_sel=010000,得到R1=05H ② 读取R2中的数据:alu_sel=101010,得到R2=0AH ③ 计算(A加B)结果存于R4中:alu_sel=011001,ld_reg=00100,结果为0FH ④ 计算(非A与B)结果存于03H单元中:alu_sel=100010,we_rd=10,结果为0AH ⑤ 计算((A加B)加B)结果存于04H单元中:
R4->R1:bus_sel=10111,ld_reg=10000 PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 计算((A加B)加B)结果存于04H单元中:bus_sel=11101,alu_sel=011001,we_rd=10 ⑥ 计算(((A加B)加B)减(非A与B))结果存于05H中:
((A加B)加B)->R1:bus_sel=11111,ld_reg=10000,we_rd=01 (非A与B)->R2:
PC=03H:k=03H,bus_sel=01111,pc_sel=101 PC->AR:bus_sel=11110,ld_reg=00001 (非A与B)->R2:bus_sel=11111,ld_reg=01000,we_rd=01 PC=05H:
PC=05H:k=03H,bus_sel=01111,pc_sel=101 PC->AR:bus_sel=11110,ld_reg=00001
(((A加B)加B)减(非A与B))结果存于05H中:bus_sel=11101,alu_sel=000110,we_rd=10 最后结果为0FH。结论:
本实验的设计能结合了运算器和存储器,能实现在mif文件中进行初始化,将固定地址单元中存储的数据读取到运算器中进行(((A加B)加B)减(非A与B))的运算并将结果存于指定的内存单元中,与实验要求一致,故电路设计正确。
二、实验日志
预习疑问解答:
1.通路是干嘛的?
在数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为数据通路.2.通路如何实现其功能?
在这次的实验中,数据通路主要是由运算器部分和存储器部分组成的,通过运算器的运算结合存储器在mif文件的中的操作进行数据的传输与存储,从而构成一个数据通路.错
3.书上的存储器部分总线开关接在高电平上,是不是错了? 事实证明没有接错.
思考题:
1. 画数据通路电路图时,如何连结单一总线? 如图:
ALU模块的sw_bus依然连接bus_sel,存储器部分的sw_bus连接高电平.2. 如何统一两个模块的总线输入端k[7..0]及inputd[7..0]?
答:如图: 输入放在运算器部分,存储器部分无输入,存储器部分的数据要么来自总线传输,要么从mif文件中读取.实验中遇到的问题:
1.把之前的alu和ram的原理图拷到了当前工程下面。直接生成该工程的符号文件,连接起来,但是仿真有问题。
几乎是在每一次和总线交换数据的时候都得不到正确的值。下面是解决的过程:
我怀疑是两个模块之间通过总线传输的数据没有传输成功,于是把alu模块的d引了一个输出端口d_alu,从ram模块的d引出了一个输出端口d_ram,在仿真波形图上,然后就可以看到了数据到达总线上了,而且这个时候d的值也能看到了,只是后面的最后一个读操作出来的数据不对,本来应该是写进去的07,但现在是17,再仿真就会变成别的数据。2.在连接电路图的时候,我以为存储器部分的sw_bus连在高电平上是错的,然后又连到了bus_sel[4],所以得到了上一个部分的仿真结果,后来不研究了一下那个高电平,发现是用来处理单一总线问题的,就改成了与书上一样的图,我以为上面出现的错误结果和这个有关,改了之后波形图有变化,但是,还是是错误的.但是在两种情况下功能仿真的结果都是正确的:
问题解决了~
原因是周期太短,计算结果还来不及存入到内存单元中,把写入内存的时间周期延长一个周期结果就出来了。电路本身没有问题。
实验心得:
这次实验是基于前两次实验的成果而成的综合,之前没有发现验收成果后模块中还存在什么问题,把两个模块一拼在一起,问题就出来了,而且不止我一个人出现这样的状况,一直没弄明白这是为什么,后来经过反反复复的仿真和观察,终于找出了问题的原因,并顺利解决了。这一次又学到了许多东西。
第五篇:计组实验数据通路实验报告
存储器实验
预习实验报告
疑问:
1、数据通路是干嘛的?
2、数据通路如何实现其功能?
3、实验书上的存储器部分总线开关接在高电平上,是不是错了?
一、波形图:参数设置:
信号设置:
clk:
bus_sel:
alu_sel:
ld_reg:
pc_sel:
we_rd:
k:
d:
d~result:
ar:
pc:
仿真波形
实验报告
Endtime:2.0us
Gridsize:100.0ns
时钟信号,设置周期为100ns占空比为50%。
sw|r4|r5|alu|pc_bus的组合,分别代表的是总线(sw_bus)开关,将
存储器r4的数据显示到总线上,将存储器r5的数据显示到总线上,将alu的运算结果显示到总线上,将pc的数据打入AR中二进制输入,低电平有效。
m|cn|s[3..0]的组合,代表运算器的运算符号选择,二进制输入,高
电平有效。
lddr1|lddr2|ldr4|ldr5|ld_ar的组合,分别表示将总线数据载入寄存器
r1,r2,r4, r5或AR中,二进制输入,高电平有效。
pc_clr|ld|en的组合,分别代表地址计数器PC的清零(pc_clr)、装
载(pc_ld)和计数使能信号(pc_en),二进制输入,低电平有效。信号we和rd的组合,分别代表对ram的读(we)与写(rd)的操作,二进制输入,高电平有效
k [7]~ k [0],数据输入端信号,十六进制输入。
d[7]~d[0],数据输出中间信号,十六进制双向信号。
d [7] result ~d[0] result,最终的数据输出信号,十六进制输出。ar[7]~ ar[0],地址寄存器AR的输出结果,十六进制输出。pc [7]~ pc [0],地址计数器PC的输出结果,十六进制输出。
以在01H单元中写入05H、02H单元中写入0AH并进行【(A加B)减(非A与B)加B】为例:
1)初始状态:bus_sel=11111,alu_sel=00000,ld_reg=00000,pc_sel=100,we_rd=00,k=00H,总线上无数据,呈高阻态。2)读取01H单元的05A:
① 置数法PC=01H:bus_sel=01111,pc_sel=101 ② PC->AR:bus_sel=11110,ld_reg=00001 ③ 读01H单元的数据放入R1中:bus_sel=11111,ld_reg=10000,we_rd=01 3)读取02H单元的0AH:
① PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 ② 读01H单元的数据放入R2中:bus_sel=11111,ld_reg=01000,we_rd=01 4)将地址加到03H :bus_sel=11110,ld_reg=00001,pc_sel=111 5)验证数据并运算: bus_sel=11101 ① 读取R1中的数据:alu_sel=010000,得到R1=05H ② 读取R2中的数据:alu_sel=101010,得到R2=0AH ③ 计算(A加B)结果存于R4中:alu_sel=011001,ld_reg=00100,结果为0FH ④ 计算(非A与B)结果存于03H单元中:alu_sel=100010,we_rd=10,结果为0AH ⑤ 计算((A加B)加B)结果存于04H单元中:
R4->R1:bus_sel=10111,ld_reg=10000 PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 计算((A加B)加B)结果存于04H单元中:bus_sel=11101,alu_sel=011001,we_rd=10 ⑥ 计算(((A加B)加B)减(非A与B))结果存于05H中:
((A加B)加B)->R1:bus_sel=11111,ld_reg=10000,we_rd=01 (非A与B)->R2:
PC=03H:k=03H,bus_sel=01111,pc_sel=101 PC->AR:bus_sel=11110,ld_reg=00001 (非A与B)->R2:bus_sel=11111,ld_reg=01000,we_rd=01 PC=05H:
PC=05H:k=03H,bus_sel=01111,pc_sel=101 PC->AR:bus_sel=11110,ld_reg=00001
(((A加B)加B)减(非A与B))结果存于05H中:bus_sel=11101,alu_sel=000110,we_rd=10 最后结果为0FH。结论:
本实验的设计能结合了运算器和存储器,能实现在mif文件中进行初始化,将固定地址单元中存储的数据读取到运算器中进行(((A加B)加B)减(非A与B))的运算并将结果存于指定的内存单元中,与实验要求一致,故电路设计正确。
二、实验日志
预习疑问解答:
1.通路是干嘛的?
在数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为数据通路.2.通路如何实现其功能?
在这次的实验中,数据通路主要是由运算器部分和存储器部分组成的,通过运算器的运算结合存储器在mif文件的中的操作进行数据的传输与存储,从而构成一个数据通路.错
3.书上的存储器部分总线开关接在高电平上,是不是错了? 事实证明没有接错.
思考题:
1. 画数据通路电路图时,如何连结单一总线? 如图:
ALU模块的sw_bus依然连接bus_sel,存储器部分的sw_bus连接高电平.2. 如何统一两个模块的总线输入端k[7..0]及inputd[7..0]?
答:如图: 输入放在运算器部分,存储器部分无输入,存储器部分的数据要么来自总线传输,要么从mif文件中读取.实验中遇到的问题:
1.把之前的alu和ram的原理图拷到了当前工程下面。直接生成该工程的符号文件,连接起来,但是仿真有问题。
几乎是在每一次和总线交换数据的时候都得不到正确的值。下面是解决的过程:
我怀疑是两个模块之间通过总线传输的数据没有传输成功,于是把alu模块的d引了一个输出端口d_alu,从ram模块的d引出了一个输出端口d_ram,在仿真波形图上,然后就可以看到了数据到达总线上了,而且这个时候d的值也能看到了,只是后面的最后一个读操作出来的数据不对,本来应该是写进去的07,但现在是17,再仿真就会变成别的数据。
2.在连接电路图的时候,我以为存储器部分的sw_bus连在高电平上是错的,然后又连到了bus_sel[4],所以得到了上一个部分的仿真结果,后来不研究了一下那个高电平,发现是用来处理单一总线问题的,就改成了与书上一样的图,我以为上面出现的错误结果和这个有关,改了之后波形图有变化,但是,还是是错误的.但是在两种情况下功能仿真的结果都是正确的:
问题解决了~
原因是周期太短,计算结果还来不及存入到内存单元中,把写入内存的时间周期延长一个周期结果就出来了。电路本身没有问题。
实验心得: