以清净心看世界
以欢喜心过生活
以平常心生情味
以柔软心除挂碍 --------------林清玄《人间有味是清欢》
Synthesis :
-flatten_hierarchy:
-none: this option instructs the synthesis tool to never flatten the hierarchy, the output of synthesis will have the exact same hierarchy as the originaln RTL (不会优化边界,也同时保留原本的RTL层次)
-full : this option instructs the tool to fully flatten the hierarchy leaving only the top level (完全展开设计,不会保留RTL层次)
-rebuilt : this is the default flatten_hierarchy option , rebuilt allows the synthesis tool to flatten the hierarchy , perform synthesis , and then rebuild the hierarchy based on the original RTL , this value allows the QoR benefit of cross-boundry optimizations, with a final hierarchy that is similar to the RTL for ease of analysis (缺省:综合时打平设计,可以优化边界,综合后的网表可以从新建立RTL层次(相似))
-no_lc (lc:LUT Combining)
-no_lc unchecked: (same input)
Pro : saves area (节约资源)
Con :could induce congestion ( 引起布线拥塞)
-no_lc checked : (same input)
Guideline: if >15% of LUT use both O5 and O6 then -on_lc checked
tips: use report_utilization and look for LUTs with O5 and O6 after implementation
-------------------------------------------------------------------------------
SRL:basic ports :
Q、D、CLK、CE、A
tips : do not support reset
XILINX:
SRL16E、SRL32E
tips:SRL16:
tips: SRL32E:
-------------------------------------------------------------------------------
- stl_style
-srl_reg:
-reg_srl :
-reg_srl_reg :
- register :
-srl :
tips: Make sure -sherg_min_size is reasonable
SRL:
advantages : less area 、Performance (Routing delays between cascaded ffs decreases the performance comparing to SRL )
Tips : the clock-to-output time of a flop is much lower than clock-to-output of an SRL that's why is mah=kes sense to add a flop on the output of an SRL .
-srl: -srl_reg :
-ram_style/rom_style
instructs the Vivado synthesis tool on how to infer memory
-block:
-distributed: LUT RAMs
use_dsp48
-Mult
- Mult-add & Mult-sub
- Mult-accumulate
--------------------------------
addres、 subtracters、and accumulators are implemented with the fabric instead of with 48 blocks by default
(当使用的资源过多时,也可以声明使用 use_dsp48 来减少使用的资源)
block_box (字面意思 黑盒子)
it can turn a whole level of hierarchy off and enable synthesis to create black box for that module or entity .
dont_touch (防止综合优化掉期望的信号)
use the DONT_TOUCH attribute in place of KEEP 。
unlike KEEP , DONT_TOUCH is forward -annotated to place and route to prevent logic optimization.
fsm_enconding
(提供状态机编码方式)
------------------------------------------------------------------------------------------------------
Create Multiple Runs
each run can have different constraint、different part and different strategy