修订历史
版本号 | 修订日期 | 修订的章节 | 修订的内容 |
---|---|---|---|
1.0 | 2019/11/20 | N/A | 初始版本 |
2.0 | 2021/09/01 | 2、3 | FPGA评估板适配为Nuclei MCU200T |
1. N100内核配套SoC
对于N100系列处理器内核而言,还需要为其配备原型SoC才能展示一个典型SoC的功能。 Nuclei N100系列内核搭配完整的原型SoC平台,请参见《Nuclei_N100系列配套SoC介绍》了解更多SoC的介绍与信息。
2. FPGA评估板和JTAG调试器
2.1. 简介
芯来科技定制了专用的FPGA评估板(Nuclei MCU200T),本文中称为MCU200T FPGA评估板。上节描述的配套SoC原型(包含N100系列处理器内核)可以被整体实现在MCu200T上成为SoC的FPGA原型开发板。
芯来科技还定制了专用的JTAG调试器(HBird Debugger Kit),本文中称为蜂鸟调试器,用于在FPGA评估板上对N100系列进行调试。
有关FPGA评估板和专用JTAG调试器的总体介绍请参见芯来科技官网开发板页面:http://www.nucleisys.com/developboard.php
详细介绍请参见芯来科技官网开发板页面中的详细介绍文档链接:http://www.nucleisys.com/theme/package/Nuclei_FPGA_DebugKit_Intro.pdf
2.2. 连接蜂鸟调试器与FPGA评估板
关于如何将蜂鸟调试器与FPGA评估板进行连接,请参见芯来科技官网开发板页面中的详细介绍文档链接:http://www.nucleisys.com/theme/package/Nuclei_FPGA_DebugKit_Intro.pdf
2.3. 安装蜂鸟调试器的驱动
蜂鸟调试器是采用USB接口与主机PC连接,使用蜂鸟调试器时需要在PC上安装驱动,关于如何为蜂鸟调试器安装驱动,请参见芯来科技官网开发板页面中的详细介绍文档链接:http://www.nucleisys.com/theme/package/Nuclei_FPGA_DebugKit_Intro.pdf
3. 搭建FPGA原型平台
3.1. FPGA项目介绍
N100系列内核配套FPGA项目在n100_rls_pkg文件包的文件层次结构如下所示:
N100_rls_pkg
|n100_cct
|----fpga // 存放FPGA项目和脚本的目录
|----mcu200t // MCU200T FPGA评估板的项目文件夹
|----constrs // 存放约束文件的文件夹
|---- nuclei-master.xdc // 主约束文件
|----Makefile // Makefile脚本
|----script // 存放运行TCL脚本的文件夹
|----src // 存放Verilog源代码的文件夹
|----system.org // FPGA系统的顶层模块
|----Makefile // Makefile脚本
FPGA项目通过Makefile(fpga/common.mk文件)将添加一个特殊的宏FPGA_SOURCE至Core的宏文件中,如下图所示。所以最终用于编译FPGA比特流的RTL源代码必须包含此宏(FPGA_SOURCE)。

在FPGA的顶层模块(system.org)中除了例化SoC的顶层(n100_soc_top)之外,主要是使用Xilinx的I/O Pad单元例化顶层的Pad。另外使用Xilinx的MMCM单元生成时钟。注意:SoC的Main Domain使用的MMCM产生的高速时钟连接到SoC的hfextclk,Always-On Domain使用的是开发板上的低速实时时钟(32.768KHz)。
N100系列内核配套SoC的顶层I/O Pad经过FPGA的约束文件(nuclei-master.xdc)进行约束使之连接到FPGA芯片外部的引脚上面(譬如将JTAG I/O约束到开发板的MCU_JTAG插口引脚上)。
3.2. 生成mcs文件
在前文中介绍了N100系列内核项目的SoC整体架构和Verilog RTL代码,为了使得该SoC能够真正运行在FPGA硬件上,需要将其编译成为bitstream文件(用于烧录到FPGA中去)。可以使用如下步骤进行编译。
// 步骤一:准备好自己的电脑环境,可以在公司的服务器环境中运行,如果是个人用户,推荐如下配置:
(1)使用VMware虚拟机在个人电脑上安装虚拟的Linux操作系统。
(2)由于Linux操作系统的版本众多,推荐使用Ubuntu 16.04版本的Linux操作系统
有关如何安装VMware以及Ubuntu操作系统本文不做介绍,有关Linux的基本使用本文
也不做介绍,请用户自行查阅资料学习。
// 步骤二:安装Xilinx Vivado软件(包括XILINX USB JTAG下载器驱动程序)至此虚拟机Linux操作系统中。有关如何安装Xilinx Vivado软件和下载器驱动本文不做介绍,请用户自行查阅资料了解。
// 步骤三:将n100_rls_pkg解压至本机Linux环境中。
// 步骤四:设置需要编译的Core的具体型号,使用如下命令:
cd n100_rls_pkg/n100_cct/fpga
// 进入到n100_rls_pkg/n100_cct目录文件夹下面的fpga目录。
make install CORE=n100 FPGA_NAME=mcu200t
// 运行该命令指明需要为n100内核进行编译,该命令会在fpga目录下生成一个
// install子文件夹,在其中放置Vivado所需的脚本,且将脚本中的关键字设置为n100。
// 步骤五:生成bitstream文件或者mcs文件(推荐使用mcs文件),使用如下命令:
make bit
// 运行该命令将调用Vivado软件对Verilog RTL进行编译生成bitstream文件
// 生成的bitstream文件名和路径为
// n100_rls_pkg/n100_cct/fpga/hbirdkit/obj/system.bit
// 该bitstream文件则可以使用Vivado软件的Hardware Manager功能将
// system.bit烧录至FPGA中去。
// 熟悉Vivado和Xilinx FPGA使用的用户应该了解,bitstream文件烧录到FPGA中
// 去之后FPGA不能掉电,因为一旦掉电之后FPGA烧录的内容即丢失,需要重新使用
// Vivado的Hardware Manager进行烧录方能使用。
// 为了方便用户使用,FPGA评估板可以将需要烧录的内容写入开发板上的
// Flash中,然后在每次FPGA上电之后通过硬件电路自动将需要加载的内容从外部的
// Flash中读出并加载到FPGA之中(该过程非常的快,不影响用户使用)。由于Flash
// 是非易失性的内存,具有掉电后仍可保存的特性,因此意味着将需要载入的内容写入
// Flash后,每次掉电后无需使用Hardware Manager人工重新烧录(而是硬件电路
// 快速自动完成),即等效于,FPGA上电即可使用。
// 为了能够将烧录FPGA的内容写入Flash中,需要生成mcs文件,使用如下命令:
make mcs
// 运行该命令将调用Vivado软件对Verilog RTL进行编译生成mcs文件
// 生成的mcs文件名和路径为
// n100_rls_pkg/n100_cct/fpga/hbirdkit/obj/system.mcs
// 该mcs文件则可以使用Vivado软件的Hardware Manager功能将
// system.mcs烧录至FPGA评估板中的Flash中去。
3.3. 将mcs文件烧写入FPGA
关于如何将上节生成的mcs文件烧写入FPGA评估板,请参见芯来科技官网开发板页面中的详细介绍文档链接:http://www.nucleisys.com/theme/package/Nuclei_FPGA_DebugKit_Intro.pdf
4. 基于FPGA平台运行和调试软件示例
4.1. 配套基于Linux的SDK
基于配套的SoC,Nuclei N100系列处理器内核提供基于Linux的软件开发套件(SDK,Software Development Kit)。可以使用此SDK在FPGA原型平台上进行嵌入式软件的开发,详细介绍请参见参见单独文档《Nuclei_N100系列SDK使用说明》。
4.2. 配套基于Windows的IDE
基于配套的SoC,提供基于Windows的图形化集成开发环境(IDE,Integrated Development Environment)。可以使用此IDE在FPGA原型平台上进行嵌入式软件的开发,详细介绍请参见参见单独文档《Nuclei_N100系列IDE使用说明》。