欢迎来到天天文库
浏览记录
ID:59333569
大小:153.63 KB
页数:10页
时间:2020-09-04
《组成原理实验报告-数据通路设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、组成原理实验报告学生姓名专业/班级学号所在学院提交日期实验四数据通路的设计与测试一.实验目的:学习和掌握一个基本的数据通路的结构和运行规律;进一步掌握VHDL语言的编程技术和仿真波形的观测。二.实验内容:1.利用硬件描述语言VHDL实现一个数据通路的连接,包括:RAM、ALU、RF等模块;2.输入数据后观察信号在各部件中的传输情况(状态);3.开关量提供输入,通过指示灯观察各模块端口的状态。三.实验要求:1.画出完整的数据通路电路图;2.编写实现以上功能的电路模块的VHDL代码并反映出本人的设计思路(利用流程图、状态图等);3.对数据的传输过程进
2、行仿真,时序波形进行定量的分析;4.记录设计和调试过程。四.实验设计(1)总体设计图-完整电路图通路实现代码:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYalu1ISPORT(add:INSTD_lOGIC;x:INSTD_LOGIC_VECTOR(7DOWNTO0);y:INSTD_LOGIC_VECTOR(7DOWNTO0);substrance:INSTD_LOGIC;m:INSTD_LOGIC;cout:OUTSTD_LOGIC_V
3、ECTOR(7DOWNTO0));ENDENTITYalu1;ARCHITECTUREaluStructOFalu1ISBEGINPROCESS(add,substrance,m,x,y)BEGINIFM='1'THENcout<=x;ELSEIFadd='1'THENcout<=x+y;ELSEIFsubstrance='1'THENcout<=x-y;ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDaluStruct;(2)寄存器设计了三个寄存器R1、R2和R3,用来存放IN输入的数据,由输入端1,2和3分别进行控制数据的存放
4、。VHDL代码:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYsolutionISPORT(d:INSTD_lOGIC_VECTOR(7DOWNTO0);lda:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDENTITYsolution;ARCHITECTUREbhvOFsolutionISBEGINPROCESS(d,lda)BEGINIFlda='1'THENq<=d;ENDIF;ENDPROCESS;ENDbhv;(3)控制器(1)三选一控制器具体
5、的VHDL语言如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYselectOneISPORT(in1:INSTD_lOGIC;in2:INSTD_LOGIC;in3:INSTD_LOGIC;cout:OUTSTD_LOGIC_VECTOR(7DOWNTO0);cin1:INSTD_LOGIC_VECTOR(7DOWNTO0);cin2:INSTD_LOGIC_VECTOR(7DOWNTO0);cin3:INSTD_LOGIC_VECTOR(7DOWNTO0));ENDENTITYselectOne;
6、ARCHITECTUREchooseOFselectOneISBEGINPROCESS(in1,in2,in3,cin1,cin2,cin3)BEGINIFin1='1'THENcout<=cin1;ELSEIFin2='1'THENcout<=cin2;ELSEIFin3='1'THENcout<=cin3;ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDchoose;(2)通过VHDL语言设计的三选一控制器如下图所示。(4)ALU(1)使用的VHDL语言如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164
7、.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYalu1ISPORT(add:INSTD_lOGIC;x:INSTD_LOGIC_VECTOR(7DOWNTO0);y:INSTD_LOGIC_VECTOR(7DOWNTO0);substrance:INSTD_LOGIC;m:INSTD_LOGIC;cout:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDENTITYalu1;ARCHITECTUREaluStructOFalu1ISBEGINPROCESS(add,substrance,m
8、,x,y)BEGINIFM='1'THENcout<=x;ELSEIFadd='1'THENcout<=x+y;ELSEIFsubstr
此文档下载收益归作者所有