vivado RLOC

2024-08-21 07:36
文章标签 vivado rloc

本文主要是介绍vivado RLOC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

相对位置(RLOC)约束定义了逻辑元素的相对位置
分配给一个集合,如H_set、HU_set或U_set。
当RTL源文件中存在RLOC时,H_SET、HU_SET或U_SET属性将得到
转换为合成网表中单元的只读RPM属性。RLOC
属性被保留,但在合成后成为只读属性。了解更多
有关使用这些属性和定义RPM的信息,请参阅Vivado设计套件
用户指南:使用约束(UG903)[参考文献19]。
提示:在构建分层RPM时,使用synth_design-platen_hierarchy none来确保
RLOC属性保留在其预期的层次结构级别上。

您可以定义集合中任何元素相对于其他元素的位置
设置,而不管整个组最终放置在目标设备上。For
例如,如果RLOC约束应用于以某种方式组织的一组八个触发器
列,映射器维护该列并将整个触发器组作为
单个单元。相比之下,LOC约束指定了设计的绝对位置
而不参考其他设计元素。
架构支持
所有架构。
适用对象
•RTL源文件中的实例或模块。
价值观
使用基于SLICE的XY坐标系指定相对位置约束。
RLOC=XmYn
哪里:
•m是一个表示X坐标值的整数。
•n是表示Y坐标值的整数。

提示:因为相对位置(RLOC)约束中的X和Y数字仅定义了顺序和
设计元素之间的关系,而不是它们在目标设备上的绝对位置,它们的
编号可以包括负整数。

Syntax
Verilog Syntax
The RLOC property is a Verilog attribute defining the relative placement of design elements
within a set specified by H_SET, HU_SET, or U_SET in the RTL source files. Place the Verilog
attribute immediately before the instantiation of a logic element.
(* RLOC = "XmYn", HU_SET = "h0" *) FD sr0 (.C(clk), .D(sr_1n), .Q(sr_0));
Verilog Example
The following Verilog module defines RLOC property for the shift register Flops in the ffs
hierarchical module.
module inv (input a, output z);
LUT1 #(.INIT(2'h1)) lut1 (.I0(a), .O(z));
endmodule // inv
module ffs
(
input clk,
input d,
output q
);
wire sr_0, sr_0n;
wire sr_1, sr_1n;
wire sr_2, sr_2n;
wire sr_3, sr_3n;
wire sr_4, sr_4n;
wire sr_5, sr_5n;
wire sr_6, sr_6n;
wire sr_7, sr_7n;
wire inr, inrn, outr;
inv i0 (sr_0, sr_0n);
inv i1 (sr_1, sr_1n);
inv i2 (sr_2, sr_2n);
inv i3 (sr_3, sr_3n);
inv i4 (sr_4, sr_4n);
inv i5 (sr_5, sr_5n);
inv i6 (sr_6, sr_6n);
inv i7 (sr_7, sr_7n);
inv i8 (inr, inrn);
(* RLOC = "X0Y0" *) FD sr0 (.C(clk), .D(sr_1n), .Q(sr_0));
(* RLOC = "X0Y1" *) FD sr1 (.C(clk), .D(sr_2n), .Q(sr_1));
(* RLOC = "X0Y2" *) FD sr2 (.C(clk), .D(sr_3n), .Q(sr_2));
(* RLOC = "X0Y3" *) FD sr3 (.C(clk), .D(sr_4n), .Q(sr_3));
(* RLOC = "X0Y4" *) FD sr4 (.C(clk), .D(sr_5n), .Q(sr_4));
(* RLOC = "X0Y5" *) FD sr5 (.C(clk), .D(sr_6n), .Q(sr_5));
(* RLOC = "X0Y6" *) FD sr6 (.C(clk), .D(sr_7n), .Q(sr_6));
(* RLOC = "X0Y7" *) FD sr7 (.C(clk), .D(inrn), .Q(sr_7));
(* LOC = "SLICE_X0Y0" *) FD inq (.C(clk), .D(d), .Q(inr));
FD outq (.C(clk), .D(sr_0n), .Q(outr));
assign q = outr;
endmodule // ffs
TIP: In the preceding example, the presence of the RLOC property implies the use of the H_SET property
on the FD instances in the ffs hierarchical module.
When using the modules defined in the preceding example, you will need to specify the
KEEP_HIERARCHY property to instances of the ffs module to preserve the hierarchy and
define the RPM in the synthesized design:
module top
(
input clk,
input d,
output q
);
wire c1, c2;
(* RLOC_ORIGIN = "X1Y1", KEEP_HIERARCHY = "YES" *) ffs u0 (clk, d, c1);
(* RLOC_ORIGIN = "X3Y3", KEEP_HIERARCHY = "YES" *) ffs u1 (clk, c1, c2);
(* RLOC_ORIGIN = "X5Y5", KEEP_HIERARCHY = "YES" *) ffs u2 (clk, c2, q);
endmodule // top
VHDL Syntax
Declare the VHDL constraint as follows:
attribute RLOC: string;
Specify the VHDL constraint as follows:
attribute RLOC of {component_name | entity_name | label_name} :
{component|entity|label} is “XmYn”;
Where:
• { component_name | entity_name | label_name } is a choice of one design element.
• { component | entity | label } is the instance ID of the design element.
XmYn defines the RLOC value for the specified design element.
XDC Syntax
The RLOC property can not be defined using XDC constraints. The RLOC property defines
the relative locations of objects in a relatively placed macro (RPM), and results in read-only
RPM and RLOC properties in the netlist of synthesized designs.

这篇关于vivado RLOC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092528

相关文章

vivado 添加多循环路径

添加多循环路径 接下来,您将使用约束编辑器添加一个多循环路径。 1.双击树的“异常”类别下的“设置多周期路径”。 2.在“设置多周期路径”对话框中,将路径乘数设置为2。 3.在“通过”输入框中,键入以下字符串(或者,您可以复制和粘贴它 从这里): [get_pins cpuEngine/or1200_cpu/or1200_alu/*] 请注意,Tcl命令显示在command字段中。

vivado error:Combinatorial Loop Alert:1 LUT cells form a combinatorial loop

VIVADO ERROR :Combinatorial Loop Alert:1 LUT cells form a combinatorial loop vivao生成bit流时发生报错,如下图所示定位原因解决 vivao生成bit流时发生报错,如下图所示 定位原因 在三段式状态机中,组合逻辑代码if else 语句未写全只写了if…elsif…,没有写else,导致错误

vivado 创建时间约束3

下图显示了完成的输入延迟页面。请注意,四个约束是 跳过。 12.成功输入所有输入约束值后,单击下一步。 向导的“输出延迟”页面显示了中不受约束的所有输出 设计。页面布局与输入页面非常相似。 13.在“输出延迟”页面中,单击“时钟”标题,按时钟的字母顺序对表格进行排序 名字。 14.使用下表约束所有输出,就像您对输入约束值所做的那样。 您可以在向导中一次选择多行,同时编辑多个条目。

vivado 创建时间约束1

步骤3:创建时间约束 在此步骤中,您打开合成的设计并使用AMD Vivado™定时约束 男巫定时约束向导分析门级网表并发现缺失 约束。使用“定时约束”向导为此设计生成约束。 1.在“流导航器”中,单击“打开综合设计”。 2.当综合设计打开时,单击综合设计下的约束向导 部分。 此时会出现“定时约束”向导的介绍页面。本页介绍 向导创建的约束类型:时钟、输入和输出端口以及时钟 域交叉。 3.阅读页面后,

Vivado+PetaLinux 系统搭建教程

PetaLinux 是基于 Yocto project DDR SDRAM 双倍数据率同步动态随机存取存储器(英语:Double Data Rate Synchronous Dynamic Random Access Memory,简称DDR SDRAM)为具有双倍资料传输率的SDRAM,其资料传输速度为系统主频的两倍,由于速度增加,其传输性能优于传统的SDRAM。 FTP文件传输 在ubun

点击Vivado的安装程序exe无法安装的解决办法

在Windows操作系统上,在安装Vivado的时候会遇到双击xsetup.exe没有反应的情况,即使是用管理员权限再加上设置兼容模式也没有任何效果,且此问题有可能在多个版本上都存在,包括最新的2016.02。 打开解压后的Vivado安装包的bin目录下,可以看到xsetup.exe本质上是调用xsetup.bat (个别版本是xsetup2.bat)这个批处理文件。 接下来我们可以尝试用管理员

创建 AD9361 的 vivado 工程,纯FPGA配置,不使用ARM程序

前言 AD9361 的配置程序,如果使用官方的,就必须用ps进行配置,复杂不好使,如果直接使用FPGA配置,将会特别的简单。 配置软件 创建一份完整的寄存器配置表 //************************************************************// AD9361 R2 Auto Generated Initialization Scri

Vivado DDS IP核使用和仿真(二、多通道信号发生器)

按照博文https://blog.csdn.net/u013215852/article/details/91042672了解完单通道信号发生器之后,我们来看一下如果用一个IP核同时生成多通道信号怎么做,本文以1MHz和10MHz双通道为例: 1、设置参数,注意与单通道不同的地方 通道设置为2,那么我们想要得到与单通道一样16bit的输出数据,那么根据公式 我们就需要把Frequen

Vivado DDS IP核使用和仿真(一、单通道信号发生器)小补充

请先看上一篇博文:https://blog.csdn.net/u013215852/article/details/91042672 在此博文的最后,生成了同时输出正弦信号和余弦信号,一些读者对此有一些疑问,其实很简单,按照上一篇的设置,如果把output设置为Sine and Cosine,那么IP核会自动将输出的宽度扩大一倍,即16变成了32,根据下图可知高16位为SINE,低16位为COS

ubuntu,vivado HLS C simulation启动失败

在ubuntu18.04环境下安装了vivado2018.3版本,运行C simulation时失败,原因是缺少组件,解决办法: sudo apt-get install tofrodos gawk xvfb git libncurses5-dev tftpd zlib1g-dev zlib1g-dev:i386 libssl-dev flex bison chrpath socat autoc