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,待补充示例文章来源地址https://www.toymoban.com/news/detail-776517.html
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,待补充示例文章来源:https://www.toymoban.com/news/detail-776517.html
12.set input transition
TODO,待补充示例
不定期更新
到了这里,关于quartus综合简单流程(自用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!