实验七 SOPC 基础实验

实验七SOPC 基础实验

SOPC即System-On-a-Programmable-Chip(可编程片上系统),本章通过一系列的实验,使学习者对SOPC的应用有较为深刻的认识,并对FPGA的仿真与设计环境有深入的了解,为进一步的工作奠定基础。

7.1 SOPC概述

SOPC是PLD和ASIC技术融合的结果,它是一种特殊的嵌入式系统。首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。由于FPGA无论在逻辑门密度还是在运行频率等诸多方面都取得了长足进步,基于FPGA的嵌入式系统成为SOPC的热点。目前已经可以把处理器软核、ASIC硬核、数字信号处理器件以及网络控制等各种数字逻辑控制器以IP核的形式集成到FPGA芯片里,构成嵌入式系统。

7.2 基本硬件设计实验

嵌入式开发环境EDK是用于设计嵌入式处理系统的集成软件,是利用嵌入式PowerPC?硬处理器核和/或Xilinx MicroBlaze?软处理器核进行Xilinx平台FPGA设计时所需的全部技术文档和IP。

EDK包括硬件部分和软件部分:

1. 硬件部分:Xilinx Platform Studio (XPS)

XPS是设计嵌入式处理器系统硬件部分的开发环境和用户图形界面。可使用底层系统生成器BSB(Base System Builder )创建XPS工程,BSB能够快速和有效地创建工程设计。

Xilinx推荐使用BSB向导来创建任何新的嵌入式设计工程,BSB能够满足你所有设计的需要,并且可以帮助你节省很多时间。

使用BSB创建XPS的过程如下:

创建顶层工程文件(*.xmp File)

选择板型

选择和配置处理器

选择和配置多重I/O口

添加内部的外围设备

设置软件

观看系统摘要页

2. 软件部分:Software Development Kit (SDK)

SDK是综合的开发环境,是对XPS的补充,可用C/C++进行嵌入式软件应用的编写和验证。SDK同其他很多软件开发工具一样,是建立在Eclipse?开放源码基础结构之上的。

1.实验目的

(1)学习生成XPS 工程;

(2)学习使用Base System Builder(BSB)生成一个系统;

(3)下载测试应用程序并检测超级终端输出。

2.实验内容

在XPS 中可以使用Base System Builder 生成一个工程,同时生成很多文件,包括:处理器系统文件MHS 文件;原理图文件PBD 文件。系统一旦生成,处理器系统的网表即可以生成。整个设计的结构如下:

图7-1 设计结构图

3.实验准备

(1)将光盘下03. Examples of Program \ 03. EDK9.1 实验程序目录下的labs 的

文件夹拷贝到E:盘根目录下;

(2)将USB 下载电缆与计算机及XUPV2Pro 板的J8 连接好;

(3)将RS232 串口线一端与计算机连接好,另一端与板卡的J11 相连接;(4)启动计算机后,将XUPV2Pro 的电源开关SW11 打开到ON 上。观察XUPV2Pro 板上的+2.5V,+3.3V,+1.5V 的电源指示灯是否均亮,若有不亮的,请断开电源,检查电源;

(5)打开超级终端。

4.实验步骤

(1) 打开工程

1)选择Start → Programs → Xilinx Platform Studio 9.1i → Xilin x Platform Studio,进入EDK 的XPS 环境;

2)选择Base System Builder Wizard 并单击OK 按钮

图7-2 操作示意

3)弹出Create New Project Using Base System Builder Wizard 对话框,新建工程文件E:/labs/lab1/system.xmp,然后单击OK 按钮;

图7-3 操作示意

4)选择I would like to create a new design 选项卡,单击Next 按钮;

图7-4 操作示意

5)弹出Select Board 对话框,选择I would like to create a system for a custom board选项,单击Next 按钮;

图7-5 操作示意

6)弹出Select Processor 对话框,按照下面内容进行设置并选择PowerPC 作为处理器,单击Next 按钮;

Architecture: virtex2p

Device: xc2vp30

Package: ff896

Speed grade: -7

图7-6 操作示意

7)弹出Configure Processor 对话框。按照以下内容进行设置;

Reference Clock Frequency: 100 MHz (板上的这个外部时钟源可以用来产生处理器和总线时钟。时钟频率值取决于FPGA 或者你所使用的板卡,因为某一片上资源(DCMs)可能需要进行定时器乘除法运算)

Processor Clock Frequency: 300 MHz

Bus Clock Frequency: 100 MHz

JTAG Debug Interface: FPGA JTAG

On-Chip Memory (OCM) – Data: NONE

On-Chip Memory (OCM) – Instruction: NONE

图7-7 操作示意

8)单击Next 按钮,弹出Configure IO Interfaces 对话框,单击Add Device 按钮,按照如下选择,单击OK 按钮;

IO Interface Type:UART

Device:RS232

图7-8 操作示意

9)Peripheral 选择OPB UARTLITE,Baudrate 选择115200,不选择Use Parity

选项,其它选项采用默认值;

图7-9 操作示意

10)单击next 按钮,弹出Add Internal Peripherals 对话框,memory size 选择64 KB。PLB block RAM 接口控制器被默认添加,此时可单击Add Peripheral 来另外添加内部外设。在下个实验中,则是在已有工程中添加内部外

设的方法;

11)单击next 按钮,弹出Software Setup 对话框;

12)单击Next 按钮,弹出memory test 设置选项;

13)单击Next 按钮,弹出Peripheral test 设置选项;

图7-13 操作示意

14)单击Next 按钮,弹出System Created 对话框,显示生成的系统概况,

单击Generate 按钮。注意:外围设备的地址映像可能不同;

图7-14 操作示意

图7-15 操作示意

15)单击Finish 按钮,完成生成的工程。然后单击OK 按钮,选择start using

Platform Studio,单击OK 按钮;

图7-16 操作示意(2)分析生成的工程

1)研究生成的工程文件,并浏览黑体字图表显示;

图7-17 操作示意

2)浏览System Assembly 窗口,观察设计中使用的不同组件,会看到PowerPC 处理器,JTAG 控制器,plb2opb bridge 和plb_bram_if_cntlr 与PowerPC 处理器的一侧相连接,opb_uartlit 与opb 总线相连接;

图7-18 操作示意

3)双击opb_uartlite,弹出相关的参数,可看到其基地址和高地址的位置;

图7-19 操作示意

4)不用保存任何改变,关闭对话框。System Assembly viewer 可以方便的浏览整个系统和总线连接情况。如果需要更详细的信息,需要采用其它工具。5)在Project 选项中,打开system.ucf 文件,添加如下内容:

Net sys_clk_pin LOC=AJ15;

Net sys_clk_pin IOSTANDARD = LVCMOS25;

Net sys_rst_pin LOC=AH5;

Net sys_rst_pin IOSTANDARD = LVTTL;

Net fpga_0_RS232_RX_pin LOC=AJ8;

Net fpga_0_RS232_RX_pin IOSTANDARD = LVCMOS25;

Net fpga_0_RS232_TX_pin LOC=AE7;

Net fpga_0_RS232_TX_pin IOSTANDARD = LVCMOS25;

Net fpga_0_RS232_TX_pin SLEW = SLOW;

Net fpga_0_RS232_TX_pin DRIVE = 12;

(3) 生成硬件网表

1)在XPS中, 选择Hardware → Generate Netlist 或者在工具栏点击

按钮;

图7-20 操作示意

2)在生成过程中,注意观察输出窗口的网表生成器;

图7-21 操作示意

(4) 下载测试应用程序

1)在Project Information Area 窗口中的Applications 选项卡中,右键单击TestApp_Peripheral ,选择“Mark to Initialize BRAM”;

图7-22 操作示意

2)右键单击TestApp_Memory,取消选择“Mark to initialize BRAMs”;

程序设计基础实验指导书

说明 每个实验做完以后,按照实验报告模板格式完成相应的实验报告,存储为word 文档,最终提交的实验文档数量种类和命名原则如下例:(不按要求 者拒收) 目录结构图目录实验 1 内的文件种类和命名原则实验报告成绩将作为平时成绩的一部分计算到期末总成绩中。 实验报告严禁相互抄袭,一经发现抄袭和被抄袭者本次实验按零分计算!

实验1 C 的实验环境和C 语言的数据类型 1. 实验目的 ⑴ 了解在具体的语言环境下如何编辑、编译、连接和运行一个C 程序。 ⑵ 通过运行简单的C 程序,初步了解C 源程序的特点。 ⑶ 掌握C 语言数据类型, 熟悉如何定义一个整型、字符型和实型的变量,以及对它 们赋值的方法。 ⑷ 掌握不同的类型数据之间赋值的规律。 ⑸ 学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+ +)和自减(--)运算符的使用。 2. 实验内容和步骤 检查所用的计算机系统是否已安装了C 编译系统并确定他所在的子目录。 进入所用的集成环境。 熟悉集成环境的界面和有关菜单的使用方法。 输入并运行一个简单的、正确的程序。 3. 实验题目 输入下面的程序 # include "stdio.h" void main() { printf( "This is a c program.\n" ); } 程序无误,其运行的结果为:(请填写) ⑵ 输入并编辑一个有错误的 C 程序。 # include “ stdio.h ” void main() { int a,b,sum a=123; b=456; sum=a+b print( “ suism%d n” ,sum); } 运行后程序出现几处错误,请分别指出,并逐一更改: ⑶ 若k,g 均为int 型变量, 则下列语句的输出为, : # include "stdio.h" void main() { int k, g; k=017; g=111;

数字电路基础实验2

数字电子电路的基础实验 实验2 数据选择器及其应用 一、实验目的 1、掌握中规模集成数据选择器的逻辑功能及使用方法; 2、掌握用数据选择器构成组合逻辑电路的方法。 二、实验原理 数据选择器又叫“多路开关”。数据选择器在地址码(或叫选择控制)电位的控制下,从几个数据输入中选择一个并将其送到一个公共的输出端。数据选择器的功能类似一个多掷开关,如图4.22所示,图中有四路数据D0~D3,通过选择控制信号 A1、A0(地址码)从四路数据中选中某一路数据送至输出端Q。数据选择器为目前逻辑设计中应用十分广泛的逻辑部件,它有2选1、4选1、8选1、16选1等类别。数据选择器的电路结构一般由与或门阵列组成,也有用传输门开关和门电路混合而成的。 1、八选一数据选择器74HC151 图4.22 4选1数据选择器示意图图4.23 74LS151引脚排列 表4.12 八选一数据选择器74HC151的功能表 74HC151为互补输出的8选1数据选择器,引脚排列如图4.23所示,功能如表4.12所示。选择控制端(地址端)为A2~A0,按二进制译码,从8个输入数据D0~D7中,选择 一个需要的数据送到输出端Q,S为使能端,低电平有效。 1)使能端S=1时,不论A2~A0状态如何,均无输出(Q=0,Q=1),多路开关被禁止。2)、使能端S=0时,多路开关正常工作,根据地址码A2、A1、A0的状态选择D0~D7中某

一个通道的数据输送到输出端Q 。 如:A 2A 1A 0=000,则选择D 0数据到输出端,即Q =D 0。 如:A 2A 1A 0=001,则选择D 1数据到输出端,即Q =D 1,其余类推。 2、双四选一数据选择器 74HC153 双4选1数据选择器74HC153就是在一块集成芯片上有两个4选1数据选择器。引脚排列如图4.24所示,功能如表4.13所示。 表4.13 双四选一数据选择器74HC153的功能表 图4.24 74H C153引脚功能 、2为两个独立的使能端;A 1、A 0为公用的地址输入端;1D 0~1D 3和2D 0~2D 3分别为两个4选1数据选择器的数据输入端;Q 1、Q 2为两个输出端。 1)当使能端S 1(S 2)=1时,多路开关被禁止,无输出,Q =0。 2)当使能端S 1(S 2)=0时,多路开关正常工作,根据地址码A 1、A 0的状态,将相应的数据D 0~D 3送到输出端Q 。 如:A 1A 0=00 则选择D O 数据到输出端,即Q =D 0。 A 1A 0=01 则选择D 1数据到输出端,即Q =D 1,其余类推。 数据选择器的用途很多,例如多通道传输,数码比较,并行码变串行码,以及实现逻辑函数等。 3、数据选择器的应用—实现逻辑函数 例4.1:用8选1数据选择器74HC151实现函数: C B C A B A F ++= 采用8选1数据选择器74HC151可实现任意三输入变量的组合逻辑函数。作出函数F 的功能表,如表4.14所示,将函数F 功能表与8选1数据选择器的功能表相比较,可知 (1)将输入变量C 、B 、A 作为8选1数据选择器的地址码A 2、A 1、A 0。 (2)使8选1数据选择器的各数据输入D 0~D 7分别与函数F 的输出值一一相对应。 即:A 2A 1A 0=CBA , D 0=D 7=0 D 1=D 2=D 3=D 4=D 5=D 6=1 则8选1数据选择器74HC151的输出Q 便实现了函数 C B C A B A F ++=。接线图如图4.25所示。显然,采用具有n 个地址端的数据选择实现n 变量的逻辑函数时, 应将函数的输入变量加到数据选择器的地址端(A),选择器的数据输入端(D )按次序以函数F 输出值来赋值。

sopc开发流程

实验一 一、实验目的 1.掌握用 Quartus II 开发 SOPC 的基本流程。 2.掌握用 SOPC Builder 进行 Nios II CPU 开发的基本流程。 3.掌握整个 Nios II 集成开发环境。 二、实验环境 1.SOPC-NIOSII SOPC 开发平台一套。 2.USB下载电缆一条。 三、实验原理 本实验的目的主要是对 SOPC 有一个基本的认识,了解整个实验过程,并掌握整个 Nios II 集成开发环境的应用。 (1) 在 Quartus II中新建一个工程。 (2) 在 SOPC Builder中根据自己的需要加入各种参数值。 (3) 利用 SOPC Builder 产生 Quartus II 能够识别的文件。 (4) 在(1)中新建的工程中加入(3)中生成的文件。 (5) 加入输入、输出以及双向端口,并根据需要对其命名。 (6) 对(5)中命名的输入、输出核双向端口根据选定的 FPGA 进行引脚分配。 (7) 编译工程。 (8) 下载编辑代码到 FPGA。 (9) 利用 Nios II 新建另一个工程。 (10) 根据(2)中的资源,编写项目需要的代码。 (11) 编译、下载并调试,查看运行结果,直到正确。 (12) 如果需要,将(11)中生成的代码下载到代码 Flash 中。 四、实验内容 为了熟悉 SOPC 的基本开发流程,本实验要完成的任务就是设计一个最简单的系统,系统中包括 Nios II CPU、作为标准输入/输出的 JTAG UART 以及存储执行代码SRAM。通过 SOPC Builder 对系统进行编译,然后通过 Quartus II 对

计算机基础实验报告(第七次)

东莞理工学院城市学院 CITY COLLEGE OF DONGGUAN UNIVERSITY OF TECHNOLOGY

实验七 Access数据库 一、实验目的: 1.理解数据库、数据库管理系统、数据库系统等概念; 2.熟悉Access 2003操作环境; 3.掌握在Access中创建数据库及表、查询、窗体、报表等对象的方法; 4.了解数据库各个对象集成的简单方法。 二、实验内容与步骤: 1.创建数据库:启动Access2003,在其中创建“学生成绩管理”数据库。 2.创建表: “学生成绩管理”数据库中有三张表,表结构如下: 表A-2 “学生信息”表(主键:学号) 表A-3 “课程”表(主键:课程编号) 表A-4 “成绩”表(主键:学号+课程编号) (1)根据表A-3用“设计器”为“学生成绩管理”数据库创建“课程”表,并输入数据(如图A-21)。

图A-21“课程”表的数据表视图 (2)将excel文件“成绩.xls”导入到数据库“学生成绩管理”中,并参照表A-4相应的修改表结构。 (3)将数据库文件“stu.mdb”中的“student”表导入到“学生成绩管理”数据库中,然后将其重命名为“学生信息”。 (4)建立表间关系,关系如下图A-22。 图A-22学生成绩管理数据库表间关系 3.创建查询: (1)用向导创建一个选择查询“学生基本信息”,包括学生信息表中的学号、姓名、性别、班级字段。 (2)用设计视图建立一个名为“不及格”的选择查询,查询所有不及格学生的学号、姓名、课程名称和成绩。 (3)用设计视图创建一名为“学生成绩查询”的参数查询,包含字段:学号,姓名、课程、成绩。当运行该查询时,弹出如图A-23所示的对话框,输入数据“宋丝丝”,按确定按钮,则弹出如图A-24所示的运行结果。其设计视图如图A-25所示。 图A-23 输入参数对话框图A-24 参数查询运行结果

程序设计基础实验内容

实验指导 实验一 Visual C++开发环境使用 1.实验目的 (1)熟悉Visual C++集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include ; int main() { x=10,y=20 p=prodct(x,t) printf("The product is : ",p) int prodct(int a ,int b ) int c c=a*b return c } (1)在编辑状态下照原样键入上述程序。 (2)编译并运行上述程序,记下所给出的出错信息。 (3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3.分析与讨论 (1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。 (2)总结C程序的结构和书写规则。 实验二数据类型、运算符和表达式 1.实验目的 (1)理解常用运行符的功能、优先级和结合性。 (2)熟练掌握算术表达式的求值规则。 (3)熟练使用赋值表达式。 (4)理解自加、自减运算符和逗号运算符 (5)掌握关系表达式和逻辑表达式的求值 2.实验内容 (1)整数相除 #include<> int main() {

int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d , e=%d ,f=%d\n",d,e,f); return 0; } (2)自加、自减运算 #include<> int main() { int a=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; } (3)关系运算和逻辑运算 #include<> int main() { int a=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return 0; } (1)在编辑状态下输入上述程序。 (2)编译并运行上述程序。 3.分析与讨论 (1)整数相除有什么危险?应如何避免这种危险? (2)分析a++和++a的区别。 (3)条件表达式和逻辑表达式的意义是什么,它们取值如何? (4)如何比较两个浮点数相等?为什么? 实验三格式化输入输出函数的使用 1.实验目的 (1)掌握格式字符使用的方法。 (2)掌握printf()进行格式化输出的方法。 (3)掌握scanf()进行格式化输入的方法。 2.实验内容 (1)输入如下程序,观察运行结果 #include<>

SOPC课程设计实验报告--基于 NIOS 的 μCOS-II 实验

FPGA-CPLD原理及应用课程设计报告题目:基于NIOS的μC/OS-II实验 学院:信息与电子工程学院 专业:电子科学与技术 学号: 姓名: 指导老师: 时间:2013-7-15~2013-7-20

一、摘要 本实验项目使用Quartus II、SOPC Builder和Nios II EDS从零开始构建一个能够在DE2-115实验平台上运行的μC/OS-II操作系统的Nios II系统。初学者可以借此范例熟悉Quartus II、SOPC Builder、Nios II EDS的使用,并且了解基于FPGA的嵌入式系统开发流程。 关键词:SOPC Builder Nios II DE2Nios II EDS 二、设计要求 从零开始建立一个基于Nios II的μC/OS-II应用实验系统(也可以认为是一个Nios II+μC/OS-II的应用框架)具有以下一些作用。 (1)读者可以借助SOPC Builder工具自行对Nios II软核处理器进行配置。 (2)很多范例都是纯硬件的VHDL代码,需要自行从零开始建立Nios II 系统,不能够直接使用Altera公司已经建立好的Nios II系统。 (3)DE2-115并非Altera公司原创的开发板,而是友晶科技ODM的电路板,很多外围设备都与Altera提供的电路板不一样,所以很多Altera手册中范例都无法执行,必须要有自己从硬件到软件建立系统的能力,将来才有办法将Altera 提供的范例移植到DE2-115上执行并做到最佳化。 三、设计内容” 1、SOPC Builder硬件建立 SOPC Builder是在Quartus II里的SOPC Builder进行的,先建立工程在SOPC Builder里添加硬件,包括CPU,PLL,onchip_memory,SSRAM,SDRAM Tristate Bridge,Flash,JTAG UART,UART,Timer System ID 2、Quartus II硬件处理 硬件会自动建立一个顶层模块,通过建一个原理图来对对应的硬件进行输入输出的添加,再锁定引脚,编译工程,硬件下载。 3、Nios II DE2嵌入软件编写 在Nios II里建立工程,选择相应的模块,编写需要嵌入的软件,添加缺少的头文件对应的宏定义,编译工程,进行软件下载,在观察结果。 四、设计步骤 1、打开Quartus II新建工程

C语言程序设计基础实验报告3【VIP专享】

实验3 逻辑结构程序设计一、实验目的 1、了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。 2、学会正确使用逻辑运算符和逻辑表达式。 3、熟练掌握if 语句和switch 语句。 4、结合程序掌握一些简单的算法。 5、学习调试程序。 二、实验内容和步骤 本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 1、改错题。给定程序MODI1.C 的功能是:对于如下函数: 用scanf 函数输入x 的值,求y 值。/* MODI1.C */#include void main() { int x, y; /***********found***********/ scanf ("%d", &x);if ( x < 1 )y = x; /***********found***********/else if ( 1 <=x&& x < 10 ) y = 2*x -1 ; else y = 3*x -11; printf("y = %d\n", y ); } 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! 修改程序后,运行程序,输入x 的值(分别为x<1、1≤x<10、x ≥10三种情况,如0.5、8、15),检查输 出的y 值是否正确。 ?? ? ??≥-<≤-<=)10(113) 101(12)1(x x x x x x y

2、从键盘输入某学生的考试成绩,要求输出成绩等级A 、B 、C 、D 、E 。学生的成绩可分成5个等级,90- 100分为A 级,80-89分为B 级,70-79分为C 级,60-69分为D 级,0-59分为E 级。要求在输入负数时, 给出错误提示。 ① 事先编好程序,要求分别用if 语句和switch 语句实现。运行程序,并检查结果是否正确。 ② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之 能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。 3、给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位 数字,例如:原数据为321,应输出123。(BX4.6) 分别用1位正整数、2位正整数、3位正整数、4位正整数、5位正整数作为测试数据进行测试。 除此之外,程序还应当对不合法的输入作必要的处理。例如:当输入负数时或输入的数超过5位(如123 456)数时。4、输入3 个整数,要求按由小到大的顺序输出。

数字电子技术基础实验

《数字电子技术基础实验》 实验报告 学院: 学号: 姓名: 专业: 实验时间: 实验地点: 2016年12月

Figure 5.51n位移位寄存器 一、实验目的及要求 编写testbench 验证Figure 5.51源代码功能,实现n位移位寄存器。 了解并熟悉移位寄存器的工作原理功能; 熟悉n位移位寄存器的逻辑功能。 所需功能:实现所需功能需要R,Clock,L,w,Q,5个变量,其中参数n 设为缺省值16,以定义触发器的个数。 当时钟信号Clock从0变为1时刻,正边沿触发器做出响应: 当L=0时,对输出结果Q进行向右移位,将w的值赋给Q的 最高位,实现移位; 当L=1时,将输入R的值寄存在Q中; 所需EDA工具及要求: Modelsim: 1、在Modelsim中建立工程,编写Figure 5.51模块的源码; 2、编写Figure 5.51的测试模块源码,对Figure 5.51进行仿真、测 试,观察仿真波形图并进行分析等; Synplify Pro: 1、使用Synplify Pro对Figure 5.51进行综合,得到RTL View、 Technology View、综合报表等,进行观察、分析等; 二、实验内容与步骤 1、在Modelsim中建立工程,编写Figure 5.51模块的源码; 本题实现的是一个n位移位寄存器,触发器对时钟信号Clock敏感,为正边沿敏感型。L实现对Q的控制,若L=1,则将R寄存到Q中;若L=0,则对Q向右移位。 如下图是一个4位移位寄存器 图表说明了该四位移位寄存器的移位过程

module shiftn (R, L, w, Clock, Q); parameter n = 16; input [n-1:0] R; input L, w, Clock; output reg [n-1:0] Q; integer k; always @(posedge Clock) if (L) Q <= R; else begin for (k = 0; k < n-1; k = k+1) Q[k] <= Q[k+1]; Q[n-1] <= w; end endmodule 这是可用于表示任意位宽的移位寄存器的代码,其中参数n设为缺省值16,以定义触发器的个数。R和Q的位宽用n定义,描述移位操作的else 分支语句用for循环语句实现,可适用于由任意多个触发器组成的移位操作。 2、编写Figure 5.51的测试模块源码,对Figure 5.51进行仿真、测试,观察仿真波形图并进行分析等; `timescale 1ns/1ns module shiftn_tb;

材料_基于FPGA的SOPC流水灯演示实验

基于FPGA的SOPC演示实验 秦菁2012-07-10演示实验:流水灯 实验内容:将8位LED灯点亮,进行流水灯控制 实验步骤: (1)在Quartus II中建立工程 (2)用SOPC builder建立Nios系统模块 (3)在Quartus II中的图形编辑界面进行引脚连接工作等 (4)编译工程后下载到FPGA中 (5)在Nios II IDE中根据硬件建立软件工程 (6)编译后,经过简单设置下载到FPGA中进行调试、实验 随着嵌入式处理器、专用数字器件和DSP算法以IP核的形式嵌入FPGA中,以单片FPGA完成整个嵌入式系统数字部分的设计已经成为现实。此实验主要通过运用Altera公司提供的Nios II软核处理器,了解SOPC的基本概念和基于FPGA的嵌入式系统的开发方法,掌握SOPC硬件开发工具,软件调试工具的使用。下面主要从硬件和软件的部分进行介绍。 一、硬件部分设计 (1)运行Quartus II软件,选择File/New Project Wizard菜单,选择工程目录(自定义)、工程名以及顶层文件名为led_test,在选择器件设置对话框中选择目标器件为Cyclone系列的EP1C6Q240C8N,建立新工程。 (2)双击左侧Entitiy框中的器件名,弹出如下对话框,点击Device and pin options/Unused pins,在Reserved all unused pins中选择As input tri-stated。

(3)选择Tools/SOPC Builder菜单项,或者点击Quartus II软件右上方工具栏的,打开SOPC Builder程序。弹出Create New System对话框。在System Name 文本框中键入nios32(自拟,但与工程名不同),选择语言为VHDL,单击确定 (4)确认Device Family中我们选择的是Cyclone,系统频率为50MHz。如图: (5)下面开始添加系统需要的元件:Nios II32位CPU、JTAG UART Interface、led_pio、RAM。 (5.1)首先添加Nios II32位CPU:双击Nios II Processor,或单击选中后点击 Add按钮,然后在弹出的Nios II Processor设置对话框中设置添加CPU的参数,分别在Core Nios II和JTAG Debug Module选项中选择Nios II/e和level1,其他选项保持默认。Nios II有三种标准:经济型(Nios II/e)、标准型(Nios II/s)、 全功能型(Nios II/f)。本实验中选择经济型。

郑大计算机基础实验报告册答案

习题及实验(一) 第一部分习题 一、简答题 1计算机的发展阶段: 四个发展阶段: 第一个发展阶段:1946-1956年电子管计算机的时代。1946年第一台电子计算机问世美国宾西法尼亚大 学,它由冯·诺依曼设计的。占地170平方,150KW。运算速度慢还没有人快。是计算机发展历史上的一个里程碑。(ENIAC)(electronic numerical integator and calculator)全称叫“电子数值积分和计算机”。 第二个发展阶段:1956-1964年晶体管的计算机时代:操作系统。 第三个发展阶段:1964-1970年集成电路与大规模集成电路的计算机时代 (1964-1965)(1965-1970) 第四个发展阶段:1970-现在:超大规模集成电路的计算机时代。 第一代计算机1946 1957 电子管运算速度较低,耗电量大存储容量小。 第二代计算机1958 1964 晶体管体积小,耗电量较少,运算速度高,价格下降。 第三代计算机1965 1971 中小规模集成电路体积功能进一步减少,可靠性及速度进一步提高。 第四代计算机1972年至今大规模及超大规模集成电路性能到规模提高,价格大幅度降低,广泛应用于社会生活的各个领域,走进办公室和家庭 2.主要应用:计算机的应用极其广泛,早期的计算机主要体现在科学计算机,数据处理,计算机控制等几个方面.随着微型计算机的发慌和迅速普及,计算机的应用已渗透到国民经济各个总门及社会生活的各个方面现代计算机除了传统的应用外,还应用于以下几个大方面. 1.办化自动化 2.计算机辅助系统 3.虚拟现实 4.人工智能 5.电子商务 3. 1.管理系统中的各种资源,包括硬件资源和软件资源。 1)监视资源 2)决定分配资源策略 3)分配资源 4)回收资源 2.为用户提供友好的界面。 1)命令行界面 2)图形化界面 4.操作系统大致可分为6种类型。 简单操作系统。分时系统。实时操作系统。网络操作系统。分布操作系统。智能操作系。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware 等。 5. 系统软件,应用软件。 系统软件:用以实现计算机系统的管理、控制、运行、维护,并完成应用程序的装入、编译等任务的程序。系统软件是开发和运行应用软件的平台,系统软件的核心是操作系统。

数字电子技术基础实验指导书

《电子技术基础》实验指导书 电子技术课组编 信息与通信工程学院

实验三基本门电路逻辑功能的测试 一.实验类型——验证性+设计 二.实验目的 1.熟悉主要门电路的逻辑功能; 2.掌握基本门电路逻辑功能的测试方法; 3.会用小规模集成电路设计组合逻辑电路。 三.实验原理 1.集成电路芯片介绍 数字电路实验中所用到的集成芯片多为双列直插式,其引脚排列规则如图1-1。其识别方法是:正对集成电路型号或看标记(左边的缺口或小圆点标记),从左下角开始按逆时针方向以1,2,3…依次排列到最后一脚。在标准形TTL 集成电路中,电源端Vcc一般排在左上端,接地端(GND)一般排在右下端,如74LS00。若集成芯片引脚上的功能标号为NC,则表示该引脚为空脚,与内部电路不连接。本实验采用的芯片是74LS00二输入四与非门、74LS20四输入二与非门、74LS02二输入四或非门、74LS04六非门,逻辑图及外引线排列图见图1-1。 图1-1 逻辑图及外引线排列

2.逻辑表达式: 非门 1-1 2输入端与非门 1-2 4输入端与非门 1-3 或非门 1-4 对于与非门,其输入中任一个为低电平“0”时,输出便为高电平“1”。只有当所有输入都为高电平“1”时,输出才为低电平“0”。对于TTL 逻辑电路,输入端如果悬空可看做;逻辑1,但为防止干扰信号引入,一般不悬空,可将多余的输入端接高电平或者和一个有用输入端连在一起。对MOS 电路输入端不允许悬空。对于或非门,闲置输入端应接地或低电平。 四.实验内容及步骤 1.逻辑功能测试 ①与非门逻辑功能的测试: * 将74LS20插入实验台14P 插座,注意集成块上的标记,不要插错。 * 将集成块Vcc 端与电源+5V 相连,GND 与电源“地”相连。 * 选择其中一个与非门,将其4个输入端A 、B 、C 、D 分别与四个逻辑开关相连,输出端Y 与逻辑笔或逻辑电平显示器相连,如图1-2。根据表1-1中输入端的不同状态组合,分别测出输出端的相应状态,并将结果填入其中。 ②或非门逻辑功能的测试: 表1-1

sopc 实验指导EP2C35

实验一Hello from Nios II 一.实验目的 1. 熟悉用Quartus II开发SOPC的基本流程。 2. 熟悉用SOPC Builder进行NiOS II CPU开发的基本流程。 3. 熟悉用NIOS II IDE进行C语言编译、下载的基本过程。 4. 掌握NIOS II 集成开发环境。 二.实验内容 实验完成的是一个简单的系统设计,系统中包括NIOS CPU 、作为标准输入/输出的JTAG UART、存储器on chip memory和SDRAM、并行输入输出PIO。通过SOPC 实现NIOS 系统配置、生成以及与NIOS II 系统相关的监控和软件调试平台的生成;在NIOS II IDE中完成系统软件开发和调试;通过Quartus II 完成NIOS 系统的分析综合、硬件优化、适配、配置文件编程下载以及硬件系统调试等。实验最终实现在NIOS II IDE 窗口打印一条信息——―Hello from Nios II ‖。 三.实验平台 硬件平台:SOPC 实验开发系统 软件平台:Quartus II 7.0 NIOS II IDE 四.实验原理 Altera 公司提供的Nios II 嵌入式微处理器软核专为SOPC系统设计核优化,是一种面向用户、可以灵活定制的通用RISC嵌入式处理器。它采用Avalon总线结构通信接口,带有增强的内存、调试和软件功能,可采用汇编或C、C++等进行程序优化开发。Nios II具有32位指令集、32位数据通道和可配置的指令及数据缓冲。与普通嵌入式CPU系统的特性不同,其外设可以灵活选择或增减,可以自定制用户逻辑为外设,可以允许用户定制自己的指令集。由硬件模块构成的自定制指令可通过硬件算法操作来完成复杂的软件处理任务,也能访问存储器或Nios II 系统外的接口逻辑。设计者可以使用Nios II及外部的Flash、ROM、SRAM等,在FPGA上构成一个嵌入式处理器系统。 基于NiOS II处理器软核的SOPC系统设计是一个软硬件协同开发的过程,在设计时可分为硬件核软件两部分,需要多款EDA软件和软件开发环境的相互协同配合。 SOPC的开发流程包括两个方面:基于Quartus II 和SOPC Builder的硬件开发和基于Nios II IDE 的软件开发。基本设计流程如下: (1)分析系统需求,设计规划系统哪些由硬件实现,哪些由软件实现; (2)启动Quartus II 并创建一个新的工程,建立系统的顶层模块文件; (3)启动SOPC Builder,添加需要的功能模块,定义和生成系统模块。这是整个开发流程中最核心的一步。在定义系统时,SOPC Builder可以根据用户 的编辑实时的生成sopc文件和ptf文件(7.1版本之前为ptf文件),类似 一个数据库文件,存储了系统设计信息; (4)将SOPC Builder生成的Nios II系统元件导入Quartus II,根据需要添加其他逻辑模块。按照Quartus II的开发流程最终生成FPGA的编程文件,完成 Nios II系统的硬件开发; (5)启动Nios II IDE集成开发环境,创建一个软件工程项目,并指向生成的Nios II硬件系统。 (6)在Nios II IDE下开发应用程序;

计算机基础实验七

〈计算机信息技术基础〉实验七综合练习 一、实验内容 练习1.打开“Word练习11.doc(单击鼠标右键,在快捷菜单中选择“另存为”,可以下载该文件)”,参照样本一,进行如下操作: 样本一上部

样本一下部 1.查找与替换 将全文中的“新房子”改为“老房子”,“老房子”字形设为斜体、颜色为绿色、加粗2.设置字符、段落格式 将标题设置为二号、隶书、加粗、粉色字体,且居中,段前、段后各2行。 3.设置边框与底纹 将标题加上兰色、3磅粗、带阴影的边框,及填充色为浅兰色、图案样式为“20%”的底纹。4.设置栏格式 将第二段分成两栏,中间用竖线分隔。 5.创建水印 如样本一,从剪贴画库中插入一幅图片,并设置成水印。 6.设置页面 设置纸张大小为B5,上、下边距设为3.5厘米,左、右边距设为2.5厘米。 7.设置页眉、页码 如样本一,设置页眉为“散文集”,且在页眉的右侧插入格式为“第x页”的页号。 8.设置脚注 为标题设置脚注“*作者华明”。 9.保存文件 将此文件保存在“上机实验作业”文件夹中,文件名为“Word练习11.doc”。 练习2.绘制如样本二的表格,要求如下: 1.标题宋体、三号、粗体字,且居中。 2.其余文字为宋体、四号字,垂直居中。 3.各行高为20磅。 4.四周边框为三条细实线,内部表格线为单细实线。 5.为右下角单元格中的文字加兰色底纹。

6.保存文件 将此文件保存在“上机实验作业”文件夹中,文件名为“Word练习12.doc”。 样本二 练习3.制作如样本三的文档,要求如下: 样本三 1.插入图片 从“Microsoft剪贴画库”中选择小船图片插入到文档中,并调整好图片的大小,见样本三。2.利用艺术字制作标题 输入艺术字“我把小船划向月亮”,宋体、36号字,请按自己的爱好,调整好艺术字的形状、大小及位置,见样本三。 3.绘制图形 利用绘图工具栏绘制月亮和星星并填充颜色。

程序设计基础实验内容

实验指导 实验一 Visual C++6.0开发环境使用 1.实验目的 (1)熟悉Visual C++6.0集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include (stdio.h); int main() { x=10,y=20 p=prodct(x,t) printf("The product is : ",p) int prodct(int a ,int b ) int c c=a*b return c } (1)在编辑状态下照原样键入上述程序。 (2)编译并运行上述程序,记下所给出的出错信息。 (3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3.分析与讨论 (1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。 (2)总结C程序的结构和书写规则。 实验二数据类型、运算符和表达式 1.实验目的 (1)理解常用运行符的功能、优先级和结合性。 (2)熟练掌握算术表达式的求值规则。 (3)熟练使用赋值表达式。 (4)理解自加、自减运算符和逗号运算符 (5)掌握关系表达式和逻辑表达式的求值 2.实验内容

(1)整数相除 #include int main() { int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d , e=%d ,f=%d\n",d,e,f); return 0; } (2)自加、自减运算 #include int main() { int a=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; } (3)关系运算和逻辑运算 #include int main() { int a=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&& a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return 0; } (1)在编辑状态下输入上述程序。 (2)编译并运行上述程序。 3.分析与讨论 (1)整数相除有什么危险?应如何避免这种危险? (2)分析a++和++a的区别。 (3)条件表达式和逻辑表达式的意义是什么,它们取值如何? (4)如何比较两个浮点数相等?为什么? 实验三格式化输入输出函数的使用 1.实验目的

数字电子技术基础实验指导书

『数字电子技术基础实验指导书』 实验一实验设备认识及门电路 一、目的: 1、掌握门电路逻辑功能测试方法; 2、熟悉示波器及数字电路学习机的使用方法; 3、了解TTL器件和CMOS器件的使用特点。 二、实验原理 门电路的静态特性。 三、实验设备与器件 设备 1、电路学习机一台 2、万用表两快 器件 1、74LS00 一片(四2输入与非门) 2、74LS04 一片(六反向器) 3、CD4001 一片(四2输入或非门) 四、实验内容和步骤 1、测试74LS04的电压传输特性。按图1—1连好线路。调节电位器,使V I 在0~+3V间变化, 记录相应的输入电压V 1和输入电压V 的值。至少记录五组数据,画出电压传输特性。 2、测试四二输入与非门74LS00的输入负载特性。测试电路如图1—2所示。请用万用表测 试,将V I 和V O 随R I 变化的值填入表1—1中,画出曲线。 表1-1 3、测试与非门的逻辑功能。 测量74LS00二输入与非门的真值表:将测量结果填入表1—2中。

表1—2 4、测量CD4001二输入或非门的真值表,将测量结果填入表1-2中。 注意CMOS 电路的使用特点:应先加入电源电压,再接入输入信号;断电时则相反,应先测输入信号,再断电源电压。另外,CMOS 电路的多余输入端不得悬空。 五、预习要求 1、阅读实验指导书,了解学习机的结构; 2、了解所有器件(74LS00,74LS04,CD4001)的引脚结构; 3、TTL 电路和CMOS 电路的使用注意事项。 图1-1 图1-2 300V O

一、实验目的 1、学习并掌握小规模芯片(SSI)实现各种组合逻辑电路的方法; 2、学习用仪器检测故障,排除故障。 二、实验原理 用门电路设计组合逻辑电路的方法。 三、实验内容及要求 1、用TTL与非门和反向器实现“用三个开关控制一个灯的电路。”要求改变任一开关状态都能控制灯由亮到灭或由灭到亮。试用双四输入与非门74LS20和六反向器74LS04和开关实现。测试其功能。 2、用CMOS与非门实现“判断输入者与受血者的血型符合规定的电路”,测试其功能。 要求如下: 人类由四种基本血型— A、B、AB、O型。输血者与受血者的血型必须符合下述原则;O 型血可以输给任意血型的人,但O型血的人只能接受O型血;AB型血只能输给AB型血的人,但AB血型的人能够接受所有血型的血;A型血能给A型与AB型血的人;而A型血的人能够接受A型与O型血;B型血能给B型与AB型血的人,而B型血的人能够接受B型与O型血。试设计一个检验输血者与受血者血型是否符合上述规定的逻辑电路,如果输血者的血型符合规定电路,输出高电平(提示:电路只需要四个输入端,它们组成一组二进制数码,每组数码代表一对输血与受血的血型对)。 约定“00”代表“O”型 “01”代表“A”型 “10”代表“B”型 “11”代表“AB”型 3、TTL与非门和反向器实现一组逻辑电路,其功能自行选定。 四、实验设备及器件 1、数字电路学习机一台 2、74LS20 三片(双四输入与非门) 3、74LS04 一片(六反向器) 4、CD4011 两片(四二输入与非门) 五、预习要求 1、自行设计电路,画出接线图(用指定器件设计)。 2、制定测试逻辑功能方案,画出必要的表格。

SOPC实验报告

SOPC系统设计技术实验报告 姓名: 学号: 院系:信息科学与工程学院 专业:电子科学与技术 指导老师: 完成日期:2015年04月25日

实验二、NIOSII实现串口收发数据及LCD显示 一、实验目的 (1)进一步熟悉Quartus II、SOPC Builder、NIOS II IDE的操作; (2)掌握SOPC硬件系统及NIOS II软件的开发流程。 二、实验内容 (1)、实验平台:硬件:PC级、SmartSOPC+教学实验开发平台;软件:Quartus II 9.0,SOPC Builder 9.0,NIOS II IDE 9.0。 (2)、实验内容:建立包含SDRAM、JTAG_UART、Timer、LCD的NIOS II处理器系统,通过JTAG_UART从IDE的控制端窗口读取输入值N,计算1至N的累加值,并将计算结果及计算花费时间的显示在LCD中。 三、实验步骤 3.1硬件设计 根据实验内容,可以得出本次实验的硬件结构图如图3.1所示: 图3.1 硬件设计结构图

具体硬件设计步骤如下: 1)、在Quartus II中建立一个工程命名为:smallCore,器件设置为EP3C55F484C8; 2)、以原理图输入方式建立空白顶层模块,并保持; 3)、打开SOPC Builder,命名SOPC系统名称为nios2system,开始建立NIOS II系统。 4)、双击SOPC Builder主界面左侧中的“Nios II Processor”,出现Nios II CPU的配置向导对话框,如图1.4所示,在这里可以有三种Nios II CPU选择,我们选择快速型的Nios II/f,不使用硬件乘法器及除法器。然后单击Next进入下一步配置;Instruction Cache项中选择2 Kbytes,在Data Cache项中选择512 Bytes,单击Next进行下一步配置;在“Advanced Features”和“MMU and MPU Settings”选项卡中选择默认参数,然后单击Next,到了“JTAG Debug Module”选项卡,如图1.6所示。这里是选择JTAG调试接口,选择默认的模式Level 1,然后单击Next,到了“Custom Instruction”选项卡,也选择默认参数,最后单击Finish完成对Nios II CPU的配置。 5)、添加了Nios II CPU内核后,选中Module Name下的cpu_0,单击鼠标右键,在Rename 项中可以重命名cpu_0的名称为cpu,并在“Clock Settings”一栏中将clk_0名称改为clk。 6)、双击在SOPC Builder主界面左侧中的Bridges and Adapters→Memory Mapped→Avalon-MM Clock Crossing Bridge,出现Clock Crossing Bridge的配置向导对话框,在“Slave-to-Master FIFO”中的FIFO depth中选择64。单击“finish”退出配置对话框,并重命名clock_crossing_0的名称为clock_crossing。 7)、双击在SOPC Builder主界面左侧中的Memories and Memory Controllers→SDRAM→DDR SDRAM High Performance Controller,出现DDR SDRAM High Performance Controller的配置向导对话框。修改“General Settings”选项卡的参数配置,参数修改如下:Speed grade:8 PLL reference clock frequency:85 Memory clock frequency:100 Local interface clock frequency:full 修改“Modify Parameters”:DDR SDRAM控制器参数,参数修改如下: Total Memory interface DQ width:16 Memory vendor:other

相关文档
最新文档