这个是下载软件使用教程。紫光同创的参考文件。哎呦我去,一个下载软件都弄的那么详细。我真的不知道,看到的人啥感想。估计他们更喜欢我自己写的简易教程。估计看晕了,还是先学会下载了,在看文档吧。

一、   软件简介

Fabric Configuration软件主要功能是用于PANGO公司FPGA芯片的配置,负责把用户逻辑设计生成的位流文件下载到FPGA芯片中。
它的主要功能包括:
u 支持以下FPGA芯片类型
Pango系列:PGT30G, PGT180H,PGL22G
u 支持以下SPI串行Flash芯片类型
Micron M25P128
Micron M25P64
Micron M25P32
Micron N25Q32
Micron N25Q64
Micron N25Q128
Micron N25Q256
Micron N25Q512
GigaDevice GD25Q32C
GigaDevice GD25Q64C
GigaDevice GD25Q128C
GigaDevice GD25Q256C
u 支持Pango USB cable电缆下载
u 支持FPGA的ID、user code及状态寄存器读取功能,逻辑位流下载、回读及校验
u 支持SPI Flash的下载、删除、回读及校验功能

我毛华望QQ849886241,深圳工程师。博客http://blog.csdn.net/my_shar

二、       下载电缆介绍

USB下载电缆
USB下载电缆负责把PC机的USB信号转换为器件所需要的JTAG信号。其连接方式如图2-1所示:

图2-1      USB下载电缆连接示意图

三、       软件使用入门

下面,用一个简单的例子说明如何用Fabric Configuration软件下载逻辑位流。
本例子采用FPGA芯片型号为PGT30G,逻辑位流文件名为counter.sbit。
a) 准备硬件
连接好下载线,确保硬件已供电正常,开启服务端。服务端开启如图3-1所示:

图3-1      服务端开启
b) 启动Fabric Configuration软件
出现如图3-2所示的界面:

图3-2      Fabric Configuration主界面
c) 可以先点击连接服务器,输入相应的服务器IP和端口后点击Connect,连接成功后会与server服务器自动进行版本检测,连接服务端成功后显示如图3-3所示:

图3-3      点击Connect按钮
d) 扫描JTAG链,获取JTAG链上的FPGA器件
在主界面的左侧Configuration Mode,点击Boundary Scan”,然后在工作区使用鼠标右键单击,会弹出如图3-4所示菜单,左键单击“Scan Device”可以执行初始化链的操作。注意:打开软件可以直接进行扫链操作,软件本身会自动连接server,默认的server的地址是127.0.0.1,端口号为65420,连接成功后会进行版本的检查,版本检查成功后将进行扫链操作。

图3-4      工作区鼠标右键单击菜单
如果初始化链成功,会将链上扫描到的所有器件列于工作区内,在工作区相对应的器件下显示器件型号,并弹出对话框使用户能够为器件添加配置文件,如图3-5所示:

图3-5      初始化链成功
e) 选择需要下载的逻辑位流文件
选择counter.sbit,添加该配置文件,提示所载入文件的绝对路径并在信息栏中显示,如图3-6所示:

图3-6      为JTAG链上的器件添加配置文件
f) 下载逻辑位流文件
首先选中初始化链检测到的FPGA,在该FPGA上右键单击,会弹出如图3-7所示菜单,然后左键单击“Program”,开始将配置文件counter.sbit载入PGT30G,如图3-8所示:

图3-7      在FPGA上单击右键的菜单

图3-8      下载配置文件成功
g) 校验下载的位流文件
首先选中需要被校验的FPGA,在该FPGA上右键单击,会弹出如图3-7所示菜单,然后左键单击“Verify”,开始校验,如图3-9所示:

图3-9      校验FPGA

四、       Fabric Configuration软件说明

(一)   用户界面介绍

1.        用户主界面

双击“cdt_cfg.exe”弹出软件主界面,如图4-1所示:

图4-1       Fabric Configuration主界面
u  菜单栏:主要包括文件(File)、编辑(Edit)、视图(View)、操作(Operations)、输出(Output)、调试(Debug)和帮助(Help)7个下拉菜单。其使用方法和常用的Windows软件类似。

u  工具栏:主要包含了常用功能的快捷按钮,方便用户的操作。

u  工作区:显示JTAG链上扫描到的器件,或者用户手动添加的器件。

u  信息显示区:显示Fabric Configuration中的处理信息,如操作步骤信息、警告信息和错误信息等。

(二) Fabric Configuration菜单的基本操作(可用部分)

1.   File菜单

如图4-2所示:

图4-2      File菜单
【Scan Device】:用于检测并初始化JTAG链上所有的器件,如果器件的配置电路JTAG检测正确,会将链上扫描到的所有器件列于工作区内。

【Exit】:用于退出Fabric Configuration软件。

2.   Edit菜单

如图4-3所示:

图4-3      Edit菜单
【Select All】:选中工作区内的所有器件。

【Add Device】:用于添加PANGO 、非PANGO器件以及SPI Flash器件。

【Remove Device】:用于将选中的器件从界面上显示的JTAG链中删除,快捷键为“Delete”键。

【Assign New Configuration File】:用于给选中的器件设置一个新的配置文件。

【Set Programming Properties】:用户设置下载配置属性选项。

【Set Erase Properties】:用户设置Flash擦除选项。

【Set User Defined info】:设置用户自定义信息,并在标题栏进行显示,用以标识当前软件的特性。

3.   View菜单

如图4-4所示:

图4-4      View菜单
【Console】:用户设置Console窗口的显示与隐藏。

4.   Operations菜单

如图4-5所示:

图4-5      Operations菜单
【Program】:用于对选中的器件进行编程,将二进制配置文件下载入所选中的器件中,使它能够正确运行载入的逻辑。

【Verify】:用于验证下载入器件的逻辑是否正确。首先回读载入器件的数据,将回读出的数据与载入的数据进行比较,验证其正确性。

【Erase】:用于擦除SPI Flash器件中的数据。

【Read Back】:用于回读FPGA或者Flash中的数据。

【Generate Flash Programming File】:用于将FPGA位流文件转换成Flash下载文件

【Get Device ID】:用于读取JTAG链上器件ID寄存器中的ID信息。

【Read Status Register】:用于读取FPGA状态寄存器。

【Read Flash Status Register】:用于读取flash的状态寄存器。

【Get Device Signature/Usercode】:用于读取JTAG链上器件USERCODE寄存器中的UserCode信息。

【Config Efuse Value】:用于配置FPGA的Efuse 值。

【Execute Tcl File】:用于执行Tcl文件。

【Generate Chain Bitstream File】:用于合成级联数据流文件。

【Generate Multi Revision Programming File】:用于合成黄金数据流及相应组合数据流。

5.   Output菜单

如图4-6所示:

图4-6      Debug菜单
【TCL Record File】:用于记录TCL命令并生成用户指定的TCL脚本(包含创建和附加TCL文件两种方式)。

【SVF File】:用于记录用户操作并生成用户指定的SVF文件(包含创建和附加SVF文件两种方式)。

6.   Debug菜单

如图4-7所示

图4-7      Debug菜单
【Enable/Disabled Debug Chain】:用于调试JTAG链。

【Chain Integrity Test】:JTAG链完整性测试,测试当前JTAG链是否为通路。

7.   help菜单

如图4-8所示

图4-8      Help菜单
【About】:用于显示Fabric Configuration版本信息。

【Show User Help】:用于打开Configuration用户帮助文档。

【Help Topics】:用于打开Pango Assistance的帮助信息。

8.   Fabric Configuration工具栏基本操作(可用部分)

【Scan Device 】:对应菜单栏File-> Scan Device。

【Connect To Server 】:对应菜单栏 File->Connect To Server。

【Select All 】:对应菜单栏Edit->Select All。

【Enable/Disable Debug Chain 】:对应菜单栏Debug-> Enable/Disable Debug Chain

【Assign New Configuration File 】:对应菜单栏Edit-> Assign New Configuration File。

【Add Pango Device 】:对应菜单栏Edit->Add Pango Device。

【Add SPI Device 】:对应菜单栏Edit->Add SPI Device。

【Program 】:对应菜单栏Operations->Program。

【Verify 】:对应菜单栏Operations->Verify。

【Erase 】:对应菜单栏Operations->Erase。

(三) 功能说明

1.        初始化链

在主界面的左侧Configuration Mode,点击“Boundary Scan”,然后在工作区单击鼠标右键,会弹出如图4-9所示菜单,左键单击“Scan Device”,或者在File菜单或工具栏中左键单击“Scan Device”,都可以执行初始化链的操作。

图4-9      工作区鼠标右键单击菜单
如果初始化链成功,会将链上扫描到的所有器件列于工作区内,在工作区中器件下显示相应的器件型号,并弹出对话框使用户能够为器件添加配置文件,如图4-10所示:

图4-10    初始化链并添加.bit文件
若所选配置文件与初始化链检测到的器件匹配,则添加该配置文件,并在信息栏中提示所载入文件的绝对路径,如图4-11所示。若所选配置文件与初始化链检测到的器件不匹配(sbit文件与实际器件不符),为了防止用户向器件下载入错误的配置文件,Fabric Configuration会阻止该文件的添加,并弹出警告提示用户,如图4-12所示。如果初始化链不成功,其弹出的对话框如图4-13所示。导致初始化链失败的原因有多种,解决方法一般为:首先,检查USB下载电缆是否与主机正确连接;其次,检查下载电缆的USB驱动是否正确安装;再次,检查FPGA芯片所在单板是否正常工作,并检查配置电路的JTAG链是否完整;最后,尝试重启Fabric JtagServer软件。


                                                                                                                      图4-11    初始化链成功且添加了正确的配置文件

图4-12    添加错误的配置文件 (FPGA)

图4-13    初始化链失败
2.        添加器件

除了初始化链的方式外,用户还可以通过手动添加配置文件的方式添加器件。具体操作为:在工作区鼠标右键单击,会弹出如图4-9所示菜单,左键单击“Add Pango Device”,或者在Edit菜单或工具栏中左键单击“Add Pango Device”,执行添加器件的操作。如果链上已有器件存在,再添加时需要在要添加器件的地方单击左键,然后右键选择添加器件,这样会将器件添加到JTAG指定的位置。

如果添加的配置文件可被Fabric Configuration识别,则将其加入工作区,与初始化链成功的图4-10相同;若该配置文件不被识别,则提示如图4-14的对话框:


 图4-14    添加了不被识别的配置文件对话框
3.        添加一个新的配置文件

如果用户想为JTAG链上的器件重新添加一个配置文件,可以使用该功能。用户首先选中需要重新添加配置文件的器件,在该器件上右键单击,会弹出如图4-15所示菜单,然后左键单击“Assign New Configuration File”,或者在Edit菜单或工具栏中左键点击“Assign New Configuration File” 都可以执行重新添加配置文件的操作。

如果成功执行,则原有的配置文件将被替换;如果失败,则说明该配置文件与目前侦测到JTAG链上的器件不匹配,会弹出如图4-16所示的对话框。

注:configuration软件中对所有文件的名称和文件路径都作出如下限制:

1、文件夹名:只允许字母数字 下划线(_)杠(-)点(.) @ 和空格( ),但空格不能出现在路径名首尾

2、文件名:只允许字母数字 下划线(_)杠(-)点(.)

图4-15    在器件上单击右键的菜单

图4-16    添加了不匹配的配置文件
4.        向器件下载配置文件

当器件与配置文件都准备好时,就可以对器件进行下载,具体的操作如下:在工作区内需要被下载的器件上右键单击,会弹出如图4-15所示菜单,左键单击“Program”,或者在Operations菜单或工具栏中左键点击“Program”,Fabric Configuration会按照用户之前的准备(JTAG链上器件、配置文件),向所选中的器件下载配置文件。

若下载成功,如图4-17所示;若不成功,有很多种可能,可能是硬件或连接问题或者配置文件与器件部匹配,如图4-18所示。


                                                           图4-17    下载配置文件成功

图4-18    下载失败
5.        读取器件ID

每个器件的ID寄存器内都会存储有识别该器件的ID Code,用户可以将其读出。操作如下:在所选中器件上右键单击,会弹出如图4-14所示菜单,左键单击“Get Device ID”,或者在工具栏中左键点击“Get Device ID”,Fabric Configuration会读取所选中器件的ID。

若读取成功,Fabric Configuration会将所读到的ID显示于信息栏内,如图4-19所示;若失败,则会在信息栏显示红色的“ReadIdCode Failed!”的警告信息,如图4-20所示。


                                      图4-19    读取ID成功

图4-20    读取ID失败
6.        读取FPGA的状态寄存器

该功能用于FPGA,用于读取状态寄存器中的值。操作如下:在所选中器件上右键单击,会弹出如图4-15所示菜单,左键单击“Read Status Register”,读取成功则将该FPGA的状态寄存器值显示于信息栏,并提示“Read Status Register Success”,如图4-21所示。否则提示“Read Status Register Failed”的警告信息。


                                         图4-21    读取状态寄存器成功
7.        读取器件的UserCode

在器件上右键单击,会弹出如图4-15所示菜单,左键单击“Get Device Signature/Usercode”,或者在工具栏中左键点击“Get Device Signature/Usercode”, Fabric Configuration会读取所选中器件的UserCode。

若读取成功,Fabric Configuration会将所读到的UserCode显示于信息栏内,如图4-22所示;若失败,则会在信息栏显示红色的“ReadUserCode Failed!”的警告信息,如图4-23所示。


                                             图4-22    读取UserCode成功

图4-23    读取UserCode失败
8.        校验

校验的过程首先是回读下载入器件的数据,将读出的数据与载入的数据相比较,用来验证载入数据的正确性。

FPGA的校验必须提供校验所需的smsk文件, 现在verify的过程中用户可终止此过程,界面会进行提示校验失败。对于FPGA,若校验失败,则会在信息栏中显示校验出错信息并将校验的结果保存在cfg_verify_result.sbit文件中(应用程序cdt_cfg.exe所在的目录的log文件夹中),如图4-24所示;若校验成功,如图4-25所示。

注:verify操作只比对非DRM数据。

图4-24    FPGA校验失败

图4-25    FPGA校验成功
9.        FPGA位流文件转换Flash文件

在Operations菜单中出现“Generate Flash programming file”选项如图4-26所示,其主要功能是将FPGA位流文件转换成Flash下载文件。

图4-26    Operations菜单中Generate Flash Programming File选项
点击“Generate Flash programming file”选项后弹出对话框如图4-27所示。先在下拉框选项“device name”中选择所要转换适配的器件,然后在下拉框选项“Flash Read Mode” 中可以选择匹配device的Flash指令,如图4-28所示。

图4-27    Generate Flash programming file对话框

图4-28    Flash Read Mode选项
目前支持的flash器件及其所匹配的读写模式关系如下:
M25P32   支持Fast Read(24位)
M25P64   支持Fast Read(24位)
M25P128  支持Fast Read(24位)
N25Q32   支持Fast Read(24位),Dual Output(24位),Quad Output(24位)
N25Q64   支持Fast Read(24位),Dual Output(24位),Quad Output(24位)
N25Q128  支持Fast Read(24位),Dual Output(24位),Quad Output(24位)
N25Q256  支持Fast Read(24位和32位), Dual Output(24位和32位), Quad Output(24位和32位)
N25Q512  支持Fast Read(24位和32位), Dual Output(24位和32位), Quad Output(24位和32位)
GD25Q32C  支持Fast Read(24位),Dual Output(24位),Quad Output(24位)
GD25Q64C  支持Fast Read(24位),Dual Output(24位),Quad Output(24位)
GD25Q128C 支持Fast Read(24位),Dual Output(24位),Quad Output(24位)
GD25Q256C 支持Fast Read(24位和32位), Dual Output(24位和32位), Quad Output(24位和32位)
 
其中24位和32位表示flash的地址空间分别为和字节地址,选择合适的Mode之后,在文件选择框FPGA Sbit File选择需要转换的FPGA sbit文件,生成的“Flash Sfc File”,默认文件名是位流文件名,也可以手动输入。点击OK,生成格式为.sfc的flash下载文件。
10.    添加用户自定义数据

在生成Flash Sfc 文件时,支持添加用户自己的数据(或多个用户数据),每个用户数据都有自身独立的起始地址,用户使用时,从Flash中读取指定位置的用户数据。点击Advanced按钮,出现设置用户数据地址对话框如下图4-29所示,注:添加用户数据条件为:必须要有位流数据

图4-29    设置用户数据起始地址对话框
其中,添加用户数据会显示当前添加数据文件的索引,还有默认的添加地址(直接追加文件后不需要填充数据),第二行可以设置用户数据的起始地址。然后添加用户数据文件,如图4-30所示,用户数据文件的后缀为.bin。

图4-30    添加用户数据文件
如果在set address窗口点击取消或者在选择文件时点击取消,此时用户数据添加完成,产生含有用户数据的sfc文件,并将用户数据的起始地址打印在界面中如图4-31所示。

图4-31    打印用户数据起始位置
11.    扫描SPI Device

在主界面的左侧Configuration Mode,点击“SPI Flash Configuration”,然后在工作区鼠标右键单击,会弹出如图4-32所示菜单,左键单击“Scan Device”,执行扫描SPI Device的操作。

图4-32    工作区鼠标右键单击菜单
如果扫描SPI Device成功,会将扫描到的所有器件列于工作区内,在信息栏里显示器件型号,并弹出对话框使用户能够为器件添加配置文件如图4-33所示,扫描SPI Device成功示意图如图4-34所示。

图4-33    添加.sfc文件

图4-34    扫描SPI Device成功   
12.    添加SPI Device

在主界面的左侧Configuration Mode,点击“SPI Flash Configuration”,然后在工作区鼠标右键单击,会弹出如图4-32所示菜单,左键单击“Add SPI Device ”,执行添加SPI Device的操作如图4-35所示。弹出一个选择.sfc文件对话框,选中*.sfc文件后,点击OK。

图4-35    添加SPI Device
选择sfc文件之后,弹出选择“Choose Device Name”对话框如图4-36所示,选择N25Q256器件后,点击OK。如添加成功,则如图4-37所示。
注:当前Device Name暂时支持M25P128,M25P64,M25P32, N25Q32, N25Q64, N25Q128, N25Q256, N25Q512, GD25Q32C, GD25Q64C, GD25Q128C, GD25Q256C

图4-36    选择器件名

图4-37    添加SPI Device成功
添加SPI Device后选中SPI的图标后,右击鼠标显示菜单项如图4-38所示,有“Programe”、“Erase”、“Verify”、“Readback”、”Read Flash Status Register”, 添加新的配置文件等功能。

图4-38    右击SPI菜单项
13.    向SPI器件下载和擦除配置文件

当器件与配置文件都准备好时,就可以对器件进行下载,如图4-39所示。Erase功能可以擦除SPI器件擦除所有的内容。用户可在program 和erase 操作的过程中,终止当前的操作。在SPI上右键单击,会弹出如图4-38所示菜单,左键单击“Erase”,或者在工具栏中左键点击“Erase”, Fabric Configuration 会擦除所选SPI Flash中的数据,如图4-40所示。
若擦除成功,会在信息栏显示“Erase Success!”,反之显示红色的“Erase Failed!”警告信息。

图4-39    下载配置文件成功

图4-40    擦除配置文件成功
14.    配置 Efuse Value

Efuse是 一次性可编程非易失存储器, 32位Efuse(用于存储密钥key)未编程的fuse值为0,编程后的fuse值为1。Config Efuse Value 操作主要针对PGT系列器件,Config Efuse Value只能向PGT系列器件进行一次写操作,应谨慎操作。当器件准备好时,就可以对器件进行配置Efuse存储器,具体的操作如下:在Operations菜单左键点击“Config Efuse Value”选项,会弹出 Config Efuse Value配置对话框,如图4-41所示。

图4-41    Config Efuse Value配置界面
配置Efuse Value有Read(读)和Write(写)两种模式如图4-42所示,Read模式是将Efuse存储器中的内容读出来并在信息栏中显示读出的efuse信息,选择Read模式并点击OK按钮,读出成功如图4-43所示。

图4-42    Config Efuse Value模式选择界面

图4-43    读取efuse value信息成功界面
Write模式是向Efuse存储器件中写入32位efuse二进制信息。写入操作是一次性操作,写入之后,Efuse存储器中的信息不可更改,需要谨慎操作。选择Write模式,点击界面中的OK按钮,界面会进行提示信息如图4-44所示。

图4-44    写入efuse value信息提示界面
点击提示对话框中的OK,若写入Efuse配置成功,在信息栏中显示相应的写入成功信息如图4-45所示。若不成功,有很多种可能,可能是硬件或连接问题或者配置文件与器件部匹配,如图4-46所示。

图4-45    写入Efuse配置成功界面

图4-46    写入Efuse配置失败界面
15.    下载nky文件

nky文件是对位流文件进行加解密的配置文件,nky文件中含有对位流文件进行解密的密钥。密钥的配置有两种方式:
1、inner key,可以多次向器件写入密钥配置信息,但是在器件断电的情况下,配置的密钥信息会消失,需要重新进行写入;
2、efuse key,只能够向器件写入一次密钥配置信息,之后信息不能更改并且信息会永久保存在器件中,在器件断电的情况下,配置的密钥信息不会消失。当inner key的nky文件下载到器件中后,其后的位流文件必须是通过nky文件中的密钥进行加密的位流文件,这样才会在器件中下载成功;否则,未加密的位流文件不会下载成功。efuse key的nky没有这个限制。
具体操作如下:
1、向器件添加一个nky配置文件,选中需要添加配置文件的器件,在该器件上右键单击,然后左键单击“Assign New Configuration File”,或者在Edit菜单或工具栏中左键点击“Assign New Configuration File”,可以执行重新添加配置文件的操作。
2、下载nky文件,当器件与配置文件都准备好时,就可以对器件进行下载,具体的操作如下:在工作区内需要被下载的器件上右键单击,然后左键单击“Program”,或者在Operations菜单或工具栏中左键点击“Program”。
在下载efuse key时,需要谨慎操作,这时会弹出一个告警提示框如图4-47所示。选择Yes,则继续进行下载efuse key;选择No,则可以重新选择key文件或位流文件进行配置。
若下载成功,如图4-48所示;若不成功,有很多种可能,可能是硬件或连接问题或者配置文件与器件部匹配,如图4-49所示。

图4-47    下载efuse key nky文件提示

图4-48    下载nky文件成功

图4-49    下载nky文件失败
16.    删除SPI器件

如果用户想删除SPI器件可以使用该功能。用户选中需要选中要删除的器件,然后在Edit菜单栏中左键点击菜单“Remove Device”,或者按下快捷键“Del”都可以执行删除SPI器件的操作,如图4-50所示。

图4-50    删除SPI器件
17.    SPI Flash校验

SPI校验的过程首先是回读下载入SPI Flash器件中的数据,将读出的数据与载入的数据相比较,用来验证载入数据的正确性。
对于SPI Flash器件,若校验失败,则会在信息栏中显示校验出错信息,如图4-51所示;若校验成功,如图4-52所示。

图4-51    SPI Flash校验失败

图4-52    SPI Flash校验成功
18.    回读SPI Flash数据
该功能用于回读SPI Flash中的数据并将其存储入用户指定的文件。在SPI Flash器件上右键单击,然后左键单击“Read Back”,Fabric Configuration会弹出对话框让用户选择或新建回读数据存储的文件,将回读出的数据存储入所选文件,如图4-53所示。
若回读成功如图4-54所示,会在信息栏显示“Read Back Success!”,反之显示红色的“Read Back Failed!”的警告信息。

图4-53    指定回读SPI Flash数据存储文件

图4-54    指定回读SPI Flash数据存储文件成功
19.    生成级联数据流
在Operations菜单中出现“Generate Chain Bitstream file”选项如图4-55所示,其主要功能是生成级联数据流下载文件。

图4-55    Operations菜单
点击“ Generate Chain Bitstream file”选项后弹出对话框如图4-56所示。

图4-56    Generate Chain Bitstream file对话框
通过点击add file按钮添加产生级联数据流的sbit文件,文件前面的序号为实际FPGA链的位置,通过move up和move down按钮调整下载到实际FPGA链中的位流文件位置。通过点击del file按钮可以删除添加的位流文件信息。Chain Sbit File 为产生的级联数据流的名称,默认为第一个位流文件名后加_chain.sbit,也可以使用选择文件按钮指定文件名,如图4-57所示。

图4-57    操作Generate Chain Bitstream file对话框

图4-58    级联数据生成成功
选择好位流文件以及调整好文件的位置后,点击OK按钮,生成级联数据流,如图4-58所示,成功产生级联数据。
20.    设置器件属性
点击Edit菜单下的Set Programming Properties选项,出现如图4-59所示,可以设置FPGA和Flash相关器件的Programming属性。Programming的模式包含三种模式:Fast、Typic、Performance。

图4-59    设置Device Programming Properties对话框
Verify after Programming选项表示,在编程成功后会自动进行验证在flash中的内容和sfc文件内容的一致性。
Erase before Programming选项表示,在编程之前会自动进行擦除flash中的内容,如擦除成功后,再进行编程下载。
此外,PGL22器件编程属性,且下列编程选项均为独立可相互进行组合,具体支持编程选项如下所示:
Enable Shut Off Reconfigure:表示是否允许关断重配。
Enable ISC Configure:表示是否使用ISC进行编程。
Enable Shut Off Read Back:表示是否允许关断回读。
Enable ISC Read Back:表示是否使用ISC进行回读。
点击Edit菜单下的Set Erase Properties选项,出现如图4-60所示,可以设置FPGA和Flash相关器件的Erase属性。Erase的模式包含三种模式:Sector Erase、Bulk Erase、Auto。

图4-60    设置器件的擦除属性
Sector Erase表示按sector(扇区)进行擦除。
Bulk Erase表示对Flash器件进行全部擦除。
Auto表示根据要擦除的空间,程序自动选择合适的Sector 或 Bulk进行擦除,保证擦除时间达到最少。
 
21.    Tcl命令介绍
现阶段Configuration支持原生的Tcl语言并且支持如下特定的Tcl命令:
1、通用命令的说明和用法:
cfg_help :TCL帮助命令,列出当前所有支持的TCL命令。 无参数
用法:cfg_help
 
cfg_connect :连接服务器命令,包含2个参数 –ip,-port
用法:cfg_connect -ip 192.29.103.191 -port 65420
 
cfg_disconnect : 断开服务器命令,无参数
用法:cfg_disconnect
 
cfg_delay : 延时命令 已秒(seconds)为单位,包含1个参数-time
用法:cfg_delay –time 3
source : 执行TCL脚本(TCL内置命令),后面直接跟TCL脚本文件(.tcl), 并且可以添加source的次数
用法:source C:/Users/jjwang/Desktop/test.tcl  3
 
cfg_close : 关闭当前configuration软件
用法:cfg_close
 
cfg_set_cable :设置可设置选择并口cable或USB cable,并可设置并口模式(如:ECP或SPP)
用法:cfg_set_cable -type usb_1
cfg_set_cable -type lpt_1 -mode ecp
 
cfg_set_cable_freq :设置当前cable的频率
用法:cfg_set_cable_freq -freq 10.2M
 
cfg_set_tcl_break :设置tcl遇到error是否往下执行(执行Tcl文件)
用法:cfg_set_tcl_break –flag true :表示tcl遇到error中断不继续往下执行
 
cfg_set_options:设置server的运行属性,一个参数
-rpt_detail  设置板上自动化是否写详细报告,参数类型Boolean_value (TRUE/FALSE)
[-server_delay_time] 设置server的延时时间,即延时多长后,server开始读取数据。参数类型为大于0的整数
用法: cfg_set_options –rpt_detail true -server_delay_time integer-value
 
cfg_wait:设置执行当前tcl文件是否进行暂停,无参数(在dev模式下存在)
用法:cfg_wait
注:在dev模式下运行到此命令时,会暂时停止执行tcl文件,在点击Operation菜单中的Continue按钮,或者是快捷键ctrl+g,可继续执行后续的tcl命令。
 
2、针对FPGA器件的命令:包含对FPGA的ID、user code及状态寄存器读取功能,逻辑位流下载、回读及校验等TCL命令。
cfg_scan_chain:扫链命令(初始化链操作) 无参数
用法:cfg_scan_chain
 
cfg_assign_file: 配置位流文件命令 包含2个参数 –file(配置的文件路径) -device_index(要配置的器件索引)
用法:cfg_assign_file -file D:/bs/counter.sbit -device_index  0
 
cfg_program :下载位流命令,包含1个参数 -device_index(要下载的器件索引)
用法:cfg_program -device_index 0
 
cfg_erase :擦除器件命令,包含1个参数 -device_index(要擦除的器件索引)(注:FPGA器件不支持此功能)
用法:cfg_erase -device_index 0
 
cfg_readback :回读位流文件命令。包含2个参数,-file(回读文件信息)-device_index(要回读的器件索引)(注:FPGA(PG30、PGH180)器件支持此功能)
用法:cfg_readback  -file  D:/bs/test.sbit -device_index 0
 
cfg_verify :验证位流文件命令。包含1个参数,- device_index(要验证的器件索引)
用法:cfg_verify -device_index 0
 
cfg_read_device_id :获得器件ID命令。包含1个参数,- device_index(要获取器件ID的器件索引)
用法:cfg_read_device_id -device_index 0
 
cfg_read_user_code :获取user code命令。包含1个参数-device_index (要获取的器件索引)
用法:cfg_read_user_code -device_index 0
 
cfg_read_status_register:读取状态寄存器的值命令。包含1个参数-device_index (要读取的器件索引)
用法:cfg_read_status_register -device_index 0
 
cfg_add_device:添加器件命令。包含1个参数,-file(配置的文件路径)
用法:cfg_add_device -file D:/bs/counter.sbit
 
cfg_remove_device :删除指定器件命令。包含1个参数,-device_index (要删除的器件索引)
用法:cfg_remove_device -device_index 0
 
cfg_remove_devices :删除多个指定的器件的命令。包含1个参数,-device_indexs (要删除的多个器件索引集合)
用法:cfg_remove_devices -device_indexes {0 1}
 
cfg_remove_all_devices:删除所有器件命令,无参数。
用法:cfg_remove_all_devices
 
cfg_read_register:读取指定地址寄存器的内容。包含2个参数,
-address (指定寄存器的地址)
[-device_indexs] (指定device索引,可选,默认缺省为0)
用法: cfg_read_register –address 123 –device_index 0
 
cfg_write_register:写指定地址寄存器的内容。包含3个参数,
-address (指定寄存器的地址)
-value (给定写入指定寄存器的值)
[-device_indexs] (指定device索引,可选,默认缺省为0)
用法:cfg_write_register –address 123 –value 123 -device_index 0
 
3、针对Flash器件命令:包含对SPI Flash器件的下载、删除、回读及校验功能的TCL命令
cfg_scan_flash_device:扫描flash器件命令,包含1个参数 -file(要配置的文件)
用法: cfg_scan_flash_device -file  D:/source/bit/testLUT5.sfc
 
cfg_flash_add_device :增加flash器件命令,包含2个参数,-file(要配置的文件)-device_name(要添加的器件类型)
注:当前Device Name暂时支持M25P128,M25P64,M25P32, N25Q32, N25Q64, N25Q128, N25Q256, N25Q512, GD25Q32C, GD25Q64C, GD25Q128C, GD25Q256C
用法:cfg_flash_add_device -file D:/source/bit/testLUT5.sfc -device_name M25P32
 
cfg_flash_assign_file -file :配置flash位流文件命令,包含1个参数,-file(要配置的文件)
用法:cfg_flash_assign_file -file D:/source/bit/counter_16.sfc
 
cfg_flash_program:下载flash位流文件命令,无参数。
用法:cfg_flash_program
 
cfg_flash_erase:擦除flash位流文件命令,无参数。
用法:cfg_flash_erase
 
cfg_flash_readback :回读flash位流文件命令,包含1个参数,-file(要回读位流保存的文件)
用法:cfg_flash_readback -file D:/source/bit/testLUT5_readback.sfc
 
cfg_flash_verify:验证flash位流文件,无参数。
用法:cfg_flash_verify
 
cfg_flash_remove_device:删除flash器件命令,无参数。
用法:cfg_flash_remove_device
 
cfg_flash_program_properties:设置flash的下载属性,三个参数;
-pmode  设置program的模式,“fast”,  “typic”,  “performance”
-verify   设置program之后是否进行verify,参数类型Boolean_value (TRUE/FALSE)
-erase    设置program之前是否进行erase,参数类型Boolean_value (TRUE/FALSE)
      用法:cfg_flash_program_properties –pmode “fast” –verify true –erase true
 
cfg_flash_erase_properties:设置flash的擦除属性,一个参数;
-emode 设置flash的erase模式, “auto”,  “sector”,  “bulk”
用法: cfg_flash_erase_properties –emode “sector”
 
cfg_gen_sfc :产生关于flash的SFC文件,5个参数;
-sbit 指定要转换的sbit文件
[-sfc] 指定生成的sfc文件名,默认值为sbit文件同路径下的同名的sfc文件
[-opcode] 指定操作码(11(0x0B), 59(0x3B), 107(0x6B), 12(0x0C), 60(0x3C), 108(0x6C),默认缺省11
[-device_name] 指定兼容的flash器件, 缺省默认N25Q256
[-is_x8] 转换成X8数据流,默认为false。
用法: cfg_gen_sfc –sbit  sbit文件
4、针对板上自动化操作的命令,自动化测试中的一个测试用例为一个文件夹,必须包含以下三种格式的同名文件:*.sbit,*.lcf,*.vcd;文件夹的名称与位流文件名保持一致,其他命令如下:
cfg_load_dir 解析测试用例目录生成Tcl脚本 包含两个参数
-file(要解析的目录)
[-time]设置在program与load excite之间延时时间,参数类型为大于0的整数
[ -clock_mode] 设置板上自动化的时钟,默认为JTAG时钟。
[-time] 设置在program与load excite之间延时时间,参数类型为大于0的整数
用法:cfg_load_dir -file D:/auto_test –time integer-value表示将对D:/auto_test文件夹及其子目录进行解析,并且program与load excite之间延时integer-value,在每个测试用例的文件夹下都会生成相应的TclScript.tcl脚本。
 
cfg_write_all_tcl_file 收集指定目录和其子目录下的Tclscript.tcl文件形成一个总的AllTclScript.tcl 包含一个参数 -file(要解析的目录)
用法:cfg_write_all_tcl_file -file D:/auto_test
 
cfg_load_excite 加载激励 包含5个参数,
-device_index(器件的索引 默认为0)
–efile (vcd文件)
–lfile (lcf文件 默认为与vcd同名文件)
–rfile (report文件名 默认为report.txt)
–clock_mode (时钟模式,默认为JTAG时钟)
用法:cfg_load_excite -efile D:/auto_test/test.vcd
 
cfg_write_all_report_file收集指定目录下的所有report文件,形成一个总的概略性的名为AllReport.xlsx的excel文件 包含一个参数 –file(要解析的目录)
用法:cfg_write_all_report_file –file D:/auto_test
cfg_write_auto_test对指定目录生成一个自动化测试脚本, 包含5个参数 –file(要解析的目录)
[-rpt_detail]  设置板上自动化是否写详细报告, 参数类型Boolean_value (TRUE/FALSE)
[ -clock_mode] 设置板上自动化的时钟,默认为JTAG时钟。
[-time] 设置在program与load excite之间延时时间,参数类型为大于0的整数
[-server_delay_time] 设置server的延时时间,即延时多长后,server开始读取数据。参数类型为大于0的整数
用法:cfg_write_auto_test –file D:/auto_test –rpt_detail true –clock_mode 1 -server_delay_time integer-value –time integer-value
 
22.    执行Tcl脚本
支持用户进行批量化执行操作(Tcl 命令),点击Operation菜单下的Execute Tcl File选项,出现图4-61所示执行tcl脚本的窗口。

图4-61    执行tcl脚本窗口
Tcl脚本是由Tcl Command组合起来以.tcl为后缀的文件,
 
23.    记录Tcl命令操作
  在Output菜单如下图4-62所示,Tcl Record File以tcl命令形式记录用户操作功能,点击Create Tcl Record File菜单选项可以创建新的tcl文件进行记录,也可通过点击Append Tcl Record File菜单选项附加在已存在的tcl文件中,然后可使用operation菜单中的Execute tcl file功能执行tcl文件,记录时,tcl文件中记录的是相对路径,并且在tcl文件的当前路径创建tcl_bit_file文件夹保存用户操作的位流文件,将tcl文件和tcl_bit_file文件夹同时移到其他路径,也可执行tcl文件

图4-62    Output菜单
其中用户操作与Tcl命令的对应操作如下所示
tcl命令
用户操作
cfg_connect
连接server服务器操作
cfg_disconnect
断开server服务器操作
cfg_add_device
添加器件操作
cfg_assign_file
对器件配置文件操作
cfg_program
下载操作
cfg_readback
回读操作
cfg_verify
校验操作
cfg_read_device_id
读取器件ID操作
cfg_read_user_code
读取器件中的user code操作
cfg_read_status_register
读取器件的状态寄存器操作
cfg_remove_devices
删除器件操作
cfg_flash_add_device
添加SPI Flash器件操作
cfg_flash_assign_file
对SPI Flash器件配置文件操作
cfg_flash_program
SPI Flash器件下载操作
cfg_flash_erase
SPI Flash器件擦除操作
cfg_flash_readback
SPI Flash器件回读操作
cfg_flash_verify
SPI Flash器件校验操作
cfg_flash_remove_device
删除SPI Flash器件操作
此项操作需注意以下几点:
1> 记录用户操作为tcl文件时,当用户操作位流文件如对器件配置文件操作、对SPI Flash器件配置文件操作等,会将用户操作的文件复制一份到tcl文件所在路径的tcl_bit_file文件夹下,所记录的路径也是相对tcl文件的路径。
2> tcl记录的是相对路径,因此可以将tcl文件以及tcl_bit_file文件夹移动到其他路径或其他电脑上进行执行。
 
24.    JTAG Debug 操作
在Debug菜单下点击Enable/Disable Debug Chain选项,出现Boundary Scan Chain Debug窗口如图4-63所示,可以进行JTAG debug。

图4-63    JTAG Debug窗口
JTAG Debug调试命令包含:Run Test、Scan Instruction Register、Scan Data Register、Goto State。如下命令组合方式读取器件的id,先进行Scan Instruction Register,输入1010000011(id code指令),设置TCK参数为10(指令长度),设置目标状态为End in Run-Test/Idle,然后点击执行出现如图4-64所示窗口。

图4-64    Scan Instruction Register窗口
然后Scan Data Register,设置TCK参数为32(id code 长度),点击执行出现如图4-65所示窗口,从TDO得到id code值为00000000001000001001100010011001。

图4-65    Scan Data Register窗口
25.    生成与执行SVF 文件操作
在Output菜单如下图4-62所示,可以用SVF文件形式记录用户操作功能,点击Create SVF File菜单选项可以创建新的SVF文件进行记录如图4-66所示,也可通过点击Append SVF File菜单选项附加在已存在的SVF文件中,SVF记录用户的操作目前只支持JTAG Debug 操作,所有的用户JTAG Debug都可记录在指定的SVF文件中,操作完JTAG Debug后,通过点击图4-67所示的Stop Write SVF File,生成SVF文件。

图4-66    创建SVF文件

图4-67    停止写SVF文件
生成SVF文件后,通过增加器件的方式,将SVF文件配置在器件中如图4-68所示。

图4-68    配置SVF文件
在器件出右击弹出菜单如图4-69所示,点击Execute SVF File选项,执行的结果如图4-70所示。

图4-69    SVF器件右击菜单

图4-70    SVF文件执行结果
26.    链完整性测试
在Debug 菜单通过点击Chain Integrity Test 选项,测试当前的JTAG链是否为一个通路。如JTAG链为通路,则显示当前链上器件的数量,如图4-71所示。

图4-71    测试链完整性成功
测试链失败会显示如图4-72所示。

图4-72    测试链完整性失败
27.    设置用户自定义信息
当打开多个configuration软件时,用户可以设置标识区分信息来区别多个configuration软件的不同用处。在Edit菜单下点击Set User Defined info如图4-73所示。出现设置用户自定义信息的对话框如图4-74所示。

图4-73   Set User Defined info菜单项

图4-74    Set User Defined info对话框
设置成功后,用户的自定义信息会显示在标题栏中,如图4-75所示。用户执行Tcl脚本后,会生成一个以用户自定义信息的tcl执行结果文件如下图4-76所示,执行结果文件内容如图4-77所示。

图4-75    标题栏中用户信息

图4-76    执行Tcl后的结果文件

图4-77    tcl执行结果文件内容
28.    生成黄金数据流及其组合数据流
在Operations菜单中出现“Generate Multi Revision Programming file”选项如图4-78所示,其主要功能是生成黄金数据流及组合数据流的Flash下载文件。

图4-78    Operations菜单
点击“ Generate Multi Revision Programming file”选项后弹出对话框如图4-79所示。

图4-79    Generate Multi Revision Programming File对话框
通过点击add file按钮添加产生黄金组合数据流的sfc文件,文件前面的序号为实际revision的位置,通过move up和move down按钮调整下载到flash相应revision位置。通过点击del file按钮可以删除添加的flash文件信息。Muti Revision SFC File 为产生的数据流的名称,默认为第一个位流文件名后加_mul.sfc,也可以使用选择文件按钮指定文件名,如图4-80所示。

图4-80    操作Generate Multi Revision Programming file对话框

图4-81    Multi数据生成成功
选择好位流文件以及调整好文件的位置后,点击OK按钮,生成Multi Revision数据流,如图4-81所示,成功产生Multi Revision Programming数据。
注:1、黄金数据流当且仅当只有一个SFC文件时,才能进行生成。
2、SPI 数据流与BPI数据流是互斥的,只能勾选一个。
3、当SPI和BPI数据都不勾选时,生成多功能数据流。
4、组合数据流最多支持4个数据流进行组合。
29.    JTAG扫描Flash器件
PGL22G支持直接编程外部Flash,可通过右击弹出菜单,点击Scan Outer Flash可扫链外部Flash器件,具体如下图4-82所示。

图4-82    PGL22G操作菜单
扫描外部Flash成功后可使用JTAG接口对Flash器件进行Erase、Program、Verify操作,具体如下图4-83所示。

图4-83    JTAG操作Flash器件
30.    读取器件的UID
PGL22G支持读取器件的唯一编码UID,可通过右击弹出菜单,点击Get UID可读取当前器件的UID,具体如下图4-84所示。

图4-84    读取器件的UID

看完的结果就是,这么多的内容???我咋都没用到过呢???看样子需要打怪进阶,才需要多看。

紫光同创国产FPGA学习之Fabric Configuration相关推荐

  1. 紫光同创国产FPGA学习之Fabric Inserter

    这一篇文章也是从紫光同创那边拷贝过来的.这个是在线逻辑分析仪调试,和xilinx的也差不多,所以,基本看过就能用了.具体有什么新的功能添加.我就不知道了.我看看,如果有特别的就在用另外的文章写了. 一 ...

  2. 紫光同创国产FPGA学习之Fabric Debugger

    文章从紫光同创参考书拷贝过来的.因为我用的时候,看了一下就会用了(纯粹只是会用了,默认和xilinx的一样),没有看教程.先更新点文本,后面在写程序. 一.      软件简介 Fabric Debu ...

  3. 紫光同创国产FPGA学习之IP Compiler

    这里就是紫光同创里面IP核的使用方法,缺少一个重要的内容就是,里面的IP怎么用没有写.看看也好,具体核怎么用仿真一下看看应该也和xilinx的一样吧.如果不一样,查找bug就危险了. 一.       ...

  4. 紫光同创国产FPGA学习之Power Calculator

    紫光同创里面的,芯片功耗计算.没看过,没用过.有兴趣瞄一下.我又不用再电池行业,对电源没啥要求. 没用经验之谈,拷贝参考书. 一.总体介绍 (一)Pango Power Calculator总体介绍 ...

  5. 紫光同创国产FPGA学习之Timing Analyzer

    紫光同创的文档拷贝过来的.我怎么看都发现,怎么这么关键的东西,咋不够详细呢???分析是一方面,修改是另一方面了. 一.TA总体介绍 Timing Analyzer是一款用于时序分析的软件,用户可以通过 ...

  6. 紫光同创国产FPGA学习之了解器件和软件

    使用有一段时间了,感觉还可以吧,如果一年没啥大情况的话,低端使用就没啥问题了.我做FPGA也有5年了,从整体来说,感觉紫光的FPGA使用起来难度不大.国产的,便宜不说,技术支持也比较容易,当然技术支持 ...

  7. 紫光同创国产FPGA学习之器件情况

    国产的FPGA目前比较少,年轻没有办法的,所以,器件也没什么好选的. 两个系列titan和logos.好像titan系列的芯片,一般情况买不到.估摸着没点量,人家不卖给你.好吧.只能选logos系列了 ...

  8. 紫光同创国产FPGA学习之Design Editor

    这一篇也是从紫光参考书里面拷贝出来的.这个design editor我很少用.你们凑合的看吧. 一.       功能介绍 该文档详细描述了Design Editor(下文简称DE)的各项功能,使用方 ...

  9. 紫光同创国产FPGA学习之Physical Constraint Editor

    从紫光的参考书拷贝的.很详细.他们要写那么详细,好辛苦啊. 一.       功能介绍 (一)   PCE简介 该文档详细描述了Physical Constraint Editor(以后简称PCE)的 ...

最新文章

  1. 如何进行网站主题模型优化_如何进行网站关键词优化
  2. pandas版本_Datawhale十二月Pandas组学习打卡Task00.准备工作
  3. fftw_plan_dft_2d重复优化
  4. java.lang.Math
  5. html语言填充没有只有描边,HTML5 Canvas笔记——交互绘制文本(描边、填充、阴影、渐变填充、图案填充、文本的属性设置)...
  6. 我所认识的JavaScript正则表达式
  7. 排序算法 -- 待增加
  8. Python实现大自然数分解为最多4个平方数之和(1)
  9. idea允许多实例运行
  10. 一个大数据应用是如何炼成的?
  11. java1乘到10000_你如何制作一个10000的数组,只有1-1000的值?
  12. python集成包地址 Anaconda 一键安装拥有所有包
  13. 张小龙 4 小时演讲没时间看?看这一篇就够了!「附赠张小龙历年演讲实录 PDF」...
  14. 电子电路学习笔记(12)——稳压二极管
  15. RTC唤醒低功耗(standby)模式
  16. 播放器显示服务器失败是什么意思,播放器没有办法播放
  17. 抖音直播Web端框架及消息处理流程分析(新鲜出炉)
  18. 二维码扫描登录,你必须知道的 3 件事!
  19. java 设置纸张大小设置_java page如何设置纸张
  20. 安装nagios出现的两个错误记录

热门文章

  1. android 页面默认不弹软键盘_Android避免进入页面自动弹出软键盘(真正好用)
  2. STL源码剖析(四):容器(6)Rb_tree
  3. ikbc pocker键盘 快捷键说明
  4. 【Cheatsheet】Java的常用代码(以及eclipse技巧)
  5. bingo培训——软件设计
  6. 一种高性能计算机网络控制技术,一种高性能流量计算机的研制
  7. 探访广东第二鬼城,一座长在石油上的城市
  8. Arcgis实验一 空间数据数字化、投影变换与仿射变换
  9. RFID技术对危化品实行安全化
  10. html5跟随手指的小球,Android自定义圆形View实现小球跟随手指移动效果(详细介绍)...