基础Express – Meta对基础Express 1.5(SyoPysS)VHDL转换指南-Xilinx-AMD社区-FPGA CPLD-ChipDebug

基础Express – Meta对基础Express 1.5(SyoPysS)VHDL转换指南

描述

关键词:基础Express 1.5、Meta、SyopSype、VHDL、语法、转换、库、库、属性

紧迫性:标准

一般描述:
将项目和代码从Meta Mavor VHDL语法转换为基础Express(SyoPySe)VHDL语法的指南可以在基础联机帮助中找到;从项目管理器中选择帮助-GT;基础帮助内容-GT;应用注释(在中心,标题“技术”下)-GT表示转换指南。

全文也出现在下面的决议中。

解决方案

介绍

本文档描述了将VHDL设计从XVHDL(Meta MAMOR)VHDL编译器迁移到Express VHDL编译器的过程和建议。XVHDL是基础1.4和更早的嵌入式VHDL编译器。从基础1.5发布开始,SyoPSyS的FPGA Express VHDL和Verilog编译器嵌入到基础中。

重要的是要注意,XVHDL和Express之间的主要区别之一是IEEE VHDL—963的遵从性。XVHDL是一个完全符合IEEE VHDL—63标准的工具。Express支持许多最常用的VHDL—900综合结构,但尚未完全兼容;它仍然符合IEEE VHDL—97标准。下面的列表显示了在F1.5中表示支持的附加VHDL—93构造:

结束实体实体名称;
建筑建筑学名称;
结束组件组件Simple EngNess;
结束配置配置名称;
终端包装包装名称;
终端包装主体包装名称;
结束记录记录简单名称;
组件组件名是
[标签:]过程[(灵敏度列表)]
标签:组件组件名
标签:并发信号;
“图像(X);

生成语句中的块声明
(VHDL LRM第9.7节)
别名关键字(必须声明类型)
上升沿(CLK)
FLIN边缘(CLK)
总线(5下降到2)& lt=(其他=&>0′);
(与他人的数组切片)

如果您觉得您宁愿继续使用XFHDL编译器,而不是迁移到基础1.5,可以继续使用此流程,而不必对项目进行任何修改。如果您确实希望迁移到新的Express流,则必须首先将项目转换为新项目类型,才能启用此特性。此过程在项目类型转换主题中进行了描述。

转换项目类型

当将设计从基础F1.4 XVHDL流程迁移到基础F1.5 Express流时,必须首先转换基础项目类型。基础中的项目类型定义了除此之外,将使用哪些综合工具XVHDL或Express来编译VHDL文件。在基础1.3和1.4中,项目类型被命名为“XACTSTEP M1”。Foundation F1.5,新项目类型被命名为“基础系列V1.5”。对于顶层示意图设计,F1.4和F1.5之间的整体流的差异最小。然而,对于顶级HDL设计,总体流程,尤其是对于综合而言,有点不同。不同之处在于,从XVHDL到Express编译器的升级。我们将在整个应用笔记中讨论流程的差异。

按照以下步骤转换项目类型:

1。打开你现有的基础项目。

该项目将被打开,并将作为XACTSTEP M1项目类型维护。

2。从项目管理器的文件菜单中选择项目类型。使用下拉菜单将项目类型设置为基础系列V1.5,然后选择“更改”。这将改变项目类型,以便使用新的基础1.5个特性,包括Express VHDL编译器。

对于基础F1.5的HDL项目的新设计流程的总结,请参考基础系列用户指南的“HDL设计流程”章节。

转换库

XVHDL编译器使用的VHDL库与Express编译器略有不同。因此,必须修改库声明以与Express编译器保持一致。使用下面的图表适当地修改代码。

XVHDL……快车
———————————————————————-
库……包装……库……包装
——————————————————–
IEEE……StdLogLogi1164……
SyopSys..……
SyopSys.StdLogLogic未签名…IEEE…StdLogLogic未签名
…………………………
………………………

XVHDL中只有一个在Express中没有等效项的库包是Meta MAMOR属性包。本指南的下一节将描述如何转换VHDL代码中可能使用的任何Meta MAMOR属性。

转换属性

Express使用约束GUI来输入设计约束和其他架构特定的特征。在XVHDL代码中使用的许多属性将使用Express GUI实现。Express不支持通过VHDL代码的属性。基础Express包(FND BSX)不包括Express约束GUI,因此如果您有BASIC Express包,则将使用下面描述的其他方法来实现这些属性。

下表列出了一些最常用的XVHDL属性及其Express约束GUI和UCF文件等值。在本表后面的部分中,讨论了不具有直接约束GUI或UCF等价的其他常用XVHDL属性。如果您的VHDL代码中没有任何其他XVHDL特定属性或构造,请参阅Xilinx技术支持,如有必要,请进一步指导。

……XVHDL语法……表示约束GUI……UCF
——————–TAP-标题值
———————————————————————-

PNNUM……属性PNNUM…端口…PAD LOC p15….NET Mysig sig LOC= p15;
MyOsig:信号是“15”;

快速……属性快速……端口:转换速率快……净Mysig快速;
MYYSIG:信号是真实的;

慢………属性慢……端口…回转速度慢……网Mysig慢;
MYYSIG:信号是真实的;

西林溪
CPLD的XILNXXBUFG端口全局缓冲区BUFG:
Myssig:信号是真的;
BUFG=CLK;
FPGA:N/A

Ly/RLOC属性LOC的Myosig:n/a in MySysig LOC=R1C1;
信号为“R1C1”;

优化模块的属性优化——对区域内MyMax模块的优化
MYO模块:实体是“区域”;优化=区域;

转换其他属性

要从XVHDL转换为Express的其他属性包括:

TNM

缓蚀剂

临界的

锡林郭勒GSR

枚举编码

西林溪

转换CPLD特定属性

转换TNM属性

Express不支持通过HDL代码传递TNM属性。然而,通过使用Express约束GUI,添加TimeScript更简单。

修改XVHDL代码:

1。从HDL文件中删除TNM属性。

2。在Express约束GUI内实现当前在UCF文件中的TimeScript。

您可以通过创建子组来在约束GUI内创建时间组。

如果您有一个Express基本包,因此无法访问Express约束GUI,您将使用Xilinx约束编辑器创建您的TimeScript,或者使用UCF文件(开发系统参考指南中描述的)。

转换禁止BUF属性

在XVHDL中使用IctudioBuf属性以防止编译器在输入或输出端口插入IBF或OBUF。当您在I/O端口实例化I/O触发器或全局缓冲器时,您希望在XVHDL这样做。在这些情况下,不需要I/O缓冲器。然而,Express不需要这个属性来正确地实现设计。当实例化一个全局缓冲区或一个带有I/O的I/O触发器时,不需要使用IctudioBuf属性。

修改XVHDL代码:

1。从HDL文件中删除IbjixBuf属性。

2。您可以保留全局缓冲区和I/O触发器实例。

转换临界属性

Express中没有等价的属性或函数来代替XVHDL关键属性。Express有能力保留块而不是网,这是关键属性。若要保存层次块,请转到Express约束GUI中的模块选项卡,并在层次结构和/或图元标题下选择保留。

转换XILIXX-GSR属性

XILXXJGSR属性与XVHDL一起使用,以从设计中移除不需要的重置网络,以便能够使用全局重置网络。Express略微不同地处理这种情况,您的代码需要稍加修改。

对于XC3000的设计和设计,其中复位信号不到每一个触发器:

1。从HDL文件中删除XILIXXJGSR属性

2。将代码添加到代码中以重置复位信号(即,复位和lt;=0);

通过对RESET网进行接地,您可以使工具裁剪出网,提供与XILIXXJGSR属性相同的功能。

XC4000/XC5200设计:

1。如果复位信号进入HDL代码中的每个触发器,Express将自动推断启动块,这将允许使用全局设置/重置网络。在这种情况下,XILNXXGSR属性应该从HDL代码中删除,代码应该按原样保留。重置网络将通过Express编译器自动连接到启动块。

转换枚举编码属性

在XVHDL中使用枚举编码属性来定义设计中状态机的编码方案。在使用XVHDL时,枚举编码属性在Meta MAMROL库的属性包中声明。枚举编码属性也可以与Express一起使用,但略有不同。使用XVHDL,枚举编码的声明类型之一是?一个热点?使用Express,您不能定义这种类型吗?一个热点?但是,你必须明确地定义状态。例如:

在XVHDL:
类型StayeType是(S1,S2,S3);
STATEYTYPE类型的属性枚举编码:类型是“一个热点”;

Express:
类型StayeType是(S1,S2,S3);
TestEngType的TopRead枚举编码:类型是“001 010 100”;

或者,您可以在“综合选项”对话框中定义编码方案。FSM提取是使用对话框中指定的编码方案自动完成的吗?S FSM综合:默认编码单选按钮。若要访问“综合选项”对话框,请从项目管理器中选择“综合= & gt”选项。

转换XILIXX-BUFG属性

XILINXXBUFG属性是一个XVHDL属性,它指示XVHDL编译器在指定的输入端口插入一个BUFG。使用Express,可以使用约束GUI在特定端口上指定BUFGs,如属性转换表中所示。如果您有一个Express基本包,因此无法访问Express约束GUI,那么您必须在FPGA设计的期望端口实例化BUFG。请注意,Express会自动推断出时钟端口上的BUFG,所以这种实例化方法只在您希望在非时钟端口上放置BUFG时才是必要的。

BUFG实例化示例:
-(组件声明)
组件BUFG
端口(I:在STDYLogic中;O:输出STDYLogic);
端部元件;
-(组件实例化)
U1:BUFG端口映射(I=& Gt;MyIpPoT,O= & Gt;SigiTin);

注意:对于CPLD设计,Express将不推断任何BUFG缓冲区。相反,CPLDfitter自动分配输入时钟作为可用的全局时钟(GCK)引脚的时钟。如果要显式地将输入端口分配给全局时钟PIN,并且具有Express基本包,则在UCF文件中使用以下属性:

Net Mysig Bug=CLK;

十一

转换CPLD特定属性

XVHDL允许从VHDL源设计中定义并传递多个CPLD特定属性。这些包括init、保持、pWryMype和Bufg,用于全局时钟、全局输出使能和全局设置/复位。

保持属性旨在迫使fitter保持内部逻辑网络并防止网络崩溃。然而,Express不具备保存内部逻辑网的能力,因此通常没有实用的方法将保持属性应用到内部网传递给fitter。

其余属性都可以使用UCF文件应用,使用表单:
NETSaleNavigNeNealAtditEngEng=属性值;

例如:
Net MyReg init=S;
NET MyIOE BUFG = OE;

十二

优化

在XVHDL和Express中进行优化的方法是不同的。XVHDL没有在综合中提供任何组合逻辑减少优化或映射。在HDL编辑器综合选项中设置的区域、平衡、速度或关闭的优化策略实际上是在设计流程的实现阶段传递给MAP程序的标志。XVHDL编译器在基于所选择的优化策略的综合中没有做任何不同的事情;它只是将选项传递到网表,以便以后在MAP中使用。Express提供了相同类型的优化策略,但是优化实际上是在流的综合阶段由Express执行的,而不是在流的MAP阶段中执行的。

在综合/实现对话框的综合设置部分中选择总体设计的优化策略。在这里,您可以选择优化区域或速度,并以高或低的努力水平。您在这里选择的选择将适用于整个设计。

如果希望在每个模块基础上设置优化策略和努力级别,则可以使用Express约束GUI,如属性转换表中所示。如果您有Express基本包,因此无法访问Express约束GUI,则可以将设置放在UCF文件中,也可以在属性转换表中指示。但是,当选择通过UCF文件时,它调用了MAP中的优化程序,而不是针对各个模块的Express优化。无论是Express还是MAP都进行了每个模块优化,结果应该是非常可比的。综上所述,如果您有一个基础库Express包,并且希望在每个模块的基础上进行优化(即,您希望优化一些模块的区域和一些速度),那么您必须使用UCF文件来传递该优化设置,以便在流程的实现阶段映射。

请登录后发表评论

    没有回复内容