基于SoPC目标板Flash编程设计的创建及应用

发布者:清新生活最新更新时间:2009-08-14 来源: 黄冰峰 游志宇 杜杨 窦普关键字:SoPC  FPGA  嵌入式  设计  Flash 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  随着集成电路工艺技术的不断发展和集成度的提高,嵌入式系统由板级向芯片级过渡,形成一种新的设计方法一片上系统(System on Chip,简称SoC)。SoC从整个系统的角度出发,把处理机制、模型算法、芯片结构、各层次电路,直至器件的实际电路紧密连接起来,在单个(少数几个)芯片上实现整个系统的功能。同时随着现场可编程逻辑阵列(FPGA)技术的日益成熟,将PLD与嵌入式处理器IP软核相结合,形成基于可编程片上系统(System on Programmable Chip,简称 SoPC)的SoC解决方案,使得更加灵活的SOPC成为现代嵌入式系统设计的发展趋势。SoPC是Altera公司提出的一种灵活、高效的SoC解决方案。它将处理器、存储器、I/O口、LVDS、CDR等系统设计需要的功能模块集成到一个可编程器件上,构成一种特殊的可编程片上嵌入式系统。一方面,它是可编程片上系统,即由单个芯片完成整个系统的主要功能,并具备软硬件系统可编程的能力;另一方面,它内嵌处理器IP核,具有灵活的设计方式,用户可根据需要随意配置、构建、裁剪处理器IP核。目前最具有代表性的IP软核嵌入式处理器是Altera的NiosII软核。NiosII嵌入式CPU是一种专门为SoPC设计应用而优化的CPU软核。

  在基于NiosII的SoPC嵌入式系统中,几乎所有的应用设计都需要使用Flash来保存在NiosII中运行的程序代码、非易失性数据和FPGA的配置数据。因此Flash编程便成为在调试完SoPC系统后的重要工作。要对Flash编程,首先要保证在SoPC Builder中Target选项区域的Board下拉列表框中选择用户使用的目标板F1ash编程设计。基于实际设计需求,详细介绍SoPC目标板Flash编程设计的创建,并以一个最小SoPC系统为例,说明目标板Flash编程设计的应用及Flash编程。

  2 Flash Programmer简介

  NiosII IDE提供了Flash Programmer工具来对目标板上遵循通用Flash接口(Common Flash InteRFace,简称CFI),规范的Flash及EPCS配置器件进行编程。IDE的FlashProgrammer通过使用Altera的下载电缆能够方便地对目标板上连接在FPGA上的Flash及串行配置器件EPCS进行编程。

  2.1 Flash Programmer编程工作过程

  NiosII的IDE Flash Programmer采用两步骤将数据写入Flash中。第一步,用一个Altera提供的特殊Flash编程设计(Flash Programmer Design)对FPGA进行配置;第二步,IDEFlash Programmer将要编程到Flash中的文件内容传送到在FPGA上运行的Flash编程设计,然后Flash编程设计将接收到的数据编写到Flash中。其编程工作过程如图1所示。

  2.2 Flash编程设计

  Flash编程设计实际就是一个由SoPC Builder系统生成的最小FPGA设计。Flash编程设计是IDE Flash Programmer的关键组成部分。不同的目标板往往使用不同的Flash器件,并且Flash与FPGA的引脚连接以及FPGA的型号也不相同。因此,每个Flash编程设计都是与具体的目标板相联系的,不能用于其他的目标板。如果使用自己的目标板,那么设计者必须创建该目标板的Flash编程设计。Altem公司的Nios开发板都提供了相应的Flash编程设计,可以在NiosII开发套件安装目录的、ipnios2_ip文件夹中找到。

  2.3 Flash编程设计信息

  目标板Flash编程设计描述了系统与目标板之间的关系。目标板Flash编程设计对Flash编程必不可少,它提供了Flash Programmer对Flash编程所需的全部信息。一个目标板Flash编程设计是一组SOPC Builder文件,其中必须指明FPGA与Flash的连接关系。一个目标板Flash编程设计包含下列信息:①每一个连接到电路板FPGA上的F1ash的参考元件标号,如U7,U7Flash,U3EPCS等;②Flash器件在F1ash编程设计中的基地址;③用于配置目标板上FPGA的Flash编程设计的SOF文件。

  参考元件标号用于区分设计中不同的Flash器件。目标板上的Flash器件在设计时的命名和基地址可能不同,但参考元件标号总是相同的。

  3 目标板Flash编程设计的创建

  用户自制目标板,而在Target选项区中的Board下拉列表框中没有相应的目标板Flash编程设计,用户就必须自己创建目标板Flash编程设计。

  3.1目标板Flash编程设计文件创建

  下面以QuaausII 7.0为例,详细说明目标板Flash编程设计的创建。目标板Flash编程设计在SoPC Builder中实现。在QuaausII中新建一个工程,在[Tools]菜单中选择[SoPC Builder],打开Ahera SOPC Builder图形编辑界面环境。在SoPC Builder图形编辑界面中,在[File]菜单中选择[New Board Description],打开Board Description Editor对话框,在此对话框中选择NetList页面,在Device Familv栏中正确选择目标板的FPGA系列,这里以Cyclone II为例,如图2所示。

  选择Flash Memory页面,单击New Flash Memory按钮添加目标板的Flash器件,并输入正确的连接到目标板FPGA的参考元件标号和Flash器件类型。参考元件标号可命名为用户的任意字符串,如U7,EPCS,Flash等,但不能命名成U7(CFIFlash),U3(EPCS)等形式。再单击此页面的New HardwareImage按钮,指定FPGA硬件配置程序的存储位置,一般选择EPCS器件。如果设置为Flash器件,需要有相应的外部控制器、单片机或CPLD配合使用。设置如图3所示。

[page]

  FPGA硬件配置可放在NOR Flash中,也可放在EPCS中。在Hardware Image Name栏下输入硬件配置映像的名称,如epcs,user,factory等。对于每一个Hardware Image Name,都要选择一个用来存储的Flash。如果用户设计中,即采用EPCS,又采用NOR Flash对FPGA的配置数据进行存储,则可在Hardware Image Name栏下输入两个硬件配置映像名,如user,factory,然后分别指定为前面的参考元件标号;对于offset栏的设置,如果对应的Device栏为Flash器件,则可以指定硬件映像在Flash中的编程偏移地址;如果对应的Device栏为EPCS器件,则不能在offset栏中指定偏移地址。最后选择Files页面,输入Board Description Name,Version和System Template,单击Finish按钮完成目标板Flash编程设计的创建,如图4所示。

  System Template栏可通过Brows按钮选择设置的系统模板*.ptf(或者直接输入),也可不设置系统模板。如果设置系统模版,则系统模板需要存储在目标板Flash编程设计文件目录下的system文件夹中。并且在构建NiosII CPU时,当选择带系统模板的目标板Flash编程设计时,会自动在SoPCBuilder图形编辑界面添加系统模板带的CPU组件。

  目标板Flash编程设计成功创建后,在QuartusII工程目录下会生成一个与Board Description Name相同的目录。在此目录下包含目标板Flash编程设计的文件class.ptf。文件夹下还包含两个子文件夹,一个是system,设计者指定的系统模版便存放在此;另一个是netlist,存储设计者提供的PCB网表文件,格式为wirelist。如果设计者不需要这两个文件,则为空文件夹。

  对于Board Description Editor对话框中其他页面的选项,与目标板Flash编程设计描述没有必要的关系。详细内容请参见Altera的数据手册。

  3.2 目标板Flash编程设计设置

  目标板Flash编程设计成功创建后,为了在任何设计的SoPC Builder中都能使用,则可将生成的整个文件夹拷贝到NiosII开发套件安装目录的ipnios2_ip文件夹中,或者设置SoPC Builder的搜索路径,配置Component/Kit Library SearchPath,增加用户设计的目标板Flash编程设计目录。然后关闭Ahera SoPC Builder重新启动SoPC Builder,就可以在SoPCBuilder图形界面中的Target下拉列表框中找到创建的目标板Flash编程设计。

  4 目标板Flash编程设计的应用

  以一个最小SoPC系统流水灯为例,说明目标板Flash编程设计在实际Flash编程中的应用。

  4.1 NiosII CPU生成

  在Altera SoPC Builder图形界面中,首先在Target选项区中Board下拉列表框中选择刚创建的目标板Flash编程设计,并指定NiosII系统的时钟。然后添加系统所需的外设元件,设置各外设元件的参数。分配Base Address和IRQ。添加完组件后如图5所示。

  添加完组件后,在Nios II More“cpu”Settings中设置复位地址和异常地址。如果Nios程序下载到Flash中,则复位地址设为ext_flash;如果下载到EPCS中,则复位地址设为epcs_controller。最后在System Generation中点击Generation按钮生成NiosII CPU。

  4.2 构建最小SOPC系统

  在QuartusII中构建最小SoPC系统。此SoPC系统由NiosII CPU模块、PLL模块和系统复位模块组成。在系统的顶层模块中分别添加SoPC Builder生成的NiosII CPU,PLL模块及系统复位模块构成最小的SoPC系统。由于目标板上时钟是50 MHz,而构建NiosII CPU时钟设为80 MHz,故需通过Mega Wizard Plug-In Manager生成PLL模块,将系统时钟提高到80 MHz。添加完模块后,再添加输入/输出端口,并连接引脚与端口,命名端口名(建议端口命名与实际电路中的网络标号相同)。然后分配引脚,并设置相关参数。编译工程生成FPGA的配置文件*.sof,并利用QuartusII的Programmer下载到FPGA或EPCS中。

  4.3 Nios程序生成及Flash编程

  启动NiosII IDE,建立和编译一个简单的LED流水灯的Nios应用程序。在Nios应用程序调试正确后,单击菜单[Tools]下的[Flash Programmer],弹出Flash Programmer编程界面。选中Flash Programmer,单击New按钮创建一个FlashProgrammer配置。在Flash Programmer界面中选择Main选项卡,设置Flash Programmer相关参数。

  如果选中Program software project into flash memory project项,表示将工程的*.elf文件写入Flash(EPCS或CFI Flash)存储器中。将*.elf文件写入Flash的过程时,如果工程没有编译连接,会自动进行工程的编译连接。对于*.elf文件的编程,Flash Programmer窗口中并没有存储器和偏移地址的设置,存储器和偏移地址由是SOPC Builder中Reset Address指向的存储器和设置的偏移地址决定。如果将ResetAddress指向CFI F1ash.偏移地址从0x0HD开始,那么FlashProgrammer就会从CFI Flash的基地址+0x00开始烧写数据;如果将Reset Address指向epcs_controller,偏移地址从Ox00开始,那么Flash Programmer就会从EPCS的基地址+配置数据空间+Ox00开始烧写数据。

  如果选中Program FPGA configuration data into hardware-image region of flash memory,可将FPGA配置数据写入Flash(EPCS或CFI Flash)。选择作为硬件系统的FPGA配置文件*.sof,指定配置文件的硬件配置映像名及存储的偏移地址。如果在制作目标板Flash编程设计时,指定可将配置文件编程到CFIFlash,并指定多个偏移地址,此项就可选择编程地址,从而将配置文件编程到用户指定的存储器地址空间。对于将配置文件编程到EPCS,偏移地址只能从Ox00开始。如果选择Program file into a flash memory选项,能将指定的二进制文件写入指定的Flash(EPCS或CFI Flash)存储地址空间。

  在Flash Programmer界面中选择Target Connection选项卡,设置当前所用的下载电缆及JTAG器件。然后单击Program F1ash对Flash进行编程(EPCS或CFIFlash)。如果看到图6所示的提示消息,则Flash编程已经成功,说明目标板Flash编程设计创建成功。

  5 结语

  实现SoPC目标板Flash编程设计的创建,并通过一个最小SoPC系统说明目标板Flash编程设计在Flash编程中的应用及Flash编程的方法。通过实验验证了目标板Flash编程设计创建方法的正确性,并能对Flash编程。

关键字:SoPC  FPGA  嵌入式  设计  Flash 引用地址:基于SoPC目标板Flash编程设计的创建及应用

上一篇:基于DSP TMS320F206的仿真调试
下一篇:基于FPGA控制的悬挂运动控制系统设计

推荐阅读最新更新时间:2024-05-02 20:51

单片机控制实时时钟X1226的应用设计
引 言 X1226具有时钟和日历的功能,时钟依赖时、分、秒寄存器来跟踪,日历依赖日期、星期、月和年寄存器来跟踪,日历可正确通过2099年,具有自动闰年修正。 拥有强大的双报警功能,能够被设置到任何时钟/日历值上,精确度可到ls。可用软件设置1 Hz,4096 Hz或32768Hz中任意一个频率输出。 该器件提供一个备份电源输入脚VBACK1允许器件用电池或大容量电容备份供电。许多电池类型能够用做Xicor公司实时时钟器件X1226的备份电池,3.OV或3.6V的锂离子电池较为适合,使用期限为10年。另外一种用法可选择一个大容量的电容,备份时间可持续几天至两个星期,时间的长短依赖于电容容量的大小。用一个简单的硅或肖特基
[单片机]
超低抖动时钟合成器的设计挑战
摘要:该应用笔记提出了超低抖动时钟合成器的一种设计思路,其目标是产生2GHz时钟时,边沿之间的抖动 100fs。分析和仿真结果表明,要达到这一抖动指标,设计难度远远高于预期。关于元器件变量和折衷方案的讨论为进一步的研究提供了线索。 概述 本文为高速数据转换器提供了一个低抖动时钟源的参考设计,目标是在时钟频率高达2GHz时,边沿间抖动 100fs。对于1GHz模拟输出频率,所产生的抖动信噪比SNR为:-20 × log(2 × π × f × tj) = -64dB。 设计需求 时钟设计的最高频率为2GHz,然而,一些VCO (压控振荡器)和预分频器能够将其扩展到更高频率,且不同器件能够扩展的范围也不尽相同。这里介绍的参考设计、
[电源管理]
超低抖动时钟合成器的<font color='red'>设计</font>挑战
芯和半导体在ICCAD 2022大会上发布 全新板级电子设计EDA平台Genesis
芯和半导体在ICCAD 2022大会上发布 全新板级电子设计EDA平台Genesis 2022年12月*日,中国上海讯——国产EDA行业的领军企业芯和半导体,在近日厦门举行的ICCAD 2022大会上正式发布全新板级电子设计EDA平台Genesis,这是国内首款基于“仿真驱动设计”理念、完全自主开发的国产硬件设计平台。 目标市场 Genesis主要面向的是封装和PCB板级系统两大领域的中高端市场。 随着电子系统向更高传输速率、更高设计密度和更高的设计功耗演进,采用传统PCB设计工具面临诸多风险,并耗费大量的人力及财力: 1. 传统的PCB设计工具仅支持人工设置规则,工程师需要耗费大量的精力探究芯片设计
[半导体设计/制造]
芯和半导体在ICCAD 2022大会上发布  全新板级电子<font color='red'>设计</font>EDA平台Genesis
可编程颜色传感器TCS230原理及应用实例设计
   引 言    本文介绍美国TAOS公司最新推出的颜色传感器TCS230。它不仅能够实现颜色的识别与检测,与以前的颜色传感器相比,还具有许多优良的新特性。   1 TCS230芯片的结构框图与特点   TCS230是TAOS(Texas Advanced Optoelectronic Solutions)公司推出的可编程彩色光到频率的转换器。它把可配置的硅光电二极管与电流频率转换器集成在一个单一的CMOS电路上,同时在单一芯片上还集成了红绿蓝(RGB)三种滤光器,是业界第一个有数字兼容接口的RGB彩色传感器。TCS230的输出信号是数字量,可以驱动标准的TTL或CMOS逻辑输入,因此可直接与微处理器或其它逻辑电
[嵌入式]
PCB设计示波器使用应当注意的干扰因素
示波器是很微妙的工具,它并不会显示你真正想找的东西。示波器总是会显示些什么,但有时你却没有意识到你所错过的东西。让我们来逐一细述。 安装不当 如果取样率低于比特或时钟频率的三倍,你所看到的输入信号将是失真的信号。如果输入信号为正弦波,你仍会看到一个不错的正弦波,但实质此正弦波只是输入信号频率的一部分。从一点上可以看出存在差错,那就是正弦波看上去未被触发。解决方法是启用峰值探测或包络模式。 捕获率不足 你知道某个特定的输入信号出了问题,因为输出信号被毁坏,但是你却无法看到问题出在哪里。在异常发生率低以及在波器无法捕获数据的偶然误差过程中,就会发生这种情况。解决办法之一是增加示波器的波形捕获率。一旦看到间歇故障的特征,就能够使用
[测试测量]
STM32CUBEMX入门学习笔记2:关于STM32芯片使用内部flash
找到正点原子的官网,下载他的HAL库:http://www.openedv.com/thread-109778-1-1.html 找到此例程,并打开其工程文件。 找到此文件,复制到自己工程里 复制到自己的工程: stm32f1xx_hal_flash.h 322行添加 void FLASH_PageErase(uint32_t PageAddress);(如果重新使用STM32CUBEMX请重新添加) 我修改的地方:
[单片机]
STM32CUBEMX入门学习笔记2:关于STM32芯片使用内部<font color='red'>flash</font>
基于LabVIEW的智能家居监控系统设计
随着测控技术和网络通信技术的高速发展及人们家居理念的变化与提升,现代社会家庭成员已把追求数字家庭智能化带来的多元信息安全、舒适便利的生活环境作为理想目标。因此,如何建立一个高效率、低成本、易扩展的智能家居系统已成为人关注的焦点。虚拟仪器强调“软件就是仪器”的新概念,它是在计算机为核心的硬件平台上,配以相应测试功能硬件作为I/O接口,利用仪器软件由用户自己定义、设计测试功能的一种计算机仪器系统,虚拟仪器具有数据采集、数据分析处理、结果输出显示三大基本功能。LabVIEW是NI美国国家仪器公司的虚拟仪器软件开发平台,是目前最完善、应用最广泛的图形化软件开发集成环境,LabVIEW拥有丰富的工具包,编程效率高,大大缩短了系统开发时间。本
[嵌入式]
三星、东芝竞扩产,NAND Flash恐跌三成
全球NAND Flash(储存型快闪记忆体)供给成长持续大于需求,预估NAND Flash今年底报价将较去年跌掉三成,且跌势恐将一直延续至2018年。 市调机构IHS iSuppli最新报告预测,NAND Flash今年底报价将跌至0.49美元每GB,远低于去年的0.71美元,预估2018年将进一步跌至0.14美元,其间年复合成长率为负的28%。 NAND Flash产出过多是导致价格崩跌的主因,若以1 GB等量单位计算,IHS iSuppl估计,2018年NAND Flash产出将自2013年的355亿单位成长成长5.7倍至2,036亿单位,预料将掀起价格战。 据南韩联合通讯社(Yonhap)报导,三星斥资
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved