实验三 数据通路(总线)实验
- 格式:doc
- 大小:93.00 KB
- 文档页数:7
数据通路实验报告一、实验目的本实验旨在通过设计与实现一个简单的数据通路,加深对数据通路的理解,并且通过实验验证所学知识的准确性和实用性。
二、实验器材和软件实验器材:计算机、VHDL开发板、配套接口线实验软件:Quartus II三、实验内容1.设计基本数据通路的单元模块,并对其进行仿真验证。
2.将各单元模块综合到一起,形成完整的数据通路,并对其进行逻辑分析和综合。
3.编写测试代码,对数据通路进行功能验证。
四、实验步骤1.设计基本数据通路的单元模块首先,根据实验要求,设计并实现各个基本数据通路的单元模块,如加法器、减法器、乘法器等。
根据需要,还可以设计其他辅助模块,如多路选择器、寄存器等。
在设计单元模块时,需要根据实验要求确定输入和输出信号的位数,并且保证设计的模块功能的准确性和完整性。
2.仿真验证单元模块利用Quartus II提供的ModelSim进行仿真验证。
将设计好的单元模块进行连接,并通过给定的测试向量,验证各个模块的功能是否符合预期。
3.综合设计数据通路将各个单元模块综合到一起,形成完整的数据通路。
在综合的过程中,需要注意各个模块之间的连接和信号的传递。
对综合后的数据通路进行逻辑分析和综合,检查是否存在逻辑错误,并根据需要进行优化处理。
4.编写测试代码根据数据通路的功能,编写相应的测试代码,对数据通路进行功能验证。
测试代码中应包含各种不同类型的测试用例,以确保数据通路的正确性。
五、实验结果分析经过各个步骤的设计与实验,我们成功实现了一个简单的数据通路,并且通过测试代码的运行,验证了数据通路的功能的正确性。
六、实验心得通过本次实验,我深入了解了数据通路的设计与实现过程,加深了对数据通路的理解。
通过实践操作,掌握了Quartus II软件的使用技巧,提高了自己的综合设计能力。
在实验过程中,我遇到了一些问题,通过与同学和老师的交流,顺利解决了这些问题。
通过自己的努力和团队合作,成功完成了本次实验,并且对数据通路有了更深入的认识。
实验三数据通路组成实验一实验目的1.进一步熟悉计算机的数据通路2.将双端口通用寄存器堆和双端口存储器模块连接,构成新的数据通路3.掌握数字逻辑电路中的一般规律,以及排除故障的一般原则和方法4.锻炼分析问题和解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障.二实验电路数据通路实验电路图如图所示。
它是将双端口存储器模块和双端口通用寄存器堆模块连接在一起形成的。
存储器的指令端口(右端口)不参与本次实验。
通用寄存器堆连接运算器模块,本次实验涉及其中的DRl。
由于双端口存储器是三态输出,因而可以直接连接到DBUS上。
此外,DBUS还连接着通用寄存器堆。
这样,写入存储器的数据由通用寄存器提供,从RAM中读出的数据也可以放到通用寄存器堆中保存。
本实验的各模块在以前的实验中都已介绍,请参阅前面相关章节。
注意实验中的控制信号与模拟它们的二进制开关的连接。
三、实验设备1. TEC-5计算机组成原理实验系统1台2.逻辑测试笔一支(在TEC-5实验台上)3.双踪示波器一台(公用)4.万用表一只(公用)四、实验任务1.将实验电路与控制台的有关信号进行连接。
2.用8位数据开关SW7-SW0向RF中的四个通用寄存器分别置入以下数据:R0=OFH,R1=0F0H,R2=55H,R3=0AAH.3.用8位数据开关向AR送入地址0FH,然后将R0中的数据0FH写入双端口存储器中.用同样的方法,依次将R1,R2,R3中的数据分别置入RAM的0F0H,55H,0AAH单元.4.分别将RAM的0AAH单元数据写入R0,55H单元数据写入R1,0F0H单元数据写入R2,0FH单元数据写入R3.然后将R0-R3中的数据读出,验证数据的正确性,并记录数据.五、实验要求1.做好实验预习,掌握实验电路的数据通路特点和通用寄存器堆的功能特性和使用方法。
2.写出实验报告,内容是:(1)实验目的。
(2)写出详细的实验步骤、记录实验数据及校验结果。
实验三数据通路实验一、实验目的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数据通路中运算器与存储器协调工作原理是什么?各个数据经过总线连接传输到运算器及存储器,并将运算结果通过数据通路传递到存储器,期间通过每个存储器及运算器的bus输出控制进行协调工作,使得数据不会在总线上冲突。
2、数据及地址在数据通路上传输方法。
通过不同数据控制信号进行传送。
地址信号及数据信号存储地方不同而且控制信号要求不同,通过这样的方法使得总线上数据不会冲突从而达到地址和数据在数据通路上的传输。
3、数据通路中需要注意各种控制信号的作用和设定值,否则不能仿真出正确的波形。
思考题:1、电路的初始状态怎么设置?有几个器件能够发送数据到总线,它们的控制信号是什么?(1)、令bus_sel全部为1,即令输出到总线的所有控制信号无效。
同时运算模块m|cn|s3|s2|s1|s0为000000,lddr信号都为无效,k输入数据为0。
(2)、能够发送数据到总线的器件为PC,R4,R5,,74244,ALU运算单元,RAM存储器单元。
其控制信号分别为PC_BUS,LDDR4,LDDR5,ALU_BUS,RD,WE。
2、画数据通路电路图时,如何连结单一总线?只需将标号标志为相同引脚即可实验数据在总线上的传送。
得到单一总线连接的数据通路电路图3、如何统一两个模块的总线数据输入端k[7..0]及inputd[7..0]?Inputd[7..0]可以不使用,直接将运算模块数据连入到存储器模块的双向输入输出部分,即可将数据送入到存储模块。
实验日志10月5日问题:RAM模块sw_bus为什么没有连接输入端?解决:发现RAM模块的sw_bus是控制inptud输出的信号线,不进行连接一样可以进行总线数据上的传送,其信号线不影响实验结果。
10月9日问题:为何资料上的波形图中ar地址显示与pc地址显示相差一个时间差?解决:通过分析数据通路的电路,发现pc的数据在更新时其之前的地址值已经传送到ar中,因此ar所得到的地址并非pc当时得到的。
运算器数据通路实验设计报告学号:姓名:成绩:学号:姓名:成绩:总线、半导体静态存储器实验二、实验目的.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。
《计算机组成原理》实验报告实验名称:总线传输数据实验班级:
学号:姓名:
4、通用寄存器部件(
6、实验流程:即把数据从输入电路总线,通过总线送通用寄存器部件的R0,再由
通过总线送算术逻辑部件的移位寄存器,经移位寄存器右移或者左移后通过总线送通用寄存器的R1,最后把数据送到输出电路显示。
比较输入数据与输出数据,
数据在总线中传送的规律。
四、实验结果记录
连线准备(记录进行实验结果记录前的连线)
、连接实验一(输入/输出实验)的全部连线。
、按实验逻辑原理图连接寄存器单元的B-R0,B-R1正脉冲信号到控制单元。
实验一运算器[实验目的]1.掌握算术逻辑运算加、减、乘、与的工作原理;2.熟悉简单运算器的数据传送通路;3.验证实验台运算器的8位加、减、与、直通功能;4.验证实验台4位乘4位功能。
[接线]功能开关:DB=0 DZ=0 DP=1 IR/DBUS=DBUS接线:LRW:GND(接地)IAR-BUS# 、M1、M2、RS-BUS#:接+5V控制开关:K0:SW-BUS# K1:ALU-BUSK2:S0 K3:S1 K4:S2K5:LDDR1 K6:LDDR2[实验步骤]一、(81)H与(82)H运算1.K0=0:SW开关与数据总线接通K1=0:ALU输出与数据总线断开2.开电源,按CLR#复位3.置数(81)H:在SW7—SW0输入10000001→LDDR2=1,LDDR1=0→按QD:数据送DR2置数(82)H:在SW7—SW0输入10000010→LDDR2=0,LDDR1=1→按QD:数据送DR1 4.K0=1:SW开关与数据总线断开K1=1:ALU输出与数据总线接通5. S2S1S0=010:运算器做加法(观察结果在显示灯的显示与进位结果C的显示)6.改变S2S1S0的值,对同一组数做不同的运算,观察显示灯的结果。
二、乘法、减法、直通等运算1.K0K1=002.按CLR#复位3.分别给DR1和DR2置数4.K0K1=115. S2S1S0取不同的值,执行不同的运算[思考]M1、M2控制信号的作用是什么?运算器运算类型选择表选择操作S2 S1 S00 0 0 A&B0 0 1 A&A(直通)0 1 0 A+B0 1 1 A-B1 0 0 A(低位)ΧB(低位)完成以下表格ALU-BUS SW-BUS# 存储器内容S2S1S0 DBUS C输入时:计算时:DR1:01100011DR2:10110100(与)DR1:10110100DR2:01100011(直通)DR1:01100011DR2:01100011(加)DR1:01001100DR2:10110011(减)DR1:11111111DR2:11111111(乘)实验二双端口存储器[实验目的]1.了解双端口存储器的读写;2.了解双端口存储器的读写并行读写及产生冲突的情况。
. .. .实验三数据通路(总线)实验一、实验目的(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中的数据不写入通用寄存器中。
实验三16位算术逻辑运算实验实验三16位算术逻辑运算实验⼀、实验⽬的1、掌握16位算术逻辑运算数据传送通路组成原理。
2、进⼀步验证算术逻辑运算功能发⽣器74L S181的组合功能。
⼆、实验内容1、实验原理实验中所⽤16位运算器数据通路如图3-3所⽰。
其中运算器由四⽚74L S181以并/串形成16位字长的A L U构成。
低8位运算器的输出经过⼀个三态门74L S245(U33)到内部总线,低8位数据总线通过L Z D0~L Z D7显⽰灯显⽰;⾼8位运算器的输出经过⼀个三态门74L S245(U33`)到A L U O1`插座,实验时⽤8芯排线和⾼8位数据总线B U S D8~D15插座K B U S1或K B U S2相连,⾼8位数据总线通过L Z D8~L Z D15显⽰灯显⽰;参与运算的四个数据输⼊端分别由四个锁存器74L S273(U29、U30、U29`、U30、)锁存,实验时四个锁存器的输⼊并联连⾄内部数据总线再⽤8芯线连接到外部数据总线E X D0~D7插座E X J1~E X J3中的任⼀个;参与运算的数据源来⾃于8位数据开并K D0~K D7,并经过⼀三态门74L S245(U51)直接连⾄外部数据总线E X D0~E X D7,输⼊的数据通过L D0~L D7显⽰。
2、实验接线本实验⽤到6个主要模块:⑴低8位运算器模块,⑵数据输⼊并显⽰模块,⑶数据总线显⽰模块,⑷功能开关模块(借⽤微地址输⼊模块),⑸⾼8位运算器模块,⑹⾼8位(扩展)数据总线显⽰模块。
根据实验原理详细接线如下:1、J20,J21,J22,接上短路⽚,图3-1.J20,J21,J22接上短路⽚2、J24,J25,J26接左边;图3-2.J24,J25,J26接左边3、J27,J28 左边图3-3.J27,J28接左边4、J23 置右边T4选“SD”图3-4.J23接右边5、JA5 置“接通”;图3-5.JA5置上⽅“接通”6、JA6 置“⼿动”;图3-6.JA6置下边“⼿动”7、JA3 置“接通”;图3-7.JA3置右边“接通”8、JA1,JA2,JA4置“⾼阻”;图3-8.JA1、JA2接下边“⾼阻”图3-9.JA4置左边“⾼阻”9、JA8 置上⾯“微地址”图3-10.JA8置上⾯“微地址”10、EXJ1接BUS3图3-11.EXJ1接BUS3 11、ALO1'接KBUS1图3-12.ALO1接KBUS1 12、开关CE 、AR 置1图3-13.CE与AR各⾃置113、ZI2,CN4,CN0接上短路⽚图3-14.Z12,CN4和CN0都接上短路⽚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,总线上无数据,呈高阻态。
.实验三数据通路(总线)实验一、实验目的(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)掌握总线传输控制特性。
二.实验设备TDN-CM+或TDN_CM++教学实验系统一套。
三.实验原理总线实验框图如图所示。
总线将各个设备(如存储器,寄存器,输入设备,输出设备)连接起来。
通过三态门控制,每一个设备可以将数据打入总线,也可以把总线上的数据下载到设备中。
按照传输要求控制这些设备的功能,就可以实现数据在设备之间的传输。
需要注意的是,在同一时刻,不能有一个以上的设备向总线发出信息。
否则,会引起总线冲突。
在本实验中,输入设备由SW-B信号控制。
当SW-B=0时,数据从数据输入开关打入总线。
SW-B=1时,数据输入开关关闭。
地址寄存器AR由LDAR信号控制。
当LDAR信号产生一个脉冲时(0->1->0),数据从总线进入地址寄存器。
存储器RAM由CS和W/R信号控制。
CS=1时,存储器关闭。
CS=0,W/R=0时,存储器处于写状态,总线上的数据写入指定的地址单元(地址由地址寄存器提供)。
CS=0,W/R=1时,存储器处于读状态,地址单元中的数据打入总线(地址由地址寄存器提供)。
数码管显示LED由LED-B和W/R信号控制。
LED-B=1时,LED关闭。
LED-B=0时,W/R控制信号产生一个脉冲(1->0->1),数据打入到LED中。
寄存器R0由R0-B和LDRO信号控制。
R0-B=0时,数据从寄存器打入总线中。
R0-B=1时,LDRO控制信号产生一个脉冲(0->1->0),数据打入寄存器R0中。
根据总线与设备之间的联系,可以设计以下的流程:(1)输入设备将一个数打入R0寄存器。
(2)输入设备将另一个数打入地址寄存器AR。
(3)将R0寄存器中的数打入存储器RAM中(地址由地址寄存器指定)。
(4)将当前地址的存储器中的数用LED数码管显示。
四.实验步骤(1)按图连接实验电路,图中将用户需要连接的信号线用小圆圈标明。
实验三常规数据通路组成实验一、实验目的1.在线连接双端口通用寄存器和双端口内存模块。
2.熟悉电脑的数据路径。
3.掌握数字逻辑电路故障的一般规律,以及排除故障的一般原则和方法。
4、锻炼分析和解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。
第二,实验类型认证类型。
第三,实验仪器1.TEC-4计算机构成原理实验仪器。
2.一个双踪示波器。
3.一个DC万用表。
4.一支逻辑测试笔。
四、实验原理图3为数据通路实验的电路图,由双端口内存实验模块和双端口通用寄存器模块(RF)连接而成。
本实验不涉及双端口内存的指令端口。
通用寄存器文件连接到运算器模块,这个实验涉及到操作数寄存器DR2。
由于双端口内存RAM是三态输出,因此可以直接连接到数据总线DBUS。
此外,DBUS还连接了一个双端口通用寄存器文件。
这样,写入内存的数据可以由通用寄存器提供,从内存RAM 读取的数据也可以发送到通用寄存器文件保存。
实验2使用了双端口RAM,实验1使用了DR2。
通用寄存器文件RF(U32)由一个ISP1016实现,功能类似于两个4位并行的MC14580组成的寄存器文件。
射频包含四个8位通用寄存器R0、R1、R2和R3,带有一个写端口和两个输出端口,因此一个通道的数据可以同时写入。
读出两种数据。
名为WR端口的写端口连接到一个8位临时寄存器(U14)ER,它是一个74HC374。
名为RS(端口b)和RD(端口a)的输出端口连接到算术单元模块的两个操作数寄存器DR1和DR2。
RS端口(B端口)的数据输出也可以通过8位三态门RSO(U15)直接输出到DBUS。
在双端口通用寄存器文件模块的控制信号中,RS1和RS0用于选择从RS端口(B端口)读取的通用寄存器,RD1和RD0用于选择从RD端口(A端口)读取的通用寄存器。
而WR1和WR0用于选择从WR端口写入的通用寄存器。
WRD是写控制信号。
当WRD=1时,在T2上升沿将临时寄存器er中的数据写入通用寄存器文件中RD1和RD0选择的寄存器;当WRD=0时,电流变位寄存器中的数据不写入通用寄存器,并且电流变位信号控制电流变位寄存器从数据总线写入数据。
数据通路实验报告数据通路实验报告一.实验概述。
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 语言描述经过修改和完善以后的电路图为完善后的电路的引脚分配情况三.实验过程。
实验五数据通路实验一、实验目的1、由运算器实验与存储器实验原理的基础上,掌握组成计算机的数据通路,熟悉地址和数据在道路上的传输。
2、要求运算结果能够回写到存储器里存储并读出显示。
3、了解怎样将运算器和存储器两个模块连接起来。
4、地址设计为4位,数据设计为8位。
5、能够对运算的结果进行一位或多位移位处理,并再次参加运算。
二.实验设备及器件JZYL—Ⅱ型计算机组成原理教学实验仪一台;芯片:74LSl81:运算器芯片2片74LS373:八D锁存器3~4片74LS244:数据开关2片74LSl61:同步4位计数器1片6116存储器或2114存储器1~2片三、实验任务自己设计一个电路和利用实验参考电路进行实验,实验要求先将多个运算数据事先存入存储器中,再由地址选中,选择不同的运算指令,进行运算,并将结果显示,还可以进行连续运算和移位,最后将最终结果回写入存储器中。
复习前两个实验电路中各个信号的含义和作用,重点是运算与存储器之间的数据通路。
四.实验电路1.自己设计电路:可以自由设计,位数任意。
2.给出的参考电路:(按8位设计)数据通路参考电路分别如图3.13和3.15所示。
五.实验要求及步骤1、实验前的准备1)复习有关运算器和存储器的内容:复习《计算机组成原理》中有关数据通路的章节内容。
对数据通路的构成、数据在数据通路中的流动及控制方法有基本的了解。
2)熟悉电路中各部分的关系及信号间的逻辑关系3)参考芯片手册,自己设计实验电路,画出芯片间管脚的连线图,标上引脚号,节省实验的时间。
4)对所设计的电路进行检查,重点是检查能否控制数据在电路中不同部件之间的传输。
2、实验步骤实验可按照自己设计的电路或参考电路按照搭积木的方式进行。
先完成运算器的数据通路部分,在运算器部分能够正确完成各类运算的基础上,再增加存储器通路,并能通过带三态控制的数据开关,存入要用的初始数据。
最终的结果能够在指示灯上显示,并再回写入存储器中。
实验三总线传输实验课程名称:计算机组成原理实验日期:班级:姓名:山水不言学号:一、实验目的1.掌握总线上的连接方法2.掌握总线上数据传输的方式二、实验步骤1.实验原理图2.实验约束文件###------------CLOCK-----------NET "clk" LOC = Y9 | IOSTANDARD=LVCMOS33;#####-------------Zedboard Leds Output------------NET "dout[0]" LOC = T22 | IOSTANDARD=LVCMOS33; #Zedboard LD0 NET "dout[1]" LOC = T21 | IOSTANDARD=LVCMOS33; #Zedboard LD1 NET "dout[2]" LOC = U22 | IOSTANDARD=LVCMOS33; #Zedboard LD2 NET "dout[3]" LOC = U21 | IOSTANDARD=LVCMOS33; #Zedboard LD3 NET "dout[4]" LOC = V22 | IOSTANDARD=LVCMOS33; #Zedboard LD4 NET "dout[5]" LOC = W22 | IOSTANDARD=LVCMOS33; #Zedboard LD5 NET "dout[6]" LOC = U19 | IOSTANDARD=LVCMOS33; #Zedboard LD6NET "dout[7]" LOC = U14 | IOSTANDARD=LVCMOS33; #Zedboard LD7###-------------UMOD-BASIC Leds Output-----------NET "qout<0>" LOC = AB11 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED0 NET "qout<1>" LOC = Y11 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED1 NET "qout<2>" LOC = AB10 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED2 NET "qout<3>" LOC = AA11 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED3 NET "qout<4>" LOC = AB9 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED4 NET "qout<5>" LOC = Y10 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED5 NET "qout<6>" LOC = AA8 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED6 NET "qout<7>" LOC = AA9 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED7 ##NET "led<8>" LOC = T6 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED8 ##Connect to JC1#NET "led<9>" LOC = AB6 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED9 #NET "led<10>" LOC = R6 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED10 #NET "led<11>" LOC = AB7 | IOSTANDARD=LVCMOS33; #UMOD-BASIC LED11 #####-----------Zedboard Switches Input-----------NET "din[0]" LOC = F22 | IOSTANDARD=LVCMOS33; #Zedboard SW0NET "din[1]" LOC = G22 | IOSTANDARD=LVCMOS33; #Zedboard SW1NET "din[2]" LOC = H22 | IOSTANDARD=LVCMOS33; #Zedboard SW2NET "din[3]" LOC = F21 | IOSTANDARD=LVCMOS33; #Zedboard SW3NET "din[4]" LOC = H19 | IOSTANDARD=LVCMOS33; #Zedboard SW4NET "din[5]" LOC = H18 | IOSTANDARD=LVCMOS33; #Zedboard SW5NET "din[6]" LOC = H17 | IOSTANDARD=LVCMOS33; #Zedboard SW6NET "din[7]" LOC = M15 | IOSTANDARD=LVCMOS33; #Zedboard SW7####----------UMOD-BASIC Switches Input----------#NET "CLR" LOC = V12 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT0#NET "L" LOC = W12 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT1#NET "G" LOC = W10 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT2#NET "oen_n1" LOC = W11 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT3 #NET "gwe1" LOC = V9 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT4 NET "oenn" LOC = V10 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT5NET "gwe" LOC = V8 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT6NET "enn" LOC = W8 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT7##NET "clk" LOC = Y4 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT8 ##Connect to JC1NET "we1" LOC = T4 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT9NET "we2" LOC = AA4 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT10NET "oen" LOC = U4 | IOSTANDARD=LVCMOS33; #UMOD-BASIC SWT11####----------Zedboard Buttons Input----------#NET "BTNU" LOC = T18 | IOSTANDARD=LVCMOS33; #Zedboard BTNU #NET "BTND" LOC = R16 | IOSTANDARD=LVCMOS33; #Zedboard BTND #NET "BTNL" LOC = N15 | IOSTANDARD=LVCMOS33; #Zedboard BTNL #NET "BTNR" LOC = R18 | IOSTANDARD=LVCMOS33; #Zedboard BTNR #NET "BTNC" LOC = P16 | IOSTANDARD=LVCMOS33; #Zedboard BTNC ####--------------END----------3.编译、下载1.实验功能验证一、实验体会1实验过程中有许多不懂的知识。
实验三数据通路(总线)实验一、实验目的(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中的数据不写入通用寄存器中。
LDER信号控制ER从DBUS写入数据,当LDER=1时,在T4的上升沿,DBUS上的数据写入ER。
RS_BUS#信号则控制RS端口到DBUS的输出三态门,是一个低电平有效信号。
以上控制信号各自连接一个二进制开关K0—Kl5。
图8(a) 数据通路总体图图8(b) 数据通路实验电路图三、实验设备(1)TEC-4计算机组成原理实验仪一台(2)双踪示波器一台(3)直流万用表一只(4)逻辑测试笔一支四、实验任务(1)将实验电路与控制台的有关信号进行线路连接,方法同前面的实验。
(2)用8位数据开关向RF中的四个通用寄存器分别置入以下数据:R0=0FH,R1=F0H,R2=55H,R3=AAH。
给R0置入0FH的步骤是:先用8位数码开关SW0—SW7将0FH置入ER,并且选择WR1=0、WR0=0、WRD=1,再将ER的数据置入RF。
给其他通用寄存器置入数据的步骤与此类似。
(3)分别将R0至R3中的数据同时读入到DR2寄存器中和DBUS上,观察其数据是否是存入R0至R3中的数据,并记录数据。
其中DBUS上的数据可直接用指示灯显示,DR2中的数据可通过运算器ALU,用直通方式将其送往DBUS。
(4)用8位数码开关SW0—SW7向AR1送入一个地址0FH,然后将R0中的0FH写入双端口RAM。
用同样的方法,依次将R1至R3中的数据写入RAM中的F0H,55H,AAH单元。
(5)分别将RAM中AAH单元的数据写入R0,55H单元的数据写入R1,F0H单元写入R2,0FH 单元写入R3。
然后将R3,R2,R1,R0中的数据读出到DBUS上,通过指示灯验证读出的数据是否正确,并记录数据。
(6)进行RF并行输入输出试验。
1.选择RS端口(B端口)对应R0,RD端口(A端口)对应R1,WR端口对应R2,并使WRD=l,观察并行输入输出的结果。
选择RS端口对应R2,验证刚才的写入是否生效。
记录数据。
2.保持RS端口(B端口)和WR端口同时对应R2,WRD=1,而ER中置入新的数据,观察并行输入输出的结果,RS端口输出的是旧的还是新的数据?(7)在数据传送过程中,发现了什么故障? 如何克服的?五、实验步骤与实验结果(1)接线IAR_BUS#接VCC,禁止中断地址寄存器IAR向数据总线DBUS送数据。
CER接GND,禁止存储器右端口工作。
AR1_INC接GND,禁止AR1加1。
S2接GND,S1接GND,S0接VCC,使运算器ALU处于直通方式。
M2接GND,使DR2选择寄存器堆RF作为数据来源。
置DP = 1,DZ = 0,DB = 0,使实验系统开机后处于单拍状态。
K0接SW_BUS#,K1接RS_BUS#,K2接ALU_BUS,K3接CEL#,K4接LRW,K5接LDAR1,K6接LDDR2,K7接LDER,K8接RS0,K9接RS1,K10接RD0,K11接RD1,K12接WR0,K13接WR1,K14接WRD。
合上电源。
按CLR#按钮,使实验系统处于初始状态。
(2)向RF中的四个通用寄存器分别置入数据令K1(RS_BUS#)= 1,K2(ALU_BUS)= 0,K3(CEL#)= 1,K4(LRW)= 1,K5(LDAR1)= 0,K6(LDDR2)= 0,K8(RS0)= 0,K9(RS1)= 0,K10(RD0)= 0,K11(RD1)= 0,K12(WR0)= 0,K13(WR1)= 0,K14(WRD)= 0。
令K0(SW_BUS#)= 0,K7(LDER)= 1。
置SW7—SW0为0FH,按一次QD按钮,将0FH写入暂存寄存器ER。
令K7(LDER)= 0,K14(WRD)= 1,K12(WR0)= 0,K13(WR1)= 0,按一次QD按钮,将0FH(在ER中)写入R0寄存器。
令K0(SW_BUS#)= 0,K7(LDER)= 1。
置SW7—SW0为F0H,按一次QD按钮,将F0H写入暂存寄存器ER。
令K7(LDER)= 0,K14(WRD)= 1,K12(WR0)= 1,K13(WR1)= 0,按一次QD按钮,将F0H(在ER中)写入R1寄存器。
令K0(SW_BUS#)= 0,K7(LDER)= 1。
置SW7—SW0为55H,按一次QD按钮,将55H写入暂存寄存器ER。
令K7(LDER)= 0,K14(WRD)= 1,K12(WR0)= 0,K13(WR1)= 1,按一次QD按钮,将55H(在ER中)写入R2寄存器。
令K0(SW_BUS#)= 0,K7(LDER)= 1。
置SW7—SW0为AAH,按一次QD按钮,将AAH 写入暂存寄存器ER。
令K7(LDER)= 0,K14(WRD)= 1,K12(WR0)= 1,K13(WR1)= 1,按一次QD按钮,将AAH(在ER中)写入R3寄存器。
(3)分别将R0至R3中的数据同时读入到DR2寄存器中和DBUS上,观察其数据是否是存入R0至R3中的数据。
1.令K0(SW_BUS#)= 1,K2(ALU_BUS)= 0,K3(CEL#)= 1,K4(LRW)= 1,K5(LDAR1)= 0,K6(LDDR2)= 0,K7(LDER)= 0,K10(RD0)= 0,K11(RD1)= 0,K12(WR0)= 0,K13(WR1)= 0,K14(WRD)= 0。
将开关IR/DBUS至于DBUS位置。
令K1(RS_BUS#)= 0,使寄存器堆中的数据送DBUS总线。
令K8(RS0)= 0,K9(RS1)= 0,R0中的数据通过B端口送DBUS ,数据指示灯应显示0FH。
令K8(RS0)= 1,K9(RS1)= 0,R1中的数据通过B端口送DBUS,数据指示灯应显示F0H。
令K8(RS0)= 0,K9(RS1)= 1,R2中的数据通过B端口送DBUS,数据指示灯应显示55H。
令K8(RS0)= 1,K9(RS1)= 1,R3中的数据通过B端口送DBUS,数据指示灯应显示AAH。
2.令K0(SW_BUS#)= 1,K1(RS_BUS#)= 1,K3(CEL#)= 1,K4(LRW)= 1,K5(LDAR1)= 0,K7(LDER)= 0,K8(RS0)= 0,K9(RS1)= 0,K12(WR0)= 0,K13(WR1)= 0,K14(WRD)= 0。
将开关IR/DBUS至于DBUS位置。
令K2(ALU_BUS)= 1,使运算器ALU的运算结果送DBUS 总线。
由于S2接GND,S1接GND,S0接VCC,ALU做直通运算,因此DBUS数据指示灯显示的是DR2寄存器的值。
令K10(RD0)= 0,K11(RD1)= 0,K6(LDDR2)= 1,按一次QD按钮,R0中的数据通过A端口送入DR2,DBUS数据指示灯应显示0FH。
令K10(RD0)= 1,K11(RD1)= 0,K6(LDDR2)= 1,按一次QD按钮,R1中的数据通过A端口送入DR2,DBUS数据指示灯应显示F0H。
令K6(LDDR2)= 1,K10(RD0)= 0,K11(RD1)= 1,按一次QD按钮,R2中的数据通过A端口送入DR2,DBUS数据指示灯应显示55H。
令K10(RD0)= 1,K11(RD1)= 1,K6(LDDR2)= 1,按一次QD按钮,R3中的数据通过A端口送入DR2,DBUS数据指示灯应显示AAH。
(4)将R0、R1、R2、R3中的数据依次送入存储器0FH、F0H、55H、AAH单元。
令K2(ALU_BUS)= 0,K5(LDAR1)= 0,K6(LDDR2)= 0,K7(LDER)= 0,K10(RD0)= 0,K11(RD1)= 0,K12(WR0)= 0,K13(WR1)= 0,K14(WRD)= 0。
置AR1/AR2开关到AR1位置。
令K1(RS_BUS#)= 1,K0(SW_BUS#)= 0,K5(LDAR1)= 1,K3(CEL#)= 1,置SW7—SW0为0FH,按一次QD按钮,将AR1置为0FH,地址指示灯应显示0FH。
令K0(SW_BUS#)= 1,K1(RS_BUS#)= 0,禁止数据开关SW7—SW0送DBUS,允许寄存器堆送数据总线DBUS。
令K5(LDAR1)= 0,K8(RS0)= 0,K9(RS1)= 0,K3(CEL#)= 0,K4(LRW)= 0,按一次QD按钮,将R0中的数据写入存储器0FH单元。
置AR1/AR2开关到AR1位置。
令K1(RS_BUS#)= 1,K0(SW_BUS#)= 0,K5(LDAR1)= 1,K3(CEL#)= 1,置SW7—SW0为F0H,按一次QD按钮,将AR1置为F0H,地址指示灯应显示F0H。
令K0(SW_BUS#)= 1,K1(RS_BUS#)= 0,禁止数据开关SW7—SW0送DBUS,允许寄存器堆送数据总线DBUS。