FPGA之约束总结

约束的类型:

  1. 时序约束:主要用于规范设计的时序行为,表达设计者期望满足的时序要求,知道综合和布局布线截断的优化算法等;
  2. 布局布线约束:主要指定芯片I/O引脚位置和知道软件正在芯片特定的物理区域进行布局布线;
  3. 其他约束:指的是目标芯片型号,接口位置和电气特性等约束属性。

约束的作用

  1. 减少逻辑和布线的延迟,提高工作效率;
  2. 获得正确的时序分析报告,静态时序分析工具约束作为判断时序是否满足设计要求的标准;
  3. 指定FPGA引脚位置和电气标准
  4. 利于模块化设计

     ISE通过综合工具XST的约束文件XCF,布局布线阶段UCF(用户约束文件),UCF支持XCF的所有约束语言和命令;综合时,仅仅通过综合属性设置来设置全局的综合策略与参数,细化的约束通过UCF完成。

时序约束:

1、周期约束:NET “usr_clk” TNM_NET= “usr_clk”;

     TIMESPEC “TS_usr_clk” = PERIOD “usr_clk” 5.0ns

2、I/O时序约束:定义了时钟和IO接口之间的关系,只能用于I/O接口相连的信号,不能用于内部信号,可以约束输入数据、输出数据相对于时钟的时序关系,从而在综合实现中调整布局布线,是正在开发的FPGA的输入简历时间、输出保持时间保持系统要求。

INST “io_emif_data<0~7>” TNM=TS_emif_data;

NET “IO_emif_clk” TNM_NET= I_emif_clk;

TIMEGRP “TS_emif_data” OFFSET = OUT 7ns AFTER “I_emif_clk”;

约束定义了TS_emif_data寄存器组与时钟I_emif_clk的关系为时钟有效后7ns输出TS_emif_data寄存器的可靠数据。

3、分组约束:将一些具有相同时序要求的器件归为一组,进行相同的时序约束。

INST “io_emif_data<0>” TNM=TS_emif_data;

INST “io_emif_data<0~7>” TNM=TS_emif_data;

4、专门约束:通常比整体约束宽松,通过在可能的地方尽量放松约束可以提高布局布线的通过率,减少布局布线的时间。

     From_to约束:约束在两个定义的组之间进行时序约束,对两者之间的逻辑和布线延迟进行控制:

TIMESPEC “TS_name”= FROM “group1” TO “group2” value;

其中value为延迟时间,可以使具体数值或表达式。

MAXDELAY约束:定义了特定路径上的最大延迟

布局布线约束:

1、引脚约束: NET “sys_rst_n” LOC= “J12”;

2、位置约束:通过约束语法将设计之中的某些硬件结构约束到指定的位置

1    INST “instance_name” LOC=location;

对设计中的硬件约束到具体位置,可以约束的硬件结构包括:寄存器、IOBLUTBRAM、乘法器、PLL等。

2    INST “instance_name” RLOC= location;

对设计中的硬件约束到相对位置, 可约束的硬件结构包括:寄存器、IOBLUTBRAM、乘法器、PLL等。必须与RLOC_ORIGIN配套使用。

3    INST “instance_name” RLOC_ORIGIN =location

RLOC对应,指定RLOC的起始位置约束,与RLOC配套使用。

4    INST “instance_name“ HU_SET=value;

高级属性定义约束,定义独立的组,与RLOC配套使用,以保持结构的完整性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在微

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值