课设报告数据结构.docx

上传人:b****7 文档编号:26523686 上传时间:2023-06-20 格式:DOCX 页数:45 大小:576.87KB
下载 相关 举报
课设报告数据结构.docx_第1页
第1页 / 共45页
课设报告数据结构.docx_第2页
第2页 / 共45页
课设报告数据结构.docx_第3页
第3页 / 共45页
课设报告数据结构.docx_第4页
第4页 / 共45页
课设报告数据结构.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

课设报告数据结构.docx

《课设报告数据结构.docx》由会员分享,可在线阅读,更多相关《课设报告数据结构.docx(45页珍藏版)》请在冰豆网上搜索。

课设报告数据结构.docx

课设报告数据结构

《计算机组成原理与汇编实验》

实验报告

 

学生姓名:

王明颖

学号:

14570131

同组成员:

张伟宸翟芸婷

完成日期:

2016.7.8

成绩:

一、实验一……………………………………………………1

二、实验二……………………………………………………13

三、实验三……………………………………………………18四、实验四……………………………………………………31

五、心得与体会………………………………………………39

六、参考资料…………………………………………………39

一.实验一——16位并行进位运算器功能部件的设计与实现

(一)总体设计

1.1.1问题分析

了解并行进位运算器的工作原理和过程,利用多个芯片采用扩展的方式设计出16位并行进位运算器功能部件,并封装调试。

1、分析并设计16位并行进位运算器的基本结构;

2、选择芯片及若干元器件进行物理连接,完成16位并行进位运算器功能部件的设计,并实现部件的封装;

3、对设计出的16位并行进位运算器功能部件进行测试,检查运算器功能部件是否能够正确完成数值运算的功能。

运算器(ALU)功能部件是为了完成计算机主机系统设计实践的算术/逻辑运算功能而设计的功能部件,是计算机进行算术/逻辑运算的核心部件。

在本范例中设计的运算器功能部件可以对8位数据进行算术/逻辑运算。

此部件采用了两片4位片的74181,通过串行进位而扩展成8位运算器。

暂存器(74273)对从总线上面传来的数据进行寄存,可以起到暂存数据的作用。

三态门(74244)由控制信号ALU-BUS控制,保证ALU运算所得到的结果在需要时送上总线,完成算术逻辑运算。

1.1.2总体方案设计。

1、设计出部件的逻辑原理图,画出部件的逻辑电路布线图;

2、拟定测试数据及测试方法;

3、检测模拟仿真测试结果的正确性;

4、对设计出的部件进行封装,并写出封装后芯片的功能表。

(二)详细设计

1.2.1每个模块的功能

完成运算

1.2.2入出信息

输入信息

输出信息

1.2.3处理逻辑

1.2.4屏幕显示布局设计图

74181功能表

74182功能表

运算器封装

布局设计图

(3)程序编码。

--Copyright(C)1991-2008AlteraCorporation

--YouruseofAlteraCorporation'sdesigntools,logicfunctions

--andothersoftwareandtools,anditsAMPPpartnerlogic

--functions,andanyoutputfilesfromanyoftheforegoing

--(includingdeviceprogrammingorsimulationfiles),andany

--associateddocumentationorinformationareexpresslysubject

--tothetermsandconditionsoftheAlteraProgramLicense

--SubscriptionAgreement,AlteraMegaCoreFunctionLicense

--Agreement,orotherapplicablelicenseagreement,including,

--withoutlimitation,thatyouruseisforthesolepurposeof

--programminglogicdevicesmanufacturedbyAlteraandsoldby

--Alteraoritsauthorizeddistributors.Pleaserefertothe

--applicableagreementforfurtherdetails.

--PROGRAM"QuartusII64-Bit"

--VERSION"Version8.0Build21505/29/2008SJFullVersion"

LIBRARYieee;

USEieee.std_logic_1164.all;

LIBRARYwork;

ENTITYBlock1IS

port

cn:

INSTD_LOGIC;

m:

INSTD_LOGIC;

a:

INSTD_LOGIC_VECTOR(15downto0);

b:

INSTD_LOGIC_VECTOR(15downto0);

s:

INSTD_LOGIC_VECTOR(3downto0);

f:

OUTSTD_LOGIC_VECTOR(15downto0)

);

ENDBlock1;

ARCHITECTUREbdf_typeOFBlock1IS

attributeblack_box:

boolean;

attributenoopt:

boolean;

component\74181_0\

PORT(B0N:

INSTD_LOGIC;

A0N:

INSTD_LOGIC;

A1N:

INSTD_LOGIC;

B1N:

INSTD_LOGIC;

A3N:

INSTD_LOGIC;

B2N:

INSTD_LOGIC;

A2N:

INSTD_LOGIC;

M:

INSTD_LOGIC;

CN:

INSTD_LOGIC;

B3N:

INSTD_LOGIC;

S2:

INSTD_LOGIC;

S1:

INSTD_LOGIC;

S0:

INSTD_LOGIC;

S3:

INSTD_LOGIC;

PN:

OUTSTD_LOGIC;

GN:

OUTSTD_LOGIC;

F3N:

OUTSTD_LOGIC;

F1N:

OUTSTD_LOGIC;

F0N:

OUTSTD_LOGIC;

F2N:

OUTSTD_LOGIC);

endcomponent;

attributeblack_boxof\74181_0\:

componentistrue;

attributenooptof\74181_0\:

componentistrue;

component\74181_1\

PORT(B0N:

INSTD_LOGIC;

A0N:

INSTD_LOGIC;

A1N:

INSTD_LOGIC;

B1N:

INSTD_LOGIC;

A3N:

INSTD_LOGIC;

B2N:

INSTD_LOGIC;

A2N:

INSTD_LOGIC;

M:

INSTD_LOGIC;

CN:

INSTD_LOGIC;

B3N:

INSTD_LOGIC;

S2:

INSTD_LOGIC;

S1:

INSTD_LOGIC;

S0:

INSTD_LOGIC;

S3:

INSTD_LOGIC;

PN:

OUTSTD_LOGIC;

GN:

OUTSTD_LOGIC;

F3N:

OUTSTD_LOGIC;

F1N:

OUTSTD_LOGIC;

F0N:

OUTSTD_LOGIC;

F2N:

OUTSTD_LOGIC);

endcomponent;

attributeblack_boxof\74181_1\:

componentistrue;

attributenooptof\74181_1\:

componentistrue;

component\74181_2\

PORT(B0N:

INSTD_LOGIC;

A0N:

INSTD_LOGIC;

A1N:

INSTD_LOGIC;

B1N:

INSTD_LOGIC;

A3N:

INSTD_LOGIC;

B2N:

INSTD_LOGIC;

A2N:

INSTD_LOGIC;

M:

INSTD_LOGIC;

CN:

INSTD_LOGIC;

B3N:

INSTD_LOGIC;

S2:

INSTD_LOGIC;

S1:

INSTD_LOGIC;

S0:

INSTD_LOGIC;

S3:

INSTD_LOGIC;

PN:

OUTSTD_LOGIC;

GN:

OUTSTD_LOGIC;

F3N:

OUTSTD_LOGIC;

F1N:

OUTSTD_LOGIC;

F0N:

OUTSTD_LOGIC;

F2N:

OUTSTD_LOGIC);

endcomponent;

attributeblack_boxof\74181_2\:

componentistrue;

attributenooptof\74181_2\:

componentistrue;

component\74181_3\

PORT(B0N:

INSTD_LOGIC;

A0N:

INSTD_LOGIC;

A1N:

INSTD_LOGIC;

B1N:

INSTD_LOGIC;

A3N:

INSTD_LOGIC;

B2N:

INSTD_LOGIC;

A2N:

INSTD_LOGIC;

M:

INSTD_LOGIC;

CN:

INSTD_LOGIC;

B3N:

INSTD_LOGIC;

S2:

INSTD_LOGIC;

S1:

INSTD_LOGIC;

S0:

INSTD_LOGIC;

S3:

INSTD_LOGIC;

PN:

OUTSTD_LOGIC;

GN:

OUTSTD_LOGIC;

F3N:

OUTSTD_LOGIC;

F1N:

OUTSTD_LOGIC;

F0N:

OUTSTD_LOGIC;

F2N:

OUTSTD_LOGIC);

endcomponent;

attributeblack_boxof\74181_3\:

componentistrue;

attributenooptof\74181_3\:

componentistrue;

component\74182_4\

PORT(PN2:

INSTD_LOGIC;

GN2:

INSTD_LOGIC;

GN3:

INSTD_LOGIC;

PN3:

INSTD_LOGIC;

CI:

INSTD_LOGIC;

PN1:

INSTD_LOGIC;

PN0:

INSTD_LOGIC;

GN1:

INSTD_LOGIC;

GN0:

INSTD_LOGIC;

CY:

OUTSTD_LOGIC;

CX:

OUTSTD_LOGIC;

CZ:

OUTSTD_LOGIC);

endcomponent;

attributeblack_boxof\74182_4\:

componentistrue;

attributenooptof\74182_4\:

componentistrue;

signalf_ALTERA_SYNTHESIZED:

STD_LOGIC_VECTOR(15downto0);

signalSYNTHESIZED_WIRE_0:

STD_LOGIC;

signalSYNTHESIZED_WIRE_1:

STD_LOGIC;

signalSYNTHESIZED_WIRE_2:

STD_LOGIC;

signalSYNTHESIZED_WIRE_3:

STD_LOGIC;

signalSYNTHESIZED_WIRE_4:

STD_LOGIC;

signalSYNTHESIZED_WIRE_5:

STD_LOGIC;

signalSYNTHESIZED_WIRE_6:

STD_LOGIC;

signalSYNTHESIZED_WIRE_7:

STD_LOGIC;

signalSYNTHESIZED_WIRE_8:

STD_LOGIC;

signalSYNTHESIZED_WIRE_9:

STD_LOGIC;

signalSYNTHESIZED_WIRE_10:

STD_LOGIC;

BEGIN

b2v_inst:

74181_0

PORTMAP(B0N=>b(0),

A0N=>a(0),

A1N=>a

(1),

B1N=>b

(1),

A3N=>a(3),

B2N=>b

(2),

A2N=>a

(2),

M=>m,

CN=>cn,

B3N=>b(3),

S2=>s

(2),

S1=>s

(1),

S0=>s(0),

S3=>s(3),

PN=>SYNTHESIZED_WIRE_6,

GN=>SYNTHESIZED_WIRE_5,

F3N=>f_ALTERA_SYNTHESIZED(3),

F1N=>f_ALTERA_SYNTHESIZED

(1),

F0N=>f_ALTERA_SYNTHESIZED(0),

F2N=>f_ALTERA_SYNTHESIZED

(2));

 

b2v_inst1:

74181_1

PORTMAP(B0N=>b(4),

A0N=>a(4),

A1N=>a(5),

B1N=>b(5),

A3N=>a(7),

B2N=>b(6),

A2N=>a(6),

M=>m,

CN=>SYNTHESIZED_WIRE_0,

B3N=>b(7),

S2=>s

(2),

S1=>s

(1),

S0=>s(0),

S3=>s(3),

PN=>SYNTHESIZED_WIRE_3,

GN=>SYNTHESIZED_WIRE_4,

F3N=>f_ALTERA_SYNTHESIZED(7),

F1N=>f_ALTERA_SYNTHESIZED(5),

F0N=>f_ALTERA_SYNTHESIZED(4),

F2N=>f_ALTERA_SYNTHESIZED(6));

b2v_inst2:

74181_2

PORTMAP(B0N=>b(8),

A0N=>a(8),

A1N=>a(9),

B1N=>b(9),

A3N=>a(11),

B2N=>b(10),

A2N=>a(10),

M=>m,

CN=>SYNTHESIZED_WIRE_1,

B3N=>b(11),

S2=>s

(2),

S1=>s

(1),

S0=>s(0),

S3=>s(3),

PN=>SYNTHESIZED_WIRE_7,

GN=>SYNTHESIZED_WIRE_9,

F3N=>f_ALTERA_SYNTHESIZED(11),

F1N=>f_ALTERA_SYNTHESIZED(9),

F0N=>f_ALTERA_SYNTHESIZED(8),

F2N=>f_ALTERA_SYNTHESIZED(10));

b2v_inst3:

74181_3

PORTMAP(B0N=>b(12),

A0N=>a(12),

A1N=>a(13),

B1N=>b(13),

A3N=>a(15),

B2N=>b(14),

A2N=>a(14),

M=>m,

CN=>SYNTHESIZED_WIRE_2,

B3N=>b(15),

S2=>s

(2),

S1=>s

(1),

S0=>s(0),

S3=>s(3),

PN=>SYNTHESIZED_WIRE_8,

GN=>SYNTHESIZED_WIRE_10,

F3N=>f_ALTERA_SYNTHESIZED(15),

F1N=>f_ALTERA_SYNTHESIZED(13),

F0N=>f_ALTERA_SYNTHESIZED(12),

F2N=>f_ALTERA_SYNTHESIZED(14));

b2v_inst4:

74182_4

PORTMAP(PN2=>SYNTHESIZED_WIRE_3,

GN2=>SYNTHESIZED_WIRE_4,

GN3=>SYNTHESIZED_WIRE_5,

PN3=>SYNTHESIZED_WIRE_6,

CI=>cn,

PN1=>SYNTHESIZED_WIRE_7,

PN0=>SYNTHESIZED_WIRE_8,

GN1=>SYNTHESIZED_WIRE_9,

GN0=>SYNTHESIZED_WIRE_10,

CY=>SYNTHESIZED_WIRE_1,

CX=>SYNTHESIZED_WIRE_2,

CZ=>SYNTHESIZED_WIRE_0);

f<=f_ALTERA_SYNTHESIZED;

END;

(四)遇到的问题及解决方法分析

遇到的问题:

进位怎样传入。

解决办法:

通过74182芯片来传输进位。

(五)尚未解决的问题及其应对策略

尚未解决的问题:

运算结果总比实际结果多一

应对策略:

S0~S3的赋值不同所运行的运算不同,可以通过改变S0~S3的赋值来解决。

二.实验二——带字位扩展存储器功能部件的设计与实现

(一)总体设计

2.1.1问题分析

了解随机存储器的工作原理和过程,熟悉随机存储器的读写原理。

根据存储器的工作原理,并且按照存储器字位扩展的基本原则完成存储器功能部件的设计,并实现器件封装,测试存储器的读写功能。

1、设计出存储器功能部件的基本结构;

2、选择芯片及若干元器件进行物理连接,完成存储器部件的设计并实现部件的封装;

3、对该部件进行模拟仿真测试,检查存储器功能部件的数据读写是否正确。

功能介绍:

存储器功能部件(Memory)是为了提供存储数据和程序而设计的功能部件。

可作为主机系统的主存储器使用。

在存储器功能部件中,设计了主存地址寄存器(MAR)和主存数据寄存器(MDR),作为主存与CPU进行数据交换的接口。

MAR接收、暂存总线上的主存地址,MDR暂存输出到总线上的数据。

CPMAR和CPMDR管脚分别作为主存地址寄存器(MAR)和主存数据寄存器(MDR)的数据接收控制信号。

RD作为存储器的读控制信号(上升沿触发),在RD为高电位(即:

存储器数据输出有效)期间,应发出CPMDR脉冲控制信号,使存储器的读出数据锁存到存储器数据寄存器MDR中。

WR和WRE分别作为存储器的写控制信号和写使能控制信号,在WRE为高电位期间,发出WR脉冲控制信号(上升沿有效),则可以把输入数据写入到主存储器中。

RAM-BUS控制信号(低电位有效)完成将存储器的输出数据通过三态门输出的功能。

2.1.2总体方案设计。

1、设计出部件的逻辑原理图,画出部件的逻辑电路布线图;

2、拟定测试数据及测试方法;

3、检测模拟仿真测试结果的正确性;

4、对设计出的部件进行封装,并写出封装后芯片的功能表。

(二)详细设计

2.2.1每个模块的功能

具有扩展功能的存储器存储功能

 

2.2.2处理逻辑

2.2.3屏幕显示布局设计图

74273功能表

74244功能表

存储器封装

布局设计图

(3)程序编码。

//Copyright(C)1991-2008AlteraCorporation

//YouruseofAlteraCorporation'sdesigntools,logicfunctions

//andothersoftwareandtools,anditsAMPPpartnerlogic

//functions,andanyoutputfilesfromanyoftheforegoing

//(includingdeviceprogrammingorsimulationfiles),andany

//associateddocumentationorinformationareexpresslysubject

//tothetermsandconditionsoftheAlteraProgramLicense

//SubscriptionAgreement,AlteraMegaCoreFunctionLicense

//Agreement,orotherapplicablelicenseagreement,including,

//withoutlimitation,thatyouruseisforthesolepurposeof

//programminglogicdevicesmanufacturedbyAlteraandsoldby

//Alteraoritsauthorizeddistributors.Pleaserefertothe

//applicableagreementforfurtherdetails.

//PROGRAM"QuartusII64-Bit"

//VERSION"Version8.0Build21505/29/2008SJFullVersion"

moduleBlock12(

WRE,

WR,

RD,

clka,

clkd,

CLRN,

GN,

a,

in,

out

);

inputWRE;

inputWR;

inputRD;

inputclka;

inputclkd;

inputCLRN;

inputGN

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1