数据通路实验报告

合集下载

数据通路实验报告

数据通路实验报告

数据通路实验报告一、实验目的本实验旨在通过设计与实现一个简单的数据通路,加深对数据通路的理解,并且通过实验验证所学知识的准确性和实用性。

二、实验器材和软件实验器材:计算机、VHDL开发板、配套接口线实验软件:Quartus II三、实验内容1.设计基本数据通路的单元模块,并对其进行仿真验证。

2.将各单元模块综合到一起,形成完整的数据通路,并对其进行逻辑分析和综合。

3.编写测试代码,对数据通路进行功能验证。

四、实验步骤1.设计基本数据通路的单元模块首先,根据实验要求,设计并实现各个基本数据通路的单元模块,如加法器、减法器、乘法器等。

根据需要,还可以设计其他辅助模块,如多路选择器、寄存器等。

在设计单元模块时,需要根据实验要求确定输入和输出信号的位数,并且保证设计的模块功能的准确性和完整性。

2.仿真验证单元模块利用Quartus II提供的ModelSim进行仿真验证。

将设计好的单元模块进行连接,并通过给定的测试向量,验证各个模块的功能是否符合预期。

3.综合设计数据通路将各个单元模块综合到一起,形成完整的数据通路。

在综合的过程中,需要注意各个模块之间的连接和信号的传递。

对综合后的数据通路进行逻辑分析和综合,检查是否存在逻辑错误,并根据需要进行优化处理。

4.编写测试代码根据数据通路的功能,编写相应的测试代码,对数据通路进行功能验证。

测试代码中应包含各种不同类型的测试用例,以确保数据通路的正确性。

五、实验结果分析经过各个步骤的设计与实验,我们成功实现了一个简单的数据通路,并且通过测试代码的运行,验证了数据通路的功能的正确性。

六、实验心得通过本次实验,我深入了解了数据通路的设计与实现过程,加深了对数据通路的理解。

通过实践操作,掌握了Quartus II软件的使用技巧,提高了自己的综合设计能力。

在实验过程中,我遇到了一些问题,通过与同学和老师的交流,顺利解决了这些问题。

通过自己的努力和团队合作,成功完成了本次实验,并且对数据通路有了更深入的认识。

实验03 数据通路实验

实验03 数据通路实验

实验三数据通路实验一、实验目的1、通过实验进一步熟悉运算器与存储器之间的数据通路的组成结构。

2、通过实验理解顺序节拍发生器的应用和设计方法。

3、通过实验理解系统总线的设计方法。

二、实验步骤1、打开已有的实验工程目录:“DATAPATH”。

通过双击目录中的Quartus II工程文件“DATAPATH.qpf”,利用Quartus II软件打开已经建好的实验工程。

图1打开Quartus II工程2、打开工程后,Quartus II软件的界面如图2所示。

在软件窗口的左边区域的“Project Navigator”列表栏中,选择“files”选项卡,我们可以看到列表栏中列出了这个工程中的设计文件。

本工程的设计文件说明在表1中列举出来。

表1工程设计文件说明表设计文件说明对应组件文件ALU.vhd VHDL设计文件,设计一个四位ALU ALU.bsfMEM.vhd VHDL设计文件,设计一个16*4的ROM存储器用来模拟主存MEM.bsfREG.vhd VHDL设计文件,设计一个带锁存和清零功能的四位寄存器REG.bsf PULSEGEN.vhd VHDL设计文件,设计一个顺序节拍发生器PULSEGEN.bsf DATAPATH.bdf数据通路设计文件其中,设计文件“DATAPATH.bdf”完成了基本功能,实验者首先对其进行验证,需要由实验者在原有设计基础上添加合理设计,完成数据通路时序控制的设计。

图2工程界面图3、如图3上所示,“数据通路”构建在DATAPATH.bdf的设计文件中,除去几个寄存器的脉冲信号,其它模块已经实现连接。

图3数据通路设计图数据通路是数据信号在各个寄存器和存储器之间的传输过程。

这里的设计文件模拟了最简单的数据通路模型。

图3中的“MEM”单元是一个用VHDL语言设计的16*4存储器,为了实验的简便,这里将它设计为ROM,而且从地址0000~1111依次存储的数据也是0~15(比如:地址为0011的存储单元存储的数据也是3)。

实验四预做实验报告

实验四预做实验报告

计算机组成原理预做实验报告实验四数据通路的组成1实验目的和要求在JYS-4实验装置上模拟计算机最基本的工作过程,打通“键盘”、“CPU”、“RAM”之间的数据通路,掌握计算机的数据通路组成及其工作原理。

2 实验设备JYS-4计算机组成原理教学实验装置及导线若干。

3实验内容及步骤1)实验原理该实验实际是前三个实验的综合,就是把JYS-4实验装置上的INPUT DEVICE(输入设备—键盘)、SWITCH UNIT(开关单元—控制器)、SIGNAL UNIT(信号单元—时钟)、STATE UNIT(时序单元)、ALU UNIT(算术逻辑单元—运算器)、MAIN MEM(主存储器—内存)、ADDRESS UNIT(地址单元)、BUS UNIT(总线单元)、W/R UNIT(写/读单元)、OUTPUT DEVICE(输出设备)等单元电路连接起来,构成一个最基本的计算机系统,以模拟计算机的实际工作过程。

电路构成也是运算器实验和存储器实验电路的综合,如实验指导书图4-1。

2)实验步骤①接线前的准备、实验电路的接线程序参见实验一和实验三。

②从输入单元电路输入四个八位二进制数据,并存入存储器单元(四个数据及四个存放数据的内存单元地址由各组定义,但要求不能与其它组定义的数据相同)。

③从内存单元取出两组八位二进制分别送入DR1和DR2,并进行四种不同的算术运算,并把不同的算术运算的结果保存在存储器单元里(四种不同的算术运算及其结果的存放地址由各组自行规定)。

④再从内存单元里取出剩下的两个原始数据分别送入DR1和DR2,并进行四种不同的逻辑运算,并把不同的逻辑运算结果存入存储器单元里(要求同3)。

⑤分别从存储器单元读出算术运算和逻辑运算的结果,并进行理论分析其正确性。

图4-1 JYS-4装置的数据通路组成原理数据通路实验数据记录表4 实验数据记录与分析数据通路实验数据记录表验证分析:实验结果与理论分析相符;5注意事项实验中, LDDR1与CE、LDDR2与WE分别共用一个控制开关,在上述两个实验分别做的时候,这两个开关要么用于产生LDDR1和LDDR2(做运算器实验时)这两个控制信号,要么用于产生CE和WE(做存储器实验时)这两个控制信号,所以是不矛盾的。

运算器数据通路实验报告

运算器数据通路实验报告

运算器数据通路实验设计报告学号:姓名:成绩:学号:姓名:成绩:总线、半导体静态存储器实验二、实验目的.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。

实验三 数据通路总线实验

实验三 数据通路总线实验

. .. .实验三数据通路(总线)实验一、实验目的(1)将双端口通用寄存器堆和双端口存储器模块联机;(2)进一步熟悉计算机的数据通路;(3)掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法;(4)锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。

二、实验电路图8示出了数据通路实验电路图,它是将双端口存储器实验模块和一个双端口通用寄存器堆模块(RF)连接在一起形成的。

双端口存储器的指令端口不参与本次实验。

通用寄存器堆连接运算器模块,本实验涉及其中的操作数寄存器DR2。

由于双端口存储器RAM是三态输出,因而可以将它直接连接到数据总线DBUS上。

此外,DBUS上还连接着双端口通用寄存器堆。

这样,写入存储器的数据可由通用寄存器提供,而从存储器RAM读出的数据也可送到通用寄存器堆保存。

双端口存储器RAM已在存储器原理实验中做过介绍,DR2运算器实验中使用过。

通用寄存器堆RF(U32)由一个ISP1016实现,功能上与两个4位的MC14580并联构成的寄存器堆类似。

RF含四个8位的通用寄存器R0、RI、R2、R3,带有一个写入端口和两个输出端口,从而可以同时写入一路数据,读出两路数据。

写入端口取名为WR端口,连接一个8位的暂存寄存器(U14)ER,这是一个74HC374。

输出端口取名为RS端口(B端口)、RD端口(A端口),连接运算器模块的两个操作数寄存器DR1、DR2。

RS端口(B端口)的数据输出还可通过一个8位的三态门RS0(U15)直接向DBUS输出。

双端口通用寄存器堆模块的控制信号中,RS1、RS0用于选择从RS端口(B 端口)读出的通用寄存器,RD1、RD0用于选择从RD端口(A端口)读出的通用寄存器。

而WR1、WR0则用于选择从WR端口写入的通用寄存器。

WRD是写入控制信号,当WRD=1时,在T2上升沿的时刻,将暂存寄存器ER中的数据写入通用寄存器堆中由WR1、WR0选中的寄存器;当WRD=0时,ER中的数据不写入通用寄存器中。

数据通路实验实验报告

数据通路实验实验报告

一、实验概述实验名称:数据通路实验实验目的:1. 理解数据通路的基本概念和组成;2. 掌握数据通路中各个模块的功能和相互关系;3. 学会搭建简单的数据通路实验电路;4. 通过实验验证数据通路在实际应用中的正确性。

实验时间:2023年10月26日实验地点:计算机组成原理实验室实验设备:数据通路实验箱、示波器、万用表、连接线等。

二、实验原理数据通路是计算机中用于数据传输的路径,它由一系列的模块组成,包括输入模块、处理模块、输出模块和存储模块等。

数据通路的主要功能是将数据从输入模块传输到处理模块,经过处理后,再将结果传输到输出模块和存储模块。

在本次实验中,我们将搭建一个简单的数据通路实验电路,包括以下几个模块:1. 输入模块:用于接收外部数据,如按键输入、串口通信等;2. 处理模块:对输入的数据进行运算或逻辑处理,如加法、减法、逻辑运算等;3. 输出模块:将处理后的数据输出到外部设备,如显示器、打印机等;4. 存储模块:用于存储数据,如RAM、ROM等。

三、实验步骤1. 搭建实验电路根据实验箱提供的原理图,将各个模块按照要求连接起来。

具体步骤如下:(1)将输入模块的输出端连接到处理模块的输入端;(2)将处理模块的输出端连接到输出模块的输入端;(3)将存储模块的输出端连接到处理模块的输入端;(4)将各个模块的电源和地线连接好。

2. 设置实验参数根据实验要求,设置各个模块的参数,如输入模块的按键输入、处理模块的运算类型、输出模块的显示格式等。

3. 运行实验启动实验程序,观察各个模块的运行情况,记录实验数据。

4. 分析实验结果根据实验数据,分析各个模块的运行情况,验证数据通路在实际应用中的正确性。

四、实验结果与分析1. 实验结果本次实验中,我们搭建了一个简单的数据通路实验电路,实现了数据的输入、处理、输出和存储。

在实验过程中,我们观察到各个模块的运行情况良好,数据传输过程稳定。

2. 实验分析通过本次实验,我们掌握了数据通路的基本概念和组成,了解了各个模块的功能和相互关系。

计算机组成原理数据通路实验报告

计算机组成原理数据通路实验报告

计算机组成原理数据通路实验报告计算机组成原理实验报告计算机组成原理实验报告实验一基本运算器实验一、实验目的1. 了解运算器的组成结构2. 掌握运算器的工作原理3. 深刻理解运算器的控制信号二、实验设备PC机一台、TD-CMA实验系统一套三、实验原理1. (思考题)运算器的组成包括算数逻辑运算单元ALU(Arithmetic and Logic Unit)、浮点运算单元FPU(Floating Point Unit)、通用寄存器组、专用寄存器组。

①算术逻辑运算单元ALU (Arithmetic and Logic Unit)ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。

在某些CPU中还有专门用于处理移位操作的移位器。

通常ALU由两个输入端和一个输出端。

整数单元有时也称为IEU(IntegerExecution Unit)。

我们通常所说的“CPU 是XX位的”就是指ALU所能处理的数据的位数。

②浮点运算单元FPU(Floating Point Unit)FPU主要负责浮点运算和高精度整数运算。

有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。

③通用寄存器组通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。

④专用寄存器专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。

而运算器内部有三个独立运算部件,分别为算术、逻辑和移位运算部件,逻辑运算部件由逻辑门构成,而后面又有专门的算术运算部件设计实验。

下图为运算器内部原理构造图2. 运算器的控制信号实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR都连接至CON单元的CLR按钮。

T4由时序单元的TS4提供(脉冲信号),其余控制信号均由CON单元的二进制数据开关模拟给出。

控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。

数据通路组成实验实验报告

数据通路组成实验实验报告

数据通路组成实验实验报告数据通路组成实验实验报告一、引言数据通路是计算机系统中的重要组成部分,它负责处理和传输数据,实现各个功能模块之间的协调和通信。

本实验旨在通过构建一个简单的数据通路,探索数据通路的组成和工作原理。

二、实验目的1. 理解数据通路的基本概念和功能;2. 掌握数据通路的组成和工作原理;3. 实践数据通路的设计和实现。

三、实验设备和材料1. 计算机;2. Verilog HDL开发环境;3. 开发板;4. 连接线。

四、实验步骤1. 设计数据通路的功能模块:包括输入模块、输出模块、运算模块等;2. 使用Verilog HDL语言编写各个功能模块的代码;3. 将各个功能模块进行连接,形成完整的数据通路;4. 在开发板上下载并运行数据通路的代码;5. 输入测试数据,观察数据通路的运行情况。

五、实验结果与分析在实验过程中,我们成功地设计并实现了一个简单的数据通路。

通过输入测试数据,我们观察到数据在各个功能模块之间的传输和处理过程。

数据通路能够正确地完成各个功能模块的任务,并将最终结果输出。

六、实验总结通过本次实验,我们深入了解了数据通路的组成和工作原理。

数据通路在计算机系统中起着至关重要的作用,它负责处理和传输数据,保证各个功能模块的正常运行。

通过实践,我们掌握了数据通路的设计和实现方法,提高了我们的计算机系统设计能力。

七、实验心得本次实验让我对数据通路有了更深入的了解。

通过实践,我不仅掌握了数据通路的组成和工作原理,还学会了使用Verilog HDL语言进行代码编写和调试。

这对我的计算机系统设计能力的提升具有重要意义。

八、参考文献[1] 《计算机组成与设计:硬件/软件接口》- David A. Patterson, John L. Hennessy[2] 《数字系统设计与Verilog HDL》- Mark Zwolinski九、附录实验代码和测试数据见附件。

以上为数据通路组成实验实验报告的简要内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验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],所以得到了上一个部分的仿真结果,后来不研究了一下那个高电平,发现是用来处理单一总线问题的,就改成了与书上一样的图,我以为上面出现的错误结果和这个有关,改了
之后波形图有变化,但是,还是是错误的.
但是在两种情况下功能仿真的结果都是正确的:
问题解决了~
原因是周期太短,计算结果还来不及存入到内存单元中,把写入内存的时间周期延长一个周期结果就出来了。

电路本身没有问题。

实验心得:。

相关文档
最新文档