什么是XCO、XAW文件——CoreGen文件概述

什么是XCO、XAW文件——CoreGen文件概述,第1张

二、输入文件CGF文件:是一个log文件,在使用MemoryEditor时记录用户定制的输入以产生COE文件。该文件可以用于定义memory块(COE文件)的数据内容。COE文件:是一个ASCII格式的输入文件,当一个core需要配置多个数据时握颂使用该文件。比如为FIR滤波器指定多个系数,为相关器指定mask模式,以及为memory模块指定初始化值。XAW文件:是一个二进制文件,是使用CoreGen产生Core时一系列输出文件中的一个,里面存放了使用“architecture Wizard”产生core时所设置的参数。当重新定制该core时,XAW文件可以作为一个输入文件提示原来的设置。XCO文件:是使用CoreGen产生Core时一系列输出文件中的一个,里面存放了产生core时所需的参数。当重新定制该core时,XCO文件可以作为一个输入文件提示原来的设置。三、输出文件ASY文件:一个图形symbol文件,用于ISE或者第三方接口软件表示该core。coregen.log文件:故名思忆,是coregen过程中的log文件。 EDN文件:是Core的EDIF implementation Netlist文件知胡,用于描述该Core的实现方法。是ISE实现时的输入文件。padded.edn (略) flist.txt:所有输出文件的列表。MIF文件:Memory initialization file。是memory初始化文件,当指定HDL simulation flow时,该文件自动生成。该文件可以用于支持某些模块的HDL功能仿真。比如前面提到内存、FIR滤波器和bit相关器。NDF文件:这是产生带NGC文件的core时可选的输出文件。该文件允许第三方综合工具利用NGC文件推导资源利用和时序信息。NGC文件:一个二进制Xilinx implementation netlist文件。某些CoreGen IP的逻辑实现通过一个顶层的EDN文件加上若干NGC文件来描述。 padded.edn (略) SYM文件:schemetic symbol文件。在使用ISE schematic editor时,用于例化Core的图形。UCF文件:用户约束文件。当使用architecture wizard产生core时产生该文件。文件内部的约束内容会被粘贴到ISE工程的UCF文件中V文件:verilog wrapper文件,该文件用于支持针对core的verilog 功能仿真。V wrapper 将用户定制的搭皮拦参数传递到通用的core仿真模型文件中。如果V输出文件命名为core_name_for.v,那么该文件支持形式验证。VEO文件:Verilog 模板文件。该文件中的组件可以用于例化一个core。VHD文件:该文件功能同V文件,不同之处是他是VHDL格式的。VHO文件:同VEO文件,不同之处是他是VHDL格式的。XAW文件:二进制文件,内含architecture wizard core 的配置信息。该文件由CoreGen在生成Architecture wizard core时产生。该文件也可以作为CoreGen的输入。 XCO文件:该文件存储了生成特定core时所必需的项目和Core参数。在项目目录下创建Core时XCO文件自动生成。 XSF文件:一个xilinx netlist format 端口列表文件。Readme文件:(略)

通过闹模系统漏洞来攻击的病毒,就是漏洞类病毒。 启弯李 

病毒名称:Trojan/PSW.OnLineGames.edn

中 文 名:“网游窃贼”变种edn

病毒长度:19968字节

病毒类型:木马

危险级别:★★

影响平台:Win 9X/ME/NT/2000/XP/2003

Trojan/PSW.OnLineGames.edn“网游窃贼”变种edn是“网游窃贼”木马家族最新成员之一,采用VC++ 6.0编写。“网游窃贼”变种edn运行后,会修改注册表,以实现木马开机自启动。同时病毒会在后台秘密监视用户打开的窗口,一旦发现用户登陆网络游戏《彩虹岛OL》便盗取玩家帐户、密码、金钱、装备、包中物品等私密信息,并在后台将盗取的玩家帐号信息发送悄迟到骇客指定的服务器上,给玩家带来损失。

在EUI中,EXML是可以运行时加载解析的。您可以把它当做标准的文本文件加载后解析,或者直接将exml文本内容嵌入代码中解析。在下一节我们将详细讲解EXML的语法,这节我们先来看一下如何在代码中使用EXML文件。下面是一个EXML文件内容示例,它描述了一个按钮的皮肤:

<?xml version="1.0" encoding="utf-8" ?>

<e:Skin class="skins.ButtonSkin" states="up,down,disabled" minHeight="50" minWidth="100" xmlns:e="http://ns.egret.com/eui">

<e:Image width="100%" height="100%" scale9Grid="1,3,8,8" alpha.disabled="0.5"

source="button_up_png"

source.down="button_down_png"/>

<e:Label id="labelDisplay" top="8" bottom="8" left="8" right="8"

size="20" fontFamily="Tahoma 'Microsoft Yahei'"

verticalAlign="middle" textAlign="center" text="按钮" textColor="0x000000"/>

<e:Image id="iconDisplay" horizontalCenter="0" verticalCenter="0"/>

<散迟/e:Skin>

运行时显示结果如下:

直接引用EXML文件

第一种方式也是最简漏毁单的方式,因为这个EXML的根节点是Skin,表示这个文件描述的是一个皮肤。在EXML根节点是Skin的情况下,可以直接使用组件的skinName接受EXML文件路径,这通常也是最普遍的使用情景。这里我们假设之前那个EXML文件的路径为:[项目根路径]/resource/skins/ButtonSkin.exml,引用那个ButtonSkin.exml的代码如下:

var button = new eui.Button()

button.skinName = "resource/skins/ButtonSkin.exml"

this.addChild(button)

皮肤文件推荐放在resource目录下。

动态加载EXML文件

上面介绍了EXML根节点是Skin的情况,若不描述的对象不是皮肤,那么我们就得采用更加通用的一种加载解析方式。可以直接使用EXML.load()方法来加载并解析外部的EXML文件,加载完成后,回调函数的参数会传入解析后的类定义,可以把类定义new出来实例化它,或直接赋值给组件的skinName属性(如果EXML根节点是Skin)。下面看个简单例子:

private init():void{

EXML.load("skins/ButtonSkin.exml",this.onLoaded,this)

}

private onLoaded(clazz:any,url:string):void{

var button = new eui.Button()

button.skinName = clazz

this.addChild(button)

}

嵌入EXML到代码

EXML同样也提供了文本的解析方式,这个过程大家可以直接类比对JSON文件的处理,因为几乎是一样的。您可以使用HttpRequest去加载EXML文件的文本内容,然后运行时调用EXML.parse(exmlText)方法去解析即可,会立即返回解析后的类定义。当然,您也可以跳过异步加冲搜李载,直接在代码中嵌入EXML文本内容:

var exmlText = `<?xml version="1.0" encoding="utf-8" ?>

<e:Skin class="skins.ButtonSkin" states="up,down,disabled" minHeight="50" minWidth="100" xmlns:e="http://ns.egret.com/eui">

<e:Image width="100%" height="100%" scale9Grid="1,3,8,8" alpha.disabled="0.5"

source="button_up_png"

source.down="button_down_png"/>

<e:Label id="labelDisplay" top="8" bottom="8" left="8" right="8"

size="20" fontFamily="Tahoma 'Microsoft Yahei'"

verticalAlign="middle" textAlign="center" text="按钮" textColor="0x000000"/>

<e:Image id="iconDisplay" horizontalCenter="0" verticalCenter="0"/>

</e:Skin>`

var button = new eui.Button()

button.skinName = exmlText

this.addChild(button)

注意观察上面的例子,这里有个嵌入多行文本的技巧,您可以不用写一堆的 "n"+ 符号来连接字符串,可以直接使用头尾一对·符号(波浪线那个按键)来包裹多行文本。另外,包含在这对符合之间的文本内容,还可以使用${key}的形式来引用代码中的变量,进行简洁的字符串拼接:

var className = "skins.ButtonSkin"

var exmlText = `<e:Skin class="${className}" states="up,over,down,disabled" xmlns:s="http://ns.egret.com/eui"> ...

</e:Skin>`


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8195220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存