第 2 章 sopc 硬件开发环境及流程

76
第2第 SOPC 第第第第第第第第第

Upload: joseph-moran

Post on 03-Jan-2016

98 views

Category:

Documents


6 download

DESCRIPTION

第 2 章 SOPC 硬件开发环境及流程. 2.1 SOPC 开发流程和开发工具. SOPC 设计包括 硬件和软件 两部分。 硬件设计:基于 Quartus II 和 SOPC Builder 软件设计:基于 Nios II IDE 仿真: ModelSim DSP 的开发 : Matlab 和 DSP Builder. 开发环境: Quartus II 6.0 (8.0) SOPC Builder 6.0 (8.0) Nios II IDE 6.0 (8.0) 基于 Cyclone II 的 SOPC 开发板. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 2 章    SOPC 硬件开发环境及流程

第 2 章 SOPC 硬件开发环境及流程

Page 2: 第 2 章    SOPC 硬件开发环境及流程

2.1 SOPC 开发流程和开发工具 SOPC 设计包括硬件和软件两部分。1. 硬件设计:基于 Quartus II 和 SOPC Builder

2. 软件设计:基于 Nios II IDE

3. 仿真: ModelSim

4. DSP 的开发 : Matlab 和 DSP Builder

开发环境:1. Quartus II 6.0 (8.0)2. SOPC Builder 6.0 (8.0)3. Nios II IDE 6.0 (8.0)4. 基于 Cyclone II 的 SOPC 开发板

Page 3: 第 2 章    SOPC 硬件开发环境及流程

Quartus 完成 NiosII 整个系统的设计、分析、综合、硬件优化和适配 配置文件编程下载、硬件系统测试

SOPC Builder NIOSII 系统硬件开发环境 实现 Nios II 系统配置和生成 Nios II 系统相关的监控和软件调试平台的生成

IDE 完成基于 Nios II 系统的软件开发和调试 将 FPGA 配置信息写入 Flash 或者 EPCS

SOPC BuilderSOPC Builder

Nios II IDENios II IDE

Quartus II 8.0Quartus II 8.0

AlteraAltera

Page 4: 第 2 章    SOPC 硬件开发环境及流程

• 名词解释 - 与 SOPC 相关的名词

Quartus II:Altera 公司的第四代可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能。

Quartus Quartus II ? II ?

Quartus II 5.0 软件界面

双击 Quartus II 图标

Page 5: 第 2 章    SOPC 硬件开发环境及流程

• 名词解释 - 与 SOPC 相关的名词

SOPC Builder:功能强大的基于图形界面的片上系统定 义 和 定 制 工具 。 SOPC Builder 库中包括处理器和大量的 IP核及外设。

SOPC Builder 包含在 Quartus II 软件中

SOPC SOPCBuilder ? Builder ?

启动 : Quartus II → Tools → SOPC Builder

Page 6: 第 2 章    SOPC 硬件开发环境及流程

• 名词解释 - 与 SOPC 相关的名词

Nios II:Nios II 系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以Nios II IDE 下完成,包括编辑、编译和调试程序。

Nios II IDE Nios II IDE 软件界面 软件界面

Nios II Nios II IDE ? IDE ?

双击 Nios II IDE 图标

Page 7: 第 2 章    SOPC 硬件开发环境及流程

ModelSim : HDL 仿真软件,对设计的硬件系统进行 RTL 级的仿真。

DSP Builder : Altera 公司的数字信号处理软件,实现算法和硬件的无缝过渡,可以在 Matlab 的 Simulink 中完成算法的仿真、验证,后通过 SignalCompiler 将模型文件转换成硬件描述语言。

Page 8: 第 2 章    SOPC 硬件开发环境及流程

采用 NIOS II 处理器设计嵌入式系统的流程:

1. 分析系统需求说明,包括功能需求和性能要求等; 2. 建立 Quartus II 工程,建立顶层实体; 3. SOPC Builder 生成用户定制的系统模块( NIOS II+ ?)

4. 将 NIOS II 系统模块集成到硬件工程中,添加一些模块,可以是 Altera 公司提供的 LPM (logic programmable module) 宏功能块或用户自

己定制的模块; 5. 在顶层实体中,将 NIOS II 系统模块、 Altera 的 LPM 或用户自定 义的逻辑模块连接起来;

2.1 SOPC 开发流程和开发工具

Page 9: 第 2 章    SOPC 硬件开发环境及流程

6. 分配引脚 (Tcl 脚本语言 ) 和编译工程,编译生成系统的硬件配置文件 .sof 和 .pof 文件;(二者区别: SRAM\EEPROM )

7. 下载工程,将配置文件下载到开发板上进行验证;(可选)

8. 使用 IDE 开发环境进行软件开发

9. 编译软件工程,生成可执行文件 .elf;

10. 调试程序,将硬件配置文件下载到开发板,将可执行文件 下载到 RAM ,软硬件协同工作。

Page 10: 第 2 章    SOPC 硬件开发环境及流程

•每个开发过程开始时都应建立一个工程, Quartus II 是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件 .bdf 相当于传统电路设计中的电路板( PCB )。

SOPC 开发流程简图

分析系统需求

NiosII 内核& 标准外设

定制指令 & 定制外设逻辑

硬件抽象层(HAL)& 外设

驱动程序

用户 C/C++ 应用程序代码和定制的库

自定义的功能模块

建立 Quartus II 工程,建立顶层图 *.bdf

打开 SOPC Builder定义和生成系统

集成 SOPC 生成的系统到

Quartus II 工程使用 Nios IIIDE 开发软件Altera 的

LPM 模块

连接各功能模块

选择 FPGA 型号并进行管脚分配

进行编译选项设置

编译硬件系统生成配置文件 sof

编译软件生成可执

行文件 elf

在目标板上下载可执行

软件到Nios II 系统

下载配置文件到FPGA 器件

在目标板上运行 / 调试软件

调试好的硬件和软件

在 IDE 中使用ISS 运行 / 调试

软件

设置软件运行硬件环境属性

使用 IDE 编程工具烧写配置文件和

软件代码

•在 SOPC Builder中添加需要的功能模块( Nios II 及其标准外设模块),完成后生成一个系统模块。

•如果需要,用户可以定制指令和外设逻辑。( 可 参 考 第 8章 )

•在进行 SOPC 开发之前,首先必须确定系统的需求 : 如系统需求的性能、 CPU 软核类型(硬件乘法器?)外围器件和数量、需要的带宽和吞吐量、需求的接口类型以及 DMA 通道数量等。

Page 11: 第 2 章    SOPC 硬件开发环境及流程

SOPC 开发流程简图

分析系统需求

NiosII 内核& 标准外设

定制指令 & 定制外设逻辑

硬件抽象层(HAL)& 外设

驱动程序

用户 C/C++ 应用程序代码和定制的库

自定义的功能模块

建立 Quartus II 工程,建立顶层图 *.bdf

集成 SOPC 生成的系统到

Quartus II 工程使用 Nios IIIDE 开发软件Altera 的

LPM 模块

连接各功能模块

选择 FPGA 型号并进行管脚分配

进行编译选项设置

编译硬件系统生成配置文件 sof

编译软件生成可执

行文件 elf

在目标板上下载可执行

软件到Nios II 系统

下载配置文件到FPGA 器件

在目标板上运行 / 调试软件

调试好的硬件和软件

在 IDE 中使用ISS 运行 / 调试

软件

设置软件运行硬件环境属性

•在 Quartus II 软件中 包 含 了 大 量 的Altera 公 司 提 供 的LPM 功能模块,相当与传统设计中除处理器以外的逻辑芯片 ( 如 74系列 ) ;

打开 SOPC Builder定义和生成系统

•在顶层模块中,分别将 SOPC Builder生 成 的 系 统 模块、 LPM 功能模块以及用户自定义功能模块添加到顶层模块中 ;

•然后将各个功能模块用连线连起来组成系统功能原理图。

这个两过程类似传统电路设计中,将所有要使用的芯片焊接到电路板上,然后通过 PCB上的连线将各个芯片连接起来,组成电路系统。

使用 IDE 编程工具烧写配置文件和

软件代码

•根据系统要求,设计自己的逻辑功能模块。并在顶层模块中使用;

Page 12: 第 2 章    SOPC 硬件开发环境及流程

SOPC 开发流程简图

分析系统需求

NiosII 内核& 标准外设

定制指令 & 定制外设逻辑

硬件抽象层(HAL)& 外设

驱动程序

用户 C/C++ 应用程序代码和定制的库

自定义的功能模块

建立 Quartus II 工程,建立顶层图 *.bdf

集成 SOPC 生成的系统到

Quartus II 工程使用 Nios IIIDE 开发软件Altera 的

LPM 模块

连接各功能模块

选择 FPGA 型号并进行管脚分配

进行编译选项设置

编译硬件系统生成配置文件 sof

编译软件生成可执

行文件 elf

在目标板上下载可执行

软件到Nios II 系统

下载配置文件到FPGA 器件

在目标板上运行 / 调试软件

调试好的硬件和软件

在 IDE 中使用ISS 运行 / 调试

软件

设置软件运行硬件环境属性

打开 SOPC Builder定义和生成系统

•为系统原理图,选择载体并为各个输入输出信号分配管脚;•设置编译选项,从而让编译器按照用户设定来进行编译;

•编译系统生成硬件系统的配置文件 *.sof 和 *.pof 。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配 FPGA 、布线以及时序分析等步骤。

使用 IDE 编程工具烧写配置文件和

软件代码

Page 13: 第 2 章    SOPC 硬件开发环境及流程

SOPC 开发流程简图

分析系统需求

NiosII 内核& 标准外设

定制指令 & 定制外设逻辑

硬件抽象层(HAL)& 外设

驱动程序

用户 C/C++ 应用程序代码和定制的库

自定义的功能模块

建立 Quartus II 工程,建立顶层图 *.bdf

集成 SOPC 生成的系统到

Quartus II 工程使用 Nios IIIDE 开发软件Altera 的

LPM 模块

连接各功能模块

选择 FPGA 型号并进行管脚分配

进行编译选项设置

编译硬件系统生成配置文件 sof

编译软件生成可执

行文件 elf

在目标板上下载可执行

软件到Nios II 系统

下载配置文件到FPGA 器件

在目标板上运行 / 调试软件

调试好的硬件和软件

在 IDE 中使用ISS 运行 / 调试

软件

设置软件运行硬件环境属性

打开 SOPC Builder定义和生成系统

软件开发也可以在 SOPC Builder 生成系统模块后立即进行! ( 。 PTF 文件:硬件系统配置 ) 与传统软件开发类似,唯一不同在于系统是自己定制的,所受局限小!

使用 IDE 编程工具烧写配置文件和

软件代码

Page 14: 第 2 章    SOPC 硬件开发环境及流程

SOPC 开发流程简图

分析系统需求

NiosII 内核& 标准外设

定制指令 & 定制外设逻辑

硬件抽象层(HAL)& 外设

驱动程序

用户 C/C++ 应用程序代码和定制的库

自定义的功能模块

建立 Quartus II 工程,建立顶层图 *.bdf

集成 SOPC 生成的系统到

Quartus II 工程使用 Nios IIIDE 开发软件Altera 的

LPM 模块

连接各功能模块

选择 FPGA 型号并进行管脚分配

进行编译选项设置

编译硬件系统生成配置文件 sof

编译软件生成可执

行文件 elf

在目标板上下载可执行

软件到Nios II 系统

下载配置文件到FPGA 器件

在目标板上运行 / 调试软件

调试好的硬件和软件

在 IDE 中使用ISS 运行 / 调试

软件

设置软件运行硬件环境属性

打开 SOPC Builder定义和生成系统

• 设置好软件运行的硬件环境属性后,便可进行编译、链接和调试、运行程序。•对用户程序进行编译,生成可执行文件 *.elf 。• 在 IDE 的指令集仿真器 (ISS) 上仿真软件和运行 / 调试软件。 ( 可选 )

• 将配置文件 .sof下载到 FPGA ,将可执行文件 .elf 下载到 RAM 。

• 在目标板上反复调试软件。

• 直到硬件和软件设计都达到设计要求。

• 最后利用 IDE 的编程工具将配置文件烧写到 FPGA 的配置芯片或 Flash ,将可执行文 件 *.elf 编 程 到Flash 中

使用 IDE 编程工具烧写配置文件和

软件代码

Page 15: 第 2 章    SOPC 硬件开发环境及流程

SOPC 硬件开发流程• 从开发套件提供的外设列表 中选取合适的 CPU 、存储器及外围器件 , 定制和配置其功能;

• 分配外设地址及中断号;• 设定复位地址;

• 生成系统。

• 添加用户自身定制指令逻辑 到 NiosII 内核加速 CPU 性能 • 添加用户自己设计的 IP 模块。

• 编译,综合,布局布线,从 HDL 源文件综合成一个适合 目标器件网表,生成 FPGA 配置文件 (.sof) ;• 用下载电缆将配置文件下载 到目标板。调试完成后,将 硬件配置文件下载到目标板 的非易失存储器 ( 如 flash) 。

Page 16: 第 2 章    SOPC 硬件开发环境及流程

2.2 SOPC 硬件开发实例 电子钟的设计 第一步是要进行需求分析,建立系统 在液晶屏上显示日期、时间; 可以设置日期、时间; 根据系统要求,设计要用到的外围器件 LCD :电子钟显示屏幕; 按键:电子钟设置功能键; Flash 存储器:存储软、硬件程序; SRAM 存储器:程序运行时将其导入 SRAM 。

根据所用到的外设、功能以及开发板的配置,在 SOPC Builder 中建立系统要添加的模块包括

Nios II CPU 、定时器、按键 PIO 、 LCD 控制器、 AVALON三态桥、外部 RAM 接口、外部 Flash 接口。

Page 17: 第 2 章    SOPC 硬件开发环境及流程

2.2.1 创建工程 进行完需求分析之后,进行硬件系统的创建。 首先必须建立一个 Quartus II 的工程, 步骤如下: 1. 启动 Quartus II 软件;

2. 选择 File菜单 New Project Wizard ,出现Introduction页面,该页面介绍所要完成的具体任务,点击next 。

2.2 SOPC 硬件开发实例

Page 18: 第 2 章    SOPC 硬件开发环境及流程

2.2.1 创建工程

Page 19: 第 2 章    SOPC 硬件开发环境及流程

2.2.1 创建工程

注意 1 :

工程名和顶层实体名字一致

注意 2 :

路径、工程名、顶层实体名均为英文

3. 目录、顶层实体名和工程名

Page 20: 第 2 章    SOPC 硬件开发环境及流程

2.2.1 创建工程 4. 可以为工程添加先期已经输入的设计文件,指定用户自定

义的元件库的路径。

Page 21: 第 2 章    SOPC 硬件开发环境及流程

2.2.1 创建工程5. 指定目标器件,根据开发板使用的器件来选择。

注意 3 :

器件型号CycloneIIEP2C35F672C8

Page 22: 第 2 章    SOPC 硬件开发环境及流程

2.2.1 创建工程6. 指定在 Quartus II 之外的用于设计输入、综合、仿真、时序分析的第三

方 EDA 工具。 (Precision Synthesis\Synplify 等 )

Page 23: 第 2 章    SOPC 硬件开发环境及流程

7. 新工程的信息。在设计的过程中,还可以通过菜单 assignmentSettings来对这些配置进行修改。

Page 24: 第 2 章    SOPC 硬件开发环境及流程

8. 点击 Finish按钮, Quartus II 自动会打开这个工程,可以看到顶层实体名出现在工程导航窗口中。

Page 25: 第 2 章    SOPC 硬件开发环境及流程

2.3 创建 Nios II 系统模块 创建顶层实体 创建 Nios II 系统模块: NIOS II 嵌入式处理器,添加、配置系统的外设 IP Nios II 系统模块 + 其他片上逻辑 + 用户逻辑 : 加入顶层实体

Page 26: 第 2 章    SOPC 硬件开发环境及流程

2.3.1 创建顶层实体( 1 )选择 FileNew ;在 Device Design File页中,选择 Block Diagram

/ Schematic File ,即原理图文件 (也可以选择硬件描述语言的文件形式 ), 单击 OK 。

Page 27: 第 2 章    SOPC 硬件开发环境及流程

2.3.1 创建顶层实体( 2 ) 选择 FileSave As ,显示的目录为之前设置的工程目录,

文件名为之前设置的顶层实体名 .

Page 28: 第 2 章    SOPC 硬件开发环境及流程

2.3.2 创建 Nios II 系统模块 使用工具 :SOPC Builder Nios II 系统模块: Nios II 处理器 和相关的系统外设。 创建系统模块的流程 :先创建一个系统,然后

添加 Nios II CPU 和外设 IP ,生成实例或者模块,加入到工程的顶层实体。

SOPC BuilderSOPC Builder

Page 29: 第 2 章    SOPC 硬件开发环境及流程

2.3.2 创建 Nios II 系统模块一、创建系统 启动 SOPC Builder ( ToolsSOPC Builder )

注意 4 :

系统名称

Page 30: 第 2 章    SOPC 硬件开发环境及流程

二 、设置系统主频和指定目标 FPGA 设置系统的时钟频率 版本 6.0 :在 Target栏中的 Board 部分指定核心开发板—— Cyclone

II ( EP2C35 )。( IDE: flash 器件编程) 版本 8.0 :在 Device Family 选择 Cyclone II 。(注意 5!)

Page 31: 第 2 章    SOPC 硬件开发环境及流程

三、加入 Nios II CPU 和 IP 模块 首先加入 Nios II 软核 1. Avalon Components 下面选择 Nios II Processor ; 2. 双击或者右键 Add ,出现 Nios II CPU 的配置向导

Page 32: 第 2 章    SOPC 硬件开发环境及流程

根据需要选择 Nios II 核 Hardware Multiply 选择 none ,不选择 Hardware Divide 注意 6 : Embedded Multipliers :使用专门的内嵌硬件乘法单元(乘

法速度最快)。 ② Logic Elements ,使用逻辑单元也就是 FPGA 中的查找表(速度较慢)。③ None :只能通过软件模拟乘法,速度最慢。

Page 33: 第 2 章    SOPC 硬件开发环境及流程

点击 Next ,进入缓存设置窗口; 可设 Instruction Cache 为 4Kbytes , Data Cache 2Kbytes

Page 34: 第 2 章    SOPC 硬件开发环境及流程

Advanced Features 设置 不选择 Include cpu_resetrequest and cpu_resettaken signals (注意 7 :

resetrequest—该复位信号仅复位处理器。处理器在收到该信号后,先执行完 流水线的所有指令,然后进入复位状态。处理器在复位完成后会使

cpu_resettaken 信号生效一个时钟周期) 点击 Next 进入 MMU and MPU 设置。 (Quartus 8.0) (注意 8: 存储器管理单元 MMU 和存储器保护单元 MPU)

Page 35: 第 2 章    SOPC 硬件开发环境及流程

JTAG 调试级别选择 选择 Level1 :该级别支持软件的断点调试。 JTAG 调试模块要占用较多的逻辑资源,系统调试完毕了可以选用 No

Debugger

Page 36: 第 2 章    SOPC 硬件开发环境及流程

自定义指令的设置,不作任何的设置。点击 Finish 完成NIOS II 处理器的添加

处理器的编辑和修改

Page 37: 第 2 章    SOPC 硬件开发环境及流程

添加其它外设 IP 模块

除了 Nios II CPU ,电子钟设计需要添加的 IP 模块包括: Timer Button PIO LCD 控制器 External SRAM 总线 External Flash 总线 External SRAM 接口 External Flash 接口

Page 38: 第 2 章    SOPC 硬件开发环境及流程

1. 添加定时器 ( 1 )如图选 Interval Timer 并双击,向导窗口出现; (注意 9)

( 2 )配置定时器,点 Finish ,完成定时器的添加。可重命名。

Page 39: 第 2 章    SOPC 硬件开发环境及流程

2. 添加 Button PIO ( 1 )在 Basic Settings ,设 width ? direction ? ( 2 )在 Input Options , Edge Capture Register 选中 Synchronously Capture ,选择 Either Edge ; ( 3 )点击 Finish 完成,重命名

Page 40: 第 2 章    SOPC 硬件开发环境及流程

3. 添加 LCD 控制器( 1 )如图选 Character LCD(Optrex 16027) ,双击。(注意 10 )( 2 ) Module Name 下出现, lcd_16027_0;

( 3 )将其重命名 lcd_display 。

Page 41: 第 2 章    SOPC 硬件开发环境及流程

4. 添加外部 RAM 接口 ( 1 )如图单击 Add ,出现 SSRAM ( Cypress CY7C1380C )向导 ( 2 )设置 Read Latency 和 Memory Size ( 3 ) Finish 完成,重命名为 ext-ssram 。

Page 42: 第 2 章    SOPC 硬件开发环境及流程

5. 添加外部闪存接口( 1 )前图双击,外部 flash 接口;( 2 )在 Attributes 中, Presets 列表中选择相应的 flash 。( 3 )若所使用 Flash没有在列表中:自定义宽度和时序

Page 43: 第 2 章    SOPC 硬件开发环境及流程

6. 添加外部 RAM 和 flash总线( Avalon三态总线桥) Nios II 系统与外部存储器通信,要在 Avalon总线和外部存储器之间加入

Avalon三态桥。 (1) 如图选择 Avalon Tri-State Bridge ,点击 Add ,出现向导; (2) Registered 选项默认为选中;重命名为 ext_ssram_bus; (3) 再添加一个 Avalon三态总线桥,重命名为 ext_flash_bus.

Page 44: 第 2 章    SOPC 硬件开发环境及流程

7. Nios II 系统的连接 (注意 11) 所有添加的 IP 连接是系统自动完成的。对于三态桥和外部存

储器接口的连接,系统的自动连接可能和用户的开发板不匹配,用户需要进行手动的更改。

主要是外部 RAM 接口要和 RAM 的三态桥连接,外部的Flash 接口要和 flash 的三态桥连接。

针对用的开发板的情况进行的设置,实验用的开发板 SRAM和 flash没有使用共用的数据线和地址线。

所以必须为它们分别添加一个三态桥。

Page 45: 第 2 章    SOPC 硬件开发环境及流程
Page 46: 第 2 章    SOPC 硬件开发环境及流程

2.3.3 分配 IP 模块的地址和中断号 SOPC Builder为各个 IP 模块分配了一个默认的基地址,用户可以改变这

些地址。如果分配的地址出现冲突,如下:

Page 47: 第 2 章    SOPC 硬件开发环境及流程

( 1 )自动分配地址: System菜单的 Auto Assign Base Address

( 2 )手动分配地址: Flash 外设的 Base栏,将地址改为 0x0 ,如果 冲突 SOPC Builder会出现错误的提示。

( 3 )锁定地址:选择 Module菜单中的 Lock Base Address

( 4 )手动修改外设的中断号:号越小,优先级越高

( 5 )自动分配中断号:选择 System菜单中的 Auto Assign IRQs 。 建议采用手动的分配。

Page 48: 第 2 章    SOPC 硬件开发环境及流程

注意: !!

Page 49: 第 2 章    SOPC 硬件开发环境及流程

2.3.4 配置 NIOS II 系统 Reset Address :选择存放 Boot Loader 的存储器和设置 Boot Loader 在

存储器中的偏移。选择 ext_flash ,偏移选择默认; Exception Address :选择存放异常向量表存放的存储器和异常向量表在

存储器偏移 , 选择 ext_ssram ,偏移选择默认;

Page 50: 第 2 章    SOPC 硬件开发环境及流程

2.3.5 生成 NIOS II 并加入到工程中 单击 System Generation 若选中 Simulation ,生成用于仿真的相应的文件。 点 Generate , SOPC Builder 提示生成系统的进程,需 3-4 分钟

Page 51: 第 2 章    SOPC 硬件开发环境及流程

系统生成完成后, SOPC Builder为这个定制的 NIOS II 系统模块创建了一个符号, Nios II 系统再加入到工程中:

( 1 )打开顶层实体( BDF ),任意处双击,出现 Symbol 对话框 ( 2 )在 Symbol 对话框中单击 Project 来展开工程目录,其下出现 NIOS2 ,选中它,右侧出现了系统的符号表示; ( 3 )点 OK , NIOS2出现在 BDF窗口中,创建的系统加入到工程

Page 52: 第 2 章    SOPC 硬件开发环境及流程

2.3.6 加入引脚和嵌入式锁相环 嵌入式锁相环有两个时钟输出,一个输出 SSRAM 提供时钟,另一个时

钟的输出为 NIOS II CPU 提供时钟 .

加嵌入式锁相环步骤如下:(1) 点击 ToolsMegaWizard Plug-In Manager ,出现 MegaWizard

Plug-In Manager向导窗口 ,点击 next

Page 53: 第 2 章    SOPC 硬件开发环境及流程

IO 下面选择 ALTPLL ,器件选择 Cyclone II ,输出文件类型选择 VHDL ,文件名为 ssram_pll

Page 54: 第 2 章    SOPC 硬件开发环境及流程
Page 55: 第 2 章    SOPC 硬件开发环境及流程
Page 56: 第 2 章    SOPC 硬件开发环境及流程

引脚添加( 1 )顶层实体的 bdf窗口的空白处双击鼠标,出现 Symbol 添加窗口,

选择 pin ,选择相应类型的引脚,点击 OK 。( 2 )点击 bdf窗口的空白处,即将引脚加入到了工程中。( 3 )重复上面的步骤添加为各个端口添加相应类型的引脚。( 4 )命名引脚方法:双击引脚的“ pin_name“ ,对其编辑。对于总线型

的引脚,引脚名称 +总线位数:如 ddr_a[12..0]

Page 57: 第 2 章    SOPC 硬件开发环境及流程

将嵌入式锁相环和系统模块等连接起来,将引脚连接到相应的端口上。

Page 58: 第 2 章    SOPC 硬件开发环境及流程

2.4 设计优化 设计优化:节省占用 FPGA 的面积和提高系统速度。 “面积” ; “速度”是指设计的系统在目标芯片上稳定运行时能够达到的最高频率

Page 59: 第 2 章    SOPC 硬件开发环境及流程

1. 面积与速度的优化 选择 Assignment菜单下的 Settings命令 在 Analysis & Synthesis Settings: Optimization Techniques栏中,有

Speed 、 Balanced 和 Area3种优化选择, Balanced 是软件缺省的优化选择。

Page 60: 第 2 章    SOPC 硬件开发环境及流程

2. 时序约束与设置

选择 Settings 下面的 Timing Analysis Settings 选择 Classic Timing Analyzer Settings 。 可以根据目标芯片的特性及 PCB 板走线的实际情况,给出

设计需要满足的时钟频率、建立时间、保持时间和传输延迟时间等参数。

简单应用,不需要!

Page 61: 第 2 章    SOPC 硬件开发环境及流程

2.5 编译 Quartus II 编译器由一系列处理模块组成 包括 : 分析与综合、适配、汇编和时序分析等。 编译设置:合理编译的设置可以提高工程编译的速度,

优化器件的资源利用,甚至降低系统的功耗!

!编译之前须对未使用的引脚做设置:将未使用的引脚设置成As inputs , tri-stated 。

Page 62: 第 2 章    SOPC 硬件开发环境及流程

步骤(注意):( 1 ) 在 Settings 对话框中的 Device 中,单击 Device and Pin Options ,出现 Device and Pin Options 。

( 2 )单击 Unused Pins ,在 Reserve all unused pins 下选择, As inputs ,tri-stated 。

Page 63: 第 2 章    SOPC 硬件开发环境及流程

2.5.1 引脚分配

引脚分配:使编译器能把设计的信号分配到目标器件上的特定引脚上。

两种引脚分配方法: 第一种:使用 Assignments Editor 或 pins 或 pin planner 第二种:使用 TCL 脚本一次性分配所有的引脚

Page 64: 第 2 章    SOPC 硬件开发环境及流程

( 1 )选 Assignments菜单中的 pins 或 pin planner 或 Assignments Editor 。 ( 2 )在 Node Name 下输入引脚名称,在 Location 选择 相应的引脚。 ( 3 )选择 FileSave保存分配。

这种分配方法效率较低,适合较少管脚的分配。

1. Assignments Editor

Page 65: 第 2 章    SOPC 硬件开发环境及流程

(1) 选择 project 下的 generate Tcl file for project. 名字: pin.tcl

(2) 打开标准工程( .\80\. ),下的 standard.tcl 文件 (3) 把 standard.tcl 文件中带 set_location_assignment 指令, 并且 -to 后面的参数与现有工程中使用的管脚名相同的语句 拷贝到 pin.tcl 文件的下面位置 (最后一条 set_global_assignment 语句后),后保存。

2. TCL 脚本文件分配引脚

Page 66: 第 2 章    SOPC 硬件开发环境及流程

( 4 ) Tools菜单下,选 TCL scripts… ,出现下图( 5 )选择建立的引脚分配文件 pin.tcl ,点 RUN即可完成引脚分配。( 6 )如何查看分配结果呢?

Page 67: 第 2 章    SOPC 硬件开发环境及流程

注意: 如果管脚名字与 standard 工程的对应管脚名字不同,不能使用该方法,或者需修改脚本。

该方法在有参照工程管脚定义的情况下,节省定义管脚的时间。

Page 68: 第 2 章    SOPC 硬件开发环境及流程

2.5.2 编译用户设计

选择 Processing菜单中的 Start Compilation 或点击工具栏中的 Start Compilation 按钮进行编译

Page 69: 第 2 章    SOPC 硬件开发环境及流程

编译成功之后,出现 Compile Report. 点击相关内容查看相应的编译信息,如 Analysis &

synthesis 、 Fitter 、 Timing Analyzer 等。

Page 70: 第 2 章    SOPC 硬件开发环境及流程

注意: NIOS 系统发生改动后需重新编译

Page 71: 第 2 章    SOPC 硬件开发环境及流程

注意: NIOS 系统有变化后需重新编译

Page 72: 第 2 章    SOPC 硬件开发环境及流程

2.6 编程下载

编译成功之后, Quartus II 编译器生成配置 两个文件 : .sof 和 .pof .sof 文件一般在调试时下载到 FPGA 的 SRAM 中 .pof 文件是用于 EPCS 的编程文件。 实验平台采用的下载线为 USB Blaster 。

Page 73: 第 2 章    SOPC 硬件开发环境及流程

2.6.1 下载

如何将生成的 .sof 文件下载到 FPGA 中:( 1 )同过 USB Blaster 电缆将目标板和计算机相连,接通目

标板的电源。

( 2 )在 Quartus II 软件中选择 ToolsProgrammer ,打开编程器的窗口,可以看到配置文件 clock.sof 。

Page 74: 第 2 章    SOPC 硬件开发环境及流程

( 4 )选中 Program/Configure ,然后点击 start 开始按钮,开始下载,可以从 Progress栏看到下载进度。

说明: USB 驱动的安装方法 (补充文件 )

Page 75: 第 2 章    SOPC 硬件开发环境及流程

2.6.2 验证

硬件下载到 FPGA 芯片后,可编程测试系统的功能。

Page 76: 第 2 章    SOPC 硬件开发环境及流程

2.6.3 启动软件开发环境