F1.x状态机编辑器:语法错误1031:未定义的标识符名称“SReG0”-Xilinx-AMD社区-FPGA CPLD-ChipDebug

F1.x状态机编辑器:语法错误1031:未定义的标识符名称“SReG0”

描述

关键词:用户定义编码,XABEL,状态机

紧迫性:标准

一般描述:

指定用户定义的编码方案
基础1 .x状态编辑器,然后尝试综合
状态机给出一个类似于此的错误消息:

语法错误1031:未定义的标识符名称“SReG0”

以及其他几个错误消息。

这个错误的原因是状态寄存器声明。
在为用户定义生成的ABEL代码中被忽略
编码方案。

人们可以通过比较ABEL码来观察这种行为。
为二进制编码状态机生成
为用户定义的编码状态机生成的。在
八态状态机的声明部分
观察以下几行:

声明

“*******二进制编码状态机:SReG0******
SRe00G0节点Sistype“Reg”;
Xilinx属性“保存SReG00E0”;
SRe001节点Sistype“Reg”;
Xilinx属性“保存SRig01”;
SRe00G2节点Sistype“Reg”;
Xilinx属性“保存SRig02”;

SReG0= = SRe00E2,SRe00E1,SRe00Y0];

S1=0;
S2=1;
S3=2;
S4=3;
S5=4;
S6=5;
S7=6;
S8=7;

如图所示,S1…S7在α数值中被分配状态。
秩序。如果要使用用户定义的编码
相同的状态赋值:生成的代码看起来像:

“用户定义的编码状态机:SReG0******
“***
“*******!!!!!用户必须声明:状态寄存器和所有状态代码!!!!!

S1=0;
S2=1;
S3=2;
S4=3;
S5=4;
S6=5;
S7=6;
S8=7;

从上述代码非常明显的是状态寄存器
缺少定义。错误是由缺失导致的。
状态寄存器定义。

解决方案

如在一般描述中所示的只是剪切和粘贴。
从生成的代码中声明状态寄存器
二进制编码状态机的代码
用户定义的代码。从状态机编辑器:
综合与gt;HDL代码生成

当修改HDL编辑器中的代码时,请确保
编辑-gt;只读选项未选中,以便必要。
可以进行修改。还可以修改用户
使用HDL在生成的代码文件中定义编码状态
编辑。保存文件并直接从HDL综合
编辑(综合与综合)。现在,状态机的宏也可以直接从HDL编辑器创建。

注意:如果返回状态编辑器并重新生成
状态机的HDL代码
被改写。因此,必须确保
任何更改都必须进行必要的修改
到状态机。这可能是一个麻烦。
一段较长的时间。一个更简单的选择是分辨率2。

在状态机编辑器中按字母顺序标注状态。
命令一个用户定义的方式
数值顺序。例如,对于四态状态机:

S1=3;
S2=2;
S3=0;
S4=1;

这将根据用户定义的编码方案进行分类。
可以使用二进制编码实现这个相同的SeMe
只需将状态编辑器中的状态名重命名如下:

S3是A,S4是B,S2是C,S1是D。
S3是食蚁兽,S4是杂技演员,S2是建筑师,S1是窃贼。
等等…

由于状态编辑器分配状态编号分配
按上述顺序,上述更名将通过。
作为二进制编码,也将实现所需的
用户定义的编码。

生成的代码看起来像:

A=0;
B=1;
C=2;
d=3;

请登录后发表评论

    没有回复内容