FPGA可控延时单元设置
时间:10-02
整理:3721RD
点击:
怎样用FPGA实现,以DFF的Q端通过插入延时单元自清零实现脉冲展宽?这个可控延时,怎样实现,例如精确实现10ns脉宽生成?
(FPGA可存在可控延时单元的模块?)
(FPGA可存在可控延时单元的模块?)
由于OCV的存在,精确10ns是不可能的,最多是类似min 5ns,max 15ns,无论FPGA还是ASIC都是如此。
插入延时单元很简单,以Altera为例,原有一节点A,现需要延时5~15ns到节点B,只需RTL中用注释保留节点不被综合:
wire B/*synthesis keep*/;
assign B = A;
然后在SDC时序约束中定义A到B的延时约束:
set_net_delay -min -from [get_pins A|*] -to [get_pins B|*] 5
set_net_delay -max -from [get_pins A|*] -to [get_pins B|*] 15
综合完后在TimeQuest中再报一下A到B的实际延时路径,确定符合要求即可。
任何不基于时钟的延时控制,都不是可靠的。
同意楼上所说,直接时延受器件批次影响较大
请教Timme大侠~在xilinx下,FPGA内部信号节点A到B延时约束文件怎么写呢谢谢啊,
UCF里可以设组合逻辑节点间的时序约束,但没有min/max之分,只有一个目标值,综合完会报出实际值。Xilinx时序约束自成一派,具体命令记不太清。
T大,我查了不少Xilinx 时序约束的资料,见到的都是pad2ffs,pad2pad等等的约束,内部节点间的延时约束还是不会,不知道您是不是有经验,或许您回头看看就知道怎么写了,这样就是帮了我很大忙啊谢谢!
