时序 约束 对fpga产生的影响?
同样的逻辑结构 在FPGA的不同 位置来实现,有的逻辑点相互距离近,有的逻辑点相互距离远,所以 同样的逻辑结构在不同位置实现,有的满足时序要求,有的不满足时序要求,加了时序约束就是让编译软件 使被实现的 逻辑结构距离合适 以满足 时序要求,加时序约束的目的是不是这样?你不做约束,一般也没事,但是想跑高速,不约束?等着跑死吧。 差不多是这个意思;跟PCB等长等阻抗布线是一个道理 wye11083 发表于 2013-5-14 19:22 static/image/common/back.gif
你不做约束,一般也没事,但是想跑高速,不约束?等着跑死吧。
那是因为Quartus II 软体不够聪明,所以都要自己DIY LAYOUT FPGA
ALTERA 最近强调主打这个话题,不论是时序约不约束,最后还是要看软体跑的出不出来......
之前将 SDRAM DATA I/O 时序约束一下,结果死的更惨....{:titter:}
sky5566 发表于 2013-5-14 20:57 static/image/common/back.gif
那是因为Quartus II 软体不够聪明,所以都要自己DIY LAYOUT FPGA
ALTERA 最近强调主打这个话题,不论是时 ...
那是你还不会约束。我约束之后用01年的FPGA跑DDR200无压力。用SDR模拟DDR时序。片子不支持DDR。Spartan-IIE 学习了 {:smile:} wye11083 发表于 2013-5-15 08:23 static/image/common/back.gif
那是你还不会约束。我约束之后用01年的FPGA跑DDR200无压力。用SDR模拟DDR时序。片子不支持DDR。Spartan-I ...
那就給個範例解說吧~~
至今 ALTERA 中文官方論壇一堆人還搞不出來~~{:titter:} sky5566 发表于 2013-5-15 21:47 static/image/common/back.gif
那就給個範例解說吧~~
至今 ALTERA 中文官方論壇一堆人還搞不出來~~...
那我就给个简单的X的时序约束。
NET "pin_GCLK" TNM_NET = pin_GCLK;
TIMESPEC TS_pin_GCLK = PERIOD "pin_GCLK" 20 ns HIGH 50% INPUT_JITTER 150 ps;
这个指定系统时钟。因为片内倍频2,4,因此片内最高200MHz,这个50MHz的约束不算慢了。布线器会努力向50MHz努力。
NET "pio_FIFOD<0>"LOC = "P6"; # PB0
NET "pio_FIFOD<1>"LOC = "P5"; # PB1
NET "pio_FIFOD<2>"LOC = "P8"; # PB2
NET "pio_FIFOD<3>"LOC = "P7"; # PB3
....
这一堆是管脚约束,用QII的话直接就在程序里点了,但是我更乐意去写,因为写的话就不用一个一个去找了,毕竟找点比写几个字母更费时间。
TIMESPEC TS_Data_In_To_DDR_Out_Timing_7ns = FROM "TS_Local_Data_In_To_DDR_Output_Module" TO "TS_DDR_Output_Module_To_DDR_Port_Output" 7.5 ns;
....
这个先对寄存器分组,再对非跨时钟域不同频率时钟异步寄存器约束。因为我保证2.5ns后输出数据,因此约束7.5ns缀缀有余了。
事实证明,不做约束,布线器只要布通就立马返回了,因为任务完成了啊。如果做了约束,那么布线器会努力使布线后分数最小(0),当分数为0时布线结束(完全满足时序要求)。如果你不做时序约束,鬼才知道你片子时序有没有达到要求!当然你可以看布线后Report,检查所有路径延时,IO延时,时钟延时,最小时钟周期,====,关键是,你不约束,你就只有看的份。软件做的再好,它只是个软件而已,它只会按人的指令去干活而已! 关注学习中... wye11083 发表于 2013-5-15 22:06 static/image/common/back.gif
那我就给个简单的X的时序约束。
NET "pin_GCLK" TNM_NET = pin_GCLK;
学习了! 我自己还不会写 初学fpga, 还不懂怎么约束.{:cry:}
页:
[1]