当前位置: 首页 > article >正文

Xilinx FPGA——ISE的UCF时序约束

        时序约束是我们对FPGA设计的要求和期望,例如,我们希望FPGA设计可以工作在多快的时钟频率下等等。

        设计是要求系统中的每一个时钟都进行时序约束

一、分组约束语法(NET、PIN、INST)

        TNM是最基本的分组约束语法,其语法定义如下:

        {NET|INST|PIN} "net_or_pin_or_inst_name" TNM = [predefined_group] identifier;

        可见,TNM的定义起始关键字可以有三种——NET(网络)、INST(实例)、PIN(端口)。

  • INST关键字用来指明一个实例,为后续该分组的搜索限制了一个范围;
  • PIN指的是端口,指明具体某个原语的管脚。
  • NET关键字用来指明网络分组,该分组约束会自动包含"net_or_pin_or_inst_name"名称中指定的那个网络名下游所连接的所有元素。

        predefined_group是一个可选的参数,不写明的时候,该分组包含所有可包含的元素;若注明,则该分组只包含[predefined_group]类的元素。针对ISE软件来说,预先定义好的分组大概有以下这些:FFS:触发器组;RAMs:存储器组;LATCHES:锁存器组;PADS:焊盘组;CPUS:处理器组;HSIOS:高速IO组;MULTS:乘法器组。

        最后identifier指明了该分组的名称,以供后续语法在调用该分组时使用。

二、分组时序约束(TNM_NET)

        TNM_NET也是一个基本的分组约束语法,其语法定义如下:

        {NET|INST} "net_name" TNM_NET = [predefined_group] identifier;

        TNM_NET分组定义语法几乎与TNM是一样的,除了两个区别:

  1. TNM_NET只能根据网络来定义分组
  2. TNM_NET指明的网络名在选择分组成员时,可以穿过IBUF、BUFG这样的原语去往下游扩散,而TNM则不行。因此,通常用TNM_NET来为FPGA芯片的焊盘部分指定分组。

三、输入时钟周期约束(TIMESPEC

       要对一个被输入时钟所驱动时钟域进行时序分析,需要先定义一个需要被分析的分组,然后再使用TIMESPEC语法指定并命名一个周期约束,例如: 

        NET “clk50MHz” TNM_NET = “clkIn”;

        TIMESPEC “TS_clkIn” = PERIOD “clkIn” 20.0 ns HIGH 50%;

        上例中的第一句分组约束,将所有clk50MHz端口网络所连接的元素全部加入到clkIn分组中。而第二句话则指明该时钟域的时钟信息,表示定义了一个名为TS_clkIn的周期约束,其内容为针对clkIN时序分组,添加了一个周期为20ns、起始电平为高电平、占空比为50%的周期约束。

        还可以直接指定时钟的频率,如下:

NET "sys_clk" TNM_NET = "sys_clk_pin";							
TIMESPEC TS_sys_clk_pin = PERIOD "sys_clk_pin" 50000 KHz;
NET "sys_clk" CLOCK_DEDICATED_ROUTE = FALSE;



//NET		 	定义一个端口
//TNM_NET 	将使用 sys_clk 时钟的组件 分配到一个组中	
//TIMESPEC	约束周期、第一次出现的边沿、占空比

       


http://www.kler.cn/news/157025.html

相关文章:

  • LeetCode刷题---打家劫舍问题
  • LoadBalancer将服务暴露到外部实现负载均衡purelb-layer2模式配置介绍
  • 万宾科技可燃气体监测仪科技作用全览
  • SpringBoot自定义异常处理机制
  • GEE:使用拉普拉斯(Laplacian)算子对遥感图像进行卷积操作
  • 英语语法学习 - 每周更新学英语知识点
  • 小米秒享3--非小米电脑
  • 基于YOLOv8深度学习的安全帽目标检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
  • python之ddddocr快速识别
  • 茄子科技张韶全:跨多云大数据平台DataCake在OceanBase的实践
  • 2024最新版软件测试八股文(文档)
  • AI浪潮下,非科班出身还有机会入行程序开发领域么?
  • jquery学习笔记
  • 12.04 二叉树中等题
  • Vue3组合式API
  • DevEco Studio将常用内容设为代码模板 通过快捷键调出
  • 网工学习8-配置 STP 协议(一)
  • 【陈老板赠书活动 - 19期】-2023年以就业为目的学习Java还有必要吗?
  • 【数组】-Lc27-移除元素(相向双指针)
  • android studio 打开flutter项目 出现 dart sdk is not configured
  • navicat premium 历史版本下载地址
  • AI代码助手:写代码“如虎添翼”
  • 自动化集成有哪些典型应用场景?
  • 【程序员的养生指南--散文篇】
  • 毕业项目分享
  • LabVIEW开发工业设备远程在线状态监测
  • 如何有效进行测试执行进度计划
  • 力扣374周赛
  • 前端开发学习 (四) 自定义按键修饰符
  • Redis5新特性-stream