xilinx Vivado工具使用技巧

综合属性
在vivado design suite中,vivado综合能够合成多种类型的属性。在大多数情况下,这些属性具有相同的语法和相同的行为。
•如果vivado综合支持该属性,它将使用该属性,并创建反映已使用属性的逻辑。
•如果工具无法识别指定的属性,则vivado综合会将属性及其值传递给生成的网表。
1.async_reg
async_reg是影响vivado工具流中许多进程的属性。此属性的目的是通知工具寄存器能够在d输入引脚中接收相对于源时钟的异步数据,或者该寄存器是同步链中的同步寄存器。
当遇到此属性时,vivado综合会将其视为dont_touch属性,并在网表中向前推送async_reg属性。此过程可确保具有async_reg属性的对象未进行优化,并且流程中稍后的工具会接收属性以正确处理它。
您可以将此属性放在任何寄存器上; 值为false(默认值)和true。可以在rtl或xdc中设置此属性。
async_reg verilog example:
(*async_reg = “true” *) reg [2:0] sync_regs;
2.clock_buffer_type
在输入时钟上应用clock_buffer_type以描述要使用的时钟缓冲器类型。
默认情况下,vivado综合使用bufg作为时钟缓冲器。支持的值是“bufg”,“bufh”,“bufio”,“bufmr”,“bufr”或“无”。 clock_buffer_type属性可以放在任何顶级时钟端口上。它可以在rtl和xdc中设置。
clock_buffer_type verilog example
(* clock_buffer_type = “none”*) input clk1;
clock_buffer_type xdc example
set_property clock_buffer_typebufg [get_ports clk]
3. fsm_encoding
fsm_encoding控制状态机上的编码。通常,vivado工具会根据最适合大多数设计的启发式方法为状态机选择编码协议。某些设计类型使用特定的编码协议可以更好地工作
fsm_encoding可以放在状态机寄存器上。其合法价值是“one_hot”,“sequential”,“johnson”,“grey”,“auto”和“none”。 “auto”值是默认值,允许工具确定最佳编码。可以在rtl或xdc中设置此属性。
fsm_encoding example (verilog)
(* fsm_encoding = “one_hot” *)reg [7:0] my_state;
4. keep
使用keep属性可防止信号优化或被吸收到逻辑块中的优化。此属性指示综合工具保持其所处的信号,并将该信号放入网表中。
例如,如果信号是2位and门的输出,并且它驱动另一个and门,则keep属性可用于防止该信号合并到包含两个and门的较大lut中。
keep也常用于时序约束。如果对通常会优化的信号存在时序约束,keep会阻止该操作,并允许使用正确的时序规则
keep example (verilog)
(* keep = “true” *) wire sig1;
assign sig1 = in1 & in2;
assign out1 = sig1 & in2;
5 ram_style
ram_style指示vivado综合工具如何推断内存。可接受的值是:
•block:指示工具推断ramb类型组件。
•distributed:指示工具推断lut ram。
•寄存器:指示工具推断寄存器而不是ram。
•ultra:指示工具使用ultrascale +™uram原语。
默认情况下,该工具根据启发式选择要推断的ram,以便为大多数设计提供最佳结果。将此属性放在为ram声明的数组或层次结构级别上。
•如果设置了信号,该属性将影响该特定信号。
•如果设置在层次结构级别上,则会影响该层次结构级别中的所有ram。
层次结构的子级别不受影响。
这可以在rtl或xdc中设置。
ram_style example (verilog)
(* ram_style = “distributed” *)reg [data_size-1:0] myram [2**addr_size-1:0];
6 rom_style
rom_style指示综合工具如何推断rom存储器。可接受的值是:
•block:指示工具推断ramb类型组件
•distributed:指示工具推断lut rom。默认情况下,该工具根据启发式选择要推断的rom,以便为大多数设计提供最佳结果。
这可以在rtl和xdc中设置。
rom_style example (verilog)
(* rom_style = “distributed” *)reg [data_size-1:0] myrom [2**addr_size-1:0];

尼日利亚人以其高科技技术影响着世界
SMT的尺寸是什么 继电器检测异常
自学平面设计的经验总结
一文带你了解这三种3D视觉技术
智能雷达液位计的工作原理、特点及适用范围
xilinx Vivado工具使用技巧
ANDON替代DIGISENSOR图像传感器插座
EMC电磁兼容整改主要的整改方法
Facebook在元宇宙的布局有哪些产品?
移远通信5G模组获进网许可认证,适应用于多种行业和消费类范围
i-MN:推动MEMS外观检测系统的主要因素是什么?
2022年12月份全国乘用车市场分析
福建省遴选2个区17所学校作为人工智能教育实验区、试点校
3G/WIFI控制太阳能驱动机器人制作详解
LM4766胆石混合功放机,LM4766 POWER AMPLIFIER
2020年我国集成电路销售收入达到8848亿元
中国联通与泰山景区联合成立“5G智慧景区创新示范基地”
Wind ESG评级出炉:软通动力获评AA级 行业第一
雷曼光电屠孟龙:Micro LED打开新消费市场
无纺布污点在线检测系统的检测原理是什么