问个时序约束的问题
控制信号(WR),数据信号(DATA)在FPGA外部是有时序要求的。在WR的上升沿读取DATA。DATA对WR上升沿有setup(t1),hold(t2)时序的要求。
我的问题是在FPGA中怎么设置Tsu,Th时间来保证时序约束的正确呢?是对WR,DATA还是对syn_wr,syn_data做约束?
不是很明白“控制信号(WR),数据信号(DATA)在FPGA外部是有时序要求的。”这句话的意思。通常情况下,相关信号在输入到FPGA前就应该满足时序关系。如果本身就不满足时序关系却企图通过FPGA约束来满足是行不通的。从你的描述上看,控制信号WR更像是随路传送的时钟信号。
在假设你的输入信号已经满足时序要求的基础上(这点由你的外部逻辑保证),经FPGA内部同步后,你的syn_wr,syn_data应该仍然满足时序关系。当然这有一个前提:同步域时钟远快于你的异步输入信号。
"控制信号(WR),数据信号(DATA)在FPGA外部是有时序要求的" 这句话的意思是在FPGA的前端输入芯片的datasheet中有WR和DATA的setup和hold时序要求。
芯片的输出应该会符合自己的时序要求。如果是这样的话FPGA中经过同步后不用做相应的设置吗?(同步域时钟远快于你的异步输入信号)
经过FPGA同步后的syn_wr,syn_data会仍然满足时序关系?不用考虑WR,DATA在进入FPGA后Pin到第一级Register(第一级同步)之间会有时间差吗?
你可以试试看
忍不住想说两句了
你说的应该是配置寄存器的cpu写控制信号,这类信号相对于内部时钟信号都是很宽的,你需要设的是input_delay。你说的保证时序,我想你是怕内部逻辑看到wr时,data没有准备好,这个留个logic designer去考虑吧,你不需考虑那么多。
1,对管脚设置
2,Tsu=Tclk-Tco_remote-△
Th=0
Tco_remote为对方芯片的Tco参数;△为一个余量,可以取20%~100%,也可以认为与走线有关,一个经验公式是1m走线=5ns走线延迟。
如果你的应用不是像DDR那样高速,一般不用约束,当然你最好试试。
如果出现了传输错误确实需要用到约束,可以像6楼说的那样考虑一下板级上的SI。
学习学些
看看!
FPGA一般来说,都是“以快致胜”,就是说FPGA运行的时序环境,远优于你外部的器件,不需要设置,检测到对应的时刻,做出相应的动作就是了,如果你选一块慢速的FPGA去对接一个超高速器件,那显然是设计不合理。
可先用fifo同步。
小编所说的建立时间和保持时间是对外部芯片的时序要求,而不是对FPGA的时序要求,所以建立和保持时间FPGA不需要考虑。如果由于芯片之间的布线而导致wr与data无法满足FPGA的时序要求,那么这个时候才需要对FPGA进行时序约束,可以先通过示波器观察wr与data的时序关系,再利用FPGA的input offset进行时序约束
