《计算机组成原理与接口技术实验》
实验报告
学院名称:
学生姓名:
学号:
专业(班级):
合作者:
时间:2016年4月25日
成绩:
实验二:
一.实验目的
1.掌握单周期CPU数据通路图的构成、原理及其设计方法;
2.掌握单周期CPU的实现方法,代码实现方法;
3.认识和掌握指令与CPU的关系;
4.掌握测试单周期CPU的方法。
二.实验内容
设计一个单周期CPU,该CPU至少能实现以下指令功能操作。需设计的指令与格式如下:==> 算术运算指令
说明:以助记符表示,是汇编指令;以代码表示,是机器指令
功能:rd←rs + rt。reserved为预留部分,即未用,一般填“0”。
功能:rt←rs + (sign-extend)immediate;immediate符号扩展再参加“加”运算。
完成功能:rd←rs - rt
==> 逻辑运算指令
做“0”扩展再参加“或”运算。
(5)and rd , rs , rt
功能:rd←rs & rt;逻辑与运算。
==> 传送指令
(7)move rd , rs
功能:rd←rs + $0 ;$0=$zero=0。
==> 存储器读/写指令
(8)sw rt ,immediate(rs) 写存储器
功能:memory[rs+ (sign-extend)immediate]←rt;immediate符号扩展再相加。
(9) lw rt , immediate (rs) 读存储器
功能:rt ← memory[rs + (sign-extend)immediate ];immediate 符号扩展再相加。 ==> 分支指令
(10)beq rs,rt,immediate
功能:if(rs=rt) pc ←pc + 4 + (sign-extend)immediate <<2;
特别说明:immediate 是从PC+4地址开始和转移到的指令之间指令条数。immediate 符号扩展之后左移2位再相加。为什么要左移2
位?由于跳转到的指令地址肯定是4的倍数(每条指令占4个字节),最低两位是“00”,因此将immediate 放进指令码中的时候,是右移了2位的,也就是以上说的“指令之间指令条数”。
==> 停机指令 (11)halt
功能:停机;不改变PC 的值,PC 保持不变。
三. 实验原理
单周期CPU 指的是一条指令的执行在一个时钟周期内完成,然后开始下一条指令的执行,即一条指令用一个时钟周期完成。电平从低到高变化的瞬间称为时钟上升沿,两个相邻时钟上升沿之间的时间间隔称为一个时钟周期。时钟周期一般也称振荡周期(如果晶振的
输出没有经过分频就直接作为CPU 的工作时钟,则时钟周期就等于振荡周期。若振荡周期经二分频后形成时钟脉冲信号作为CPU 的工作时钟,这样,时钟周期就是振荡周期的两倍。)
CPU 在处理指令时,一般需要经过以下几个步骤:
(1) 取指令(IF ):根据程序计数器PC 中的指令地址,从存储器中取出一条指令,同时,PC 根据指令字长度自动递增产生下一条指令所需要的指令地址,但遇到“地址转移”指令时,则控制器把“转移地址”送入PC ,当然得到的“地址”需要做些变换才送入PC 。 (2) 指令译码(ID ):对取指令操作中得到的指令进行分析并译码,确定这条指令需要完成的操作,从而产生相应的操作控制信号,用于驱动执行状态中的各种操作。
(3) 指令执行(EXE ):根据指令译码得到的操作控制信号,具体地执行指令动作,然后转移到结果写回状态。
(4) 存储器访问(MEM ):所有需要访问存储器的操作都将在这个步骤中执行,该步骤给出存储器的数据地址,把数据写入到存储器中数据地址所指定的存储单元或者从存储器中得到数据地址单元中的数据。 (5) 结果写回(WB ):指令执行的结果或者访问存储器中得到的数据写回相应的目的寄存器中。
单周期CPU ,是在一个时钟周期内完成这五个阶段的处理。
图1 单周期
CPU 指令处理过程
MIPS32的指令的三种格式:
R类型:
I类型:
J类型:
其中,
op:为操作码;
rs:为第1个源操作数寄存器,寄存器地址(编号)是00000~11111,00~1F;
rt:为第2个源操作数寄存器,或目的操作数寄存器,寄存器地址(同上);
rd:为目的操作数寄存器,寄存器地址(同上);
sa:为位移量(shift amt),移位指令用于指定移多少位;
func:为功能码,在寄存器类型指令中(R类型)用来指定指令的功能;
immediate:为16位立即数,用作无符号的逻辑操作数、有符号的算术操作数、数据加载(Laod)/数据保存(Store)指令的数据地址字节偏移量和分支指令中相对程序计数器(PC)的有符号偏移量;
address:为地址。
图2 单周期CPU数据通路和控制线路图
图2是一个简单的基本上能够在单周期上完成所要求设计的指令功能的数据通路和必要的控制线路图。其中指令和数据各存储在不同存储器中,即有指令存储器和数据存储器。
访问存储器时,先给出地址,然后由读/写信号控制(1-写,0-读。当然,也可以由时钟信号控制,但必须在图上标出)。对于寄存器组,读操作时,先给出地址,输出端就直接输出相应数据;而在写操作时,在 WE使能信号为1时,在时钟边沿触发写入。图中控制信号作用如表1所示,表2是ALU运算功能表。
表1 控制信号的作用
控制信号名状态“0”状态“1”
PCWre PC不更改,相关指令:halt PC更改,相关指令:除指令halt外
ALUSrcB来自寄存器堆data2输出,相关指
令:add、sub、or、and、move、beq 来自sign或zero扩展的立即数,相关指令:ori、sw、lw
ALUM2Reg来自ALU运算结果的输出,相关指
令:add、sub、ori、or、and、move 来自数据存储器(Data MEM)的输出,相关指令:lw
RegWre无写寄存器组寄存器,相关指令:
sw、halt 寄存器组写使能,相关指令:add、sub、ori、or、and、move、lw
InsMemRW读指令存储器(Ins. Data),初始化为0写指令存储器
DataMemRW读数据存储器,相关指令:lw写数据存储器,相关指令:sw
ExtSel相关指令:ori,
(zero-extend)immediate(0扩展)相关指令:sw、lw、beq,
(sign-extend)immediate(符号扩展)
PCSrc PC←PC+4,相关指令:add、sub、ori、PC←PC+4+(sign-extend)immediate,同时
相关部件及引脚说明:
Instruction Memory:指令存储器,
Iaddr,指令存储器地址输入端口
IDataIn,指令存储器数据输入端口(指令代码输入端口)
IDataOut,指令存储器数据输出端口(指令代码输出端口)
RW,指令存储器读写控制信号,为1写,为0读
Data Memory:数据存储器,
Daddr,数据存储器地址输入端口
DataIn,数据存储器数据输入端口
DataOut,数据存储器数据输出端口
RW,数据存储器读写控制信号,为1写,为0读
Register File:(寄存器组)
Read Reg1,rs寄存器地址输入端口
Read Reg2,rt寄存器地址输入端口
Write Reg,将数据写入的寄存器端口,其地址来源rt或rd字段
Write Data,写入寄存器的数据输入端口
Read Data1,rs寄存器数据输出端口
Read Data2,rt寄存器数据输出端口
WE,写使能信号,为1时,在时钟上升沿写入
ALU:
result,ALU运算结果
zero,运算结果标志,结果为0输出1,否则输出0
表2 ALU运算功能表
需要说明的是根据要实现的指令功能要求画出以上数据通路图,和确定ALU的运算功能(当然,以上指令没有完全用到提供的ALU所有功能,但至少必须能实现以上指令功能操作)。从数据通
路图上可以看出控制单元部分需要产生各种控制信号,当然,也有些信号必须要传送给控制单元。从指令功能要求和数据通路图的关系得出以上表1,这样,从表1可以看出各控制信号与相应指令之间的相互关系,根据这种关系就可以得出控制信号与指令之间的关系表(留给学生完成),再根据关系表可以写出各控制信号的逻辑表达式,这样控制单元部分就可实现了。
指令执行的结果总是在下个时钟到来前开始保存到寄存器、或存储器中,PC的改变也是在这个时候进行。另外,值得注意的问题,设计时,用模块化的思想方法设计,关于ALU 设计、存储器设计、寄存器组设计等等,也是必须认真考虑的问题。可以参考其他资料文档,里面有相应的设计方法介绍.
四.实验器材
电脑一台、Xilinx ISE 软件一套。
五.实验分析与设计
模块分析:
根据单周期CPU数据通路和控制
线路图,大致可以将CPU分为右图七个
模块,每个模块负责一个部分的功能:
(代码存于code文件夹)
(图的下方为各个模块的变量,在后图会出现,故省略)
CPU:负责各模块之间的数据的传输,如同C语言中的头文件,将其他的子模块连接在一起,其中clk信号在此声明。
CU:CU负责指令的解析,即将由ROM读取的指令转化为操作发送给其他子模块进行操作。
PC:负责指令的计数,已经指令的向前或向后跳动,每个时钟周期计数加一。
ROM:即存储器,发送信息,CPU的指令文件即由ROM读取,只读,在电脑中表现为BIOS的数据文件。
RAM:内存,可读可写,用来保存临时数据,汇编语言中的$s的储存地点。
RF:寄存器,可读可写,数据由寄存器发送向ALU计算,汇编语言中的$t的储存地点。
SE:产生立即数,将发送过来的半数零拓展或符号拓展。
ALU:算术单元,加减乘除逻辑运算等等,都在这里计算。
测试数据输入00000000000000000000000000000000(不操作)可得到如上图,CPU正确运行
实验测试:(根据实验内容指令表格)
0,1,2,3 算术运算指令 4,5,6 逻辑运算指令
7 传送指令 8,9 存储器读/写指令10,11 分支指令 14 停机指令
1200000100001000100000 0000 0000 0001 addi$1$2此指令被跳过131111110000 0000 0000 0000 0000 0000 00
halt停机
因为都为0,没有变化
如上表,$4为3
$2 = $4 + 8 = 11
$1 = $2 - $4 = 8
$5 = $2 | 0000 0000 0000 1000 = 11
$6 = $1 & $2 = 8
$7 = $1 | $2 = 11
7.move
$8 = $7
8.sw
register
RAM
$s15 = $1
10.beq 不相等情况
由于这里两个寄存器不相等,立即数为0,即跳转到下1 + 0/4条指令,故这里进入下一条指令。
相等情况,跳过指令12
跳转到13,$1没有变化
13.halt
停机,如图,下一条指令被锁
测试完成
六.实验心得
本次实验的难度较第一次实验要高很多,很多问题都是半知半解的状态,尤其是CU部分,CU是按照实验资料中的页5中的表格生搬硬套的,有许多不理解,同学也帮助了很多。
实验有很多和图上是有区别的,主要表现在CPU的位数,基本没有算法,都是理解和想象的问题,有些模块要自己构想,不能通过看图就知道,但是图中给了很多的提示,每个部件的输入和输出基本上在图中都有显示。
CPU的难度也很大,主要是变量十分得多,很容易就造成错误,在写模块的时候很容易就造成错误。
最后就是运行的问题,一开始不知道如何导入指令,做出来全部显示的都是X,检查了几遍代码后才发现问题,从ROM中读取指令。
精简8位cpu实验设计报告 实验介绍: 实验分为两个部分,第一部分为16*8 ROM 设计与仿真 第二部分为SAP-1 设计与仿真 实验流程: ①16*8 ROM 的设计与仿真 Rom16_8.VHDL LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ROM16_8 is PORT( DATAOUT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --Data Output ADDR :IN STD_LOGIC_VECTOR(3 DOWNTO 0); --ADDRESS CE :IN STD_LOGIC --Chip Enable ); END ROM16_8; ARCHITECTURE a OF ROM 16_8 IS BEGIN DATA<=“00001001”WHEN ADDR=“0000”AND CE=‘0’--LDA 9H “00011010”WHEN ADDR=“0001”AND CE=‘0’ELSE --ADD AH “00011011”WHEN ADDR=“0010”AND CE=‘0’ELSE --ADD BH “00101100”WHEN ADDR=“0011”AND CE=‘0’ELSE --SUB CH “11100000”WHEN ADDR=“0100”AND CE=‘0’ELSE --OUT “11110000”WHEN ADDR=“0101”AND CE=‘0’ELSE --HLT “00010000”WHEN ADDR=“1001”AND CE=‘0’ELSE “00010100”WHEN ADDR=“1010”AND CE=‘0’ELSE “00011000”WHEN ADDR=“1011”AND CE=‘0’ELSE
11条MIPS指令单周期CPU设计 2018元月份,我按照袁春风老师的第三版教材,又重新设计了11条MIPS 指令的单周期CPU。这次的设计与我2017年7月份的单周期CPU还是有些区别。2017年7月份设计的CPU主要是参考《计算机组成与设计-硬件/软件接口David A.Patterson》。 设计中的几点体会如下: 一.基本流程 1.首先要分析清楚这11条指令的格式和特点。按照MIPS指令的格式和特 点,完全掌握它们的功能和执行的过程。 2.这些指令执行过程中需要哪些硬件部件和控制信号,这些部件如何连接 构成数据通路。 3.对所有需要的控制信号进行归纳分析,列出真值表,设计相应的控制电 路。 二.具体设计过程 1.ALU的设计。ALU的设计重点在于先设计出32位的加法器,减法运算是利用 加法的“变反加一”。同时要产生各种运算结果的信号:溢出(OF)、进位(CF)、符号位(SF)、零符号位(Zero)。OF=C n⊕C n-1;CF=C out⊕C in。至于需要其它的运算指令,如逻辑运算、移位运算、乘除法运算,都可以直接调用logisim库中的器件,添加到ALU中,这些运算的结果可以同时产生,只是最后用多路选择器来选择那种指令的结果输出,用的控制信号是OPctr。在ALU中需要设计一个控制信号生成部件,用于产生ALU内部需要的各种控制信号。见袁春风老师教材P155。(第一次实验:ALU部件的设计)(ALU设计中,现在的加法器只是串行的,可以让好的学生用先行进位加法器)
图1:ALU电路图 2.设计寄存器部件。设计一个32个*32位的寄存器部件。两路输入和两路输出, 可读写。(第二次实验:寄存器部件的设计) 图2:寄存器电路图 3.数据通路的设计。通路的设计不能急于求成,要一条指令一条指令来分析和 设计。首先设计R-type中的add、sub、subu、slt、sltu等的通路。要注意是否要判断溢出。在此基础上,再分析I-type带立即数运算指令的数据通路,分析出需要添加哪些部件。再分析sw、lw指令的数据通路,分支指
MIPS-CPU设计实验报告
实验名称:32位单周期MIPS-CPU设计 姓名学号:刘高斯11072205 实验日期:2014年12月19日 目录 前言 MIPS简介------------------------------------------------------------- 3 实验目的------------------------------------------------------------- 3 第一部分VERILOG HDL 语言实现部分 实验内容------------------------------------------------------------- 4 试验环境------------------------------------------------------------- 4 模块简介------------------------------------------------------------- 4 实验截图------------------------------------------------------------- 5 实验感想------------------------------------------------------------- 5 实验代码------------------------------------------------------------- 6 第二部分LOGISIM 语言实现部分 实验内容------------------------------------------------------------- 16 实验环境------------------------------------------------------------- 16
计算机硬件课程设计 设计报告 学号: 姓名:成绩: 学号: 姓名:成绩: 东南大学计算机科学与工程系 二0 10 年11 月
一、设计名称: My CPU的设计 二、本设计的主要特色: 1、熟悉挂总线的逻辑器件的特性和总线传送的逻辑实现方法。 2、掌握半导体静态存储器的存取方法。 三、设计方案: 1. 数据格式——8位二进制定点表示 2. 指令系统——CPU的指令格式尽量简单规整,这样在硬件上更加容易实现。 7条基本指令:输入/输出,数据传送,运算,程序控制。 指令格式:Array 7 6 5 4 3 2 1 0 两种寻址方式: 寄存器寻址Array 7 6 5 4 3 2 1 0 直接地址寻址,由于地址要占用一个字节,所以为双字节指令。 7条机器指令:
IN R目:从开关输入数据到指定的寄存器R目。 OUT R源:从指定的寄存器R源中读取数据送入到输出缓冲寄存器,显示灯亮。 ADD R目,R源:将两个寄存器的数据相加,结果送到R目。 JMP address : 无条件转移指令。 HALT : 停机指令。 LD R目,address : 从内存指定单元中取出数据,送到指定寄存器R 目。 ST address , R 源: 从指定的寄存器R源中取出数据,存入内存指定单元。
Address(内存地址) 3. CPU内部结构 4.数据通路设计 根据指令系统,分析出数据通路中应包括寄存器组、存储器、运算器、多路转换器等,采用单总线结构。 通用寄存器组:
运算器: 存储器: 多路转换器:
输出缓冲器: 5.控制器设计 控制通路负责整个CPU的运行控制,主要由控制单元和多路选择器MUX 完成。在每一个时钟周期的上升沿指令寄存器IR 从内存中读取指令字后,控制单元必须能够根据操作码,为每个功能单元产生相应主控制信号,以及对ALU 提供控制信号。对于不同的指令,同一个功能单元的输入不同,需要多路选择器MUX 来对数据通路中功能单元的输入进行选择。
1个时钟周期 Clock 电子科技大学计算机科学与工程学院 标 准 实 验 报 告 (实验)课程名称: 计算机组成原理实验 电子科技大学教务处制表 电 子 科 技 大 学 实 验 报 告 学生姓名: 郫县尼克杨 学 号: 2014 指导教师:陈虹 实验地点: 主楼A2-411 实验时间:12周-15周 一、 实验室名称: 主楼A2-411 二、 实验项目名称: 单周期CPU 的设计与实现。 三、 实验学时: 8学时 四、 实验原理: (一) 概述 单周期(Single Cycle )CPU 是指CPU 从取出1条指令到执行完该指令只需1个时钟
周期。 一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保存结果。对于单周期CPU 来说,这些执行步骤均在一个时钟周期内完成。 (二) 单周期cpu 总体电路 本实验所设计的单周期CPU 的总体电路结构如下。 (三) MIPS 指令格式化 MIPS 指令系统结构有MIPS-32和MIPS-64两种。本实验的MIPS 指令选用MIPS-32。以下所说的MIPS 指令均指MIPS-32。 MIPS 的指令格式为32位。下图给出MIPS 指令的3种格式。 本实验只选取了9条典型的MIPS 指令来描述CPU 逻辑电路的设计方法。下图列出了本实验的所涉及到的9条MIPS 指令。 五、 实验目的 1、掌握单周期CPU 的工作原理、实现方法及其组成部件的原理和设计方法,如控制器、26 31 221 216 15 11 1 6 5 0 op rs rt rd sa func R 型指令 26 31 221 216 15 0 op rs rt immediate I 型指令 26 31 20 op address J 型指令
课程设计报告 课程片上计算机系统 题目 CPU模型机设计 班级 专业 学生 学号 指导教师 2014年7 月 3 日 目录: 1.课程设计的目的及要求 (3) 2.处理器的设计思想和设计内容 (3)
3.设计处理器的结构和实现方法 (3) 4.模型机的指令系统 (4) 5.处理器的状态跳转操作过程 (4) 6. CPU的Verilog代码 (7) 7. 模型机在Quartus II环境下的应用 (19) 8. 仿真波形 (19) 9. 课程设计的总结 (21) 一.课程设计的目的及要求: (一)目的: 1.掌握RISC CPU与内存数据交换的方法。 2.学会指令格式的设计与用汇编语言编写简易程序。 3.能够使用VHDL硬件描述语言在QuartusⅡ软件环境下完成CPU模型机的 设计。
(二)要求: 1.以《计算机组成与设计》书中123页的简化模型为基础更改其指令系 统,形成设计者的CPU, 2.在Quartus II环境下与主存连接,调试程序,观察指令的执行是否达 到设计构想。 二.处理器的设计思想和设计内容: 处理器的字长为16b;包括四种指令格式,格式1、格式2、格式3的指令字长度为8b,格式4的指令字长度为16b;处理器内部的状态机包括七个状态。(一)关于修改后的CPU: 一共设计25条指令,主要包括空操作指令、中断指令、加法指令、减法指令、加法指令、四种逻辑运算指令、比较、算术移位操作指令、逻辑移位操作指令、加减1指令、加减2指令、数据传输指令、转移类指令、读写指令、特权指令等等。 (二)关于RAM: 地址线设置成8bits,主存空间为4096words。 三.设计处理器的结构和实现方法: (指令格式) 格式1:寄存器寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP Rx Ry 空白 格式2:寄存器变址寻址方式 OP Ry 空白 格式3:立即数寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP I 空白 格式4:无操作数寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP 空白空白 格式5:直接寻址方式 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP Addr 内存(2的12次方) 四.模型机的指令系统 CPU的指令集: 操作码OP IR(15..1 2) 指令 格式 指令的助记指令的内容
信息科学与工程学院 课程设计报告 课程名称:计算机组成原理与结构题目:单周期CPU逻辑设计年级/专业:XXXXXXXXXXXXXXX X 学生姓名:王侠侠、李怀民 学号:XXXXXXXXXXXXXXXXXXX 指导老师:XXXX 开始时间:2016年9月15日 结束时间:2016年11月15日
摘要 一、设计目的与目标 1.1 设计目的 1.2 设计目标 二、课程设计器材 2.1 硬件平台 2.2 软件平台 三、CPU逻辑设计总体方案 3.1 指令模块 3.2 部件模块 四、模块详细设计 4.1 指令设计模块 4.2 部件设计模块 五、实验数据 5.1 初始数据 5.2 指令数据 六、结论和体会 七、参考文献
本CPU设计实验以Quartus II 9.0为软件设计平台,以Cyclone 采III型号EP3C16F484C6为FPGA实测板。此CPU设计采用模块化设计方案,首先设计指令格式模块,此模块决定CPU各个部件的接口数据容量及数量,再对CPU各个部件独立设计实现,主要涉及的部件有:寄存器组、控制器、存储器、PC计数器、数据选择器、ALU单元以及扩展单元。分部件的设计通过软件平台模拟仿真各部件的功能,在确保各部件功能正确的情况下,将所有部件模块整合在一起实现16位指令的CPU功能。再按照指令格式设计的要求,设计出一套能完整运行的指令,加载到指令存储器中,最终通过在FPGA实测板上实现了加2减1的循环运算效果,若要实现其他效果,也可更改指令存储器或数据存储器的数据而不需要对内部部件进行更改元件。 关键词:CPU设计、16位指令格式、模块化设计、Quartus软件、CPU各部件
《计算机组成原理与接口技术实验》 实验报告 学院名称: 学生姓名: 学号: 专业(班级): 合作者: 时间:2016 年4 月25 日 成绩: ________ 实验二: 一. 实验目的 1.掌握单周期CPU数据通路图的构成、原理及其设计方法; 2.掌握单周期CPI的实现方法,代码实现方法; 3.认识和掌握指令与CPU勺关系; 4.掌握测试单周期CPI的方法。 二. 实验内容 设计一个单周期CPU,该CPU至少能实现以下指令功能操作。需设计的指令
与格式如下:
==>算术运算指令 功能:rd Jrs + rt 。 reserved为预留部分,即未用,一般填“0 (2)addi rt , rs , immediate 功能:rt J rs + (sign-extend) immediate ;immediate 符号扩展再参加“加”运算(3) sub rd , rs , rt 完成功能:rd J rs - rt ==>逻辑运算指令 (4)ori rt , rs , immediate 功能:rt Jrs | (zero-extend) immediate ; immediate 做“ o ”扩展再参加“或”运算(5) and rd , rs , rt 功能:rd Jrs & rt ;逻辑与运算 (6)or rd , rs , rt 功能:rd Jrs | rt ;逻辑或运算。 ==>传送指令 功能:rd Jrs + $0 ; $0=$zero=0。 ==>存储器读/写指令 (8)sw rt , immediate( rs)写存储器 功能:memory[rs+ (sign-extend) immediate ] J rt ; immediate 符号扩展再 相加。
实验项目名称: CSS页面布局及样式设计 (所属课程:web系统与技术) 学院:计算机学院专业班级:11级计科信息姓名:学号: 实验日期:实验地点:A06-404 合作者:指导教师:李 本实验项目成绩:教师签字:日期: 一、实验目的 (1)掌握CSS中的定位属性使用方法。 (2)掌握DIV+CSS的页面布局方式。 (3)掌握CSS中的常用属性的使用方法。 (4)理解CSS的样式构造。 二、实验条件 安装Web开发环境的微机。 三、实验内容 (1)重新对聊天室的注册页面、登陆页面和聊天页面进行页面布局。 (1)对聊天室的注册页面、登陆页面和聊天页面进行样式设计。 四、实验步骤 (1)注册页面使用CSS将注册表单居中显示,表单内嵌入表格将文本与输入域格式化显示,表单内使用label标签。 (2)登录页面中添加div层用于显示在线用户数。 (3)登录页面使用div将登录表单,在线用户数,logo图片,超链接等页面元素重新定位布局。 (4)聊天页面改用div标签并使用CSS的position定位属性进行布局,框架内的独立页面使用float属性进行布局。 (5)使用CSS设置三个页面的背景颜色或背景图片。 (6)注册页面使用CSS设计所有输入框和提交按钮的样式。 (7)登录页面使用CSS设置的超链接的字体和下划线、登录表单使用圆顶角、在线用户数使用图片数字,使用CSS设计登录按钮的显示样式。
(8)聊天页面中使用CSS设计信息发送表单和发送按钮的样式,设计用户信息列表和聊天信息段落的的显示样式。 五、实验结果 注册界面效果图及代码: