【问题标题】:How can I achieve something similar to Xilinx' RLOC in Altera FPGAs?如何在 Altera FPGA 中实现类似于 Xilinx 的 RLOC?
【发布时间】:2014-08-19 17:53:00
【问题描述】:

到目前为止,我还没有找到任何类似于 Xilinx 对 Altera FPGA 的 RLOC 约束的方法。

有谁知道这样做的方法吗?

例如将两个 FF 放在相同或相邻的 LAB 中

【问题讨论】:

  • 如果需要特定的设计属性,例如某个网络的快速时序,那么您最好直接指定此约束,而不是通过位置约束中继获取此类属性。最后,位置可能无法说明实例之间的实际路由,因此无论如何您都必须限制您想要的属性,以确保对该属性进行放置后检查。
  • 我目前正在将我的 Xilinx ISE 项目之一移植到 Vivado。我注意到 Xilinx 支持 xdc 文件,这些文件与 Altera 和其他供应商支持的 sdc 文件兼容。我还注意到 *dc 文件能够描述子模块的约束,因此我认为 Xilinx 相对位置约束 (RLOC) 可以转换为具有有限范围的 sdc 文件(Xilinx 称之为 SCOPE_TO_CELLS)。所以也许你可以找到一个 Altera sdc-file 用户指南,它解释了如何编写作用域约束,也许你可以在那里找到相对位置的等价物;)

标签: constraints fpga xilinx intel-fpga


【解决方案1】:

所以为了回答我自己的问题,在查阅了一些 Altera 手册并反复试验后,我发现这几乎可以满足我的要求。

module synchronizer (input wire dat_i,

                     input wire out_clk,
                     output wire dat_o);

   (* altera_attribute = "-name SYNCHRONIZATION_REGISTER_CHAIN_LENGTH 2; -name SYNCHRONIZER_IDENTIFICATION \"FORCED IF ASYNCHRONOUS\"" *)
   logic [1:0]                   out_sync_reg;

   always_ff@(posedge out_clk) begin
      out_sync_reg <= {out_sync_reg[0],dat_i};
   end

   assign dat_o = out_sync_reg[1];

endmodule

我通过将全局同步器检测设置为关闭来对此进行了测试,并观察到 ​​TimeQuest 找到并分析了亚稳态的正确路径。

即使dat_iclk_a 锁定并且out_clkclk_b 驱动并且两个时钟设置为:

set_clock_groups -asynchronous -group {clk_a}
set_clock_groups -asynchronous -group {clk_b}

因此在从clk_a 计时的寄存器到clk_b 计时的寄存器之间的所有连接之间创建错误路径

set_max/min_delay 将不起作用,因为如果两个时钟位于不同的异步时钟组中,它会被忽略(如 Altera 所述)。

【讨论】:

  • 最好也嵌入错误路径约束:(* altera_attribute = "-name SDC_STATEMENT \"set_false_path -to [get_registers {*synchronizer*out_sync_reg[0]}]\"" *)。通常不建议在两个时钟域之间设置全局错误路径,因为它可以掩盖错误。见this answer
【解决方案2】:

Altera 不支持RLOC 样式约束。显然,这与底层物理架构有关。我相信他们在芯片测试期间过度配置 ALM 并熔断列以提高良率,因此相对位置限制不会像预期的那样转化为给定的物理设备。

如果您担心同步器链的位置,可以使用SYNCHRONIZATION_REGISTER_CHAIN_LENGTHSYNCHRONIZER_IDENTIFICATION QSF settings 启用同步器链检测(另请参阅this answer)。

如果您只想确保特定的时序属性,请在路径上使用set_max_delayset_min_delay 时序约束。

【讨论】:

    猜你喜欢
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多