实验要求.docx
《实验要求.docx》由会员分享,可在线阅读,更多相关《实验要求.docx(32页珍藏版)》请在冰豆网上搜索。
实验要求
计算机组成原理实验指导书
指导教师:
佘欣媛
目录
第一章实验系统介绍
1.1实验系统组成
实验系统由一台计算机+实验箱组成,如图1-1所示:
图1-1实验系统示意图
1、实验箱:
ZYCH-4SOPC实验开发平台;
2、USBBlaster下载线:
计算机通过USB接口连接实验箱,对实验箱上FPGA/CPLD以及配置芯片进行编程、调试等操作;
1.2实验箱介绍
CH-4实验系统主板器件位置如图1-2所示
FPGA:
EP3C16Q240C8N(15408Les)
配置芯片:
EPCS16SI8N(2MB)
SDRAM:
HY57V561620(32MB)
LCD及触摸屏:
5.6吋TFTLCD屏、触摸屏,屏幕分辨率:
640x480。
型号:
群创AT056TN53。
LCD控制电路:
使用CPLDEPM1270T144C5、SRAM61LV25616*2;可控制至少16位色LCD,可兼容MCS51系列单片机接口。
触摸屏控制电路:
AD7843
LED发光二极管:
8位¢5mm红、黄、绿、兰各2位
数码管(动态扫描):
LG5641AHx28位7段数码管0.5吋共阴红
按键:
8位OMRON按键
二值开关:
8位
键盘:
4x4OMRON按键
上电及手动复位电路:
蜂鸣器:
3V无源蜂鸣器1个
温湿度传感器:
SHT10
实时时钟电路:
PCA8563(带锂电池)
铁电存储器:
FM25V05(64KB)
SD卡接口:
带2GBSD卡
PS2接口:
带电压钳位保护
2路可控时钟源(1Hz,10Hz,100Hz,1KHz,10KHz,100Khz,1MHz,10MHz):
分别用BCD拨码开关选择,掉电时设置值不丢失。
串口:
MAX3232
USB接口:
FT232R
扩展接口座(40P):
36IO,带电压钳位保护,兼容台湾友晶公司DE2开发板扩展接口。
1.3组成原理扩展板
CH-4实验箱中提供连接好的扩展板是组成原理/数字逻辑扩展模块,实验系统主板通过4位IO口控制组成原理/数字逻辑扩展板的LCD、发光二极管、二值开关、脉冲开关等输入输出资源。
组成原理/数字逻辑扩展模块配置如下:
面包板1块:
●一个端子条300个插孔
●两个分配条,100个插孔
●适用线径:
29-20AWG
●尺寸:
83.5x54.5x8.5mm;8.2x5.3x0.85cm
面包板相关实验IO接口:
LED发光二极管8个
二值开关8位
2x16字符点阵液晶1块
LED发光二极管60个
二值开关60位
触发按键(上升沿)2位
触发按键(下降沿)2位
控制器CPLDEPM1270C5N1片
1.4实验软件环境
实验软件:
1、QuartusII9.1:
Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
2、SOPCBuilder:
SOPCbuilder是QuartusII中用来建立、开发、维护系统的平台,可构成包括处理器、外设和存储器接口等常用系统组成的总线系统。
它能够实现让系统设计人员快速开发系统,大大提高FPGA设计人员的工作效率。
3、NiosII9.1:
是一种开发人员广泛应用的,包含编辑、编译和调试应用软件等功能的集成开发环境。
简要来说,使用以上三种软件共同了FPGA硬件系统的开发,其中在SOPCBuilder中完成系统硬件的设计,NiosII中完成对硬件实现控制的软件设计,QuartusII完成对设计好的硬件进行管脚等配置、编译,然后下载到实验平台的FPGA芯片中。
第二章组成原理实验
配合计算机组成原理理论课程,实验课程共分六个实验:
1.总线传输实验;
2.存储器实验;
3.IO(DMA)实验;
4.运算器实验;
5.指令系统实验;
6.最小系统实验。
实验一总线传输实验
一、实验目的与要求
1.掌握QuartusII编译环境及使用方法;
2.掌握组成原理扩展板的使用;
3.了解verilog提供的门级语言;
4.掌握lmp_ram_dp模块的建立;
5.体会总线同步传输时序及分时利用原理。
二、实验设备及软件
PC机、实验平台、QuartusII软件编辑环境。
三、实验内容
1.用图形法blockdiagram实现如下功能:
(1)建立两个lmp_ram_dq存储模块,分别模拟两个存储体;
(2)利用组成原理扩张板模拟CPU并给出:
存储体体号:
指出当前访问的是两个存储体中的哪一个;
数据:
CPU欲写入存储单元的数据;
存储器体内部地址:
CPU数据存入的存储单元地址;
读写命令:
读写控制(wren高电平为写)。
(3)可从组成原理扩展板上观察到写入的效果。
2.用verilog语言编程实现如下功能:
(1)编程模拟8个存储单元
(2)使用组成原理扩展板模拟CPU给出:
地址:
8个存储单元地址号码;
数据:
CPU欲写入存储单元的数据;
读写命令;
(3)可从组成原理扩展板上观察到写入的效果。
四、实验步骤
(一)图形法blockdiagram实现
1.打开QuartusII编辑环境,建立工程bus_b;
2.建立图形文件blockdiagram,另存为bus_b;
3.将组成原理扩展板代码lcdswip拷贝到工程bus_b目录下;
4.点击QuartusII中File—Create/Update—CreateSymbolFilesforCurrentFile生成组成原理扩展板图形模块;
5.在新建的图形文件bus_b中双击鼠标左键在弹出Symbol串口左侧的libraries中双击第一个文件夹project下面的lcdswip,然后将其添加到bus_b文件中;
6.双击文件bus_b中的空白处添加模块lmp_ram_dq,其中数据位8位,地址位5位,采用单一时钟,qoutputport不勾选,如法添加两个lmp_ram_dq;
7.使用lcdswip的SWA[0]控制第一个lmp_ram_dq的wren端,SWA[1]控制第二个lmp_ram_dq的wren端;
8.SWA[6..2]给出两个lmp_ram_dq内部的存储单元地址;
9.SWA[7..0]出给欲写入两个存储体的数据;
10.第一个lmp_ram_dq的输出连接到扩展板的LEDB[7..0]端,第二个lmp_ram_dq的输出连接到扩展板的LEDB[15..8]端;
11.存储体以及lcdswip芯片的时钟采用系统时钟;
12.分析、配置管脚、编译、下载、验证。
(二)verilog语言编程实现
1.打开QuartusII编辑环境,建立工程bus_v;
2.建立verilog文件,另存为bus_v;
3.将组成原理扩展板代码lcdswip拷贝到工程bus_v目录下;
4.编写代码
5.分析、配置管脚、编译、下载、验证
五、实验演示
(一)图形法blockdiagram实现
1.新建工程bus_b
2.配置图形
3.配置管脚
(二)verilog语言编程实现
modulebus_v(MOSI,MCLK,MCS,SYSCLK,MISO);
outputMOSI,MCLK,MCS;
inputSYSCLK,MISO;
变量声明
控制逻辑
wire[7:
0]Hex0,Hex1,Hex2,Hex3,Hex4,Hex5,Hex6,Hex7,Hex8,Hex9,Hex10,Hex11,Hex12,Hex13,Hex14,Hex15,Hex16,Hex17,Hex18,Hex19,Hex20,Hex21,Hex22,Hex23,Hex24,Hex25,Hex26,Hex27,Hex28,Hex29,Hex30,Hex31;
wire[19:
0]SWA,SWB,SWC;
wire[19:
0]LEDA;
wire[3:
0]PS;
lcdswiplcdxx(.MISO(MISO),.MOSI(MOSI),.MCLK(MCLK),.MCS(MCS),.SYSCLK(SYSCLK),
.Hex0(8'h20),.Hex1(8'h20),.Hex2(8'h20),.Hex3(8'h20),.Hex4(8'h43),.Hex5(8'h48),.Hex6(8'h2d),.Hex7(8'h34),.Hex8(8'h20),.Hex9(8'h53),.Hex10(8'h4f),.Hex11(8'h50),.Hex12(8'h43),.Hex13(8'h20),.Hex14(8'h20),.Hex15(8'h20),
.Hex16(8'h20),.Hex17(8'h20),.Hex18(8'h20),.Hex19(8'h20),.Hex20(8'h20),.Hex21(8'h20),.Hex22(8'h20),.Hex23(8'h20),.Hex24(8'h20),.Hex25(8'h20),.Hex26(8'h20),.Hex27(8'h20),.Hex28(PS[0]+8'h30),.Hex29(PS[1]+8'h30),.Hex30(PS[2]+8'h30),.Hex31(PS[3]+8'h30),
.LEDA(LEDA),.LEDB(LEDB),.LEDC(LEDC),
.SWA(SWA),.SWB(SWB),.SWC(SWC),.PS(PS)
);
endmodule
六、实验扩展及思考
如果有多台IO设备,那么使用计数器方式判优该如何实现。
实验二存储器实验
一、实验目的与要求
1.掌握lmp_ram_dq模块的使用;
2.熟练verilog提供的门级语言;
3.存储器片选原理。
二、实验设备及软件
PC机、实验平台、QuartusII软件编辑环境。
三、实验内容
1.使用四个256*4位的lmp_ram_dq模块搭建存储器,要求如下:
2.搭建成的存储器规格为:
512*8位(需要进行字位扩展);
3.可以对存储器读、写;
4.需要有读、写两个控制信号,9位地址信号,8位数据信号(信号可以由lcdswip模块给出);
四、实验步骤
1.建立工程memext;
2.建立图形文件memext;
3.添加四个256*4位的lpm_ram_dq;
4.添加lcdswip模块;
5.分别将lmp_ram_dq两两进行位扩展;
6.添加两个input信号:
读、写;
7.通过lcdswip模块给出存储器的地址、数据信号;
8.添加input时钟信号;
9.配置管脚、分析、编译、下载、验证。
五、实验演示
实验连线示意:
管脚配置:
六、实验扩展及思考
使用verilog语言实现方案
实验三IO(DMA)实验
一、实验目的与要求
1.掌握74377(带使能端的8进制D触发器)使用方法;
2.掌握ram_2port使用方法;
3.熟练verilog提供的门级语言;
4.掌握DMA原理及其中IO以周期窃取方式与主存交互信息的方式;
二、实验设备及软件
PC机、实验平台、QuartusII软件编辑环境。
三、实验内容
1.用图形法blockdiagram实现如下功能:
(1)建立256*8位ram_2port存储模块用于模仿存储器;
(2)利用组成原理扩张板模拟CPU以及IO:
模拟CPU给出的地址信号;
模拟CPU给出的数据信号;
模拟IO给出的地址信号;
模拟IO给出的数据信号;
模拟周期窃取原理,当IO有访存需求时,CPU让出使用权;
(3)可从组成原理扩展板上观察到写入的效果。
2.用verilog语言编程实现如上功能。
四、实验步骤
(一)图形法
1.建立工程DMA_B;
2.建立图形文件DMA_B;
3.添加1个256*8位的ram;
4.添加lcdswip模块;
5.通过lcdswip模块给出CPU给出的地址、数据信号以及IO给出的地址、数据信号;
6.添加input时钟信号;
7.配置管脚、分析、编译、下载、验证。
(二)verilog编程方式
1.建立工程DMA_V;
2.建立verilog文件DMA_V;
3.编写程序;
4.配置管脚、分析、编译、下载、验证。
五、实验演示
(一)图形法
(二)编程法
always@(posedgeCLK)
begin
if(DMA_REQ_N)
begin
ADDR_W<=CPU_ADDR;
DATA_W<=CPU_DATA;
end
else
begin
ADDR_W<=IO_ADDR;
DATA_W<=IO_DATA;
end
end
六、实验扩展及思考
实验四运算器实验
一、实验目的与要求
1.熟练verilog提供的门级语言;
2.原码一位乘原理。
二、实验设备及软件
PC机、实验平台、QuartusII软件编辑环境。
三、实验内容
用verilog语言实现两个四位数的原码一位乘。
四、实验步骤
1.建立工程multi_4;
2.建立verilog文件multi_4;
3.编写程序;
4.配置管脚、分析、编译、下载、验证。
五、实验演示
略
六、实验扩展及思考
实验五指令系统实验
一、实验目的与要求
二、实验设备及软件
三、实验内容
四、实验步骤
五、实验演示
六、实验扩展及思考
实验六最小系统实验
一、实验目的与要求
1.学习QuartusII、SOPCBuilder、NiosIIIDE的基本操作;
2.初步了解SOPC的开发流程,基本掌握NiosII软核的定制流程;
3.掌握NiosII软件的开发流程;掌握软件的基本调试方法。
二、实验设备及软件
硬件:
PC机,CH-4教学实验开发平台;
软件:
QuartusII9.1,SOPCBuilder9.1,NiosIIIDE9.1。
三、实验内容
建立可用于控制LED闪烁的简单NiosII处理器系统,具体包括:
1、在QuartusII中建立一个工程;
2、使用SOPCBuilder建立并生成一个简单的基于NiosII的硬件系统;
3、在QuartusII工程中编译基于NiosII的硬件系统并生成配置文件.sof;
4、在NiosIIIDE中建立对应硬件系统的用户C/C++工程,编写一简单用户程序,在NiosIIIDE中编译程序生成可执行文件.elf;
将配置文件.sof和可执行文件.elf都下载到FPGA进行调试运行。
四、实验步骤
1.新建工程nios
2.打开sopcbuiler,生成简单硬件系统
3.编译生成的硬件系统
改成如下图所示:
弹出的页面如下所示,不需更改使用模式配置即可。
其他使用默认设置。
使用默认配置即可。
其他使用默认配置即可。
如下图所示:
更改各硬件配置如下图所示:
更改各个硬件基地址改成如下图所示:
编译成功会有如下提示:
4.在NiosIIIDE中建立对应硬件系统的用户C/C++工程,编写一简单用户程序,在NiosIIIDE中编译程序生成可执行文件.elf;
建立bsp工程:
会生成如下工程:
将helloworld.c中的代码更改为如下代码:
#include
#include"system.h"
#include"altera_avalon_pio_regs.h"
intmain()
{
unsignedlongi;
printf("HellofromNiosII!
\n");
while
(1)
{
IOWR(LED_BASE,0,1);
for(i=0;i<0xfffffff;i++);
IOWR(LED_BASE,0,0);
for(i=0;i<0xfffffff;i++);
}
return0;
}
更改工程配置:
编译整个nios_ide工程。
5.将配置文件.sof和可执行文件.elf都下载到FPGA进行调试运行。
在quartus工程中建立图形文件cpu,然后insert刚才生成的硬件系统;
形成如下图形文件:
配置管脚
五、实验演示
六、实验扩展及思考