版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:相连存储器的设计与实现院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。报告和电子数据必须作为实验现象重复的关键依据。学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。本人签名:日期:年月日沈阳航空航天大学课程设计任务书课程设计名称XXXX课程设计专业学生姓名班级学号题目名称起止日期年月日起至年月日止课设内容和要求:参考资料:教研室审核意见:教研室主任签字:指导教师(签名)年月日学生(签名)年月日课程设计总结:目录TOC\o"1-3"\h\u第一章总体设计方案 -19-1总体设计方案1.1设计原理相联存储器(ContentAddressedMemory),即可按地址寻址,又可按内容(通常是某些字段)寻址,为与传统存储器区别,又称为按内容寻址的的存储器。相联存储器的每个字由若干字段组成,每个字段描述了一个对象的属性,也称为一个内容。写入信息时按顺序写入,不需要地址。读出时,要求中央处理单元给出一个相联关键字,用它和存储器中所有单元中的一部分信息进行比较,若它们相等,则将此单元中余下的信息读出。这是实现存储器并行操作的一种有效途径,特别适合于信息的检索和更新。译码选择电路存储体输出结果寄存器输入寄存器检索寄存器读写控制端图译码选择电路存储体输出结果寄存器输入寄存器检索寄存器读写控制端图1.1相联存储器原理框图1.2设计思路根据相联存储器的原理特点,即按照内容寻址,因此可以将相联存储器分为以下几个部分:输入寄存器,译码选择电路,存储体,检索寄存器。输入寄存器:用来存放检索字,其位数与相联存储器的字长相等。译码选择电路:用3-8译码器进行译码电路选择,如当置输入端A2A1A0为“000”,译码器,可以向存储体第一个单元地址输入8位二进制的字信息;同时其他的存储单元的信息被屏蔽掉。存储体(AMU):用于存放待检索的数据,由高速半导体存储器构成,以求快速存取。检索寄存器(CR):把检索项和所有存储单元相应位进行比较,如果比较结果相等,输出高电平1,否则输出低电平0。设存储体由8个字构成,字长为8位的二进制数。CR为检索寄存器,字长也为8位,存放要比较的数。首先向输入总线输入一个8位二进制的字,然后通过3-8译码器选择电路依次将8个8位二进制数输入到存储体中。将输入到输入寄存器的字通过检索寄存器分别与存储体里的8个字检索比较,若匹配,则输出信号置1,否则置0,我们就能找到匹配的那个字。若存储体八个单元存储的数据分别为11111111、11111110、1111101、11111100、11111011、11111010、11111001,11111000,输入寄存器中的存储数据是11111101,通过检索寄存器器CR进行比较之后,可以知道发现检索数据与存储体中的第3个单元的内容一致,所以结果输出为:00000100。写入数据时,有存储器内置计数器pc指明存储器可写入地址,写入后输出反馈信号,信号与输入信息一致。若当前pc=4,写入00000001,则存储器变为11111111、11111110、1111101、11111100、11111011、00000001、11111001,输出结果为:00000001。1.3设计环境设计软件:Altera公司的综合性PLD/FPGA开发软件QuartusII。仿真软件:Mentor公司的ModelSim。计算机组成原理课程设计报告 第二章详细设计方案2详细设计方案2.1总体模块设计依据相连存储器的工作原理,存储器需要两个输入信号,读写控制信号和数据输入信号;以及一个输出信号,结果输出信号。故存储器模块设计为:moduleram(in_data,in_r_w,out_state);input[7:0]in_data; // 输入数据inputin_r_w; // 读写控制output[7:0]out_state; // 存储器输出数据Endmodule存储器初始化信息如下。initialbegin memory[0]=8'b11111111; memory[1]=8'b11111110; memory[2]=8'b11111101; memory[3]=8'b11111100; memory[4]=8'b11111011; memory[5]=8'b11111010; memory[6]=8'b11111001; memory[7]=8'b11111000; out_state=8'b00000000; pc_2=4;end2.2存储器读模块设计依据相连存储器的工作原理,存储器在读写信号置1是读取数据,并且在输入信号到达时,自动检索匹配输入信号与存储体数据,并根据匹配结果输出信号。if(in_r_w==1'b1)begin out_state=8'b00000000; for(pc=0;pc<=7;pc=pc+1) // 遍历存储器 begin case(pc) 3'd0:address=3'b000; 3'd1:address=3'b001; 3'd2:address=3'b010; 3'd3:address=3'b011; 3'd4:address=3'b100; 3'd5:address=3'b101; 3'd6:address=3'b110; 3'd7:address=3'b111; endcase m_data=memory[address]; // 存储器输出数据 if(m_data==in_data) // 存储器输出数据与输入数据比较 out_state[pc]=1'b1; else out_state[pc]=1'b0; endend2.3存储器写模块设计依据相连存储器的工作原理,存储器在读写信号置0是写入数据,并且在输入信号到达时,将输入信息写入存储器尾部。if(in_r_w==1'b0)begin if(pc_2<7) pc_2=pc_2+1; else pc_2=0;// 地址译码 case(pc_2) 3'd0:address=3'b000; 3'd1:address=3'b001; 3'd2:address=3'b010; 3'd3:address=3'b011; 3'd4:address=3'b100; 3'd5:address=3'b101; 3'd6:address=3'b110; 3'd7:address=3'b111; Endcase // 写入数据 memory[address]=in_data; // 返回数据 out_state=memory[address];end计算机组成原理课程设计报告 第三章设计仿真3设计仿真3.1存储器默认存储数据初始时存储器存储数据如表3.1所示。设存储器设存储体由8个字构成,字长为8位的二进制数。默认存储器数据地址(3位二进制)数据(8位二进制)0001111111100111111110010111111010111111110010011111011101111110101101111100111111111000表表3.1存储器数据3.2存储器读取默认数据将存储器置为读信号(in_r_w=1),依次按序向输入寄存器输入(in_data信号)11111111、11111110、11111101、11111100(仿真波形图如图3.1所示),11111011、11111010、11111001、11111000(仿真波形图如图3.2所示),11110011、11110010、11110001、11110000(仿真波形图如图3.2所示)。图3.1图3.1仿真波形图1图图3.2仿真波形图2图图3.3仿真波形图3如仿真波形所示,在存储器置为读信号(in_r_w=1)时,在输入11111111、11111110、11111101、11111100,11111011、11111010、11111001、11111000后,结果寄存器依次输出(out_state信号)00000001、00000010、00000100、00001000、0001000、00100000、01000000、10000000。输出显示了这些数据已存储于存储器,相应的,在输入11110011、11110010、11110001、11110000,结果寄存器均输出00000000,表示这些数据不在存储器中。与表3.1中的数据比对,可知此次仿真正确。3.3存储器读写入新数据将存储器置为写信号(in_r_w=0),依次按序向输入寄存器输入(in_data信号)00000001、100000010(仿真波形图如图3.4所示),再此,存储器默认数据追加信号pc=4。图3.4图3.4仿真波形图4若信息写入成功,则此时存储器数据应为表3.2所示。默认存储器数据地址(3位二进制)数据(8位二进制)0001111111100111111110010111111010111111110010011111011101000000011100000001011111111000表表3.2存储器数据3.4存储器读取写入后数据将存储器置为读信号(in_r_w=1),依次按序向输入寄存器输入(in_data信号)11111111、11111110、11111101、11111100(仿真波形图如图3.5所示),11111011、11111010、11111001、11111000(仿真波形图如图3.6所示),00000001、00000010、11110011、11110010(仿真波形图如图3.7所示)。11110001、11110000(仿真波形图如图3.8所示)。图3.5图3.5仿真波形图5图3.6仿真图3.6仿真波形图6图图3.7仿真波形图7图图3.8仿真波形图8如仿真波形所示,在存储器置为读信号(in_r_w=1)时,在输入11111111、11111110、11111101、11111100,11111011、00000001、00000010、11111000后,结果寄存器依次输出(out_state信号)00000001、00000010、00000100、00001000、0001000、00100000、01000000、10000000。输出显示了这些数据已存储于存储器,相应的,在输入11111010、11111001、11110011、11110010、11110001、11110000,结果寄存器均输出00000000,表示这些数据不在存储器中。与表3.2中的数据比对,可知此次仿真正确。计算机组成原理课程设计 参考文献参考文献[1]李景华.可编程程逻辑器件与EDA技术[M].北京:东北大学出版社,2001[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社, 2006[3]王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006[4]王冠.VerilogHDL与数字电路设计[M].北京:机械工业出版社,2005[5]白中英.计算机组成原理[M].科学出版社出版社,2008[6]郑纬民.计算机系统结构[M].北京:清华大学出版社,1992[7]胡越明.计算机组成与设计[M].北京:科学出版社,2006计算机组成原理课程设计 附录附录程序代码moduleram(in_data,in_r_w,out_state);input[7:0]in_data; // 输入数据inputin_r_w; // 读写控制output[7:0]out_state; // 存储器输出数据reg[7:0]memory[7:0]; // 模拟存储器reg[2:0]address; // 存储器地址reg[7:0]m_data; // 存储器输出数据reg[7:0]out_state;integerpc,pc_2;// 初始化initialbegin memory[0]=8'b11111111; memory[1]=8'b11111110; memory[2]=8'b11111101; memory[3]=8'b11111100; memory[4]=8'b11111011; memory[5]=8'b11111010; memory[6]=8'b11111001; memory[7]=8'b11111000; out_state=8'b00000000; pc_2=4;endalways@(in_data)begin // 存储器读 if(in_r_w==1'b1) begin out_state=8'b00000000; // 遍历存储器 for(pc=0;pc<=7;pc=pc+1) begin case(pc) 3'd0: address=3'b000; 3'd1: address=3'b001; 3'd2: address=3'b010; 3'd3: address=3'b011; 3'd4: address=3'b100; 3'd5: address=3'b101; 3'd6: address=3'b110; 3'd7: address=3'b111; endcase m_data=memory[address]; // 存储器输出数据 // 存储器输出数据与输入数据比较 if(m_data==in_data) out_state[pc]=1'b1; else out_state[pc]=1'b0; end end // 存储器写 elseif(in_r_w==1'b0) begin if(pc_2<7) pc_2=pc_2+1; else pc_2=0; case(pc_2) 3'd0: address=3'b000; 3'd1: address=3'b001; 3'd2: address=3'b010; 3'd3: address=3'b011; 3'd4: address=3'b100; 3'd5: address=3'b101; 3'd6: address=3'b110; 3'd7: address=3'b111; endcase // 写入数据 memory[address]=in_data; // 返回数据 out_state=memory[address]; endendendmodule
Testbeach仿真测试文件//Copyright(C)1991-2009AlteraCorporation//YouruseofAlteraCorporation'sdesigntools,logicfunctions//andothersoftwareandtools,anditsAMPPpartnerlogic//functions,andanyoutputfilesfromanyoftheforegoing//(includingdeviceprogrammingorsimulationfiles),andany//associateddocumentationorinformationareexpresslysubject//tothetermsandconditionsoftheAlteraProgramLicense//SubscriptionAgreement,AlteraMegaCoreFunctionLicense//Agreement,orotherapplicablelicenseagreement,including,//withoutlimitation,thatyouruseisforthesolepurposeof//programminglogicdevicesmanufacturedbyAlteraandsoldby//Alteraoritsauthorizeddistributors.Pleaserefertothe//applicableagreementforfurtherdetails.//*****************************************************************************//ThisfilecontainsaVerilogtestbenchtemplatethatisfreelyeditableto//suituser'sneeds.Commentsareprovidedineachsectiontohelptheuser//filloutnecessarydetails.//*****************************************************************************//Generatedon"01/10/201610:21:20"//VerilogTestBenchtemplatefordesign:ram////Simulationtool:ModelSim(Verilog)//`timescale1ns/1psmoduleram_tb();//constants//generalpurposeregistersregeachvec;//testvectorinputregistersreg[7:0]in_data;regin_r_w;//wireswire[7:0]out_state;//assignstatements(ifany)rami1(//portmap-connectionbetweenmasterportsandsignals/registers .in_data(in_data), .in_r_w(in_r_w), .out_state(out_state));initialbegin//codethatexecutesonlyonce//insertcodehere-->begin in_r_w=1'b1; in_data=8'b11111111;//-->end$display("Runningtestbench");endalways//optionalsensitivitylist//@(event1orevent2oreventn)begin//codeexecutesforeveryeventonsensitivitylist//insertcodehere-->begin #1in_data=8'b11111110; #1in_data=8'b11111101; #1in_data=8'b11111100; #1in_data=8'b11111011; #1in_data=8'b11111010; #1in_data=8'b11111001; #1in_data=8'b11111000; #1in_data=8'b11110011; #1in_data=8'b11110010; #1in_data=8'b11110001; #1in_data=8'b11110000; #1in_r_w=1'b0; #1in_data=8'b00000001; #1in_data=8'b00000010; #1in_r_w=1'b1;#1in_data=8'b11111111; #1in_data=8'b11111110; #1in_data=8'b11111101; #1in_data=8'b11111100; #1in_data=8'b11111011; #1in_data=8'b11111010; #1in_data=8'b11111001; #1in_data=8'b11111000; #1in_data=8'b00000001; #1in_data=8'b00000010; #1in_data=8'b11110011; #1in_data=8'b11110010; #1in_data=8'b11110001; #1in_data=8'b11110000;@eachvec;//-->endendendmodule 总体电路图基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用\t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大型吊车项目施工环境保护方案
- 房屋赠与协议书法律解读
- 海洋工程环境监测方案
- 桥梁防水防潮施工合同实例
- 销售团队内部培训师激励方案构建
- 矿业企业劳动合同规范
- 教育培训机构教师绩效考核方案
- 体育场馆安保应急预案方案
- 内镜中心人员培训管理制度
- 2024年度建筑项目施工合作协议模板
- 医院信息化建设项目验收方案
- 结构加固施工方案说明范本
- 爱心助学基金会章程样本
- 2010年408真题及答案解析
- 劳动教育课程实施方案(通用12篇)
- 慕课课程课件
- 0~36个月儿童中医药健康管理服务
- 高中英语-Explore Peru教学设计学情分析教材分析课后反思
- “工匠精神”视域下的高职院校学生职业素养教育的路径研究课题开题报告
- 不要等到毕业以后(升级版)
- 一企一标准一岗一清单手册模板
评论
0/150
提交评论