报错信息[Synth 8-1031] cnt is not declared。
![报错信息[Synth 8-1031] cnt is not declared - 第1张 - FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训 报错信息[Synth 8-1031] cnt is not declared - 第1张](https://admin.shaonianxue.cn/wp-content/uploads/2025/11/image-2025-11-09-12-14-45-83.png)
报错信息[Synth 8-1031] cnt is not declared。
![报错信息[Synth 8-1031] cnt is not declared - 第1张 - FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训 报错信息[Synth 8-1031] cnt is not declared - 第1张](https://admin.shaonianxue.cn/wp-content/uploads/2025/11/image-2025-11-09-12-14-45-83.png)
![报错信息[Synth 8-3352]](https://admin.shaonianxue.cn/wp-content/uploads/grafika/prev-next-image-2025-11-02-20-29-30-33.webp)
![报错信息[Chipscope 16-213]](https://admin.shaonianxue.cn/wp-content/uploads/grafika/prev-next-image-2025-11-09-12-14-45-83.webp)
原因:信号没有被声明,多出现在中间信号。
措施:给中间信号添加声明,如 reg、wire。
————————————
75293 - Vivado Synthesis - ERROR: [Synth 8-1031] xxxxxx is not declared
DESCRIPTION
I have encountered the below error when running Synthesis:ERROR: [Synth 8-1031] xxxxxx is not declared.How can I resolve this error?
SOLUTION
This error occurs when the Synthesis tool does not find the declaration of the object.
For example the object could be a library or package that is referenced in this file, a user data type, or a signal name.
1) Compile Order issues
If the error states that a library or package is not declared, it could be a compile order issue.
In general, the library/package files are compiled at the beginning of the file list because they are going to be referenced by the other source files.
You can try changing the compile order list by following the steps below:
GUI project
The GUI can normally analyze the source files and put them in the right compile order.
If you find that the GUI is using an incorrect compile order (this can can be checked in the Compile Order tab in the Sources window), you can right click on the Sources window and select "Hierarchy Update" --> "Manual Compile Order".
You can then then manually change the compile order of the files using drag-and-drop.
Tcl script project
You can change the compile order by changing the order of the add_files or read_xxx command lines so that the library files are added first.
2) Library/package file issues
If the error states that user data types/signal names/functions have not been declared, check if those are expected to be declared in the local source file or in a library/package file.
If they are expected to be in a library/package file, check if you have imported/used the library or package correctly in the file.