当前位置:   article > 正文

quartus综合简单流程(自用)_quartus 综合

quartus 综合

quartus综合简单流程

quartus是Altera的FPGA软件,用于综合verilog代码,生成sof文件,也可转换为jic文件,使用jtag下载进altera的FPGA开发板中。

1建工程

File>New Project Wizard.
新建工程
点击下一步;
设置file name,project name,和目录。
下一步;
选择对应的fpga开发板;
finish;

2 导入设计

在这里插入图片描述
右键点击图中project name,选择setting,然后选择文件类型,点击导入;

3 compile

导入设计文件以后,选择编译;
如果没有sdc文件可以导入,也可以进行编译;
在这里插入图片描述
如果没有语法错误,那么到这一步,只会报这个红色ERROR,TimeQuest Timing Analysis。
此项一般为时序检查未通过,没有sdc文件,所以会出现unconstrained path,port等等。根据自己的设计文件和软件提示,可以在软件的GUI界面进行sdc文件的设置。

一般的sdc文件设置包含以下几项:

1. clk的设置

eg.# create_clock -name aaa_clk -period 20.000 -waveform {0.000 10.000} [get_ports {aaa_clk}]

2. generated clk

此项clk一般为分频的时钟
eg.# create_generated_clock -name clk_div50 -source [get_ports aaa_clk] -divide_by 50 -master_clock aaa_clk [get_nets clk_div50]

3. set clock latency

可以省略

4.set clk uncertainty

eg.# set_clock_uncertainty -rise_from [get_clocks aaa_clk] -rise_to [get_clocks aaa_clk] 0.020
eg.# set_clock_uncertainty -rise_from [get_clocks aaa_clk] -fall_to [get_clocks aaa_clk] 0.020
eg.# set_clock_uncertainty -fall_from [get_clocks aaa_clk] -rise_to [get_clocks aaa_clk] 0.020
eg.# set_clock_uncertainty -fall_from [get_clocks aaa_clk] -fall_to [get_clocks aaa_clk] 0.020

5.set input delay

eg.# set_input_delay -add_delay -clock [get_clocks aaa_clk] 2.000 [get_ports i_rst_n]

6.set output delay

eg.# set_output_delay -add_delay -clock [get_clocks aaa_clk] 2.000 [get_ports o_spi_miso]

7.set clock groups

设置异步clk
eg.# set_clock_groups -asynchronous -group [get_clocks aaa_clk]
-group [get_clocks spi_clk]

8.set False Path

此项和设置异步clk作用相同,任意设置一个即可,但是设置set_false_path需要设置两个方向
使用set_false_path设置异步clk:
set_false_path -from [get_clocks clk1] -to [get_clocks clk2]
set_false_path -from [get_clocks clk2] -to [get_clocks clk1]
使用set_false_path设置异步复位的false path
set_false_path -from [get_port i_rst_n] -to [all_registers]

9.set multicycle Path

TODO,待补充示例

10.set maximum delay

TODO,待补充示例
约束的时候都会约束下异步fifo中的格雷码信号, 设置为set_max_delay $source_clk_period, 这样是否仅仅是为了保证性能,即 如果异步fifo中的格雷码同步信号path直接设置为false path不会影响功能。
这是因为设置了set_false_path的路径,FPGA综合工具或者后端人员会认为这条路径不是critical timing path,FPGA工具会额外在这条路上插入若干delay cell或buf(后端人员走线不够balance, 或者局部power没法收敛等等原因),从而导致此条路径的timing很差,成为制约芯片性能限制点。
因此在设计中尽可能少设置set_false_path,使用set_max_delay代替。如果遇到无法确认max_delay的路径,可以考虑false path

11.set minimum delay

TODO,待补充示例

12.set input transition

TODO,待补充示例

不定期更新

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/563641
推荐阅读
  

闽ICP备14008679号