Altera SOPC嵌入式系统设计教程第1章 概述
SOPC(System On Programmable Chip,可编程的片上系统)是Altera公司提出来的一种灵活、高效的SOC解决方案。它将处理器、存储器、I/O口、LVDS、CDR等系统设计需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统。
1.1 SOPC及其技术
现今,可将SOPC视为是基于FPGA解决方案的SOC。与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色,也有多种途径可构成SOPC方案。
1.1.1基于FPGA嵌入IP硬核的SOPC系统
基于FPGA嵌入IP硬核的SOPC系统是指在FPGA中预先植入处理器。目前最常用的嵌入式处理器大多是采用含有ARM32位知识产权处理器核的器件。为了达到通用性,必须为常规的嵌入式处理器集成诸多通用和专用的接口,但这样无疑会增加芯片的成本和功耗。如果将ARM或其他处理器核以硬核方式植入FPGA中,利用FPGA的可编程逻辑资源,按照系统功能需求来添加接口功能模块,既能实现目标系统功能,又能降低系统的成本和功耗。 这样就使得FPGA灵活的硬件设计与处理器的强大软件功能有机地结合在一起,高效地实现 SOPC系统。
1.1.2基于FPGA嵌入IP软核的SOPC系统
将IP硬核直接植入FPGA的解决方案存在以下不足:
(1)由于此类硬核多来自第三方公司,FPGA厂商通常无法直接控制其知识产权费用,从而导致FPGA器件价格相对偏高。
(2)由于硬核是预先植入的,设计者无法根据实际需要改变处理器的结构,如总线规模、接口方式、指令形式,更不可能将FPGA逻辑资源构成的硬件模块以指令的形式嵌入硬件加速模块(如DSP)。
(3)无法根据实际设计需要在同一 FPGA中集成多个处理器。
(4)无法根据需要裁剪处理器硬件资源以降低FPGA成本。
(5)只能在特定的FGPA中使用硬核嵌入式处理器。
如果利用软核处理器,就能有效地弥补上述不足。
目前最有代表性的软核处理器分别是Altera公司的Nios II核,以及Xilinx公司的Mi-croBlaze核。特别是Nios II核,能很好的解决上述五方面问题。
Altera的Nios II核是用户可随意配置和构建的32位嵌入式处理器IP核,釆用Avalon 总线结构通信接口;包含由First Silicon Solution(FS2)开发的基于JTAG的片内设备(OCI) 内核(这为开发者提供了强大的调试功能)。在把Nios II植入FPGA前,用户可以根据设计要求,利用Quartus II和Qsys,对Nios II及其外围设备进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。Nios II核在同一FPGA中的植入数量没有限制,只要FPGA资源足够即可。
另外,在开发工具的完备性方面,Nios II具有很大的优势。Altera不仅提供了强大的 HAL系统库支持,还提供了嵌入式操作系统和TCP/IP协议栈的支持。
就成本而言,由于Nios II是由Altera公司直接提供而非第三方厂商产品,故用户通常无须支付知识产权费用,Nios II的使用费用仅仅是其占用的FPGA逻辑资源的费用。因此,用户选用的FPGA越便宜,则Nios II的使用费就越低。
特别值得一提的是,通过Matlab和DSP Builder,用户可以为Nios II处理器设计各类硬件数字处理器,并以指令的形式加入Nios II的指令集。例如,用户可以根据设计项目的具体要求,随心所欲地构建自己的DSP处理器系统,而不必拘泥于其他DSP公司已上市的有限款式的DSP处理器。
1.2 NiosII软核处理器1.2.1 Nios II软核处理器简介
继第一代可配置嵌人式软核处理器Nios之后,2004年6月,Altera公司又推出了性能更好的Nios II嵌入式软核处理器。它与2000年上市的原产品Nios相比,最大处理性能提髙了3倍,而CPU内核部分的面积最大可缩小1/2。在2013年底,Altera公司又推出了NIOS II嵌入式软核处理器GEN2版本,并将之前的NIOS II嵌入式软核处理器更名为NIOS II Classic。GEN2版本与Classic相比,有相似的尺寸和性能,用户只需要做很小的改动,就能够把Classic版本上的软件移植到GEN2版本上来。
Nios II系列32位RISC嵌入式处理器具有超过200 DMIP的性能,在低成本FPGA中实现成本只有35美分。由于处理器是软核形式,具有很大的灵活性,可以在多种系统设置组合中进行选择,满足成本和功能要求。采用Nios II处理器进行设计,可以帮助用户将产品迅速推向市场,延长产品生命周期,防止出现处理器逐渐过时的情况。
Nios II开发包含有一套通用外设和接口库,部分IP和接口如表1.2所列。
利用Qsys软件中的用户逻辑接口向导,用户还可以生成自己的定制外设,并将其集成在Nios II处理器系统中。使用Qsys,用户可以在Altera FPGA中,组合实现现有处理器无法达到的嵌入式处理器配置,得到用户所需的结果。
Nios II系列嵌入式处理器使用32位的指令集结构(ISA),建立在第一代16位Nios处理器的基础上,定位于广泛的嵌入式应用。Nios II Classic处理器系列包括3种内核:快速的(Nios II/f)、经济的(Nios/e)和标准的(Nios II/s)内核。更新版的Nios II GEN2处理器系列则取消了标准型内核,保留了经济型和快速型。。每一型号都针对价格和性能进行了优化。使用 Altera 的 Quartus II 软件、Qsys 工具以及Nios II集成开发环境(IDE),用户可以轻松地完成基于Nios II处理器的嵌入式系统开发。
表1.3列出了 Nios II系统的3种内核及特性。
表1.4列出了 Nios II处理器的特性。
1.2.2可配置嵌入式软核处理器的优势
嵌入式处理器开发人员面对的一个最大挑战就是如何选择一个满足其应用要求的处理器。现在已有数百种嵌入式处理器,每种处理器都具备一组不同的外设、存储器、接口和性能特性,用户很难做出一个合理的选择:要么为了匹配实际应用所需的外设和接口要求而不得不选择在某些性能上多余的处理器;要么为了保持成本的需求而达不到原先预计的理想方案。
采用Nios II处理器,用户将不会局限于预先制造的处理器技术,而是根据自己的要求定制处理器,按照需要选择合适的外设、存储器和接口。此外,用户还可以轻松集成自己专有的功能(如DSP,用户逻辑),创建一款“完美”的处理器,如图1.1所示,使用户的设计具有独特的 竞争优势。
用户所需要的处理器,应该能够满足当前和今后的设计性能需求。由于今后发展具有不确定性,因此,设计人员必须能够更改其设计,加人多个CPU,定制指令集及硬件加速器,以达到新的性能目标,而Nios II处理器能满足以上要求。
采用Nios II处理器,用户可以根据需要设置功能,在低成本Altera器件中实现。在单个 FPGA中实现处理器、外设、存储器和I/O接口功能,可以降低用户的系统总体成本。
无论是外设、存储器接口、性能特性,还是成本。这些优势的体现都借助于在Altera的FPGA上创建一个定制的片上系统,或者更精确地说,创建一个可编程单芯片系统。
1.提供合理的性能组合
使用Altera Nios处理器和FPGA,用户可以创建一个在处理器、外设、存储器和1/0接口方面的完美方案。选择如下:
- 3种处理器内核——Nias II开发人员可以选择一种或以下任意3种内核的组合:具备髙性能的快速的内核(Nios II/f),具备低成本的经济的内核(Nios II/e),性能和尺寸折中的标准的内核(NiosII/s)。
- 超过60种Qsys配备的内核——用户可以创建一组适合自己应用的外设、存储器和I/O接口。
- 无限制的DMA通道组合——直接存储器存取(DMA)可以连接到任何外设,从而提高系统的性能。
- 可配置的硬件及软件调试特性——软件开发人员具有多个调试选择,包括基本的JTAG的运行控制(运行、停止、单步、存储器等)、硬件断点、数据触发、片内和片外跟踪、嵌入式逻辑分析仪。这些强大的工具可以在开发阶段使用,一旦调试通过后就可以去掉。
2.提升系统的性能
在嵌入式开发中,设计人员通常都会选择一个比实际所需的性能要高的处理器(意味着更髙的成本),从而为设计保留一个性能上的安全余量。Nios II系统的性能是可以根据应用来裁剪的,相比固定的处理器,在较低的时钟速率下,具备更高的性能。Nios II的特性可以在以下几个方面来提升系统的性能:
- 多CPU内核一Nios II开发者可以选择最快的内核(Nios II/f)以获得高性能,还可以通过添加多个处理器来获得所需的系统性能。
- FPGA系列—Nios II处理器可以工作在Altera推出的所有Cyclone系列、MAX10系列、Arria系列和Stratix系列的FPGA上。尤其是在Stratix V器件上,Nios II/f内核超过350 DMIPS的性能,仅占用1800个逻辑单元(LE)。可以说用户几乎是免费得到一个200 DMIPS性能的处理器。
- 多处理器系统——开发人员可以在FPGA内部实现多个处理器内核。通过将多个 Nios II/f内核集成到单个器件内,可以获得极高的性能而不用重新设计印刷电路板。Nios II的IDE支持这种多处理器在单一 FPGA上的开发,或多个FPGA共享一条JTAG链。
- 定制指令—定制指令是一种扩展处理器指令的方法,最多可以定制256个用户指令 (见图1.2)。定制指令是处理器处理复杂的算术运算和加速逻辑的最佳途径。例如,将一个在64K字的缓冲区实现的循环冗余码校验(CRC)的逻辑块作为一个定制的指令,要比用软件实现快27倍。
- 硬件加速—通过将专用的硬件加速器添加到FPGA中作为CPU的协处理器,CPU就可以并发地处理大块的数据。例如上面提到的CRC例子,通过硬件加速器处理一个64K字的缓冲区,比用软件快530倍。Qsys设计工具中包含一个向导,用户可以用此向导来将加速逻辑和DMA通道添加到系统中。
3.降低系统成本
嵌入式设计人员总是坚持不懈地寻找降低系统成本的方法。然而,选择一款处理器,总是存在性能、特性与成本的冲突,最终结果总是以增加系统成本为代价。利用Nios II处理器可以通过以下途径来降低成本:
- 更大规模的系统集成—将一个或更多的Nios II处理器组合,选择合适的一组外设、 存储器、I/O接口,这些方法可降低电路板的成本、复杂程度以及功耗。
- 优化FPGA/CPU的选择—Cyclone系列的FPGA提供可行的、低成本的嵌入式方案。经济型的内核(Nios II/e)只占用不到35美分的Cyclone器件资源,仅占用600个逻辑单元,给其他片外的器件保留了更多的逻辑资源。Nios II/e内核定位于低成本、需要低处理性能的系统。占用很少的逻辑资源还使得在单个的FPGA芯片上嵌入多个处理器成为可能。
- 更好的库存管理—嵌入式系统通常包含了来自多个生产商的多种处理器,以应付多变的系统任务。当一种器件多余而另一种短缺的时候,管理这些处理器的库存便是个问题。但是使用标准化的Nios II软核处理器,库存的管理将会大大简化,因为通过将处理器实现在标准的FPGA器件上,减少了处理器种类的需求。
4.延长产品的生命周期
开发人员希望快速将产品推向市场并保持一个较长的产品生命周期,避免更新换代。基于Nios II的系统在以下几个方面可以帮助用户实现此目标:
- 缩短产品的上市时间—FPGA可编程的特性使其具有最快的产品上市速度。许多的设计通过简单的修改都可以被快速地实现到FPGA设计上。Nios II系统的灵活性和快速上市的特性源于Altera提供完整的开发套件、众多的参考设计、强大的硬件开发工具(Qsys)和软件开发工具(Nios II IDE)。用户可以借助Nios II开发套件所带的设计,在几个小时内就完成自己的设计原型。由于将Nios II处理器放置于FPGA内部就可以验证外部的存储器和I/O组件,电路板设计速度显著加快。
- 建立有竞争性的优势—维持一个基于通用硬件平台的产品的竞争优势是非常困难的。而包含一个或多个Nios II处理器,具备硬件加速、定制指令、定制的可裁剪的外设等的SOPC系统,具备了竞争的优势。
- 延长了产品的生存时间—使用Nios II处理器的SOPC产品带来的一个独特优势就是能够对硬件进行升级。即使产品已经交付给客户,仍可以定期升级。这些特性可以解决很多问题:
- 延长产品的生存时间,随着时间的增加,可以不断将新的特性添加到硬件中。
- 减小由于标准的制定和改变而带来的硬件上的风险。
- 简化了硬件缺陷的修复和排除。
- 避免处理器的过时。嵌入式处理器供应商通常提供一个很宽的配置选择范围以适应不同的客户群。不可避免的是,某个或多个处理器有可能会因为生产计划等原因而停止供应或很难寻找。Nios II设计人员拥有在Altera FPGA上使用和配置基于 Nios II设计的永久许可。一个基于Nios II的设计可以容易地被重新移植到新系列的FPGA器件中,从而保护了对应用软件的投资。
- 在产品产量增加的情况下降低成本—旦一个FPGA的设计被选定,并且打算进行大批量的生产,可以选择将它移植到Altera的HardCopy(—种结构化的ASIC系列) 中,从而降低了成本并提升性能。Altera还可以提供Nios II处理器的ASIC制造许可,用户可以将包含Nios II处理器、外设、Avalon交换式总线的设计移植到基于单元的ASIC中。
第2章 SOPC开发流程简介2.1 SOPC开发流程
SOPC设计包括以Nios II软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、IDE环境的软件设计、软件调试等。SOPC系统设计的基本软件工具包括Quartus II,用于完成Nios II系统的分析综合、硬件优化、适配、配置文件编程下载以及硬件系统测试等;Qsys,它是Nios II软核处理器的开发包,用于实现Nios II系统配置、生成以及与 Nios II系统相关的监控和软件调试平台的生成;ModelSim,用于对Qsys生成的 NiosII的HDL描述语言程序进行系统功能仿真;Matlab/DSP Builder,用于生成Nios II系统的硬件加速器,进而为Nios II系统定制新的指令;Nios II IDE,用于完成基于Nios II系统的软件开发和调试,并可借助其自带的Flash编程器完成对Flash以及EPCS的编程操作,此外Nios II IDE还包括一个指令集成模拟器、Microc/OS - II实时操作系统、文件系统以及小型 TCP/IP 协议栈。
SOPC的开发过程中要使用到Quartus II、Qsys以及Nios II IDE,三者之间关系如图2. 1所示。
SOPC的开发流程通常包括2个方面:基于Quartus II、Qsys的硬件设计,基于 Nios II IDE的软件设计。对于比较简单的Nios II系统,一个人便可执行所有设计;对于比较复杂的系统,硬件和软件设计可以分开进行。
2.1.1硬件开发
硬件开发使用Quartus II和Qsys。硬件设计工作如下:
(1)用Qsys软件从Nios II处理器内核和Nios II开发套件提供的外设列表中选取合适的CPU、存储器以及各外围器件(如片内存储器、PIO、定时器、UART、片外存储器接口等),并定制和配置它们的功能;分配外设地址及中断号;设定复位地址;最后生成系统。用户也可以添加用户自身定制指令逻辑到Nios II内核以加速CPU性能,或添加用户外设以减轻CPU的任务。
(2)使用Qsys生成Nios II系统后,将其集成到整个Quartus II工程中。可以在 Quartus II工程中加入Nios II系统以外的逻辑,大多数的SOPC设计都包括NioslI系统以外的逻辑,这也是SOPC系统的优势所在。用户可以集成自身定制的硬件模块到SOPC设计,或集成从Altera或第3方IP供应商中得到的其它现成知识产权设计模块。
(3)使用Quartus II软件来选取具体的Altera FPGA器件型号;然后为Nios II系统上的各I/O口分配引脚,另外还要根据要求进行硬件编译选项或时序约束的设置;最后编译Quartus II工程,在编译过程中Quartus II将对Qsys生成系统的HDL设计文件进行布局布线,从HDL源文件综合生成一个适合目标器件的网表,生成FPGA配置文件(.sof)。
(4)使用Quartus II编程器和Altera下载电缆(如USB Blaster),将配置文件(用户定制的Nios II处理器系统的硬件设计)下载到目标板上。当校验完当前硬件设计后,可将新的配置文件下载到目标板上的非易失存储器里(如EPCS器件)。下载完硬件配置文件后,软件开发者就可以将此目标板作为软件开发的初期硬件平台进行软件功能的开发验证了。
2.1.2软件开发
软件开发使用Nios II IDE。它是一个基于Eclipse IDE构架的集成开发环境,包括:
- GNU开发工具(标准GCC编译器、连接器、汇编器和makefile工具等);
- 基于GDB的调试器,包括软件仿真和硬件调试;
- 提供用户一个硬件抽象层HAL(Hardware Abstraction Layer);
- 提供嵌入式操作系统MicroC/OS-II和LwTCP/IP协议栈的支持;
- 提供帮助用户快速入门的软件模板;
- 提供 Flash 下载支持(Flash Programmer 和 Quartus II Programmer)
- 熟悉Linux下GNU开发工具的开发者基本上可以毫无困难地使用Nios II IDE。
使用Nios II IDE,可完成Nios II处理器系统的所有软件开发任务。使用Qsys 生成系统后,可以直接使用Nios II IDE开始设计C/C+ +应用程序代码。Altera提供外设驱动程序和硬件抽象层(HAL),使用户能够快速编写与低级硬件细节无关的Nios II程序。除了应用代码,用户还可以在Nios II IDE工程中设计和使用定制库。
如果没有软件开发的目标板,可以通过Nios II指令集仿真器(ISS)运行和调试代码;ISS 可仿真处理器、存储器和stdin/stdout/stderr流,使用户可以检验程序流和算法正确性。一旦有一个目标板,用户就可以使用下载电缆(如USB Blaster)下载软件到目标板进行调试/ 运行。
2.1.3 SOPC基本幵发流程简介
在开始进行SOPC设计前,让我们先了解一下SOPC系统的基本开发流程。图2.2所示为基于Nios II系统的SOPC开发流程。
参照图2.2说明SOPC基本的开发流程如下:
1) 在进行SOPC开发之前,首先必须确定系统的需求,如应用系统需要的计算性能、带宽和吞吐量、接口类型以及是否需要多线程的软件等。完整的基于Nios II的SOPC系统是一个软硬件复合的系统。在开发时,可分为硬件和软件两个部分,但在实际设计过程中,有时候所需要的功能既可以用软件也可以用硬件来实现。具体采用什么方式,要根据系统设计要求来权衡。一般来说,用软件实现时,在设计上容易修改或者增删,査错也比较容易,又几乎不增加占用的逻辑资源,但执行速度较慢。所以,在设计规划时,在满足性能的前提下,优先考虑软件实现。
2) 每个开发过程开始时都应建立一个工程,Quartus II是以工程的方式对设计过程进行管理的。在工程中建立顶层模块文件.bdf,其将整个工程的各个模块包容在里面,编译的时候就将这些模块整合在一起。这个顶层文件相当于传统电路设计中的电路板(PCB)。
3) 在Qsys中添加需要的功能模块(Nios II及其标准外设模块),完成后生成一个系统模块。如果需要,用户可以定制指令和外设逻辑。由Qsys最终生成的系统模块相当于传统的单片机或ARM。
4) 如果需要,可以使用Altera公司提供的LPM功能模块。Quartus II包含了大量常用功能模块(如计数器、累加器、比较器、译码器等),使用这些模块能大大加快开发的速度。一般来说,一个设计只有很少部分的模块需要自己从零设计。LPM功能模块相当于传统设计中除处理器以外的逻辑芯片(如74系列)。
5) 如果需要,建立自己的功能模块。当设计中现有的模块功能不能满足设计要求时,要求用户自己设计。可以用硬件描述语言,也可以用原理图的输入方法来设计自己的功能模块。设计自己的功能模块时,可以作为一个独立的工程来设计,并生成模块符号(Symbol),然后将源文件(实现该模块的原理图或HDL文件)拷贝到顶层模块所在的工程目录下,这样在顶层模块中就可以使用这个自定义模块的符号。使用自定义功能模块,相当于在传统设计中,市面上买不到某种芯片而去定做芯片。
6) 在顶层模块中,分别将Qsys生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中,然后将各个功能模块用连线连起来组成系统功能原理图。这个过程类似传统电路设计中,将所有要使用到的芯片焊接到电路板上,然后通过PCB上的连线将各个芯片连接起来,组成电路系统。
7) 为系统功能原理图选择芯片载体并为各个输入/输出信号分配芯片的引脚。
8) 设置编译选项,从而让编译器按照用户设定来进行编译。
9) 编译系统,生成硬件系统的配置文件.sof和.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以及时序分析等步骤。
10) 打开Nios II IDE软件进行用户程序开发。当然这1步也可以在Qsys生成系统模块后立即进行。这个过程与传统嵌入式系统的软件开发类似, 唯一的不同在于,软件所运行的嵌入式系统是自己定制的、裁剪过的,因此可能受硬件的局限会小一些。
11) 对用户软件进行编译,生成可执行文件.elf。
12) 可以在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。
13) 将配置文件.sof下载到FPGA,将可执行文件.elf下载到RAM(外部或内部)。
14) 在目标板上调试软件,直到硬件和软件设计都达到设计要求。
15) 利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash。将可执行文件 .elf 编程到 Flash。
2.2 简单SOPC实例开发任务及步骤
【任务】建立一个基于NIOS II处理器系统来控制一个LED灯闪烁。
【步骤】根据2.1.3小节,本节指导读者完成SOPC实例开发流程,主要步骤有:
(1) 分析系统需求;
(2) 启动Quartus II软件和新建实例设计工程;
(3) 启动新的Qsys系统;
(4) 在Qsys工具中定义并生成系统;
(5) 集成Qsys系统到Quartus II工程;
(6) 分析和综合系统并分配引脚;
(7) 设置编译选项并编译硬件系统;
(8) 下载硬件设计到目标FPGA;
(9) 使用NIOS II Software Build Tools For Eclipse开发用户程序;
(10) 调试用户程序;
(11) 运行程序;
2.3 分析系统需求
每一个SOPC系统开发之前,都应该仔细分析系统需求。例如:对所设计系统的运行性能 有什么要求?系统要处理的带宽有多大?应用要求哪种类型的接口?应用要求多线程的软件吗?基于这些问题,用户可确定具体的系统要求,例如:
使用哪种Nios II处理器内核:比较小的还是比较快的?
- 设计要求什么外设及其数量是多少?
- 功耗有何要求?
- 使用哪种实时操作系统(RTOS)?
- 硬件加速逻辑在哪些方面可大大提髙系统性能?例如:增加一个DMA外设能释放 CPU在进行数据复制时所占用的资源吗?定制的指令能取代DSP算法吗?
本章实例的开发任务是:
- 展示可用于控制LED闪烁的简单Nios II处理器系统。
- 利用最通用和有效的方法来建立实际的定制Nios II系统。
- 整个系统仅使用片内资源,且不依赖于目标板。
- 析任务可以知道FPGA内硬件系统组成应包含:
- 带有2 KB指令高速缓存的Nibs II/s处理器核;
- 2 KB片内ROM存储器(Onchip_ROM)用于存储程序代码以及程序运行空间;
- 1 KB片内RAM存储器(Onchip_RAM)用于变董存储(R/W数据)、Heap、stack;
- 1位输出I/O (PIO)引脚来控制LED;
- 系统识别外围设备(SystemlD)(关于SystemID的功能见4.1.2小节)。
说明:由于控制LED灯闪烁的用户程序代码很小,所以可将代码固化在片内ROM来执行,变量、堆栈 等空间使用片内RAM,而不使用任何片外存储器。使用片内存储器能获得非常高的执行性能。
整个系统的框图如图2. 3所示。
图中,其他逻辑与NiosII系统一样可存在于FPGA中。事实上,大多数带有Nios II系统 的FPGA设计也包括其他逻辑。Nios II系统可与其他的片内逻辑相互作用,这取决于整个系统的需要。为了简单说明,本章的实例设计在FPGA内不包括其他逻辑。
假定读者具有以下的软件:
- Altera Quartus II软件版本13.0或更高的版本——软件必须被安装在符合Quartus II 最低要求的Windows计算机上。
- Nios II开发套件版本13. 0或更髙的版本。
无论是否拥有一块开发板,读者都可以按照本章所述来进行实例设计。如果没有目标板,
图2.3控制LED闪烁的系统框图
读者仍然可以使用本章所述内容,但不能目睹实例设计在硬件上运行。取而代之,用户将可以在Nios II指令集仿真器(ISS)上仿真软件运行。如果读者拥有开发板以及USB Blaster下载电缆,用户将能目睹实例设计在硬件上运行及LED灯的闪烁。