文档库 最新最全的文档下载
当前位置:文档库 › 基于FPGA的嵌入式系统

基于FPGA的嵌入式系统

基于FPGA的嵌入式系统
基于FPGA的嵌入式系统

1 NiosⅡ CPU的体系结构3

1.1 NiosⅡ处理器的结构 (3)

1.2 NiosⅡ处理器的基本组成 (3)

1.3 Debug模块 (3)

1.4 NiosⅡ开发环境简介 (3)

2 IP核4

2.1 SDRAM控制器 (4)

2.2FLASH (5)

3 基于SOPC的温湿度监测系统设计5

3.1 系统总体设计方案 (5)

3.2 SOPC硬件系统设计 (6)

3.3 SOPC软件系统设计 (9)

3.3.1 NiosⅡ软件系统设计 (9)

3.3.2 NiosⅡIDE C/C++Build属性配置 (13)

3.3.3 软件系统的设计流程 (15)

4 实验结果与分析15结论18

SOPC是可编程片上系统,即一种特殊的嵌入式系统。首先它是片上系统(SOC),由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。SOPC是基于FPGA解决方案的SOC,与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色。构成SOPC的途径有基于FPGA嵌入IP硬核的系统、基于FPGA嵌入IP软核的系统和基于HardCopy 技术的SOPC系统三种方式。本文介绍基于FPGA的嵌入IP软核的SOPC系统实现方法,设计了一种基于SOPC的温湿度监测系统。通过Quartus II 软件里的SOPC builder把Nios II Processor、Avalon总线、UART、SDRAM_controller、Flash Memory、Avalon三态桥等多个IP核集成生成系统所需的SOPC。传感器扩展板采用Mega8作为主控芯片,用于数据的采集、显示以及和PC的通信。同时配有由SPI总线控制的数码管,可以显示传感器的测量结果,以及与PC通信过程中的具体情况。对外采用波特率为115200的串口进行通信,用户可通过串口向该模块发出各种查询命令以查询传感器的状态。本次设计使用NiosII IDE编写应用程序,发送相应指令,获取温度和湿度的值,同时显示在Console窗口。

关键词:

SOPC技术;FPGA开发板;IP核;温湿度监测;NiosⅡ处理器;Mega8芯片

SOPC is System-On-a-Programmable-Chip, that is a special embedded system: First, it is the system on chip (SOC), which completes the main logic function of the whole system on a single chip; second, it is a programmable system with a flexible design approach which is reducible, scalable, and has the software and hardware in-system programmable functions. SOPC is a kind of special SOC which is based on FPGA solutions and there are more features compared with the SOC and ASIC solutions; three approaches are available to constitute a SOPC: based on embedded hard IP-core FPGA, based on embedded soft IP-core FPGA and based on Hardcopy technology. Each of them has its own characteristics. This article describes the embedded SOPC system based on soft IP core of Altera's FPGA,which is used to design a temperature and humidity monitoring system .Using the SOPC builder of the Quartus II software, we integrate Nios II Processor, Avalon bus, UART, Sdram_controller, Flash Memory, Avalon tristate bridge, and other IP cores to generate the SOPC that the system needs.The sensor expansion board use Mega8 as the main chip for data acquisition, display and PC communication. At the same time, the board has nixietube controlled by the SPI bus, which is used to display the sensor measurements and the specific situation of communication with PC. A user can issue the query command to query the status of the sensor through the115200 serial port of the external communication. This design uses the Nios II IDE to write application,sending the appropriate instructions and obtaining the temperature and humidity values displayed in the Console window.

Keywords:

SOPC technology; the development board of FPGA; IP Core; Temperature and humidity monitoring; NiosⅡprocessor; Mega8 chip

1 NiosⅡ CPU的体系结构

1.1 NiosⅡ处理器的结构

Nios嵌入式处理器系统包括一个或多个Nios CPU、Avalon交换总线和其他组件[7]。下列组件可以生成基于Nios处理器的嵌入式系统

Nios CPU ,Avalon总线,外围设备和存储器接口,片内调试模块

Nios处理器系统包含带指令和数据高速缓存的Nios CPU,片内调试模块、直接存储器存取(DMA)控制器、常用外围设备(PIO、UART、以太网口和存储器接口等)和并行多控制Avalon交换结构总线。

1.2 NiosⅡ处理器的基本组成

NiosⅡ处理器包括如下功能单元,寄存器文件,ALU ,自定义指令逻辑的接口,异常控制器,指令总线,数据总线,指令高速缓存和数据高速缓存,指令和数据的存储器接JTAG调试模块。

1.3 Debug模块

Altera的合作伙伴FS2和Accelerated Techonlogy提供给Nios嵌入式处理器开发者顶级调试工具。可配置的Nios CPU可选择包括FS2的片内调试模块(OCI)。OCI提供包括运行控制、硬件断点,片内跟踪和片外跟踪等电路仿真器。用户可以使用Altera开发套件中的ByteBlasterⅡ下载电缆或FS2的目标系统分析器连接OCI,在主程序中存取OCI。

1.4 NiosⅡ开发环境简介

Nios嵌入式处理器系统的开发环境包括硬件和软件两部分。

Nios系统设计人员可以使用Nios开发工具创建高性能的可编程片上系统(SOPC)。有效的Nios嵌入式处理器开发工具允许用户配置一个或多个Nios

CPU,从标准库中添加外围设备,综合处理自定义系统,与Quartus设计软件一起编译系统,用GNUPro软件开发工具进行程序设计、连编和调试。

图1 Nios嵌入式开发流程

2 IP核

Cyclone器件内置多达2个Nios增强型锁相环,可给用户提供高性能的时钟管理能力,如频率合成、可编程移相、片外时钟输出、可编程占空比、失锁检测以及高速差分时钟信号的输入和输出等。

2.1 SDRAM控制器

在以SDRAM作为缓存的系统中,使用可编程器件对其进行控制具有很强的灵活性。为了使设计具有模块化和可重复使用的优点,设计了一个简化的SDRAM接口电路。这样就屏蔽掉了SDRAM操作的复杂性,而其它逻辑模块可通过接口电路对SDRAM进行访问。此外,由于整个SDRAM控制器用VHDL语言编写,只要对其进行简单的修改就可以满足不同的需求,具有

很强的灵活性。

2.2FLASH

平台具有一个32MB的Nor FLASH——AM29LV256ML,位于核心板FPGA芯片的下方。在SOPC中可使用下图所示的IP核Flash Memory Interface (CFI)。依照电路图,将地址宽度定义为25。

图2 Flash Memory Interface

3 基于SOPC的温湿度监测系统设计

3.1 系统总体设计方案

基于SOPC的温度湿度监控系统采用的是SOPC和NIOS设计,通过FPGA 实现。其中UP-FPGA2C35-II中传感器扩展板由多种不同的传感器构成,并有四个外部信号输入接口,可以分别测量温度、湿度、热敏、光敏信号。采用Mega8作为主控芯片,用于数据的采集、显示以及和PC 的通信。同时配有由SPI总线控制的二位八段共阳数码管,可以显示传感器的测量结果,以及

与PC通信过程中的具体情况。对外采用波特率为115200 的串口进行通信,用户可通过串口向该模块发出各种查询命令以查询传感器的状态。串口通信指令格式传感器扩展板与PC 之间的通信采用一问一答的方式,即PC向电路板发送一条查询指令,电路板则返回相应的消息。

SOPC从工业控制上位机软件的特点出发,按照功能分为多个不同的模块,完成一套适用于仓库温湿度管理系统的上位机应用软件。设计了软件的功能结构,并编写了相应的程序,使软件具备了仓库的实时监测、消息显示等功能。

本设计的几个主要方面有:界面编程、控件的编程;与FPGA串口通信;温湿度显示,Nios II IDE中的编程;将上面的几部分联合编程。最后实现对温湿度信息接受并显示。

图3 整个系统的设计流程

3.2 SOPC硬件系统设计

(1)打开Quartus II软件,新建工程“Sensor Board”,然后选择“Tools | SOPC

Builder…”进入SOPC Builder。注意:若没有工程打开,此选项不可选,所以先建立工程。在“Create New System”对话框中为这个NiosII 最小系统命名为“nios”,选择“Verilog”硬件描述语言,点击“OK”。

(2) “Device Family”栏选择“Cyclone II”,“clk”栏为“75”MHz。

(3)添加NiosII CPU Core、SDRAM、Flash Memory、Avalon 三态桥、UART 等通用外设如图11所示,UART控制器IP 核的波特率设置为115200 nios 所需组件添加完毕之后,自动分配基地址和中断,分别选择“System | Auto‐Assign Base Adresses”和“System | Auto‐Assign IRQs” 。

图4 硬件配置图

(4)分配复位和异常处理时程序指针入口地址。双击“cpu”,在弹出的对话框中,在“Reset Vector”栏下拉菜单中选中sdram,“Exception Vector”栏的Memory下拉菜单选中sdram,单击“finish”完成。

(5)点击“Next”,进入ptf 生成页面,点击“Generate”,SOPC Builder 会提示生成系统的进程,系统生成完成的时会提示“SUCCESS:SYSTEM GENERATION COMPLETED”。单击“EXIT”按钮退出SOPC Builder。

(6)SOPC Builder为这个定制的Nios II系统模块创建了一个符号,在

Quartus II中新建一个“Block Diagram/Schematic File”顶层设计文件“nios.bdf”。双击空白处,在弹出的“Symbol”对话框中选择刚生成的符号。

图5 添加nios模块

(7)添加时钟信号,选择Tool | MegaWizard Plug‐In Manager,然后选择定制新的模块“Creat a new custom…”项,选择“I/O”下的“ALTPLL”,输入文件名“pll”,设置系统时钟、sdram时钟。

图6 pll核

然后,添加输入和输出管脚。

图7 连接好的顶层模块图

(8)设置FPGA没有用到的管脚的状态,选择Assignments | Device,弹出Settings对话框,单击“Device and Pin Options”弹出该对话框,然后单击Unused Pins,选择“As inputs,tri-stated”。

(9)本实验中用Tcl脚本分配引脚。选择“Project|Generate Tcl File for Project”,将文件取名为SensorBoard.tcl,单击OK按钮,会打开该文件。

(10)将本工程的文件夹里面“pins for SensorBoard.txt”文本文档打开,选中,全部复制到SensorBoard.tcl文件中set_global_assignment语句后面,然后保存。选择“Tools|Tcl Scripts..”,在出现的对话框中选中SensorBoard.tcl,点击右侧“RUN”,即可完成管脚分配。并且编译整个工程。

3.3 SOPC软件系统设计

3.3.1 NiosⅡ软件系统设计

NiosⅡ IDE(NiosⅡ Integrated Development Enviroment/ NiosⅡ集成开发环

境)是一个功能齐全的集成调试器,具有硬件在线调试功能。通过它可以设置硬件断点观察程序的各种变量,还可以观察寄存器的变化情况。

NiosⅡ IDE为软件开发提供四个主要的功能:

(1) 工程管理器

NiosⅡ IDE提供多个工程管理任务,加快嵌入式应用程序的开发进度。新工程向导——NiosⅡIDE推出了一个新工程向导,用于自动建立C/C++应用程序工程和系统库工程。采用新工程向导,能够轻松地在Nios II IDE中创建新工程。

软件工程模板——除了工程创建向导,NiosⅡ IDE还以工程模板的形式提供了软件代码实例,帮助软件工程师尽可能快速地推出可运行的系统。

(2) 编辑器和编译器

Altera NiosⅡIDE提供了一个全功能的源代码编辑器和C/C++编译器

文本编辑器——NiosⅡ IDE文本编辑器是一个成熟的全功能源文件编辑器。这些功能包括:语法高亮显示C/C++、代码辅助/代码协助完成、全面的搜索工具、文件管理、广泛的在线帮助主题和教程、引入辅助、快速定位自动纠错、内置调试功能。

C/C++编译器——NiosⅡ IDE为GCC编译器提供了一个图形化用户界面,NiosⅡIDE编译环境使设计Altera的NiosⅡ处理器软件更容易,它提供了一个易用的按钮式流程,同时允许开发人员手工设置高级编译选项。NiosⅡ IDE 编译环境自动地生成一个基于用户特定系统配置(SOPC Builder生成的PTF文件)的makefile。NiosⅡ IDE中编译/链接设置的任何改变都会自动映射到这个自动生成的makefile中。这些设置可包括生成存储器初始化文件(MIF)的选

项、闪存内容、仿真器初始化文件(DAT/HEX)以及profile总结文件的相关选项。

(3) 调试器

NiosⅡIDE包含一个强大的、在GNU调试器基础之上的软件调试器-GDB。该调试器提供了许多基本调试功能,以及一些在低成本处理器开发套件中不会经常用到的高级调试功能。

基本调试功能——NiosⅡIDE调试器包含如下的基本调试功能:运行控制、调用堆栈查看、软件断点、反汇编代码查看、调试信息查看、指令集仿真器。高级调试——除了上述基本调试功能之外,NiosⅡ IDE调试器还支持以下高级调试功能:硬件断点调试ROM或闪存中的代码、数据触发、指令跟踪。

(4) 闪存编程器

使用NiosⅡ处理器的设计都在单板上采用了闪存,可以用来存储FPGA配置数据和/或NiosⅡ编程数据。NiosⅡIDE提供了一个方便的闪存编程方法。任何连接到FPGA的兼容通用闪存接口(CFI)的闪存器件都可以通过NiosⅡIDE闪存编程器来烧写。除CFI闪存之外,NiosⅡIDE闪存编程器能够对连接到FPGA的任何Altera串行配置器件进行编程。

NiosⅡ IDE支持两种项目:系统库项目和应用项目。因此对系统属性的的配置也有两种方法:

直接配置:选择目标系统库项目,单机鼠标右键—Properties,在弹出的窗口中选择System Library,直接配置系统库项目。

间接配置:在NiosⅡ IDE中,每个项目都应该与某个系统库项目相关联,

用户可以通过应用项目来间接配置预其相关的系统库项目属性。选择目标应用项目,鼠标右键—System Library Properties,然后具体配置。

图8 系统库属性配置

在系统库属性配置页面可以完成下列参数配置:

指定stdin,stdout和stderr标准I/O设备;指定代码或数据段所对应的目标物理存储器;指定系统时钟和timestamp时钟;指定个代码优化选项;添加或配置软体元件,比如RTOS或者文件系统;下面挑选几种配置简单介绍其功能:

Targre Hardware:用于显示当前系统库项目中的两个重要信息:所基于SOPC Builder System(*.ptf),所作用的CPU,在多处理器系统中用户必须指定系统库项目对应的CPU

System Library Contents:RTOS(Real-time operating system / 实时系统)配置系统库项目所基于的操作系统(OS),在该选项有两个可选条目:

None(single threaded): 为系统库配置单线程HAL(Hardware Abstraction

Layer/硬件抽象层)运行环境,本项目的设计就是该选项;

MicroC/OS-II:为系统库配置MicroC/OS-II。

Small C Library:使能该选项时,系统将使用精简的Newlib ANSI C标准库,此时某些Newlib ANSI C标准库的功能将不再起作用,比如pringf()、fpringf()、springf()等等都将不再支持浮点数据。所以使用是一定要小心。在该工程中采用标准的Newlib ANSI C库。

3.3.2 NiosⅡ IDE C/C++Build属性配置

该属性配置页主要用于配置NiosⅡ的GNU工具链的编译、预处理以及链接选项。通过选择目标系统库项目或应用项目,鼠标右键--Properties--C/C++Build打开属性配置窗口。

图9 NiosII IDE C/C++Build属性配置

属性主要包含两个内容:Active Configuration和Configuration Settings

在该的工程中主要考虑调整Configuration Settings—tool setting下NiosII

compiler中的General选项的内容。在Optimization Levels下拉窗口中:

图10 Configuration Settings界面

None (-O0): gcc编译器默认优化等级。不做任何优化

Optimize (-O1):优化。在-O1下:编译会尝试减少代码体积和代码运行时间。但是并不执行会花费大量时间的优化操作

Optimize more (-O2) :gcc执行几乎所有支持的操作但不包括空间和速度之间权衡的优化。-O2优化等级下,并不执行循环展开和函数“内联”优化操作。

Optimize most (-O3) :进一步优化;

Optimize size (-OS):针对程序空间大小优化(多用于嵌入式系统)。-Os使能(-O2)中除去会增加程序空间的所有优化参数。同时-Os还会执行更加优化程序空间的选项。

在nios2-elf-gcc编译器中使用“-O3”选项,代码可以被最大限度地优化,包括代码的大小和执行速度。需要注意的是,编译器优化可能会带来一些意想不到的结果。

另外,必须在用户工程和系统库中都使用-O3选项。

在工程中采用的是Optimize more (-O2)优化等级。

3.3.3 软件系统的设计流程

NiosⅡIDE基于开放式的、可扩展Eclipse IDE project工程以及Eclipse C/C++ 开发工具(CDT)工程。

(1)启动Nios II IDE,在“开始菜单|所有程序|Altera|Nios II EDS 9.0”,选中“Nios II IDE 9.0”。

(2)新建工程,选择“File | New | Project”,在New Project对话框中选择“C/C++ Application”单击“Next”。左栏中选择“Blank Project”模板,改工程名为“SensorBoard”,SOPC Builder System选择刚生成的系统文件“nios.ptf”,cpu为定制的“cpu”,点击Next。

图11 新建工程“SensorBoard_”

4 实验结果与分析

先设计传感器开发板的程序,核心代码如下。

int sensor(uchar cmd,int parameter)

{

int i = 0,total;

uchar txbuff[5];

uchar rxbuff[7];

fp = fopen("/dev/uart","r+");

txbuff[0] = 0xaa;

txbuff[1] = 0xff;

txbuff[2] = cmd;

txbuff[3] = 0xff ^ cmd;

txbuff[4] = 0xff;

for(i = 0 ; i <= 4 ; i++ )

{

fwrite(&txbuff[i],1,1,fp);

fflush(fp);

}

fclose(fp);

if(parameter == 1)

{

buffer_clear();

fp = fopen("/dev/uart","r+");

for(i = 0 ; i <= 6 ; i++ )

{

fread(&rxbuff[i],1,1,fp);

usleep(500);

printf("%x ",rxbuff[i]);

}

fclose(fp);

total = data_convert(rxbuff);

return total;

}

else

{

return 0;

}

再设计显示的程序,在NiosII自带的Console观察实验结果,核心代码如下。

if(cmd == 1)

{

buffer_clear();

data_rev = sensor(0x10,1);

printf("\nthe current temperature is/当前温度: %d°C\n",data_rev);

}

else if(cmd == 2)

{

buffer_clear();

data_rev = sensor(0x1D,1);

printf("\nthe current humidity is/当前湿度(0~100) : %d\n",data_rev); }

结论

(1)选择“project|Build all”进行编译,下载SensorBoard.sof文件。

(2)运行应用程序,选择“Run…”或者“Run As”,通过NiosII自带的Console 观察实验结果如图12所示。

图12 实验结果

基于FPGA的嵌入式技术

基于FPGA的嵌入式技术 “嵌入式系统是一个面向应用、技术密集、资金密集、高度分散、不可垄断的产业,应用在通信、航空航天、消费类电子产品等各种领域中。”随着经济的发展,各领域对嵌入式产品的应用需求呈现多样化,嵌入式系统设计技术和芯片技术也不断革新。传统设计ASIC的成本很低,但设计周期长、上市时间晚、风险较大。基于FPGA的嵌入式系统设计可以缩短设计周期,加快上市时间,抢占市场先机。 1、概述 现场可编程门阵列FPGA(Field-Programmable Gate Array)是由复杂可编程逻辑器件CPLD(Complex-Programmable Logical Device)发展而来。其功能强大,设计灵活。设计性能能够与ASIC媲美。而且,性能价格比也可以与ASIC抗衡。因此,FPGA在嵌入式系统设计领域越来越重要。 FPGA的基本结构由以下几个部分:CLB(Configurable Logic Blocks)、IOB (Input/Output Blocks)和PI(Programmable Interconnection)。随着工艺的进步和应用需求,一般在FPGA中还包含以下可选结构:Memory、数字时钟管理单元、Select I/O、乘法器和加法器、硬IP核和微处理器等。随着FPGA性能提高和设计人员能力提高,FPGA将进一步扩大可编程芯片领地,使专用芯片更高端和超复杂。[1] 2、可编程片上系统(SOPC) 可编程片上系统(SOPC)是一种特殊的嵌入式系统。片上是指由单个芯片完成整个系统的主要逻辑功能;可编程使其具有灵活的设计方式,可以裁剪、扩充、升级。并且,SOPC结合了SOC和FPGA各自的优点,具备软硬件在系统可编程的功能。 SOPC至少包含一个嵌入式处理器内核,具有小容量片内高速RAM,一部分IP Core(简称IP),大量的片上可编程逻辑,处理器调试接口和FPGA编程接口等。SOPC设计技术涵盖了嵌入式系统设计技术的全部内容。包含以处理器和实时多任务操作系统为中心的软件设计技术、以PCB和信号完整性分析为基础的电路设计技术及软硬件协同设计技术。[2] 3、IP资源复用理念与IP Core设计 IP资源复用是指在集成电路设计中,通过继承、共享或购买所需的知识产权内核,利用EDA工具进行设计、综合和验证,加速流片设计过程,降低开发风险。IP核复用技术已逐渐成为现代ASIC设计的重要手段,不仅应用于专用集成电路设计,也广泛使用于基于FPGA的嵌入式系统设计领域。设计师倾向于使用IP内核保持和提高产量。

基于FPGA的软核处理器在嵌入式中的运用

基于FPGA的软核处理器在嵌入式中的运用 随着一些ASIC 应用开发日益受到成本的困扰,OEM日渐转向FPGA 来构建自己的系统。这些系统中绝大多数需要一个处理器为了给设计者提供一个为FPGA 优化的灵活的嵌入式处理器方案,满足16位和32位嵌入式处理器市场的需求,Altera公司公司推出Nios II 系列32位RSIC嵌入式处理器。这是Altera的第二代软核嵌入式处理器,性能超过200DMIPS,在Altera FPGA 中实现仅需35美分。因为Nios II处理器是软核,因此开发者能够从无限的系统配置组合中选择满足性能和成本目标的方案,而不必为系统级设计考虑采用ASIC。 与此同时赛灵思公司(Xilinx,Inc.)宣布推出Virtex?-5 FXT 器件。这些FPGA 器件在业界率先集成了嵌入式PowerPC?440处理器模块、高速RocketIO?GTX收发器和专用XtremeDSP?处理能力。作为65nm Virtex-5系列的第四款平台, Virtex-5 FXT提供了极高的性能,还可帮助设计人员降低系统成本、缩小板尺寸并减少元件数量。在赛灵思公司以及业界领导厂商提供的逻辑、嵌入式和DSP开发工具以及IP内核的支持下,Virtex-5 FXT FPGA为有线和无线通信、音频/视频广播设备、军事、航空航天、工业系统以及其它众多应用提供了一个终极系统集成平台。 从FPGA两大主要生产公司的设计方向上我们可以看出,未来的嵌入式发展将向基于软核处理器的FPGA发展,也就是常称之为的SoPC(可编程片上系统Sysein on a Programmable Chip)设计思想。基于FPGA 的SoPC 具有设计灵活、可裁减、可配置、可扩充、可升级的特点,并具备软硬件在系统可编程的功能。我们借助强大得EDA 工具,在设计嵌入式系统时,不仅可以实现软件的可裁减性,同样可以实现硬件的可裁减性,并且可以自主定义处理器的引脚,方便PCB板布线,同样方便更改设计。 Altera 的Nios 处理器和Stratix FPGA 是其Maestro 平台的核心,它具有的核心功能提供了前所未有数据为中心的功能。能够用于任何需要32位嵌入式处理器的应用。据介绍,Nios II 系列包括三种软CPU 核,一个是最大系统性能,一个是为最少逻辑使用量优化的,还有一个是二者之间的平衡。所有核都是100% 代码兼容,让设计者根据系统需求变化改变C P U ,而不会影响现有的软件投入。Nios II系列是建立在前一代成功的基础之上,以部分的资源提供高得多的性能。 另外,Nios II处理器具有健全的软件开发套件,包括编译器、集成开发环境(IDE ),JTAG 调试器,实时操作系统(RTOS)和TCP/IP 协议栈。Nios II嵌入式处理器结合Altera的低成本Cyclone 系列和高性能StratixII 系列FPGA 和HardCopy 结构化ASIC系列,在价格、性能和功能上具有很高的灵活性。Lytle先生认为,Nios II系列增加了Altera 在嵌入式处理器市场上的机会。当第一代Nios 处理器为Altera 开辟了新的应用和市场之门时,Nios II嵌入式处理器系列有望增加公司在16位和32位嵌入式处理器市场上的机会。从使用Altera 低成本Cyclone FPGA 系列的探鱼器和引擎测试仪到使用高性能Stratix系列的视频处理和高级通信系统,Altera的软核嵌入式处理器已经成为新应用中使用可编程逻辑的推动力。 在单片器件上集成重要处理性能和SERDES元件,可为那些需要节约板级空间和成本、同时又需要满足高性能要求的设计人员提供巨大的价值。例如,在无线应用中,Virtex-5

基于FPGA的嵌入式系统毕业论文课程设计

目录 1 NiosⅡ CPU的体系结构3 NiosⅡ处理器的结构 (3) NiosⅡ处理器的基本组成 (3) Debug模块 (3) NiosⅡ开发环境简介 (3) 2 IP核4 SDRAM控制器 (4) 3 基于SOPC的温湿度监测系统设计5 系统总体设计方案 (5) SOPC硬件系统设计 (6) SOPC软件系统设计 (9) NiosⅡ软件系统设计 (9) NiosⅡ IDE C/C++Build属性配置 (13) 软件系统的设计流程 (15) 4 实验结果与分析15结论18

SOPC是可编程片上系统,即一种特殊的嵌入式系统。首先它是片上系统(SOC),由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。SOPC是基于FPGA解决方案的SOC,与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色。构成SOPC的途径有基于FPGA嵌入IP硬核的系统、基于FPGA嵌入IP软核的系统和基于HardCopy 技术的SOPC系统三种方式。本文介绍基于FPGA的嵌入IP软核的SOPC系统实现方法,设计了一种基于SOPC的温湿度监测系统。通过Quartus II 软件里的SOPC builder把Nios II Processor、Avalon总线、UART、SDRAM_controller、Flash Memory、Avalon三态桥等多个IP核集成生成系统所需的SOPC。传感器扩展板采用Mega8作为主控芯片,用于数据的采集、显示以及和PC的通信。同时配有由SPI总线控制的数码管,可以显示传感器的测量结果,以及与PC通信过程中的具体情况。对外采用波特率为115200的串口进行通信,用户可通过串口向该模块发出各种查询命令以查询传感器的状态。本次设计使用NiosII IDE编写应用程序,发送相应指令,获取温度和湿度的值,同时显示在Console窗口。 关键词: SOPC技术;FPGA开发板;IP核;温湿度监测;NiosⅡ处理器;Mega8芯片

基于fpga的嵌入式系统设计——复习题

《基于fpga的嵌入式系统设计》复习题 1、名词概念解释: (1)ASIC,FPGA,SOC,SOPC,NIOS II,I/O ,IP ; (2)VHDL,verilog HDL,HDL,EDA ; (3)功能仿真,后仿真,设计综合,设计验证; (4)嵌入式系统的定义: 以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、 可靠性、成本、体积、功耗等严格要求的专用计算机系统。 (5)嵌入式系统的组成: 嵌入式系统主要由嵌入式处理器、外围设备、嵌入式操作系统及应用软件等组 成,它是集软硬件于一体的可独立工作的“器件”。其中:嵌入式处理器是嵌入 式系统的核心部件,具有小型化、高效率、高可靠性、高集成度等特点。外围 设备是嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的部件。 2、填空题 (1)NiosII处理器有三种运行模式:___________ ,___________ ,_____________ 。(2)CycloneII FPGA支持串行配置器件的isp编程,该特性是通过_____________利用JTAG接口实现的。 (3)在SOPC Builder中,复位地址的偏移量是________,异常地址的偏移量是________。(4)在NiosII的多处理器系统中,最常用的共享资源是____________。 (5)根据Flash是否支持处理器的直接读操作,NiosII处理的bootloader分成两种模式:________________bootloader、________________ bootloader。 (6)用uC/OS-II操作系统实现以太网与轻量IP功能的时候,以太网的中断号至少是____________。 (7)Altera公司的FPGA常用的配置方式: JTAG方式、___________、___________。(8)CycloneII FPGA上面集成的Block RAM为M4K,一个M4K的大小是________。(9)使用QuartusII进行FPGA设计的开发流程是:设计输入、__________、___________、仿真、_________ 。 (10)NiosII IDE为软件开发提供了4个主要功能:工程管理器、编辑器和编译器、调试器、____________ 。 (11)SOPC组件On-chip Memory可以用作RAM外,还可以设置成___________,甚至可以设置成双口存取。 (12)CycloneII EP2C35器件包含4个PLL,每个PLL均有_________个输出。其中第_________个输出的驱动能力最强。

基于FPGA的嵌入式系统

1 NiosⅡ CPU的体系结构3 1.1 NiosⅡ处理器的结构 (3) 1.2 NiosⅡ处理器的基本组成 (3) 1.3 Debug模块 (3) 1.4 NiosⅡ开发环境简介 (3) 2 IP核4 2.1 SDRAM控制器 (4) 2.2FLASH (5) 3 基于SOPC的温湿度监测系统设计5 3.1 系统总体设计方案 (5) 3.2 SOPC硬件系统设计 (6) 3.3 SOPC软件系统设计 (9) 3.3.1 NiosⅡ软件系统设计 (9) 3.3.2 NiosⅡIDE C/C++Build属性配置 (13) 3.3.3 软件系统的设计流程 (15) 4 实验结果与分析15结论18

SOPC是可编程片上系统,即一种特殊的嵌入式系统。首先它是片上系统(SOC),由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。SOPC是基于FPGA解决方案的SOC,与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色。构成SOPC的途径有基于FPGA嵌入IP硬核的系统、基于FPGA嵌入IP软核的系统和基于HardCopy 技术的SOPC系统三种方式。本文介绍基于FPGA的嵌入IP软核的SOPC系统实现方法,设计了一种基于SOPC的温湿度监测系统。通过Quartus II 软件里的SOPC builder把Nios II Processor、Avalon总线、UART、SDRAM_controller、Flash Memory、Avalon三态桥等多个IP核集成生成系统所需的SOPC。传感器扩展板采用Mega8作为主控芯片,用于数据的采集、显示以及和PC的通信。同时配有由SPI总线控制的数码管,可以显示传感器的测量结果,以及与PC通信过程中的具体情况。对外采用波特率为115200的串口进行通信,用户可通过串口向该模块发出各种查询命令以查询传感器的状态。本次设计使用NiosII IDE编写应用程序,发送相应指令,获取温度和湿度的值,同时显示在Console窗口。 关键词: SOPC技术;FPGA开发板;IP核;温湿度监测;NiosⅡ处理器;Mega8芯片

基于FPGA的嵌入式Linux软硬件设计概要

基于FPGA的嵌入式Linux软硬件设计 摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大器-电容(OTA—C)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波器带宽进行控制,并利用ADS软件进行电路设计和仿真验证。仿真结果表明,该滤波器带宽的可调范围为1~26 MHz,阻带抑制率大于35 dB,带内波纹小于0.5 dB,采用1.8 V电源,TSMC 0.18μm CMOS工艺库仿真,功耗小于21 mW,频响曲线接近理想状态。关键词:Butte FPGA是通过逻辑组合电路来实现各种功能的器件。由于FPGA内部集成了大量的逻辑资源和可配置的I/O引脚,加上独特的并行处理架构,可以轻松实现同时对多个外部设备的配置和管理,以及内外各种接口数据的传输。现在开发厂商又在FPGA 内部加入了大量的DSP和Block RAM资源,非常适合图像处理、数字信号处理等运算密集的应用,因此在这些领域取得了广泛的应用。但是由于FPGA 程序编写的灵活性和功能的多样性,使得它在一个复杂工程中对各个程序的使用调度、统筹管理上有很大的局限性,这样就必须引入操作系统进行统一的管理。Linux 系统则因为其良好的可裁减、可配置等特点在嵌入式领域应用广泛。 Linux操作系统提供了许多系统级的应用,例如网络协议的实现、进程调度、内存管理等,同时Linux 是一个成熟的开源操作系统,有丰富的应用资源,利用这些资源和强大的系统功能,用户可以快速地开发基于嵌入式环境复杂系统。因此,结合FPGA和Linux双方优势,可以很好地满足嵌入式系统设计需求,量体裁衣,去除冗余。本文给出了一种基于Xilinx FPGA的嵌入式Linux操作系统解决方案。 基于FPGA的嵌入式系统的硬件设计 本设计是基于Xilinx XC4VFX40系列 FPGA,它内部集成了两个PowerPC405处理器, 4个10/100/1000M以太网MAC模块,运行频率300MHz时,具有420D-MIPS性能,能解决高速网络数据传输问题,并且能解决通过网络加载操作系统和交叉编译等问题。它内部有448个可配置I/O口,2592kb BlockRAM,能实现对各种外部设备的并行控制以及较多数据的存储与处理。加载一个操作系统,一般需要几十兆的内存空间,FPGA内部自带的RAM空间是远远不够的,本设计在板上扩展了两片MICRON公司的256Mb DDR内存,作为上电时操作系统的加载和运行空间。现在主流的嵌入式操作系统,都需要搭建交叉编译环境,把在主机上编写好的可执行文件下载到目标板上,这就需要实现网络数据的传输。由于XC4VFX40 自带了以太网MAC模块,只需要在外面添加个PHY芯片和带隔离器的RJ45接口就能实现这个功能。本设计由于对网络数据实时性要求很高,因此采用Marvell公司的千兆以太网PHY芯片88E1111-RCJ。它能根据自身配置和主机设计,实现10/100/1000M自适应传输,并且Linux本身对这个芯片提供了驱动支持,实现无缝链接。操作系统加载到DDR 中能快速有效的运行,但是掉电就会丢失,因此必须加入FLASH芯片,把系统文件存储到外部FLASH中。加电时,FPGA把操作系统文件从FLASH读入到 DDR中运行。FPGA设计当然会

基于fpga的嵌入式系统设计——复习题

基于fpga的嵌入式系统设计——复习题

————————————————————————————————作者: ————————————————————————————————日期:

《基于fpga的嵌入式系统设计》复习题 1、名词概念解释: (1)ASIC,FPGA,SOC,SOPC,NIOS II,I/O ,IP ; (2)VHDL,verilog HDL,HDL,EDA ; (3)功能仿真,后仿真,设计综合,设计验证; (4)嵌入式系统的定义: 以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系 统。 (5)嵌入式系统的组成: 嵌入式系统主要由嵌入式处理器、外围设备、嵌入式操作系统及应 用软件等组成,它是集软硬件于一体的可独立工作的“器件”。其中: 嵌入式处理器是嵌入式系统的核心部件,具有小型化、高效率、高 可靠性、高集成度等特点。外围设备是嵌入式系统中用于完成存储、 通信、调试、显示等辅助功能的部件。 2、填空题 (1)NiosII处理器有三种运行模式: ___________ ,___________ ,_____________。 (2)CycloneII FPGA支持串行配置器件的isp编程,该特性是通过_____________利用JTAG接口实现的。 (3)在SOPCBuilder中,复位地址的偏移量是________,异常地址的偏移量是________。 (4)在NiosII的多处理器系统中,最常用的共享资源是____________。 (5)根据Flash是否支持处理器的直接读操作,NiosII处理的bootloader分成两种模式:________________bootloader、________________ bootloader。(6)用uC/OS-II操作系统实现以太网与轻量IP功能的时候,以太网的中断号至少是____________。 (7)Altera公司的FPGA常用的配置方式: JTAG方式、___________、___________。 (8)CycloneII FPGA上面集成的Block RAM为M4K,一个M4K的大小是________。 (9)使用QuartusII进行FPGA设计的开发流程是:设计输入、__________、___________、仿真、_________ 。

基于FPGA的嵌入式系统课程设计题目及要求

一、课程设计要求 1、课程设计要求所有题目采用Quartus II 工具提供的图形输入或者VerilogHDL语言输入方式作为电路设计工具,在NiosII上采用C语言实现编程,自定向下正向设计方法,先设计硬件系统,再进行软件编程,能够生成正确的FPGA下载代码和NiosII执行的软件代码。硬件功能仿真和时序仿真采用第三方工具(建议为:modelsim),综合与布局布线工具为:Quartus II,SOPC Builder建立软件运行环境,具体要求为: 1)根据课设题目,进行总体设计方案;(10分) 2)硬件电路顶层设计、模块划分、引脚定义;(10分) 3)电路设计及NiosII设计,提交电路设计源代码或电路图;(10分) 4)综合与布局布线,提交综合与布局布线报告(10分) 5)FPGA下载代码和引脚分布;(10分) 6)软件总体设计及画出流程图;(10分) 7)程序设计,提交程序代码;(10分) 8)程序编译下载及仿真调试;(10分) 2、课程设计题目共6个,要求每个同学独立完成其中的一个: 要求学号为1、7、13、19、25、31的同学做1号题目; 要求学号为2、8、14、20、26、32的同学做2号题目; 要求学号为3、9、15、21、27、33的同学做3号题目; 要求学号为4、10、16、22、28、34的同学做4号题目; 要求学号为5、11、17、23、29、35的同学做5号题目; 要求学号为6、12、18、24、30、36的同学做6号题目。 3、题目要求独立完成,设计和报告如有雷同,将一个成绩平均分配雷同的同学。 4、时间、地点 时间:8:00 ——14:00, 5、全勤且提交课程设计报告及心得体会者记20分,课程设计时间段内任意时间点名未到(吃饭时间12:00 ——12:30;18:00 ——18:30除外)、迟到、玩游戏扣除:3分/次,6次及6次以上者课程设计成绩直接记:不及格。 实验使用平台:DE2实验板

相关文档