网站上传页面,wordpress主机 知乎,seo 网站制作,网站策划名词解释时序约束是我们对FPGA设计的要求和期望#xff0c;例如#xff0c;我们希望FPGA设计可以工作在多快的时钟频率下等等。 设计是要求系统中的每一个时钟都进行时序约束。
一、分组约束语法#xff08;NET、PIN、INST#xff09; TNM是最基本的分组约束语法#xff0c;其语法… 时序约束是我们对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是一样的除了两个区别
TNM_NET只能根据网络来定义分组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 约束周期、第一次出现的边沿、占空比