yuyang911220 当前离线
论坛元老
一般的语法是:OFFSET = IN value VALID value BEFORE clock OFFSET = OUT value VALID value AFTER clock
例子: NET "SysCLk" TNM_NET = "SysClk"; TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%; OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk"; 上面的定义了基于SysClk的全局OFFSET IN的属性。时序可看图3.
例子: NET "ClkIn" TNM_NET = "ClkIn"; OFFSET = OUT 5 ns AFTER "ClkIn"; 上面设置主要是定了了时钟跟数据的时间关系,时序图4。可以看到这时一种全局定义,Data1 和Data2输出时间都受到 OFFSET = OUT 5 ns AFTER "ClkIn" 的约束。如果需要单独定义输出端口的OFFSET OUT的,需要制定相应的NET,可参考表1中的第57行。
例如: INST "Done" LOC = "SLICE_X32Y163" ; #Done映射为一个寄存器,映射到SLICE_X32Y163的位置上。(32,163)相当于一个坐标,可以用FloorPlanner进行查看。 INST"BRAM4/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v4_init.ram/TRUE_DP.SINGLE_PRIM.TDP"LOC = "RAMB16_X2Y22" ; #RAM16的一个映射。 又例如,X,Y,Z是对应的是寄存器。现在想把它们放在一个指定的区域中,我可以这样写, INST “X” AREA_GROUP = reg; INST “X” AREA_GROUP = reg; INST “X” AREA_GROUP = reg; AREA_GROUP reg RANGE = SLICE_X1Y1 :SLICE_X1Y6;
订阅 TOP