杭电计组实验四

合集下载

杭电软件实验报告(3篇)

杭电软件实验报告(3篇)

第1篇一、实验背景与目的随着计算机技术的飞速发展,软件工程已成为计算机科学与技术领域的重要组成部分。

为了让学生更好地掌握软件工程的基本理论、方法和实践技能,提高软件设计、开发和测试能力,杭州电子科技大学计算机学院特开设了软件实验课程。

本次实验旨在通过实际操作,让学生了解软件工程的基本流程,掌握软件设计、编码、测试等关键步骤,培养学生的团队协作能力和创新意识。

二、实验环境与工具1. 实验环境:Windows 10操作系统,Java Development Kit(JDK)1.8,Eclipse IDE。

2. 实验工具:Git版本控制工具,JUnit测试框架,Maven构建工具。

三、实验内容与步骤1. 项目需求分析本次实验项目要求设计一个简单的学生信息管理系统,包括学生基本信息、课程信息、成绩信息等。

系统应具备以下功能:(1)学生信息管理:增加、删除、修改、查询学生信息。

(2)课程信息管理:增加、删除、修改、查询课程信息。

(3)成绩信息管理:增加、删除、修改、查询成绩信息。

2. 系统设计(1)系统架构设计:采用MVC(Model-View-Controller)模式,将系统分为模型(Model)、视图(View)和控制器(Controller)三个部分。

(2)模块划分:根据功能需求,将系统划分为学生信息模块、课程信息模块、成绩信息模块和主界面模块。

3. 编码实现(1)学生信息模块:实现学生信息的增删改查功能。

(2)课程信息模块:实现课程信息的增删改查功能。

(3)成绩信息模块:实现成绩信息的增删改查功能。

(4)主界面模块:实现系统启动、功能导航、退出等功能。

4. 测试与调试(1)单元测试:使用JUnit测试框架对各个模块进行单元测试,确保模块功能正确。

(2)集成测试:将各个模块集成在一起,进行集成测试,确保系统整体功能正常。

(3)性能测试:对系统进行性能测试,评估系统响应速度、资源消耗等性能指标。

5. 项目部署与发布(1)使用Maven构建工具生成项目打包文件。

杭电计组实验8-实现R型指令的CPU设计实验

杭电计组实验8-实现R型指令的CPU设计实验
3'b010:begin F=A^B;ZF=(F==32'b0)?1:0;end
3'b011:begin F=~(A|B);ZF=(F==32'b0)?1:0;end
3'b100:begin {OF1,F}=A+B+0;ZF=(F==32'b0)?1:0;OF=OF1^F[31];end
3'b101:begin {OF2,F}=A+(~B)+1;ZF=(F==32'b0)?1:0;OF=OF2^F[31];end
output wire[0:31]R_Data_B;
integer i=0;
always@(posedge Clk or posedge Reset)
begin
if(Reset)
begin
for(i=0;i<=31;i=i+1)
REG_Files[i]<=32'b0;
end
else
begin
if(Write_reg) REG_Files[W_Addr]<=W_Data;
其实编写实验八的过程也就是将前面所有的实验进行一次应用和巩固的过程。当然了,在这个实验中同样涉及到了IP核的应用。在这个实验八编写完成后,我收获了很多。
指导教师评议
实验步骤写的时候,最好自己按照所做步骤写,二人不要一模一样。
成绩:指导教师签名:
(7)同样类似创建shiyan8的CPU模块,完成创建后。编辑程序源代码,引用ALU模块、寄存器堆模块,取指令模块实例。并定义一组信号将各模块有序连接。然后编译。并进行运行,观察是否正确。
(9)在工程管理区将View类型设置成Simulation,在任意位置右击,选择New Source命令,选择Verilog Test Fixture选项。点击Next,点击Finish,完成。编写实shiyan8的仿真代码,观察仿真波形,如果验证逻辑有误,则修改代码,重新编译,仿真,直至正确。

杭电计组实验5-存储器设计实验

杭电计组实验5-存储器设计实验
5’b000006 32’b0000000632’b0000000632'h0055_752332'h0055_7523
5’b000007 32’b0000000732’b0000000732'h0055_752332'h0055_7523
(2)答:这些单元的数据已经被改写了。读出数据与写入数据一致。
RAM_B uut (
.clka(clka),
.wea(wea),
.addra(addra),
.dina(dina),
.douta(douta)
);
initial begin
// Initialize Inputs
clka = 0;
wea = 0;
addra = 0;
dina = 0;
// Wait 100 ns for global reset to finish
NET "Clk" LOC = C9;
NET "LED[4]" LOC = M11;
NET "LED[3]" LOC = V15;
NET "LED[2]" LOC = U15;
NET "LED[1]" LOC = V16;
NET "LED[0]" LOC = U16;
NET "Mem_Addr[7]" LOC = U8;
output reg [7:0]LED;
wire [31:0]M_R_Data;//存在存储器里的32位读出数据
reg [31:0]M_W_Data;//寄存在暂存器的32位写入数据
RAM_B test_ram (

杭电计组实验-存储器设计实验

杭电计组实验-存储器设计实验

杭电计组实验-存储器设计实验————————————————————————————————作者:————————————————————————————————日期:实验报告2018 年 5 月 5 日成绩:姓名阳光男学号16041321 班级16052317专业计算机科学与技术课程名称《计算机组成原理与系统结构试验》任课老师张翔老师指导老师张翔老师机位号默认实验序号5实验名称《实验五存储器设计实验》实验时间2018/5/12实验地点1教211实验设备号个人电脑、Nexys3开发板一、实验程序源代码存储器顶层电路代码:module top_RAM_B(Mem_Addr,C,Mem_Write,Clk,LED);input [7:2]Mem_Addr;//开关的3、4、5、6、7、8位input Mem_Write,Clk;//clk为按键C9,读写使能信号为按键C4,0为读,1为写input [1:0]C;//选择写入数据+读操作时选择显示字节,为开关1、2位output reg [7:0]LED;wire [31:0]M_R_Data;//存在存储器里的32位读出数据reg [31:0]M_W_Data;//寄存在暂存器的32位写入数据RAM_B test_ram (.clka(Clk), //输入时钟信号.wea(Mem_Write), //输入读写信号.addra(Mem_Addr[7:2]), //输入5位地址信号.dina(M_W_Data), //写入32位数据.douta(M_R_Data) //读出32位数据);always@(*)beginLED=0;//初始化M_W_Data=0;//初始化if(!Mem_Write)//读操作begincase(C)2'b00:LED=M_R_Data[7:0];//读出数据的0-7位2'b01:LED=M_R_Data[15:8];//读出数据的8-15位2'b10:LED=M_R_Data[23:16];//读出数据的16-23位2'b11:LED=M_R_Data[31:24];//读出数据的24-31位endcaseendelsebegincase(C)2'b00:M_W_Data=32'h0055_7523;//写入第一个数据2'b01:M_W_Data=32'h1234_5678;//写入第二个数据2'b10:M_W_Data=32'h8765_4321;//写入第三个数据2'b11:M_W_Data=32'hffff_ffff;//写入第四个数据endcaseendendendmodule测试代码:module test;// Inputsreg clka;reg [0:0] wea;reg [5:0] addra;reg [31:0] dina;// Outputswire [31:0] douta;// Instantiate the Unit Under Test (UUT)RAM_B uut (.clka(clka),.wea(wea),.addra(addra),.dina(dina),.douta(douta));initial begin// Initialize Inputsclka = 0;wea = 0;addra = 0;dina = 0;// Wait 100 ns for global reset to finish #100;// Add stimulus hereclka = 1;wea = 0;addra = 6'b000001;dina = 32'h0000_0003;#100;clka = 0;wea = 0;addra = 6'b000001;dina = 32'h0000_0607;#100;clka = 1;wea = 1;addra = 6'b000001;dina = 32'hFFFF_FFFF;#100;clka = 0;wea = 1;addra = 6'b000001;dina = 32'hFFFF_FFFF;endendmodule二、仿真波形三、电路图顶层电路模块顶层电路内部结构:四、引脚配置(约束文件)NET "Clk" LOC = C9;NET "LED[4]" LOC = M11;NET "LED[3]" LOC = V15;NET "LED[2]" LOC = U15;NET "LED[1]" LOC = V16;NET "LED[0]" LOC = U16;NET "Mem_Addr[7]" LOC = U8;NET "Mem_Addr[6]" LOC = N8;NET "Mem_Addr[5]" LOC = M8;NET "Mem_Addr[4]" LOC = V9;NET "Mem_Addr[2]" LOC = T10;NET "Mem_Write" LOC = C4;NET "Mem_Addr[3]" LOC = T9;NET "C[1]" LOC = T5;NET "C[0]" LOC = V8;NET "LED[7]" LOC = T11;NET "LED[5]" LOC = N11;NET "LED[6]" LOC = R11;五、思考与探索(1)读操作实验结果记录表存储器地址初始化数据读出数据写入新数据读出数据5’b000000 32’b0000000032’b0000000032'h0055_752332'h0055_7523 5’b000001 32’b0000000132’b0000000132'h0055_752332'h0055_7523 5’b000002 32’b0000000232’b0000000232'h0055_752332'h0055_7523 5’b000003 32’b0000000332’b0000000332'h0055_752332'h0055_7523 5’b000004 32’b0000000432’b0000000432'h0055_752332'h0055_7523 5’b000005 32’b0000000532’b0000000532'h0055_752332'h0055_7523 5’b000006 32’b0000000632’b0000000632'h0055_752332'h0055_7523 5’b000007 32’b0000000732’b0000000732'h0055_752332'h0055_7523 (2)答:这些单元的数据已经被改写了。

杭电计算机组成原理寄存器堆设计实验

杭电计算机组成原理寄存器堆设计实验

杭电计算机组成原理寄存器堆设计实验计算机组成原理是计算机科学与技术的基础课程之一,它涉及到计算机的基本组成部分和原理。

在这门课程中,学生通常需要进行一系列的实验来加深对计算机组成原理的理解和应用。

其中之一是关于寄存器堆的设计实验。

寄存器堆是计算机中重要的组成部分之一,它用于存储、读取和写入数据。

在计算机中,数据通常被存储在寄存器中,然后进行各种操作。

因此,设计一个高效可靠的寄存器堆对于计算机的性能至关重要。

根据实验要求,我们需要设计一个8位的寄存器堆,并实现读取、写入和清零等操作。

以下是针对该实验的设计思路和实施步骤。

首先,我们需要确定寄存器堆的结构。

由于该寄存器堆为8位宽度,我们选择使用一个8x8的存储单元阵列。

每个存储单元都可以存储一个8位的数据。

整个寄存器堆由8个存储单元组成,每个存储单元对应一个地址,即0~7接下来,我们需要设计寄存器堆的读写电路。

对于读操作,我们需要通过地址线来选择要读取的存储单元,并将其输出到数据线。

对于写操作,我们同样需要通过地址线来选择要写入的存储单元,并将数据线上的数据写入该存储单元。

为了实现这些操作,我们需要使用多路选择器和数据解码器。

在设计中,我们还需要考虑到时钟信号的输入,以确保读写操作在时钟的上升沿或下降沿进行。

此外,我们还需要添加清零功能,以便将寄存器堆的值重置为零。

为实现清零功能,我们可以将一个额外的输入线与所有存储单元的清零输入连接。

在实施阶段,我们需要使用Verilog或其他硬件描述语言来实现设计。

在代码中,我们首先声明一个8位宽的存储单元阵列作为寄存器堆的基本组成部分。

然后,我们定义读写电路,包括地址线、数据线、多路选择器和数据解码器。

最后,我们添加时钟信号和清零功能。

在完成设计后,我们可以通过仿真工具进行验证。

通过输入不同的数据和地址,观察输出结果是否符合预期。

如果存在问题,我们可以进行调试并进行必要的修改。

一旦仿真结果正确无误,我们就可以开始进行硬件实验了。

杭电计算机组成原理实验报告.doc

杭电计算机组成原理实验报告.doc

杭电计算机组成原理实验报告篇一:杭电计组实验报告9计组实验九老师:包健一、源代码测试模块代码:moduleTest_Top;// Inputsreginclk;regmem_clk;regrst;reg [3:0] SW;// Outputswire [7:0] LED;// Instantiate the Unit Under TestTop uut ,.mem_clk,.rst,.LED,.SW);reg [2:0] i;initial begin// Initialize Inputsinclk = 0;mem_clk = 0;rst = 0;SW = 0;i=0;// Wait 100 ns for global reset to finish #100;rst = 1;#100;rst =0 ;#100;foreverbegin#100;mem_clk=~mem_clk;i=i+1;ifinclk=~inclk;endendendmodule顶层模块代码:moduleMy_I_CPU;wireclk_n = ~clk;wire[31:0] codes;Inst_Fetch1 inst_fetch,.clk,.Inst_codes);wire[5:0] OP;wire[5:0] func;wire[2:0] ALU_OP;wirerd_rt_s;wireimm_s;wirert_imm_s;wirealu_mem_s;wireWrite_Reg;wireMem_Write;wire [15:0] imm;wire [31:0] imm_data ;assign imm_data = ?{{16{imm[15]}},imm}:{{16{1b0}},imm}; assign OP =codes[31:26];assignfunc = codes[5:0];assignimm = codes[15:0]; OP_Decoderop_decoder,//input.func,//input.ALU_OP,.rd_rt_s,.imm_s,.rt_imm_s,.alu_mem_s,.Write_Reg,.Mem_Write);wire[4:0] rs;wire[4:0] rt;wire[4:0] rd;assigs = codes[25:21];assigt = codes[20:16];assigd = codes[15:11];wire[4:0] W_Addr;assignW_Addr=?rt:rd;wire [31:0]W_Data;wire [31:0]R_Data_A;wire [31:0]R_Data_B; RegisterHeapregister,.R_Addr_B,.W_Addr,.Write_Reg,.Reset,.Clk,.W_Data,.R_Data_A,.R_Data_B);wire [31:0]ALU_A;wire [31:0]ALU_B;assign ALU_A = R_Data_A;assign ALU_B = ?imm_data:R_Data_B;ALU alu,.A,.B,.F,.ZF,.OF);Data_Memdata_mem , // input clka.wea, // input [0 : 0] wea .addra, // input [5 : 0] addra .dina, // input [31 : 0] dina .douta // output [31 : 0] douta);assignW_Data = ?M_R_Data:ALU_F; endmodule二、仿真波形三、电路图四、引脚配置篇二:杭电计算机组成原理取指令与指令译码实验7杭州电子科技大学计算机学院实验报告课程名称:计算机组成原理姓名实验项目:取指令与指令译码实验班级指导教师:学号:实验位置:日期:篇三:杭电计算机组成原理多功能ALU设计实验3杭州电子科技大学计算机学院实验报告课程名称:计算机组成原理姓名:实验项目:多功能ALU设计实验班级:指导教师:学号:实验位置:日期:2015年4月29日。

杭电自动化专业计算机控制系统实验报告

杭电自动化专业计算机控制系统实验报告

实验一、常规PID控制算法仿真仿真框图如下实验参数:shiyanpid Ts=0.1s,b为班号1~5,x为学号后2位,1~45实验要求:(1)画Simulinnk框图(2)设计或凑试PID三个参数,进行仿真(3)使稳态误差为0,且动态性能较满意仿真框图:实验分析:b=1,x=15。

比例系数Kp增大时系统动作灵敏,响应速度加快,过大会使振荡次数增加,系统趋向不稳定,这里取120。

积分环节可以消除稳态误差,Ti减小,系统振荡次数增加,这里取Ki为150。

微分环节可以改善系统动态性能,减小超调和调节时间,这里取Kd为10。

系统在2秒内达到稳态。

实验二、积分分离PID控制算法仿真实验参数:shiyanpidjffl Ts=0.1s,b为班号1~5,x为学号后2位,1~45实验要求:(1)画Simulinnk框图(2)使稳态误差为0,且动态性能较满意(3)尝试不同的积分分离的阈值(比如ε=0,0.1,0.2,……,0.9,1),观察阶跃响应,并确定最佳的阈值实验框图:翻译后Switch模块的说明:如果2输入满足规则,则1通道通过,否则3输入通过。

输入被标号。

1输入通过规则是输入2(偏差e)大于或等于阀值。

第一三输入为数据输入,第二输入为控制输入。

原理:|e(k)|<=ε,ki起作用|e(k)|>ε,ki不起作用,由于阶跃输入,(treshhold )ε=0.1,0.2,……,0.9,1。

由于参数原因去kp=50,ki=kd=0时,曲线最好为了体现ε的作用,积分值不取0,改为Ki=10取不同ε后的曲线ε=0.1ε=0.5ε=1分析:ε=0.1时曲线最好,ε过大起不到积分分离的作用,比如ε=1,总会存在积分作用,ε过小可能是控制不能跳出积分分离的区域,从而只存在PD作用,长时间存在静差。

实验三、不完全微分PID控制算法仿真1、不完全微分PID控制器的阶跃响应实验参数:Shiyanpidbwqwfstep Ts=0.1s,仿真时间设为10s,5s,3s P=1 I=1 D=1滤波器参数a=0.1,0.2,……,0.8,1.2,实验框图:框图1:积分输出:微分输出:可见微分只在第一个单位时间有相应,而且较大框图2:a=0.1时a=0.5时:a=1时:分析:引入惯性环节后,对微分环节对阶跃响应有明显的改善作用。

杭电单片机实验报告四

杭电单片机实验报告四

单片机原理与应用技术实验报告实验题目:定时/计数器应用姓名:* * *学号:********实验日期: 2017.5.28指导教师:高惠芳1.实验内容1、已知震荡频率为12MHz,用定时/计数器T0,实现从P2.0口产生周期为100ms的方波。

要求用汇编语言和C语言编程实现,编程方法分别用中断方法和查询方法。

用中断方式:C语言代码://从P2.0引脚输出周期为100ms的方波//由定时器T0产生50ms的定时//T0工作于方式1可以实现50ms的定时//X=65536-50/0.001=15536=3CB0H#include <reg51.h>sbit p2_0 = P2^0;void main(void){TMOD=0X01;EA=1;ET0=1;TH0=(65536-50000)/256;//TH0=0x3C;TL0=(65536-50000)%256;//TL0=0xB0;TR0=1;while(1);}void timer0(void) interrupt 1 using 1{TH0=(65536-50000)/256;//TH0=0x3C;TL0=(65536-50000)%256;//TL0=0xB0;p2_0=!p2_0;}汇编语言代码:ORG 0000HLJMP MAINORG 000BHAJMP SER_T0ORG 0100HMAIN: MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB E T0SETB TR0SJMP $SER_T0: MOV TH0,#3CHMOV TL0,#0B0HCPL P2.0RETIEND用查询方式:C语言程序代码://从P2.0引脚输出周期为100ms的方波//由定时器T0产生50ms的定时//T0工作于方式1可以实现50ms的定时//X=65536-50/0.001=15536=3CB0H#include <reg51.h>sbit p2_0 = P2^0;void main(void){TMOD=0X01;TH0=(65536-50000)/256;//TH0=0x3C;TL0=(65536-50000)%256;//TL0=0xB0;TR0=1;while(1){TH0=(65536-50000)/256;TL0=(65536-50000)%256;while(!TF0);p2_0=!p2_0;}}汇编语言:ORG 0000HLJMP MAINORG 0100HMAIN: MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HLOOP: JBC TF0,NEXTSJMP LOOPNEXT: MOV TH0,#3CHMOV TL0,#0B0HCPL P2.0SJMP LOOPEND2、已知震荡频率为6MHz,用定时/计数器T0,实现从P1.0口产生周期为1s,占空比为30%波形。

杭电自动化单片机实验报告

杭电自动化单片机实验报告

单片机原理与应用及 C51 程序设计实验报告实验名称:单片机技术实验实验一继电器控制输出实验一、实验目的1.掌握 STC12C5A16S2 单片机的最基本电路的设计;2.了解单片机 I/O 端口的使用方法;3.了解继电器和蜂鸣器控制电路以及小电压控制大电压的方法。

三、 电路二、 实验要求 1. 利用 STC12C5A16S2 单片机的 P1.2、P1.3 口作按钮 S9 和 S10 输入, P1.0 和 P1.1 口作开关量输出,并分别控制一个 5V 的继电器和蜂鸣器。

2. 当 S9 闭合时, P1.0 控制继电器闭合并控制灯泡闪亮;当 S9 断开时,继 电器触电断开,灯泡不亮; 3. 当 S10 闭合时, P1.1 控制蜂鸣器闭合并发出声音;当 S10 断开时,蜂鸣 器不响。

四、原理说明Q1、Q2 为 9012 三极管即 PNP 型,低电平导通,当 S9 或者 S10 按下时,相应的 IO 口拉低,当 P1.0 或者 P1.1 赋 0 时即可控制继电器的吸合活着蜂鸣 器的发声。

五、程序代码#include <reg52.h>sbit L1=P1^1;sbit L2=P1^2;sbit L3=P1^3;sbit L0=P1^0;//定义位变量void delay(){int i,j;for(i=0;i<250;i++)for(j=0;j<250;j++);//利用系统时钟,定义延时函数}void main () {int n=20;while(1){if(L2==0){while(n--){L0=0;delay();L0=1;delay();}n=20;}if(L3==0){while(n--){L1=0;delay();L1=1;delay();}n=20;}}}//不断循环检测//判断 S9 输入//灯泡以 2*delay 为周期闪亮//判断 S10 闭合//蜂鸣器以 2*delay 为周期发声实验二 LED 轮换点亮实验一、实验目的1. 掌握 STC12C5A16S2 单片机的 I/O 电路设计;2. 学习 SN74HC573 数据锁存输出方法。

计组报告(算术逻辑运算实验)

计组报告(算术逻辑运算实验)
1.掌握简单运算器的数据传送通路。
2.验证运算器74LS181算数逻辑运算功能。
实验环境
Yy-z02计算机组成原理教学实骤和方法)
步骤:
(1)根据实验原理和相关单元电路,画出实验接线图,连接线路,仔细检查接线无误后,接通电源。
(2)通过输入设备INPUT DEVICE向暂存器DA1和DA2置数。
接上实验内容算法程序步骤和方法本实验中输入设备的ai接地表示选中该设备其数据开关inputdevice在输入数据时必须连接至总线使输入设备的数据输入总线
杭州电子科技大学计算机学院
实验报告
课程名称:计算机组成原理实验
实验项目:算术逻辑运算实验
指导教师:__
实验位置:
姓名:__
班级:
学号:
日期:
实验目的
F=(11111101)
0FD
05CH
1111
F=(11111100)
F=(11111101)
F=(11111101)
结论(结果)
运算器74LS181算术逻辑运算功能正常,可以进行正确的算数与逻辑运算。
试验心得与小结
指导教师
评议
成绩评定:指导教师签名:
0FD
05CH
0101
F=(10011110)
F=(10011111)
F=(10100011)
0FD
05CH
0110
F=(10100000)
F=(10100001)
F=(10100001)
0FD
05CH
0111
F=(10100000)
F=(10100001)
F=(10100001)
0FD
05CH
1000

杭电电子线路实习实验报告

杭电电子线路实习实验报告

杭电电子线路实习实验报告一、实验目的1. 加深对电子线路理论知识的理解,提高实际操作能力。

2. 掌握基本电子仪器的使用方法,如示波器、信号发生器、万用表等。

3. 学习电子线路的安装与调试方法,培养动手能力和团队协作精神。

二、实验内容本次实验为电子线路安装与调试实验,主要包括以下内容:1. 根据电路图搭建电路;2. 正确使用仪器进行测试;3. 分析测试数据,判断电路是否存在问题;4. 调整电路参数,使电路达到预期性能;5. 撰写实验报告。

三、实验过程1. 根据实验指导书给出的电路图,搭建电路。

在搭建过程中,要注意元器件的极性、引脚顺序等,确保电路的正确性。

2. 使用万用表测量电路中的电压、电流等参数,初步判断电路是否正常。

3. 使用示波器观察电路中的信号波形,分析电路的性能。

如有问题,需调整电路参数,如电阻值、电容值等。

4. 针对电路中可能存在的问题,进行多次调试,直至电路性能达到预期。

5. 撰写实验报告,总结实验过程中遇到的问题及解决方法,反思实验过程中的不足。

四、实验结果与分析1. 实验结果:通过多次调试,最终使电路达到了预期性能,信号波形稳定,电路工作正常。

2. 结果分析:在实验过程中,我们掌握了电子仪器的使用方法,提高了动手能力。

同时,通过分析测试数据,我们学会了判断电路是否存在问题,并能够针对问题进行调整。

此外,实验过程中的团队协作也使我们更好地完成了任务。

五、实验收获1. 掌握了电子线路安装与调试的基本方法;2. 学会了使用电子仪器,如示波器、信号发生器、万用表等;3. 提高了动手能力和团队协作精神;4. 加深了对电子线路理论知识的理解。

六、实验反思1. 在实验过程中,我们要严谨认真,确保电路搭建的正确性;2. 学会分析测试数据,判断电路是否存在问题;3. 调整电路参数时,要耐心细致,切勿急躁;4. 加强团队协作,共同完成实验任务。

总之,本次电子线路实习实验使我们受益匪浅,不仅提高了实际操作能力,还加深了对电子线路理论知识的理解。

杭电计组实验4-寄存器堆设计实验

杭电计组实验4-寄存器堆设计实验
W_Data = 32'h2222_2222;
#100;
Clk = 0;
Reset = 0;
R_Addr_A = 5'b00001;
R_Addr_B = 5'b00010;
W_Addr = 0;
Write_reg = 0;
W_Data = 0;
#100;
Clk = 0;
Reset = 1;
R_Addr_A = 5'b00001;
(3)学习寄存器堆的数据传送与读/写工作原理,掌握寄存器堆得设计方法。
2、实验仪器
ISE工具软件
三、步骤、方法
(1)启动Xilinx ISE软件,选择File->New Project,输入工程名shiyan2,默认选择后,点击Next按钮,确认工程信息后点击Finish按钮,创建一个完整的工程。
(2)在工程管理区的任意位置右击,选择New Source命令。弹出New Source Wizard对话框,选择Verilog Module,并输入Verilog文件名,点击Next按钮进入下一步,点击Finish完成创建。
if(Reset)
begin
for(i=0;i<=31;i=i+1)
REG_Files[i]<=32'b0;
end
else
begin
if(Write_reg) begin
if(W_Addr>3’b000) REG_Files[W_Addr]<=W_Data; end
end
end
assign R_Data_A=REG_Files[R_Addr_A];
杭州电子科技大学计算机学院
实验报告

杭州电子科技大学运动控制系统实验报告

杭州电子科技大学运动控制系统实验报告

运动控制系统实验报告实验名称:实验一双闭环直流调速系统仿真实验实验二矢量控制变频调速系统仿真实验三双闭环可逆直流脉宽调速系统实验四数字开环SPWM控制系统班级:学号:姓名:指导老师:实验一:双闭环晶闸管不可逆直流调速系统实验一. 实验目的(1)了解闭环不可逆直流调速系统的原理、组成及各主要单元部件的原理。

(2)掌握双闭环不可逆直流调速系统的调试步骤、方法及参数的整定。

(3)研究调节器参数对系统动态性能的影响。

二. 实验原理转速、电流双闭环直流调速系统是静、动态性能优良、应用最广的直流调速系统,由电流环和转速环组成。

三. 实验要求⑴各控制单元调试。

⑵测定电流反馈系数β、转速反馈系数α。

⑶测定开环机械特性及高、低转速时系统闭环静态特性()d n f I =。

⑷闭环控制特性()g n f U =的测定。

⑸ 观察、记录系统动态波形。

四. 实验结果图高、低转速时系统闭环静态特性仿真结果实验二:三相异步电动机矢量控制变频调速系统实验一.实验目的⑴了解并熟悉异步电动机矢量控制变频调速系统的原理及组成。

⑵了解异步电动机矢量控制变频调速系统的调试步骤及方法。

⑶了解异步电动机矢量控制变频调速系统的静态与动态特性。

二.实验原理图三相异步电动机矢量控制变频调速系统原理三.实现要求⑴各控制单元调试。

⑵测定双闭环交流调压调速系统的静态特性。

⑶测定双闭环交流调压调速系统的动态特性。

四.实验结果图双闭环交流调压调速系统结构图图双闭环交流调压调速系统仿真结果实验三:双闭环可逆直流脉宽调速系统一.实验目的1.掌握双闭环可逆直流脉宽调速系统的组成、原理及各主要单元部件的工作原理。

2.熟悉直流PWM专用集成电路SG3525的组成、功能与工作原理。

3.熟悉H型PWM变换器的各种控制方式的原理与特点。

4.掌握双闭环可逆直流脉宽调速系统的调试步骤、方法及参数的整定。

二.实验内容1.闭环系统调试2.系统静态特性测定三.实验结果(1)机械特性n=f(Id)的测定系统正转时:n(r/min) 1045 1043 1044 1041 1040 1040 I(A) 0 0.327 0.400 系统反转时:n(r/min) -996 -996 -993 -992 -991 -990 I(A) 0.415图n=f(Id)曲线(2)闭环控制特性n=f(Ug)的测定n(r/min) 317 611 922 1222 1523 Ug(V) 0 0.5 1.0 1.5 2.0图闭环控制特性n=f(Ug)曲线四.实验分析1.从机械特性测定实验中可以发现,负载在一定范围内变化,直流电机的转速始终保持恒定。

杭电 计算机网络实验报告

杭电 计算机网络实验报告

目录实验一、使用数据拷贝线组网 (1)实验二、制作直通双绞线组网 (4)实验三、制作交叉双绞线组网 (7)实验四、Cisco IOS基本使用 (10)实验五、交换机基本使用 (14)实验六、VLAN的使用 (18)实验七、路由器的基本使用 (25)实验八、动态路由配置 (30)实验一、使用数据拷贝线组网实验一使用数据拷贝线组网实验台号:实验时间:实验小组号:成员及本次实验分工:实验目的:学会使用并行电缆(数据拷贝线)实现双机通信和资源共享。

使用直接电缆实现两台PC机之间的通信。

实验环境说明:硬件:2台计算机、2-3根并行电缆软件:Windows XP操作系统实验过程及步骤(可另附页、使用网络拓扑图等辅助说明):(1)、使用并行电缆将两台PC机,进行物理互连;(2)、分别在两台PC机上的网上邻居中创建一个新连接。

按照新建连接向导的指示来做。

首先网络连接类型选为“设置高级连接”;然后其中作为服务器的那台PC机创建为“接受传入的连接”,作为客户机的则创建为“直接连接到其他计算机的连接”,并让此计算机担任“来宾”的角色。

接下去根据向导直至完成创建新连接。

(3)、测试两机的可通用性。

创建好连接之后可以用ping命令测试一下两台机器之间是否已经连通。

(4)、连接创建成功之后,客户机可以找到并登入到服务器,就可以实现对服务器上的资源的共享了。

当然在此之前作为服务器的主机还需要将文件夹属性设置成为可共享的。

测试数据线连接以后Ping对方说明能够Ping通在一台PC上设置共享,然后在另外一台PC上查看共享截图如下:说明通过数据拷贝线成功地连接了两台PC,实现了他们之间的通信。

实验总结(遇到的问题及解决办法、体会):刚开始配置客户机的时候出了点问题。

需要输入对方计算机的名字,我们却输入了服务器上的计算机用户的帐号,所以一直没有连接成功。

后来终于发现了这个问题。

配置也就顺利了。

实验器材、工具领用及归还负责人:验收人:实验执笔人:实验记录人:报告协助人:实验报告完成时间:小组成员签名:指导教师评议成绩评定:指导教师签名:实验二、制作直通双绞线组网实验二制作直通双绞线组网实验台号: 实验时间: 实验小组号:成员及本次 实验分工: 实验目的:1. 了解双绞线的相关知识;2. 学会制作直通双绞线;3. 掌握用双绞线实现集线器和计算机之间的互连。

杭电计组实验8-实现R型指令的CPU设计实验

杭电计组实验8-实现R型指令的CPU设计实验

杭电计组实验8-实现R型指令的CPU设计实验实验报告2018 年 6 月 1 日成绩:一、实验程序源代码顶层LED测试模块:module Top_LED(clk,rst,SW,LED);input clk,rst;input [2:0]SW;output reg[7:0]LED;wire ZF,OF;wire [31:0]ALU_F;top_R_cpu test_cpu(rst,clk,ZF,OF,ALU_F);always@(*)begincase(SW)3'b000:LED=ALU_F[7:0];3'b001:LED=ALU_F[15:8];3'b010:LED=ALU_F[23:16];3'b011:LED=ALU_F[31:24];3'b100:begin LED[7:2]=0;LED[1]=OF;LED[0]=ZF;enddefault:LED=0;endcaseendendmodule顶层R型CPU模块:module top_R_cpu(input rst,input clk,output ZF,output OF,output [31:0]F); reg write_reg;wire [31:0]Inst_code;wire [31:0]R_Data_A;wire [31:0]R_Data_B;reg [2:0]ALU_OP;pc pc_connect(clk,rst,Inst_code);Register_file R_connect(Inst_code[25:21],Inst_code[20:16],Inst_code[15:11],write_reg,F,~clk,rst,R_Data_A,R_Data_B);ALU ALU_connect(R_Data_A,R_Data_B,F,ALU_OP,ZF,OF);always@(*)beginwrite_reg=0;ALU_OP=0;if(Inst_code[31:26]==0)begincase(Inst_code[5:0])6'b100000:ALU_OP=3'b100;6'b100010:ALU_OP=3'b101;6'b100100:ALU_OP=3'b000;6'b100101:ALU_OP=3'b001;6'b100110:ALU_OP=3'b010;6'b100111:ALU_OP=3'b011;6'b101011:ALU_OP=3'b110;6'b000100:ALU_OP=3'b111;endcasewrite_reg=1;endendendmodulePC取指令模块:module pc(input clk,input rst,output [31:0]Inst_code);reg [31:0]PC;wire[31:0]PC_new;initialPC<=32'h00000000;Inst_ROM Inst_ROM1 (.clka(clk),.addra(PC[7:2]),.douta(Inst_code));assign PC_new={24'h000000,PC_new[7:0]};always@(negedge clk or posedge rst)beginif(rst)PC=32'h00000000;else PC=PC_new;endendmodule寄存器堆模块:moduleRegister_file(R_Addr_A,R_Addr_B,W_Addr,Write_Reg,W_Data,Clk,Reset,R_Data_A,R_Data_B); input [4:0]R_Addr_A;input [4:0]R_Addr_B;input [4:0]W_Addr;input Write_Reg;input [31:0]W_Data;input Clk;input Reset;output [31:0]R_Data_A;output [31:0]R_Data_B;reg [31:0]REG_Files[0:31];reg [5:0]i;initial//仿真过程中的初始化beginfor(i=0;i<=31;i=i+1)REG_Files[i]=0;endassign R_Data_A=REG_Files[R_Addr_A];assign R_Data_B=REG_Files[R_Addr_B];always@(posedge Clk or posedge Reset)beginif(Reset)for(i=0;i<=31;i=i+1)REG_Files[i]=0;elseif(Write_Reg&&W_Addr!=0)REG_Files[W_Addr]=W_Data;endendmoduleALU算术逻辑运算单元模块:module ALU(A,B,F,ALU_OP,ZF,OF);input [31:0]A,B;input [2:0]ALU_OP;output reg ZF,OF;output reg[31:0]F;reg C32;always@(*)beginOF=1'b0;C32=1'b0;case(ALU_OP)3'b000:F=A&B;3'b001:F=A|B;3'b010:F=A^B;3'b011:F=~(A^B);3'b100:begin {C32,F}=A+B;OF=A[31]^B[31]^F[31]^C32;end 3'b101:begin {C32,F}=A-B;OF=A[31]^B[31]^F[31]^C32;end3'b110:if(A<B)F=1;elseF=0;3'b111:F=B<<A;endcaseif(F==0)ZF=1;elseZF=0;endendmodule测试代码:module test;// Inputsreg rst;reg clk;// Outputswire ZF;wire OF;wire [31:0] F;// Instantiate the Unit Under Test (UUT) top_R_cpu uut (.rst(rst),.clk(clk),.ZF(ZF),.OF(OF),.F(F));initial begin// Initialize Inputsrst = 0;clk = 0;// Wait 100 ns for global reset to finish#100;clk=1;// Add stimulus hereforeverbegin#50;clk=~clk;endendendmodule二、仿真波形三、电路图顶层电路模块顶层电路内部结构:四、引脚配置(约束文件)NET "LED[7]" LOC = T11;NET "LED[6]" LOC = R11;NET "LED[5]" LOC = N11;NET "LED[4]" LOC = M11;NET "LED[3]" LOC = V15;NET "LED[2]" LOC = U15;NET "LED[1]" LOC = V16;NET "LED[0]" LOC = U16;NET "SW[2]" LOC = V9;NET "SW[1]" LOC = T9;NET "SW[0]" LOC = T10;NET "clk" LOC = C9;NET "rst" LOC = C4;五、思考与探索(1)R型指令CPU实验结果记录表序号指令执行结果标志结论1 0000827 FFFFFFFF 0 0 正确2 0001102b 0000_0001 0 0 正确3 00421820 0000_0002 0 0 正确4 00622020 0000_0003 0 0 正确5 00832820 0000_0005 0 0 正确6 00a33020 0000_0007 0 0 正确7 00463804 0000_000E 0 0 正确8 00a64820 0000_000C 0 0 正确9 01264004 0000_7000 0 0 正确10 00284826 FFFF_8FFF 0 0 正确11 01215020 FFFF_8FFE 0 0 正确12 01075822 0000_6FF2 0 0 正确13 00e86022 FFFF_900E 0 0 正确14 012c6824 FFFF_800E 0 0 正确15 012c7025 FFFF_9FFF 0 0 正确16 00c77825 0000_FFFF 0 0 正确。

杭州电子科技大学计算机控制系统实验报告

杭州电子科技大学计算机控制系统实验报告

实验时间:2016年6月杭州电子科技大学自动化学院实验报告课程名称:计算机控制系统实验名称:计算机控制系统实验指导教师:xxx学生姓名:xxx学生学号:xxx实验一:常规PID控制算法仿真Simulink框图班级:4,学号28;如图所示得到的稳态误差为0,动态性能非常好实验分析:由于后面的传递函数的原因,在调节PID参数时应当用用较大倍数来调试,并且增大示波器的显示时间长度,然后再来调节。

因为第一个实验较为简单,慢慢掌握PID参数调节经验就可以实验二:积分分离PID控制算法仿真Simulink框图示波器图像:P=5 I=25 D=0.1实验分析:在阈值为1的时候调节出来的图像较为满意,如图所示,曲线响应快速,在1s内就达到了稳态值,且稳定。

实验三:1、不完全微分PID控制器的阶跃响应Simulink框图Scope2结合了滤波前和滤波后的图像,如图所示:参数调节后的图像,P=2.3 I=3 D=1.5结果分析:很明显加入滤波后,图像明显缓和。

经过PID参数调试后,结果图像在1s时达到稳态值,并保持稳定,动态性能极好。

2,具有不完全微分PID控制器的系统的阶跃响应Simulink框图PID参数调节后的图像:P=6 I=0 D=0.5实验分析:虽然图像看起来不那么完美,但是实际上是不错的,大概在4s 的时候达到稳态值并保持稳定,没有超调实验四:模糊控制系统仿真Fuzzy设计图像:Simulink框图:得到的示波器显示图:实验分析:经过调解后的图形在稳定前略有振荡,尝试过其他参数,但是D参数那里只能设置为0,不然就会卡住。

为了让其达到稳态值,并稳定只能加大参数,不免会出现略微的振荡。

但是这个调节大概在5s就到了稳态,所以还是比较理想的。

实验五:洗衣机模糊控制仿真matlab练习Fuzzy rules:输入【14 ,28】得出洗涤时间18.4该实验主要是了解模糊控制器的设计步骤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
endcase
else
case(RW_SW)
2'b00 : LED = B[7:0];
2'b01 : LED = B[15:8];
2'b10 : LED = B[23:16];
2'b11 : LED = B[31:24];
default : LED = B[7:0];
endcase
if(rst)
for(i = 0; i < 32; i = i + 1) REG_File[i] = 0;
0000_0003
0000_0003
$00011
7FFF_FFFF
7FFF_FFFF
$00111
7FFF_FFFF
7FFF_FFFF
$01111
0000_0000
0000_0000
$11111
0000_0003
0000_0003
$10000
7FFF_FFFF
7FFF_FFFF
$11000
7FFF_FFFF
NET "LED[3]" LOC = "V15";
NET "LED[2]" LOC = "U15";
NET "LED[1]" LOC = "V16";
NET "LED[0]" LOC = "U16";
五、思考与探索
寄存器地址
写入数据
读出数据
$00000
0000_0000
0000_0000
$00001
2'b00 : REG_]=W_Data1;
2'b01 : REG_]=W_Data2;
2'b10 : REG_]=W_Data3;
2'b11 : REG_]=W_Data4;
endcase
end
end
end
endmodule
二、仿真波形
三、电路图
四、引脚配置(约束文件)
NET "Add[4]" LOC = "T5";
input[4:0] Reg_Addr_A,Reg_Addr_B;
input Write_Reg;
input[1:0] RW_SW;
input clk;
input rst;
output[7:0] LED;
input AB;
reg[31:0]REG_];
reg[7:0] LED;
wire[31:0] W_Data1 = 32'h00000001;
NET "Add[3]" LOC = "V8";
NET "Add[2]" LOC = "U8";
NET "Add[1]" LOC = "N8";
NET "Add[0]" LOC = "M8";
NET "WR" LOC = "V9";
NET "C[1]" 源自OC = "T9";
NET "C[0]" LOC = "T10";
REG_Files[i]<=0;
end
else
begin
if(Write_Reg&&(W_Addr!=0))
begin
REG_Files[W_Addr]<=W_Data;
end
end
end
Endmoudle
(3)、读操作是时钟的下降沿时候执行的,写操作是时钟上升沿执行的
(4)、通过实验深入理解了寄存器的工作过程,32位数据的显示,参考上次实验的分组显示法,将32位分为4组,每组8位。这次在写配置文件时,特意关注了引脚顺序。清零信号与clk时钟信号在需要清零时,同时按住才会将清零信号输入进去。
NET "clk" LOC = "C9";
NET "RS" LOC = "D9";
NET "AB" LOC = "A8";
NET "LED[7]" LOC = "T11";
NET "LED[6]" LOC = "R11";
NET "LED[5]" LOC = "N11";
NET "LED[4]" LOC = "M11";
always @ (posedge clk or posedge rst)
begin
if(AB)
case(RW_SW)
2'b00 : LED=A[7:0];
2'b01 : LED=A[15:8];
2'b10 : LED=A[23:16];
2'b11 : LED=A[31:24];
default : LED=A[7:0];
实验报告
2016年4月22日成绩:
姓名
学号
班级
专业
信息安全
课程名称
《计算机组成原理课程设计》
任课老师
曾虹
指导老师
曾虹
机位号
实验序号
实验名称
寄存器堆
实验时间
2016.4.22
实验地点
1教南
实验设备号
一、实验程序源代码
module Reg(LED,RW_SW,AB,Reg_Addr_A,Reg_Addr_B,Write_Reg,clk,rst);
7FFF_FFFF
修改后的寄存器模块:
‘time scale 1ns/1ps
Moudle Register(R_Addr_A,R_Addr_B,R_Data_A,R_Data_B,W_Addr,W_Data,Write_Reg,Clk,Reset);
input [4:0] R_Addr_A;
input [4:0] R_Addr_B;
else
begin
if(Write_Reg)
begin
if(AB)
case(RW_SW)
2'b00 : REG_]=W_Data1;
2'b01 : REG_]=W_Data2;
2'b10 : REG_]=W_Data3;
2'b11 : REG_]=W_Data4;
endcase
else
case(RW_SW)
assign R_Data_A=REG_Files[R_Addr_A];
assign R_Data_B=REG_Files[R_Addr_B];
always @ (posedge Clk or posedge Reset)
begin
if(Reset)//清零
begin
for(i=0;i<32;i++)
input [4:0] W_Addr;
input [31:0] W_Data;
input Write_Reg;
input Clk;
input Reset;
output [31:0] R_Data_A;
output [31:0] R_Data_B;
integer i;
reg[31:0] REG_Files[31:0];//定义寄存器
wire[31:0] W_Data2 = 32'h0000000A;
wire[31:0] W_Data3 = 32'h00000006;
wire[31:0] W_Data4 = 32'h00000003;
wire[31:0] A = REG_];
wire[31:0] B = REG_];
integer i;
相关文档
最新文档