电子科大-系统结构实验-解决数据冒险

电子科大-系统结构实验-解决数据冒险
电子科大-系统结构实验-解决数据冒险

课程名称:计算机系统结构实验学院:计算机科学与工程学院专业:计算机科学与技术

指导教师:好老师

学生姓名:爱学习的小学生 20实验成绩:

日期:2017年5月19日

电子科技大学计算机学院实验中心

电子科技大学

实验报告

一、实验项目名称:解决数据冒险

二、实验室名称:主楼A2-412 实验时间:2017年5月19日

三、实验目的

在给出的流水线代码基础上,增加内部前推数据通路、暂停流水线数据通路和关闭写使能信号的数据通路,解决普通的数据冒险和load数据冒险,通过完成本次实验,更好地理解和掌握解决数据冒险的原理,学以致用,增强编写程序的能力。

四、实验原理

(一)数据冒险的定义

由于流水线上指令重叠执行,改变了原来串行执行的读/写操作数顺序,使得后面依赖前面指令结果的指令得不到准备好的数据,这样的现象叫做数据冒险(数据相关)。

回顾数据冒险的程序例子

I1: add r1,r2,r3

I2: sub r4,r1,r5

I3: and r6,r7,r1

I4: or r8,r1,r9

I5: addi r10,r1,100

I1下面有3条指令不能从寄存器r1读出正确的数据。

(二)数据冒险的解决方案

1、暂停流水线

如上图所示,暂停流水线到最初的指令执行完毕,可以解决数据冒险,但是会涉及到两个问题,即“如何检测出数据冒险”和“如何暂停流水线”。

如何检测数据冒险

a.比较器;

I1指令写目的寄存器rd,I2和I3的源操作数是寄存器rs1或rs2中的数据,I2、I3的rs1或rs2与I1的目的寄存器号rd相等时才有可能发生数据冒险。

b.操作码参与检测;

由于指令格式中源寄存器号rs2与立即数部分重叠,而立即数是不会出现冒险的,因此,指令操作码必须要参与检测(区分是寄存器操作数还是立即数)。

c.WREG信号也应参与检测(实际上,WREG也是从操作码中得出的);

如何暂停流水线

暂停条件判断电路STALL的输入包括OPCODE,ID_rsl,ID_rs2,EXE_rd,EXE_WREG,MEM_rd和MEM_WREG。输出为DEPEN。

封锁本条指令所产生的影响的方法是把DEPEN分别和译码器的输出Decoder_WZ,Decoder_WMEM和Decoder_WREG相与,再送到ID级和EXE级之间的流水线寄存器的输入端。

因为只有这些写信号才改变处理机或存储器的状态,因而我们不必去封锁其它诸如ALUOP或多路器的选择信号。

封锁其后续指令的方法是禁止向IR及PC写入新的数据,即把DEPEN接到IR和PC的写使能端WIR和WPC。当这两个信号为0时,禁止向IR和PC写人数据。

2、内部前推技术

数据相关本质:一条指令执行时要用到上面指令的计算结果,但这个结果尚未被写入寄存器堆。而实质上,此时结果已经由ALU计算出来了,在流水线寄存器R和C中。

由此,我们可以在ALU的两个数据输入端各加一个多路器,使R和C中的数据能被直接送到ALU的输入端,这就是所谓的内部前推。

以下是检测数据相关的完整信号:

EXE_A_DEPEN=(ID_rs1= =EXE_rd)(EXE_WREG= =1)(ID_rs1IsReg)

EXE_B_DEPEN=(ID_rs2= =EXE_rd)(EXE_WREG= =1)(ID_rs2IsReg)

+(ID_rd= =EXE_rd)(EXE_WREG= =1)(store)

MEM_A_DEPEN=(ID_rs1= =MEM_rd)(MEM_WREG= =1)(ID_rs1IsReg)

MEM_B_DEPEN=(ID_rs2= =MEM_rd)(MEM_WREG= =1)(ID_rs2IsReg)

+(ID_rd= =MEM_rd)(MEM_WREG= =1)(store)

ID_rs1IsReg=and+andi+or+ori+add+addi+sub+subi+load+store

ID_rs2IsReg=and+or+add+sub

(EXE_WREG= =1)表示EXE级的指令确实要更新寄存器,没被取消

(ID_rs1IsReg)条件是为了确认是寄存器,而不是立即数

EXE_rd表示EXE级的流水线目标寄存器rd

DEPEN=A_DEPEN + B_DEPEN

A_DEPEN=EXE_A_DEPEN + MEM_A_DEPEN

B_DEPEN=EXE_B_DEPEN + MEM_B_DEPEN

(三)load指令的处理——暂停与内部前推相结合

ALU指令在EXE级结束后,结果就出现在流水线寄存器R中,后续指令可以通过内部前推电路来直接使用它。

但有一种情况是例外:

load r1, 200(r2);

add r3, r1, r4;

load指令在EXE级结束后,还在忙着访问存储器。在MEM级结束后,结果才出现在流水线寄存器D中,见下图。这时,即使使用内部前推技术也无法消除load指令与它的下一

条相关指令之间的第一个“气泡”。

我们的是由硬件负责检测与load指令的相关性。为了保证操作结果的正确性,我们采用暂停流水线一个周期的方法。第二个“气泡”用内部前推技术加以消除。

我们给出下面的用于实现load流水线暂停的控制信号的表达式。这个信号是在ID级产生,并且使用与暂停ALU流水线类似的方法:

LOADDEPEN=EXE_A_DEPEN+EXE_B_DEPEN

EXE_A_DEPEN=(ID_rs1= =EXE_rd)(EXE_SLD= =1)(ID_rs1IsReg)

EXE_B_DEPEN=(ID_rs2= =EXE_rd)(EXE_SLD= =1)(ID_rs2IsReg)

+(ID_rd= =EXE_rd)(EXE_SLD= =1)(store)

ID_rs1IsReg=and+andi+or+ori+add+addi+sub+subi+load+store

ID_rs2IsReg=and+or+add+sub

其中, EXE_SLD= =1表示WB级的多路选择器选择中间寄存器D的值

EXE_SLD,表示EXE级是load指令。或者也可以把译出的load指令打入流水线寄存器,使用它而不是EXE_SLD。

五、实验内容

在给出的流水线代码基础上,增加内部前推数据通路、暂停流水线数据通路和关闭写使能信号的数据通路以解决普通的数据冒险和load数据冒险。

六、实验器材(设备、元器件)

ISE Design Suite 集成开发环境,编程语言:Verilog HDL硬件描述语言

七、实验步骤

(一)创建工程DataHazardAndForwarding

(二)将原工程文件导入

(三)在pipelinedcpu中添加下列变量:

wire[1:0] idadepend,idbdepend;//id 级a、b depend

wire[1:0] exeadepend,exebdepend;// exe级 a、b depend

wire wpc;//写pc

为了解决数据冒险,需要将depend的值保存下来,所以需要两个a、bdepend值wpc用于暂停流水线,从而实现load冒险时暂停指令留出以及写寄存器和写mem (四)为了实现数据通路,需要在下列模块的参数列表上增加一些参数

增加后的代码如下

pipepc prog_cnt (npc,clock,resetn,pc,wpc);//程序计数器PC//**********

pipeir inst_reg (pc4,ins,clock,resetn,dpc4,inst,wpc);//IF级与ID级之间的寄存器,即指令寄存器IR//******

pipeid id_stage (dpc4,inst,//指令译码ID级

wrn,wdi,wwreg,clock,resetn,

bpc,jpc,pcsource,dwreg,dm2reg,dwmem,

daluc,daluimm,da,db,dimm,drn,dshift,djal,z,

ern,mrn,ewreg,mwreg,idadepend,idbdepend,em2reg,wpc);

pipedereg de_reg (dwreg,dm2reg,dwmem,daluc,daluimm,da,db,dimm,

drn,dshift,djal,dpc4,clock,resetn,

ewreg,em2reg,ewmem,ealuc,ealuimm,ea,eb,eimm,

ern0,eshift,ejal,epc4,

idadepend,idbdepend,exeadepend,exebdepend,pcsource);//ID级与EXE级之间的寄存器

pipeexe exe_stage (ealuc,ealuimm,ea,eb,eimm,eshift,ern0,epc4,//指令执行EXE级

ejal,ern,ealu,z,

malu,wmo,exeadepend,exebdepend);

(五)在id_stage的cu中添加判断冒险的代码,并计算出a_depend和b_depend的值,cu的完整代码如下

module pipeidcu(rsrtequ,func,

op,wreg,m2reg,wmem,aluc,regrt,aluimm,

sext,pcsource,shift,jal,

/*数据前推加入的参数*/

exe_rd,mem_rd,exe_wreg,mem_wreg,idadepend,idbdepend,rs,rt,rd,exe_m2reg,wpc

);

input[4:0] exe_rd,mem_rd,rs,rt,rd;

input exe_wreg,mem_wreg,exe_m2reg;

output[1:0] idadepend,idbdepend;

output wpc;

//wreg 是否写寄存器

//dm2reg为1时将存储器数据写入寄存器,否则将ALU结果写入寄存器

//dwmem为1时写存储器,否则不写

////daluimm为1时ALUb输入端使用立即数

//dshift为1时ALUa输入端使用移位位数

//djal为1时执行jal指令,否则不是

input rsrtequ;

input[5:0] func,op;

output wreg,m2reg,wmem,regrt,aluimm,sext,shift,jal;

output[4:0] aluc;

output[1:0] pcsource;

wire i_add,i_sub,i_mul,i_and,i_or,i_xor,i_sll,i_srl,i_sra,i_jr;//对指令进行译码

wire i_addi,i_muli,i_andi,i_ori,i_xori,i_lw,i_sw,i_beq,i_bne,i_lui,i_j,i_jal;

and(i_add,~op[5],~op[4],~op[3],~op[2],~op[1],~op[0],~func[2],~func[1],func[0]);

and(i_sub,~op[5],~op[4],~op[3],~op[2],~op[1],~op[0],~func[2],func[1],~func[0]);

and(i_mul,~op[5],~op[4],~op[3],~op[2],~op[1],~op[0],~func[2],func[1],func[0]);

and(i_and,~op[5],~op[4],~op[3],~op[2],~op[1],op[0],~func[2],~func[1],func[0]);

and(i_or,~op[5],~op[4],~op[3],~op[2],~op[1],op[0],~func[2],func[1],~func[0]);

and(i_xor,~op[5],~op[4],~op[3],~op[2],~op[1],op[0],func[2],~func[1],~func[0]);

and(i_sra,~op[5],~op[4],~op[3],~op[2],op[1],~op[0],~func[2],~func[1],func[0]);

and(i_srl,~op[5],~op[4],~op[3],~op[2],op[1],~op[0],~func[2],func[1],~func[0]);

and(i_sll,~op[5],~op[4],~op[3],~op[2],op[1],~op[0],~func[2],func[1],func[0]);

and(i_jr,~op[5],~op[4],~op[3],~op[2],op[1],~op[0],func[2],~func[1],~func[0]);

and(i_addi,~op[5],~op[4],~op[3],op[2],~op[1],op[0]);

and(i_muli,~op[5],~op[4],~op[3],op[2],op[1],op[0]);

and(i_andi,~op[5],~op[4],op[3],~op[2],~op[1],op[0]);

and(i_ori,~op[5],~op[4],op[3],~op[2],op[1],~op[0]);

and(i_xori,~op[5],~op[4],op[3],op[2],~op[1],~op[0]);

and(i_lw,~op[5],~op[4],op[3],op[2],~op[1],op[0]);

and(i_sw,~op[5],~op[4],op[3],op[2],op[1],~op[0]);

and(i_beq,~op[5],~op[4],op[3],op[2],op[1],op[0]);

and(i_bne,~op[5],op[4],~op[3],~op[2],~op[1],~op[0]);

and(i_lui,~op[5],op[4],~op[3],~op[2],~op[1],op[0]);

and(i_j,~op[5],op[4],~op[3],~op[2],op[1],~op[0]);

and(i_jal,~op[5],op[4],~op[3],~op[2],op[1],op[0]);

wire i_rs=i_add|i_sub|i_mul|i_and|i_or|i_xor|i_jr|i_addi|i_muli|

i_andi|i_ori|i_xori|i_lw|i_sw|i_beq|i_bne;

wire i_rt=i_add|i_sub|i_mul|i_and|i_or|i_xor|i_sra|i_srl|i_sll|i_sw|i_beq|i_bne;

////////////////////////////////////////////控制信号的生成

/////////////////////////////////////////////////////////

assign wreg=(i_add|i_sub|i_mul|i_and|i_or|i_xor|i_sll|//wreg为1时写寄存器堆中某一寄存器,否则不写

i_srl|i_sra|i_addi|i_muli|i_andi|i_ori|i_xori|

i_lw|i_lui|i_jal)& wpc ;

assign regrt=i_addi|i_muli|i_andi|i_ori|i_xori|i_lw|i_lui;//regrt为1时目的寄存器是rt,否则为rd

assign jal=i_jal;//为1时执行jal指令,否则不是assign m2reg=i_lw;//为1时将存储器数据写入寄存器,否则将ALU结果写入寄存器

assign shift=i_sll|i_srl|i_sra;//为1时ALUa输入端使用移位位数

assign aluimm=i_addi|i_muli|i_andi|i_ori|i_xori|i_lw|i_lui|i_sw;//为1时ALUb输入端使用立即数

assign sext=i_addi|i_muli|i_lw|i_sw|i_beq|i_bne;//为1时符号拓展,否则零拓展

assign aluc[4]=i_sra;//ALU的控制码

assign aluc[3]=i_sub|i_or|i_ori|i_xor|i_xori| i_srl|i_sra|i_beq|i_bne;//ALU的控制码

assign aluc[2]=i_sll|i_srl|i_sra|i_lui;//ALU的控制码

assign aluc[1]=i_and|i_andi|i_or|i_ori|i_xor|i_xori|i_beq|i_bne;//ALU的控制码

assign aluc[0]=i_mul|i_muli|i_xor|i_xori|i_sll|i_srl|i_sra|i_beq|i_bne;//ALU的控制码

assign wmem=i_sw & wpc ;//为1时写存储器,否则不写

//判断rs1是否为寄存器操作数

assign rs1IsReg=i_and | i_andi | i_or | i_ori | i_add | i_addi | i_sub | i_lw | i_sw | i_sll | i_srl | i_sra;

////判断rs2是否为寄存器操作数

assign rs2IsReg=i_and | i_or | i_add | i_sub | i_sll | i_sra | i_srl;

//计算exe级和mem级adepend

assign exe_a_depen=((rs==exe_rd)&(exe_wreg==1)&(rs1IsReg));

assign mem_a_depen=((rs==mem_rd)&(mem_wreg==1)&(rs1IsReg));

//计算exe级和mem级bdepend

Assign exe_b_depen=((rt==exe_rd)&(exe_wreg==1)&(rs2IsReg))|

((rd==exe_rd)&(exe_wreg==1)&(i_sw));

assign mem_b_depen=((rt==mem_rd)&(mem_wreg==1)&(rs2IsReg))|

((rd==mem_rd)&(mem_wreg==1)&(i_sw));

//计算adepend和bdepend

assign idadepend[0]= mem_a_depen;

assign idadepend[1]=mem_a_depen | exe_a_depen ;

assign idbdepend[0]=mem_b_depen | aluimm ;

assign idbdepend[1]=mem_b_depen | exe_b_depen;

//判断load指令冒险,如果是wpc=0,stall一个时钟周期

assign wpc =~(((rs==exe_rd)&exe_m2reg &rs1IsReg )|((rt==exe_rd)&exe_m2reg &rs2IsReg) |

((rd==exe_rd )&exe_wreg &i_sw)|((rd==mem_rd)&mem_wreg &i_sw));

assign pcsource[1]=i_jr|i_j|i_jal;//选择下一条指令的地址,00选PC+4,01选转移地址,10选寄存器内地址,11选跳转地址

assign pcsource[0]=i_beq&rsrtequ|i_bne&~rsrtequ|i_j|i_jal;

endmodule

(六)接着修改多路选择器,将以前的两路转化成四路

module mux4x32(a0,a1,a2,a3,s,y

);

input[31:0] a0,a1,a2,a3;

input[1:0] s;

output[31:0] y;

assign y=(s==2'b00)a0:(s==2'b01)a1:(s==2'b10)a2:a3;//四选一

endmodule

八、实验数据及结果分析

(一)画出修改后的流水线图;

(二)写出增加的多路选择器的选择信号逻辑函数

增加的多路选择器信号逻辑函数如下:

//加上数据前推之后变成四选一的多路器

mux4x32 alu_ina (ea,sa,malu,wmo,exe_a_depend,alua);

mux4x32 alu_inb (eb,eimm,malu,wmo,exe_b_depend,alub);

多路选择器的定义如下:

module mux4x32(a0,a1,a2,a3,s,y

);

input[31:0] a0,a1,a2,a3;

input[1:0] s;

output[31:0] y;

assign y=(s==2'b00)a0:(s==2'b01)a1:(s==2'b10)a2:a3;//四选一

endmodule

(三)流水线仿真结果,对仿真结果进行必要说明

为了验证是否程序正确的完成了forwarding和数据冒险,下面将进行两组测试,并对测试结果进行详细分析解释

测试一(非load指令数据冒险测试)

首先不管是不是load指令,数据冒险都会用到数据前推,实验提供的代码中测试文件里面的例子就是一个很典型的数据冒险,下面直接用这组例子进行测试,代码如下//测试数据前推

assign rom[6'h00]=32'h;//lui r1,0 0

assign rom[6'h01]=32'h;//ori r4,r1,80 80

assign rom[6'h02]=32'h00202124;//sub r8,r9,r4 fff

assign rom[6'h03]=32'h;//addi r5,r0,4 4

assign rom[6'h04]=32'h;//store r2,0x0(r4) 80

assign rom[6'h05]=32'h;//load r9,0x0(r4) 80

可以看到第二条指令和第三条指令关于r4冲突,如果没有解决数据冒险,sub指令时r8会写入0(r9=r4=0),解决数据冒险过后,应该等于-80。

运行程序观察结果:

图1:数据冒险测试截图

从结果中我们可以看到,400ns时alu输出结果为ffffffb0(-80),这与我们预想数据冒险解决成功的结果是一致的,说明数据前推是正确的,成功解决了数据冒险。

测试二(load指令数据冒险测试)

仍然采用原来程序提供的测试例子,这次我们将load指令插到sub指令前面,代码如下

//测试load指令的停顿

assign rom[6'h00]=32'h;//lui r1,0

assign rom[6'h01]=32'h;//ori r4,r1,80

assign rom[6'h02]=32'h;//load r9,0x0(r4)

assign rom[6'h03]=32'h00202124;//sub r8,r9,r4

assign rom[6'h04]=32'h;//addi r5,r0,4

assign rom[6'h05]=32'h;//store r2,0x0(r8)

可以看到,load指令和sub指令关于r9数据冒险,这时候除了使用前推,还必须将sub 指令暂停一个时钟周期,否则r9会得到-80的结果,但如果解决了load数据冒险的话,最终的结果应该是83(因为在内存中设置了80所在的位置内容为163)

运行程序,观察分析结果

图2:load数据冒险测试截图

可以看出,在400ns时,pc值没有发生改变,也就是暂停了一个时钟周期,在600ns 时,alu结果为53(十进制83),验证了前面的分析,load指令的数据冒险也已经成功解决九、总结、改进建议及心得体会

(一)总结:

经过对代码的改写,包括添加变量、模块参数、修改模块代码、增改连线、反复测试、修改等,成功地通过内部前推解决了普通的数据冒险,并通过暂停和前推,解决load指令的数据冒险。

(二)改进建议:

如果能够有板子可以跑一下,就更有意思了,像之前的计算机组成原理那样,实验的最后一步是下载到板子上运行。

(三)心得体会:

1、基础很重要,基础知识一定要扎实,才能进一步自己编程实现;

2、编写多组指令进行测试,并且注意查看内部寄存器的值,而不仅仅是查看结果。

微机系统实验报告

西安电子科技大学 实验报告

实验一汇编语言编程实验 一、实验目的 (1)掌握汇编语言的编程方法 (2)掌握 DOS 功能调用的使用方法 (3)掌握汇编语言程序的调试运行过程 二、实验设备 PC 机一台。 三、实验内容 1. 将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS 功能调用完成必要提示信息的显示。 2. 在屏幕上显示自己的学号姓名信息。 3. 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。 4. 自主设计输入显示信息,完成编程与调试,演示实验结果。 四、实验源码 DATA SEGMENT DISCHA DB'WangHan 14030188004',0AH,0DH,'$' TAB DB' ',0AH,0DH,'$' BLANK DB' $' DATA ENDS STACK SEGMENT STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,SEG DISCHA

MOV DX,OFFSET DISCHA MOV AH,09H INT 21H NEXT: MOV AH,01H INT 21H CMP AL,'Q' JE ENDSS CMP AL,'q' JE ENDSS MOV BL,AL MOV AX,SEG BLANK MOV DS,AX MOV DX,OFFSET BLANK MOV AH,09H INT 21H MOV BH,0AH MOV DL,BL MOV CL,04H SHR DL,CL CMP DL,BH JNL Q3 JMP Q2 Q1: ADD DL,07H Q2: ADD DL,30H MOV AH,02H INT 21H MOV DL,BL MOV DH,0FH AND DL,DH CMP DL,BH JNL Q3 JMP Q4 Q3: ADD DL,07H Q4: ADD DL,30H

电子科技大学 汇编 实验报告

计算机专业类课程 实 验 报 告 课程名称:汇编语言程序设计 学院:计算机科学与工程 专业:计算机科学与技术 学生姓名:郭小明 学号:2011060100010 日期:2013年12月24日

电子科技大学 实验报告 实验一 学生姓名:郭小明学号:2011060100010 一、实验室名称:主楼A2-412 二、实验项目名称:汇编源程序的上机调试操作基础训练 三、实验原理: DEBUG 的基本调试命令;汇编数据传送和算术运算指令 MASM宏汇编开发环境使用调试方法 四、实验目的: 1. 掌握DEBUG 的基本命令及其功能 2. 学习数据传送和算术运算指令的用法 3.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程五、实验内容: 编写程序计算以下表达式: Z=(5X+2Y-7)/2 设X、Y的值放在字节变量VARX、VARY中,结果存放在字节单元VARZ中。 1.编辑源程序,建立一个以后缀为.ASM的文件. 2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。 3.连接目标程序,产生可执行程序。

4.用DEBUG程序调试可执行程序,记录数据段的内容。 六、实验器材(设备、元器件): PC机,MASM软件平台。 七、实验数据及结果分析: 程序说明: 功能:本程序完成Z=(5X+2Y-7)/2这个等式的计算结果求取。其中X 与Y 是已知量,Z是待求量。 结构:首先定义数据段,两个DB变量VARX与VARY(已经初始化),以及结果存放在VARZ,初始化为?。然后定义堆栈段,然后书写代码段,代码段使用顺序程序设计本程序,重点使用MOV和IMUL以及XOR,IDIV完成程序设计。详细内容见程序注释。 程序清单:

电子科大电子技术实验报告

电子科技大学 电子技术实验报告 学生姓名:班级学号:考核成绩:实验地点:仿真指导教师:实验时间: 实验报告内容:1、实验名称、目的、原理及方案2、经过整理的实验数据、曲线3、对实验结果的分析、讨论以及得出的结论4、对指定问题的回答 实验报告要求:书写清楚、文字简洁、图表工整,并附原始记录,按时交任课老师评阅实验名称:负反馈放大电路的设计、测试与调试

一、实验目的 1、掌握负反馈电路的设计原理,各性能指标的测试原理。 2、加深理解负反馈对电路性能指标的影响。 3、掌握用正弦测试方法对负反馈放大器性能的测量。 二、实验原理 1、负反馈放大器 所谓的反馈放大器就是将放大器的输出信号送入一个称为反馈网络的附加电路后在放大器的输入端产生反馈信号,该反馈信号与放大器原来的输入信号共同控制放大器的输入,这样就构成了反馈放大器。单环的理想反馈模型如下图所示,它是由理想基本放大器和理想反馈网络再加一个求和环节构成。 反馈信号是放大器的输入减弱成为负反馈,反馈信号使放大器的输入增强成为正反馈。四种反馈类型分别为:电压取样电压求和负反馈,电压取样电流求和负反馈,电流取样电压求和负反馈,电流取样电流求和负反馈。 2、实验电路

实验电路如下图所示,可以判断其反馈类型累电压取样电压求和负反馈。 3.电压取样电压求和负反馈对放大器性能的影响 引入负反馈会使放大器的增益降低。负反馈虽然牺牲了放大器的放大倍数,但它改善了放大器的其他性能指标,对电压串联负反馈有以下指标的改善。 可以扩展闭环增益的通频带 放大电路中存在耦合电容和旁路电容以及有源器件内部的极间电容,使得放大器存在有效放大信号的上下限频率。负反馈能降低和提高,从而扩张通频带。 电压求和负反馈使输入电阻增大 当 v一定,电压求和负反馈使净输入电压减小,从而使输入电流 s

电子科大19春《数据结构》在线作业2

(单选题)1: 若算法中语句的最大频度为T(n)=2006n+6n㏒n+29㏒2n,则其时间复杂度为()。 A: O(㏒n) B: O(n) C: O(n㏒n) D: O(㏒2n) 正确答案: (单选题)2: 若线性表的插入和删除操作频繁地在表头或表尾位置进行,则更适宜采用的存储结构为()。 A: 无头结点的双向链表 B: 带尾指针的循环链表 C: 无头结点的单链表 D: 带头指针的循环链表 正确答案: (单选题)3: 如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是()。 A: 栈 B: 队列 C: 树 D: 图 正确答案: (单选题)4: 判断两个串大小的基本准则是()。 A: 两个串长度的大小 B: 两个串中首字符的大小 C: 两个串中大写字母的多少 D: 对应的第一个不等字符的大小 正确答案: (单选题)5: 已知栈的最大容量为4。若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()。 A: 5,4,3,2,1,6 B: 2,3,5,6,1,4 C: 3,2,5,4,1,6 D: 1,4,6,5,2,3 正确答案: (单选题)6: 已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为()。 A: 5 B: 8 C: 11

D: 18 正确答案: (单选题)7: 设串sl=″Data Structures with Java″,s2=″it″,则子串定位函数index(s1,s2)的值为()。 A: 15 B: 16 C: 17 D: 18 正确答案: (单选题)8: 已知一棵含50个结点的二叉树中只有一个叶子结点,则该树中度为1的结点个数为()。 A: 0 B: 1 C: 48 D: 49 正确答案: (单选题)9: 在头指针为head的非空单循环链表中,指针p指向尾结点,下列关系成立的是()。 A: p->next==head B: p->next->next==head C: p->next==NULL D: p==head 正确答案: (单选题)10: 下面程序段的时间复杂度是()。 for(i=0;i<n;i++) for(j=1;j<m;j++) A[i][j]=0; A: O(n) B: O(m+n+1) C: O(m+n) D: O(m*n) 正确答案: (单选题)11: 抽象数据类型的三个组成部分分别为()。 A: 数据对象、数据关系和基本操作 B: 数据元素、逻辑结构和存储结构 C: 数据项、数据元素和数据类型 D: 数据元素、数据结构和数据类型 正确答案:

电子科大-系统结构实验-解决数据冒险

实 验 报 告 课程名称:计算机系统结构实验学院:计算机科学与工程学院专业:计算机科学与技术 指导教师:好老师 学生姓名:爱学习的小学生 20实验成绩: 日期:2017年5月19日

电子科技大学计算机学院实验中心 电子科技大学 实验报告 一、实验项目名称:解决数据冒险 二、实验室名称:主楼A2-412 实验时间:2017年5月19日 三、实验目的 在给出的流水线代码基础上,增加内部前推数据通路、暂停流水线数据通路和关闭写使能信号的数据通路,解决普通的数据冒险和load数据冒险,通过完成本次实验,更好地理解和掌握解决数据冒险的原理,学以致用,增强编写程序的能力。 四、实验原理 (一)数据冒险的定义 由于流水线上指令重叠执行,改变了原来串行执行的读/写操作数顺序,使得后面依赖前面指令结果的指令得不到准备好的数据,这样的现象叫做数据冒险(数据相关)。 回顾数据冒险的程序例子 I1: add r1,r2,r3 I2: sub r4,r1,r5 I3: and r6,r7,r1 I4: or r8,r1,r9 I5: addi r10,r1,100

I1下面有3条指令不能从寄存器r1读出正确的数据。 (二)数据冒险的解决方案 1、暂停流水线 如上图所示,暂停流水线到最初的指令执行完毕,可以解决数据冒险,但是会涉及到两个问题,即“如何检测出数据冒险”和“如何暂停流水线”。 如何检测数据冒险 a.比较器; I1指令写目的寄存器rd,I2和I3的源操作数是寄存器rs1或rs2中的数据,I2、I3的rs1或rs2与I1的目的寄存器号rd相等时才有可能发生数据冒险。 b.操作码参与检测; 由于指令格式中源寄存器号rs2与立即数部分重叠,而立即数是不会出现冒险的,因此,指令操作码必须要参与检测(区分是寄存器操作数还是立即数)。 c.WREG信号也应参与检测(实际上,WREG也是从操作码中得出的);

电子科大TCPIP第三次实验报告材料

实用文档 电子科技大学实 验 报 告 名:学生姓号:学TCP/IP协议名课程称: 教指导师:2016 年 11 日期:月 26 日 OSPF实验项目名称:协议的多区域特性分:告报评教师签字:

实用文档 一、实验原理 OSPF 协议(RFC 2328)是一个基于链路状态路由选择的内部网关协议:路由器仅 在网络拓扑变化时使用洪泛法(flooding)将自己的链路状态更新信息扩散到整个自治系统中。为了增强 OSPF 协议的可伸缩能力(Scalability),OSPF 协议引入了区域的概念来有效并及时的处理路由选择。OSPF 区域是包含在 AS 中的一些网络、主机和路由器的集合,自治系统中所有 OSPF 区域必须连接到一个主干区域(Area 0)上。 区域内的 OSPF 路由器(内部路由器,IR)使用洪泛法(flooding)传送本区域内的链路状态信息,区域边界的 OSPF 路由器(区域边界路由器,ABR)将本区域的信息汇总发给其他区域,自治系统边界的 OSPF 路由器(自治系统边界路由器,ASBR)将自治 系统外的路由(外部路由)发布在自治系统中。主干区域中的 OSPF 路由器也称为“主干路由器”(BR)。ABR 不能向 OSPF 残桩区域(Stub Area)通告外部路由。在多址网络中,为了避免不必要的链路状态洪泛,需要选举 1 个指定路由器(DR)和 1 个备份指定路由器(BDR)。OSPF 协议有 5 种类型的报文,它们被直接封装在 IP 分组中多播发送。 - 问候(Hello)报文:用来建立并维护 OSPF 邻接关系。在建立了邻接关系后, OSPF 路由器会定期发送 Hello 报文,来测试邻站的可达性。 - 数据库描述(DBD)报文:描述 OSPF 路由器的链路状态数据库的概要信息,即数据库中每一行的标题,它在两台相邻路由器彼此建立邻接关系时发送的。 - 链路状态请求(LSR)报文:由需要若干条特定路由信息的路由器发送出的,它的回答是 LSU 报文。新接入的路由器在收到 DBD 报文后,可以使用 LSR 报文请求关于某些路由的更多信息。 - 链路状态更新(LSU)报文:OSPF 的核心。OSPF 路由器使用 LSU 报文通告链路状态更新信息(即链路状态通告,LSA)每一个 LSU 报文可包含几个 LSA。, OSPF 协议的 LSA 有 5 种常用类型:路由器链路 LSA、网络链路 LSA、汇总链路到网络 LSA、汇总链路到 ASBR LSA 和外部链路 LSA。 5 种类型的 LSA这由不同类型的 OSPF 路由器产生,在特定类型的区域范围内扩散。 - 链路状态确认(LSAck)报文:用来确认每一个收到的 LSU 报文,使得 OSPF 协议的路由选择更加可靠。 二、实验目的 1、掌握 OSPF 协议中区域的类型、特征和作用 2、掌握 OSPF 路由器的类型、特征和作用 实用文档 3、掌握 OSPF LSA 分组的类型、特征和作用 4、理解 OSPF 区域类型、路由器类型和 OSPF LSA 分组类型间的相互关系

电子科技大学微机实验报告(含思考题)河畔下的哈】实验1

实验一 ARM汇编基础实验 1.掌握ARM汇编指令 2.学习掌握C与汇编混合编程基础 3.熟练使用ARM调试工具RVDS进行调试操作 1.熟悉ARM汇编 2.用ARM汇编实现1+2+...+N 3.C调用汇编实验(实现字符串拷贝功能) 4.汇编调用C实验 5.ARM汇编实现冒泡算法(选做) 1. ARM汇编、C语言 2. RVDS工具 硬件:PC 机Pentium100 以上 软件:Windows操作系统,RVDS软件 1.在汇编中使用C定义的全局变量 在汇编和C之间进行一些数据的传递,最简便的办法就是使用全局变量。 在汇编中调用C中定义的全局变量,需要在汇编中IMPORT 对应的全局变量。IMPORT 伪指令用于通知编译器要使用的标号或变量在其他的源文件中定义。 1

例如:汇编文件asmfile.s想调用C文件cfile.c中定义的全局变量a,则在汇编文件asmfile.s 前面要添加: IMPORT a 2.在汇编中调用C的函数 要在汇编中调用C文件中定义的函数,主要做两方面的工作: 首先:需要在汇编中IMPORT 对应的C函数名。 其次:在调用该 C函数之前还需要通过汇编语言传递该函数的 参数。 C和汇编之间的参数传递是通过A TPCS(ARM Thumb Procedure Call Standard)的规定来进行的。简单的说就是如果函数有不多于四个参数,对应的用ARM寄存器R0-R3来进行传递,多于4个时借助栈。函数的返回值通过R0来返回。 3.在C中调用汇编的函数 在C中调用汇编文件中的函数,要做的主要工作有两个: 一:是在C中声明函数原型,并加extern关键字; 二:是在汇编中用EXPORT导出函数名,并用该函数名作为汇 编代码段的标识,最后用mov pc,lr返回。然后,就可以 在C中使用该函数了。 EXPORT伪指令用于在程序中声明一个全局的标号,该标号可在其他的文件中引用。 1、用ARM汇编实现1+2+….n的运算。

电子科大实验报告撰写格式规范

实验报告撰写格式规范 一、一般格式和顺序 1、封面: (1)题目:应能概括整个论文最重要的内容,具体、切题、不能太笼统,但要引人注目;题名力求简短,严格控制在25字以内。 (2)导师:指导教师的署名一律以批准招生的为准,如有变动应正式提出申请并报研究生院备案,且只能填写指导教师一名。 (3)学生姓名和学号。 2、摘要:论文第一页为中文摘要,约500-800字左右。 内容应包括工作目的、研究方法、成果和结论,语言力求精炼。 3、目录:应是实验报告的提纲,也是实验报告组成部分的小标题,其内容从第一章开始。 4、主要符号表:如果实验报告中使用了大量的物理量符号、标志、缩略词、专门计量单位、自定义名词和术语等,应编写成注释说明汇集表。假如上述符号和缩略词使用数量不多,可以不设专门的汇集表,而在论文中出现时加以说明。 5、引言(第一章):在实验报告正文前,内容为:该研究工作的实用价值或理论意义;实验报告所要解决的问题。 6、正文:是实验报告的主体。按照仿真的步骤来逐一完成。 7、结论(最后一章):应明确、精炼、完整、准确,使人只要一看结论就能全面了解实验报告的意义、目的和工作内容。 8、工作分工:阐述每个成员的工作。 9、参考文献:如有,在这里列出。 二、论文的书写 1、语言表述 (1)论文应层次分明、数据可靠、文字简练、说明透彻、推理严谨,立论正确,避免使用文学性质的带感情色彩的非学术性词语。 (2)论文中如出现一个非通用性的新名词、新术语或新概念,需立即解释清楚。 2、层次和标题 (1)层次要清楚:标题要重点突出,简明扼要。 (2)层次代号的格式如下: 第一章××××(居中书写) 1.1 ×××× 1.1.1 ×××× 3、页眉和页码 页眉: (1)对摘要、目录等前置部分,页眉全用各部分内容的标题。

电子科技大学微嵌实验最新版

电子科技大学微嵌实验最新版

电子科技大学 实验报告 修正了M00和旧版答案的错误,代码使用Keil uVision5 均已调试通过。课程名称微处理器系统结构与嵌入式系统设计_____________________ 实验名称ARM基础编程实验_____________________________________ 任课教师________ 实验教师 ________ 姓名 ______ 学号__________ 实验地点分组号时间年月日、实验目的 1.熟悉并掌握常用ARM匚编指令 2.熟悉并掌握C+汇编混合编程技术 3.熟练使用ARM软件开发调试工具Keil _、实验内容 1.学习使用Keil开发工具 2.使用ARM匚编语言,编程头现1+2+ ...... +N累加运算功冃匕 3.使用C调用汇编函数,实现字符串拷贝功能 4.使用汇编调用C函数,实现求和运算功能 5.使用ARM匚编语言,实现冒泡排序算法(选做) 三、实验步骤

1.实验1.1 :运行Keil ,建立工程文件,单步运行调试演示示例程 序,深刻理解每一条指令,观察寄存器,内存空间的变化。 2.实验1.2 :用汇编语言实现1+2+...+N的累加: a)建立新工程,加入实验1.2文件夹中的sum.s。 b)用汇编补充算法核心部分,代码参考流程图如下图 1.1所示。 c)使用单步调试,仔细观察过程中关键寄存器值的变化。 R0暂存累加和 图 3.实验1.3 : C调用汇编实现字符串拷贝功能: a)建立新工程,加入实验1.3文件夹中的ma in .c和 testfile.s(同一个工程下添加两个文件一起编 译)。 b)补充完成源代码中缺失的部分,分别实现 1.拷贝源字符串的一个字节到R2中; 2.将拷贝的字节复制到目标空间。 c)运行Debug进行调试。 4.实验1.4 :汇编调用C实现求和1+2+...+10 : a)建立新工程,加入实验1.4文件夹中的sum.c和 testfile.s(同一个工程下添加两个文件一起编 译)。 b)补充完成源代 码中缺失的部分,通过调用c函数 g()实现1+2+3+glovb1,结果存在R8中。 c)运行Debug进行调试

电子科大数据挖掘作业1-6

数据挖掘课后习题 数据挖掘作业1——6 第一章绪论 1)数据挖掘处理的对象有哪些?请从实际生活中举出至少三种。 1、关系数据库 2、数据仓库 3、事务数据库 4、高级数据库系统和数据库应用如空间数据库、时序数据库、文本数据库和多媒体数据库等,还可以是 Web 数据信息。 实际生活的例子: ①电信行业中利用数据挖掘技术进行客户行为分析,包含客户通话记录、通话时间、所开通的服务等,据此进行客户群体划分以及客户流失性分析。 ②天文领域中利用决策树等数据挖掘方法对上百万天体数据进行分类与分析,帮助天文学家发现其他未知星体。 ③市场业中应用数据挖掘技术进行市场定位、消费者分析、辅助制定市场营销策略等。 2)给出一个例子,说明数据挖掘对商务的成功是至关重要的。该商务需要什么 样的数据挖掘功能?它们能够由数据查询处理或简单的统计分析来实现吗? 以一个百货公司为例,它可以应用数据挖掘来帮助其进行目标市场营销。运用数据挖掘功能例如关联规则挖掘,百货公司可以根据销售记录挖掘出强关联规则,来诀定哪一类商品是消费者在购买某一类商品的同时,很有可能去购买的,从而促使百货公司进行目标市场营销。数据查询处理主要用于数据或信息检索,没有发现关联规则的方法。同样地,简单的统计分析没有能力处理像百货公司销售记录这样的大规模数据。

第二章数据仓库和OLAP技术 1)简述数据立方体的概念、多维数据模型上的OLAP操作。 ●数据立方体 数据立方体是二维表格的多维扩展,如同几何学中立方体是正方形的三维扩展一样,是一类多维矩阵,让用户从多个角度探索和 分析数据集,通常是一次同时考虑三个维度。数据立方体提供数据 的多维视图,并允许预计算和快速访问汇总数据。 ●多维数据模型上的OLAP操作 a)上卷(roll-up):汇总数据 通过一个维的概念分层向上攀升或者通过维规约 b)下卷(drill-down):上卷的逆操作 由不太详细的数据到更详细的数据,可以通过沿维的概念分层向下或引入新的维来实现 c)切片和切块(slice and dice) 投影和选择操作 d)转轴(pivot) 立方体的重定位,可视化,或将一个3维立方体转化为一个2维平面序列 2)OLAP多维分析如何辅助决策?举例说明。 OLAP是在多维数据结构上进行数据分析的,一般在多维数据上切片、切块成简单数据来进行分析,或是上卷、下卷来分析。OLAP要查询 大量的日常商业信息,以及大量的商业活动变化情况,如每周购买量的 变化值,经理通过查询变化值来做决策。 例如经理看到利润小于预计值是,就会去深入到各地区去查看产品利润情况,这样他会发现一些比较异常的数据。经过进一步的分析和追 踪查询可以发现问题并解决 3)举例说明OLAP的多维数据分析的切片操作。 切片就是在某两个维上取一定区间的维成员或全部维成员。 如用三维数组表示为(地区,时间,产品,销售额),如果在地区维度上选定一个维成员,就可以得到在该地区的一个切片(关于时间和产 品的切片)。

电子科技大学 C语言第一次上机实验报告

电子科技大学学院 标准实验报告(实验)课程名称高级语言程序设计实验

电子科技大学 实验报告 实验时间:10月12日晚 一、实验室名称:校公共机房 二、实验项目名称:顺序和分支程序设计 三、实验学时:4学时 四、实验原理: 使用VS2010等C语言集成开发环境(IDE),在微型计算机上对程序进行编辑、编译、连接与运行。通过上机练习掌握在C编译器中编辑、编译、连接、和运行C程序的方法和过程。 五、实验目的: 1.熟悉C程序开发环境,熟悉C程序的编辑、编译、连接和运行的过程。 2.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型、指针型 变量,以及对它们赋值的方法。 3.掌握C语言的各种运算符,以及这些运算符的混合使用。 4.掌握简单顺序程序设计方法。 5.学会使用scanf和printf函数。 6.掌握分支结构各种语句的一般功能和执行过程,会使用分支结构编程。 六、实验内容: 上机完成以下编程实验,调试运行程序并完成报告。 1.编写一个C程序,输入三个整数,计算三个整数的和,并将结果输出。 2.编写一个C程序,输入一个字符,找到这个字符前后各隔一个字符的字符。 例如,输入‘d’,显示:‘b’和‘f’。 3.习题2.22(p91)

4.习题2.23(p91) 5.习题3.3(p134) 6.输入一个两位数,输出对应的英文单词。 七、实验器材(设备、元器件): 硬件要求:普通pc机,1G内存,100G硬盘空间即可。软件要求:Windows 7,包括C编译器的IDE。 八、实验步骤、实验编程与运行结果: 1.程序文件名为ex1_1,源程序清单如下: #include int main() { int a,b,c,d; scanf("%d %d %d",&a,&b,&c); d=a+b+c; printf("%d",d); } 典型测试数据(输入): 25 26 27 应输出(上机前自己分析的结果):78 上机时遇到的问题:wu 实际运行结果:78 2.程序文件名为ex1_2,源程序清单如下: #include void main() { int x,y,z; scanf("%c",&x); y=x+2; z=x-2;

生物信息数据挖掘_华中科技大学

华中科技大学生命学院2009-2010学年度第二学期考试试卷 《生物信息数据挖掘》考试试题 A卷 闭卷考试时间:150分钟 专业班级生息基地1101班姓名 *** 学号 U2011125** 分数 98 时间:2014/6/1 华中科技大学生命科学与技术版权所有1.若利用蛋白质二级结构端点附近6个位置上的氨基酸分布信息预测蛋白质二级结构端 点: (1)给出采用理想贝叶斯分类方法的一种决策函数及该函数需要确定的参数个数(10 分) 答案: 决策函数:参数个数:20^6*2+2。 (2)当采用朴素贝叶斯方法时,给出其决策函数及该函数需要确定的参数个数(10分) 答案: 决策函数:参数个数:20×6×2+2。 2.请给出采用贝叶斯网络方法预测Donor剪接位点的方案(20分) 答案: 在利用贝叶斯网络方法预测Donor剪接位点时,主要进行了以下操作: (1)利用Matlab完成贝叶斯网络的软件包的安装; (2)获取用于实验的真假样本; (3)利用列联表卡方检验对剪接位点序列各个位置间的相关性分析; (4)通过位置间的相关性分析结果构建贝叶斯网络结构; (5)通过学习真假训练样本,获得贝叶斯网络的概率分析以及位点的分值函数; (6)利用贝叶斯网络对样本进行预测,并进一步评估该网络的性能。 3.请给出采用HMM方法预测蛋白质二级结构的一种模型拓扑结构,并回答该模型共有多 少个参数需要确定(20分)

答案: 蛋白质二级结构通常有:α螺旋,β折叠,无规卷曲等。 若选取这三种二级结构作为隐状态时,HMM的拓扑结构为: 该模型拓扑结构图中,状态转移概率共有9个,每个状态中各个氨基酸的生成概率为20种,故共需要确定的参数个数为:9+20×3=69。 4.请设计采用SVM方法预测蛋白质二级结构的一种方案?(20分) 答案: (1)选取特征向量:如选取一段长为10个氨基酸的蛋白质序列作为特征向量,x=[x1x2x3x4x5x6x7x8x9x10]T,其中xi表示20种氨基酸中的一种。 (2)对特征向量进行编码:可以选择一个长度为20的0、1组合为20种氨基酸分别进行编码,如谷氨酸为000…001,赖氨酸为000…011等等。 (3)选择适当的核函数:在蛋白质的二级结构预测中可以选择径向基核函数: (4)对SVM模型进行参数训练。 (5)预测未知蛋白质的二级结构。 5.试给出考虑氨基酸组成及其疏水性将长度任意的蛋白质序列编码为固定长度特征向量 的一种方案,并给出该特征向量的维数(20分)。 答案: 首先考虑氨基酸的含量,因为长度不同的蛋白质序列均有20种氨基酸组成,只是不同序列的各种氨基酸的组成不同,以其组成分布可将任意长度的转化为20维的特征向量。此外,不同功能的蛋白质序列的有其特异长度分布,所以序列的长度也可以作为一个特征。然而,这样的处理虽然简单,但是可能会丢失大量信息,所以可以引入更精确的特征,例如20×20=400维二肽组成特征, 20×20×20=8000维三肽组成特征,甚至更多。

电子科技大学通信原理实验实验报告2

电子科技大学通信学院 最佳接收机(匹配滤波器) 实验报告 班级 学生 学号 教师任通菊

最佳接收机(匹配滤波器)实验 一、实验目的 1、运用MATLAB软件工具,仿真随机数字信号在经过高斯白噪声污染后最佳的恢复的方法。 2、熟悉匹配滤波器的工作原理。 3、研究相关解调的原理与过程。 4、理解高斯白噪声对系统的影响。 5、了解如何衡量接收机的性能及匹配滤波器参数设置方法。 二、实验原理 对于二进制数字信号,根据它们的时域表达式及波形可以直接得到相应的解调方法。在加性白高斯噪声的干扰下,这些解调方法是否是最佳的,这是我们要讨论的问题。 数字传输系统的传输对象是二进制信息。分析数字信号的接收过程可知,在接收端对波形的检测并不重要,重要的是在背景噪声下正确的判断所携带的信息是哪一种。因此,最有利于作出正确判断的接收一定是最佳接收。 从最佳接收的意义上来说,一个数字通信系统的接收设备可以看作一个判决装置,该装置由一个线性滤波器和一个判决电路构成,如图1所示。线性滤波器对接收信号进行相应的处理,输出某个物理量提供给判决电路,以便判决电路对接收信号中所包含的发送信息作出尽可能正确的判决,或者说作出错误尽可能小的判决。 图1 简化的接收设备 假设有这样一种滤波器,当不为零的信号通过它时,滤波器的输出能在某瞬间形成信号的峰值,而同时噪声受到抑制,也就是能在某瞬间得到最大的峰值信号功率与平均噪声功率之比。在相应的时刻去判决这种滤波器的输出,一定能得到最小的差错率。 匹配滤波器是一种在最大化信号的同时使噪声的影响最小的线性滤波器设计技术。注意:该滤波器并不保持输入信号波形,其目的在于使输入信号波形失 t输出信号值相对于均方根(输出)噪声值达到真并滤除噪声,使得在采样时刻 最大。

电子科技大学实验报告撰写模板

电子科技大学 实验报告 ( 2018 - 2019 - 2 ) 学生姓名:学生学号:指导老师: 实验学时:1.5h 实验地点:基础实验大楼425 实验时间:2019.4.9 14:30—16:00 报告目录 一、实验课程名称:电路实验I 1.实验名称:BJT放大器设计与测试 二、实验目的: 1. 了解BJT管的基本放大特性。 2. 掌握BJT共射放大电路的分析与设计方法。 3. 掌握放大电路静态工作点的测试方法。 4. 掌握放大电路放大倍数(增益)的测试方法。 5. 掌握放大电路输入、输出电阻的测试方法。 6. 掌握放大电路幅频特性曲线的测试方法。 三、实验器材(设备、元器件): GDS1152A型数字示波器一台。 EE1641B1型函数发生器一台。

通用面包板一个。 1kΩ电阻;10mH电感;0.047μF电容若干。 四、实验原理:

3、测试方法 (1)静态工作点调整与测试 对直流电压的测量一般用数字万用表。测量静态工作点时测出晶体管各管脚对地的电压。 (2)放大倍数的测试 用晶体管毫伏表或者示波器直接测量输出、输入电压,由 Av=vo/vi 即可得到。(3)放大器输入电阻的测试

在放大器输入端口串入一个取样电阻R,用两次电压法测量放大器的输入电阻Ri。 (4)放大器输出电阻的测试 在放大器输出端口选择一个合适的负载电阻RL,用两次电压法分别测量空载与接上负载时的输出电压,计算输出电阻Ro。 (5)放大器频率特性的测试 用点频法测试法测量放大器的频率特性,并求出带宽。 五、实验内容: (1)静态工作点的测试 (2)电压增益测试 (3)输入电阻测试 (4)输出电阻测试 (5)幅频特性测试 六、实验数据及结果分析: 1、静态工作点调整与测试 令VCC=+12V,用万用表测量VE、VB、VC,计算VBE、IEQ、VCE,数据记入表格中。 2、放大倍数的测试 用函数发生器输出一个正弦波信号作为放大器的输入信号,设置信号频率 f =1kHz,(有效值)Ui=5mV,测量U0 ,计算放大器的电压放大倍数(增益)Av。数据填入表中,定量描绘输出波形图。

电子科大射频实验报告_

电子科技大学通信射频电路实验报告 学生姓名: 学号: 指导教师:

实验一选频回路 一、实验内容: 1.测试发放的滤波器实验板的通带。记录在不同频率的输入下输出信号的 幅度,并绘出幅频响应曲线。 2.设计带宽为5MHz,中心频率为39MHz,特征阻抗为50欧姆的5阶带 通滤波器。 3.在ADS软件上对设计出的带通滤波器进行仿真。 二、实验结果: (一)低通滤波器数据记录及幅频响应曲线 低通滤波器数据记录表 频率/MHz 0 0.5 1 1.5 2 2.5 3 3.5 4 幅度/mV 1020 1030 1060 1110 1120 1060 944 840 768 频率/MHz 4.5 5 5.2 5.4 5.6 5.8 6 6.2 6.4 幅度/mV 712 672 656 640 624 600 580 556 528 频率/MHz 6.6 6.8 7 7.2 7.4 7.6 7.8 8 8.2 幅度/mV 500 468 444 412 388 356 332 308 280 频率/MHz 8.4 8.6 8.8 9 9.5 10 10.5 11 11.5 幅度/mV 256 236 216 196 156 116 88 66 49.2 频率/MHz 12 12.5 13 13.5 14 14.5 15 15.5 16 幅度/mV 37.2 28.2 21.8 17 13.4 10.8 8.6 7.4 6 频率/MHz 16.5 17 17.5 18 18.5 19 19.5 20 幅度/mV 5.2 2.4 2.2 1.4 1.2 1.2 1.2 1.8

基于大数据挖掘的科技项目查重模型研究_李善青

论文查重 Paperyy图书馆 数字技术 基于大数据挖掘的科技项目查重模型研究* 李善青,赵 摘要科技项目查重是避免重复立项、重复建设的重要措施之一,目前缺乏行之有效的方法。文 章提出基于大数据挖掘和多源信息整合的项目查重方法,以科技项目的基本信息、发表论文信息、 关键词、负责人信息和承担机构等要素构建的大数据网络为研究对象,利用多源信息整合方法构建 科技项目的相似度判别模型,并采用 Hadoop框架实现海量数据的快速挖掘。文章介绍项目查重模 型,重点讨论需要解决的关键问题,为解决项目查重问题提供一种全新的思路和方法。 关键词 引用本文格式 2014(2):78- 83. Study on Detection Model of Similar Scientific Project Based on Big Data Mining LI Shan- qing,ZHAO Hui,SONG Li- rong Abstract there is no way to Find out similar project eFFectively For the moment. This paper proposes a novel method oF detecting scientiFic projects similitude based on big data mining and multi -source inFormation integration. Using that method,the authors studied the huge data network consisting oF the inFormation about the project,published papers,experts and institutions,as well as the keywords;built up a detection model oF project similitude by integrating multi-source inFormation;and adopted the Hadoop to speed up big data mining. This paper presents the detection model oF project similitude and its key issues;in hope oF providing brand -new thinking and methods For detecting similar projects in scientiFic project management. Keywords

电子科大15春《数据结构》在线作业123与答案

在线作业一: 一、单选题(共16 道试题,共48 分。) 1. 已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。 A. q->next=s->next;s->next=p B. s->next=p;q->next=s->next C. p->next=s->next;s->next=q D. s->next=q;p->next=s->next 正确答案:A 2. 高度为5的完全二叉树中含有的结点数至少为()。 A. 16 B. 17 C. 31 D. 32 正确答案:A 3. 设有两个串T和P,求P在T中首次出现的位置的串运算称作()。 A. 联接 B. 求子串 C. 字符定位 D. 子串定位 正确答案: D 4. 对于哈希函数H(key)=key%13,被称为同义词的关键字是()。 A. 35和41 B. 23和39 C. 15和44 D. 25和51 正确答案:D 5. 算法分析的目的是()。 A. 辨别数据结构的合理性 B. 评价算法的效率 C. 研究算法中输入与输出的关系 D. 鉴别算法的可读性 正确答案:B 6. 在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若 p->next->next=head,则()。 A. p 指向头结点 B. p 指向尾结点 C. *p 的直接后继是头结点 D. *P 的直接后继是尾结点 正确答案:D 7. 数据结构是() A. 一种数据类型 B. 数据的存储结构 C. 一组性质相同的数据元素的集合 D. 相互之间存在一种或多种特定关系的数据元素的集合 正确答案:D 8.采用两类不同存储结构的字符串可分别简称为()。 A. 主串和子串 B. 顺序串和链串 C. 目标串和模式串 D. 变量串和常量串 正确答案:B 9.已知函数Sub(s,i,j)的功能是返回串s中从第i个字符起长度为j的子串,函数Scopy(s,t)的功能为复制串t到s。若字符串S=″SCIENCESTUDY″,则调用函数Scopy(P,Sub(S,1,7))后得到()。 A. P=″SCIENCE″ B. P=″STUDY″ C. S=″SCIENCE″ D. S=″STUDY″ 正确答案:A 10.在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若 p->next->next= head,则()。 A. p 指向头结点 B. p 指向尾结点 C. *p 的直接后继是头结点 D. *P 的直接后继是尾结点 正确答案:D 11.若一棵二叉树有11个叶子结点,则该二叉树中度为2的结点个数是()。

电子科技大学微机实验报告(含思考题)河畔下的哈】实验3

实验三 ARM汇编实现串口通信实验 1.掌握ARM 的串行口工作原理。 2.学习编程实现ARM和PC机的UART通信。 3.掌握ARM裸机下汇编语言编程方法。 1.学习串行通信原理,了解串行通信控制寄存器。 2.编程实现ARM 和计算机之间的串行通信。 1、ARM汇编基础 2、ARM处理器通用IO口的操作 ? 硬件:ARM嵌入式开发平台,PC 机一台,并口线,串口线,JTAG板? 软件:RVDS,H-JTAG 1.异步串行I/O

异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线(输入,输出)即可进行。 2.串口通信流程 串口通信就是读写寄存器的操作,通过配置相关寄存器,查询寄存器就可以操作串口通信。 需要配置的寄存器有系统时钟,UART行控制寄存器,UART控制寄存器,UART FIFO控制寄 存器,UART MODEM控制寄存器,UART波特率控制寄存器;需要查询的寄存器是发送/接收状 态寄存器。 1. 打开CodeWarrior for RVDS,建立一个工程,通过查S3C2440处理器手册的UART通信寄存器,serialcommutication.s文件中添加代码实现串口通信传输 2. 设置工程配置选项,Language Setting->Realview Assembler和Realview Compiler中的Architecture设置为ARM920T,配置RVDS下的连接器Linker->Realview Linker中的RO Base 为0x30000000 3. 编译和调试工程。 4. 连接PC和实验板的并口,串口;并口连接至ARM的JTAG口,串口连接至COM PORT 口;打开电源;打开H-JTAG程序(。 5. 点击调试器Dubeg->Run,运行程序,打开超级终端,在开始->程序->附件->通讯里打开

河南科技大学数据挖掘课程设计报告

河南科技大学 课程设计说明书 课程名称__软件项目综合实践__ 题目超市商品销售数据挖掘系统 学院信息工程学院 班级计科113 学生姓名彭逸帆 学号 111404060319 指导教师白秀玲、赵海霞、张蕾 日期 2014.9.22~2014.9.30

目录 第1章数据挖掘基本理论 (1) §1.1数据挖掘的概念 (1) §1.2数据挖掘的步骤 (1) 第2章系统分析 (1) §2.1系统用户分析 (1) §2.2系统功能分析 (2) §2.3系统算法分析 (2) 第3章数据管理 (2) §3.1数据管理的方法 (2) §3.2数据管理的具体实现过程 (2) 第4章数据采集 (2) §4.1数据采集的方法 (2) §4.2数据采集的具体实现过程 (2) 第5章数据预处理 (2) §5.1数据预处理的方法 (2) §5.2数据预处理的具体实现过程 (4) 第6章数据挖掘 (4) §6.1算法描述与流程图 (5) §6.2数据结构的设计 (5) §6.3算法的具体实现 (6) 第7章结果显示与解释评估 (6) §7.1参数设置 (11) §7.2结果显示界面的具体实现 (11) §7.3解释评估 (11) 学习体会 (15) 参考文献 (15) 致谢 (15)

§第1章数据挖掘基本理论 §1.1数据挖掘的概念 数据挖掘又称为数据库中知识发现,它是一个从大量数据中抽取挖掘出来未知的、有价值的模式或规律等知识的复杂过程。 §1.2数据挖掘的步骤 首先进行数据预处理,从数据库里提取数据,使其形成集合列表形式,以便在程序中扫描数据库的时候,可以直接遍历此集合列表,即达到扫描数据的目的。然后生成K项频繁集。最后通过K项频繁集与最小信任度比较获得关联规则。并显示关联规则。生成K项频繁集的过程,首先是生成1项频繁集,之后利用递 归方法,直到不能再生成频繁集为止。 §第2章系统分析 §2.1 系统用户分析 利用数据挖掘技术可以帮助获得决策所需的多种知识。在许多情况下,用户并不知道数据存在哪些有价值的信息知识,因此对于一个数据挖掘系统而言,它应该能够同时搜索发现多种模式的知识,以满足用户的期望和实际需要。此外数据挖掘系统还应能够挖掘出多种层次(抽象水平)的模式知识。数据挖掘系统还应容许用户指导挖掘搜索有价值的模式知识。比如:作为一个商场主管,肯定想要知道商场顾客的购物习惯;尤其是希望了解在(一次)购物过程中,那些商品会在一起被(顾客所)购买。为帮助回答这一问题,就需要进行市场购物分析,即对顾客在商场购物交易记录数据进行分析。所分析的结果将帮助商场主管制定有针对性的市场营销和广告宣传计划,以及编撰合适的商品目录。比如:市场购物分析结果将帮助商家对商场内商品应如何合理摆放进行规划设计。其中一种策略就是将常常一起购买的商品摆放在相邻近的位置,以方便顾客同时购买这两件商品;如:如果顾客购买电脑的同时常也会购买一些金融管理类软件,那么将电脑软件摆放在电脑硬件附近显然将有助于促进这两种商品的销售;而另一种策略则是将电脑软件与电脑硬件分别摆放在商场的两端,这就会促使顾客在购买两种商品时,走更多的路从而达到诱导他们购买更多商品的目的。比如:顾客在决定购买一台昂贵电脑之后,在去购买相应金融管理软件的路上可能会看到安全系统软件,这时他就有可能购买这一类软件。市场购物分析可以帮助商场主管确定那些物品可以进行捆绑减价销售,如一个购买电脑的顾客很有可能购买一个捆绑减价销售的打印机。

相关文档
最新文档