在使用quartus ii进行FPGA开发时,遇到如下警告信息:
Critical Warning: Synopsys Design Constraints File file not found: 'CMTT.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design.
Critical Warning: Synopsys Design Constraints File file not found: 'CMTT.sdc'. A Synopsys Design Constraints File is required by the TimeQuest Timing Analyzer to get proper timing constraints. Without it, the Compiler will not properly optimize the design.
实际上这个警告并不影响我的程序的运行,但是还是查找了一下相关的信息,来解决这个问题。
言归正传,对这个问题的分析要从问题开始,什么sdc文件?
Sdc文件即Synopsys Design Constraints File。翻译成中文是混合信号仿真设计限制文件。从字面意思我们就可以知道是缺少限制文件。再结合稳重提到的TimeQuest Timing Analyzer可以更加肯定,后文中也给出TimeQuest Timing Analyzer to get proper timing constraints.
好了,知道问题的症结所在,我们就可以下手来解决问题了
我们要做的就是利用TimeQuest Timing Analyzer来添加时序约束。如下图所示
![关于FPGA中的警告:Critical <wbr>Warning: <wbr>Synopsys <wbr>Design <wbr>Constraints <wbr>File <wbr>file <wbr>not <wbr>found: 关于FPGA中的警告:Critical <wbr>Warning: <wbr>Synopsys <wbr>Design <wbr>Constraints <wbr>File <wbr>file <wbr>not <wbr>found:](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
打开后界面如下图所示。
![关于FPGA中的警告:Critical <wbr>Warning: <wbr>Synopsys <wbr>Design <wbr>Constraints <wbr>File <wbr>file <wbr>not <wbr>found: 关于FPGA中的警告:Critical <wbr>Warning: <wbr>Synopsys <wbr>Design <wbr>Constraints <wbr>File <wbr>file <wbr>not <wbr>found:](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
好开始干正事了。
点击菜单栏 Netlist Create Timing Netlist,弹出的菜单中使用默认设置,点击 OK 便可。
接着进行时钟约束,点击菜单栏 ConstraintsCreate Clock。 Clock name 是我们随便给约束的
信号起的名字,没有特别限制; Period 为时钟周期,我们的时钟晶振是 50MHz 的,即 25ns;
Targets 选择实际被约束的时钟引脚,点击改行最后面的按钮可以选择相应的引脚信号; SDC
command 无须设置,自动根据前面的设置生成, Waveform edges 也无须设置,我们采用默
认设置,即 0ns 时钟上升, 20ns 下降。点击 Run 完成约束设置。
接着进行时钟约束,点击菜单栏 ConstraintsCreate Clock。 Clock name 是我们随便给约束的
信号起的名字,没有特别限制; Period 为时钟周期,我们的时钟晶振是 50MHz 的,即
Targets 选择实际被约束的时钟引脚,点击改行最后面的按钮可以选择相应的引脚信号; SDC
command 无须设置,自动根据前面的设置生成, Waveform edges 也无须设置,我们采用默
认设置,即 0ns 时钟上升, 20ns 下降。点击 Run 完成约束设置。
设置完时序约束文件,当时要更新他啦。接下来,我们要依次点击主界面右下方 task 栏里的 Update Timing Netlist和 Write SDC File选项,弹出的 Write SDC File 窗口如图所示,我们更改 SDC file name 为CMT.sdc,接着点击 OK。(大家习惯的都是把文件名字设成与工程名字一样的
)
![关于FPGA中的警告:Critical <wbr>Warning: <wbr>Synopsys <wbr>Design <wbr>Constraints <wbr>File <wbr>file <wbr>not <wbr>found: 关于FPGA中的警告:Critical <wbr>Warning: <wbr>Synopsys <wbr>Design <wbr>Constraints <wbr>File <wbr>file <wbr>not <wbr>found:](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
好了设置完成了,我们可以去,查看一个叫做CMT.sdc的文件了(其实就是我们之前生成的时序约束文件)。打开看看有什么?没错就是下面这句话
create_clock -name {CLK} -period 25.000 -waveform { 0.000 12.500 } [get_ports {CLOCK}]