安路TangDynasty(TD)从HDL源码生成比特流(bitstream)的流程介绍——HDL2Bit-Anlogic-安路社区-FPGA CPLD-ChipDebug

安路TangDynasty(TD)从HDL源码生成比特流(bitstream)的流程介绍——HDL2Bit

在输入设计源文件和约束文件后,下一步进入 HDL2Bit 的设计实现流程。 HDL2Bit
流程包括设计读入(Read Design)、 RTL 级优化(Optimize RTL)、门级优化(Optimize
Gate
)、布局优化(Optimize Placement)、布线优化(Optimize Routing) 和生成位流
Generate Bitstream) 六个步骤。
在多数情况下,用户只要双击
HDL2Bit,软件自动运行全部流程。 用户也可以用
Process 下拉菜单中的 Run, Rerun, Stop 来控制。 Process 菜单中的 Run Stop 在导航
栏中有相应的按钮(

20230926095904455-image

20230926095924130-image

),用户可以直接点击操作。 Process 菜单中还有 Properties
栏目, Properties 提供 HDL2Bit 流程中主要步骤的详细参数控制选项, 用户可对整个运
行流程进行微调控制,
Global Option 的参数设置如下:

20230926095226403-image

5-1 Global Option

Property Comments Default
syn_ip_flow 生成可综合的 IP 模块 OFF
message 输出信息的冗余级别 STANDARD
thread 运行 HDL2Bit 时的线程数 AUTO

读入文件

该步分析用户源文件的语法语义的正确性, 并产生原始行为级电路结构。
1. FPGA Flow 面板中展开 HDL2Bit
2. 双击 Read Design, 或右键单击 Read Design,选择 run
3. 参数配置
在菜单栏中, 展开
Process→Properties, 弹出 Properties Configuration 窗口, 选择
Read Design,用户可根据需要自定义想要的功能。

20230926095321181-image

5-1 Read Design Properties

Property Comments Default
infer_add 自动识别行为级加法描述 ON
infer_mult 自动识别行为级乘法描述 ON
infer_ram 自动识别行为级 RAM 描述 ON
infer_rom 自动识别行为级 ROM 描述 ON
infer_fsm 自动识别行为级有限状态机描述 OFF
infer_mux 自动识别行为级多路选择器描述 OFF
infer_reg 自动识别行为级复杂寄存器描述 O

RTL 级优化

在读入设计文件后, TD 将对设计进行 RTL 级优化。本阶段将进行多路选择器优化、
数据通路优化、特殊功能模块自动识别等。
RTL 级优化将产生包含基本门(ANDOR
FF/Latch)和特殊功能模块的电路。
1. FPGA Flow 面板中展开 HDL2Bit
2. 双击 Optimize RTL, 或右键单击 Optimize RTL, 选择 Run,此时将会产生面积
报告文件
rtl.area,该文件的内容将与 keep_hierachy 参数的设定有关。
3. 参数配置
在菜单栏中, 展开
Process→Properties, 弹出 Properties Configuration 窗口, 选
Optimize RTL 进行设置。

20230926095401712-image

*keep_hierarchy选项说明:选择 flatten 时, td 将把用户设计打平处理;当选择 manual 时,
td 将对用户通过 synthesis directive 选择的模块保留层次;当选择 auto 时, td 会自动选
择较大的模块保留层次,其余部分打平处理。

Synthesis Keep

使用 Synthesis keep 命令可以保证信号不会被后续流程优化掉,从而方便用户后期调
试。具体做法如下:
1. verilog 文件中,为想要保留的信号,添加相应的注释,注释的写法为:
//synthesis keep = 1; /*synthesis keep=1*/;
//synthesis keep = true; /*synthesis keep=true*/
//synthesis keep; /*synthesis keep*/
如:

20230926100045777-image

2. 保存文件并编译;
3. 在使用 debug 工具时,可查看到该内部信号。
4. vhdl 中的写法如下:

20230926100058920-image

其中, clkc_wire 为需要 keep net / bus
如果想要保留
design 中多个相同的模块不被优化掉, TD 提供了 keep instance 的方
法。

如下图中的模块 ef2_ram,在 top module 中被完全等价地例化了多次,如果此时不
使用 synthesis keep 的功能,则所有 instance 将会被合并成一个 BRAM。要想保留所有的
instance 不被优化, 需要在该 instance 的每一个层级都添加注释 “//synthesis keep”

20230926100116143-image

Synthesis Directive

1. Synthesis keep_hierarchy

keep hierarchy auto/manual 的模式下,可以在 HDL 中添加 synthesis directive 命令
来指定特定模块的层次是否要保留。
Flatten 模式下, synthesis directive 无效。
具体做法如下:
1) 为想要保留的模块,在源文件中添加相应的注释,注释的写法为:
a) 保留整个 module
Verilog

Verilog:
module SomeModule(
...
…
); /* synthesis keep_hierarchy=true */
....
endmodule
VHDL:
architecture rtl of SomeModule is
attribute keep_hierarchy : string;
attribute keep_hierarchy of rtl : architecture is "true";
....
end rtl;

20230926100223274-image

20230926100228104-image

b) 保留例化的模块

Verilog:
SomeModule u1( /* synthesis keep_hierarchy=true */
...
… …
);
VHDL:
attribute keep_hierarchy : string;
attribute keep_hierarchy of u1 : label is "true";

20230926100321945-image

20230926100328229-image

c) 不保留例化的模块

Verilog:
SomeModule u2( /* synthesis keep_hierarchy=false */
...
… …
);
VHDL:
attribute keep_hierarchy : string;
attribute keep_hierarchy of u2 : label is "false";

20230926100356984-image

20230926100401103-image

2) 保存文件并编译;
3) RTL/Gate Summary 可以看到被保留下来模块的资源使用情况,在
Schematic View RTL Schematic/Gate Schematic 可以看到被保留下来模块的
连线情况。

2. Synthesis max_fanout

目前 TD 软件中对于 fanout 的设置是全局性的, 如果想要指定某些网络的 fanout通过综合的时候自动复制 instance 来降低 fanout 并对时序优化提供给帮助, 可以在 HDL
中添加 synthesis directive 命令。
具体做法如下:
1. verilog 文件中,为想要设置 fanout 的信号,添加相应的注释,注释的写法为:
//synthesis max_fanout = value; /*synthesis max_fanout = value*/;
*注:该命令中 value 要求为正整数且大于 1
如:

reg [7:0] data; //synthesis max_fanout=10
wire data_en; //synthesis max_fanout=20

2. 保存文件并编译;
3. run flow 时可以在 log 中看到 synthesis directive 命令的生效情况。
4. vhdl 中的写法如下:

20230926100604820-image

其中, SYNTHESIZED_WIRE_79 为想要设置 fanout 的信号。

 门级优化 

门级优化包括普通逻辑的优化和映射、特殊逻辑的优化和映射等综合优化。门级优
化将产生包含逻辑单元和专用功能单元的电路。
1. FPGA Flow 面板中展开 HDL2Bit
2. 双击 Optimize Gate,或右键单击 Optimize Gate, 选择 Run,此时将产生文件:
gate.area,该文件的内容将与 keep_hierachy 参数的设定有关。
3. 参数配置
在菜单栏中, 展开
Process→Properties, 弹出 Properties Configuration 窗口, 选择
Optimize Gate 进行设置。

20230926100700440-image

5-3 Optimize Gate Properties

Property Comments Default
map_sim_model 生成映射后电路仿真模型 OFF
gate_sim_model 生成门级电路仿真模型 OFF
pack_seq_in_io 吸收寄存器逻辑进 IO 模块 ON
pack_effort 逻辑包装优化级别 MEDIUM
opt_area 组合逻辑优化级别 MEDIUM
opt_timing 时序优化级别 AUTO
auto_partition 运行时可将网表进行分区 FINE
report 报告信息级别 STANDARD

布局优化 

在得到正确的物理单元网表以后,需要对设计进行物理布局优化、 IO 单元布局、
物理单元布局和物理级逻辑优化等。布局优化将产生并处理只含有物理功能块
(IOPAD
SLICERAMDSP )的电路。
1. FPGA Flow 面板中展开 HDL2Bit
2. 双击 Optimize Placement,或右键单击 Optimize Placement, 选择 Run
3. 参数配置
在菜单栏中, 展开
Process→Properties, 弹出 Properties Configuration 窗口, 选择
Optimize Placement 进行设置。

20230926100821875-image

5-4 Optimize Placement Properties

Property Comments Default
effort 布线优化级别 MEDIUM
timing 时延优化级别 MEDIUM
relaxation 放松程度控制范围 [0.00, 2.00] 1.0

布线优化 

布局优化后,进行布线优化。布线优化将完成所有模块互联信号的物理连接。这一
步也是用户设计实现的最后一步。 这一步完成后,所有的物理信息都被确定。布线优化
后可查看设计的详细信息,也可获得准确的电路时序信息。
1. FPGA Flow 面板中展开 HDL2Bit
2. 双击 Optimize Routing,或右键单击 Optimize Routing 并选择 Run, 此时将产
生文件:
phy.area。 若用户已为工程添加 SDC 约束,在布线结束后, TD 会默认
为用户生成时序分析报告。 在
FPGA Flow 面板中展开 Design Summary, 选择
Timing Summary 可查看最终时序报告。若用户没有为工程添加 SDC 文件,查
Timing Summary 时, TD 会提示用户没有时序约束。

20230926100954792-image

3. 参数配置
在菜单栏中, 展开
Process→Properties, 弹出 Properties Configuration 窗口, 选择
Optimize Routing 进行设置。

20230926101020433-image

5-5 Optimize Routing Properties

Property Comments Default
effort 步通率优化级别 MEDIUM
opt_timing 时延优化级别 MEDIUM
fix_hold 修复 hold violation OFF
sdf 生成标准时序反标文件 OFF

生成位流文件

Generate Bitstream 是将 FPGA 芯片中可编程开关的配置信息用二进制 01 的格式
表示成位流
(bitstream)数据供编程下载用。 位流生成器为器件编程产生位流文件,下载
工具将位流文件载入到外部的
SPI Flash 存储芯片或直接载入 FPGA 内部的配置存储器
中。
1. FPGA Flow 面板中展开 HDL2Bit
2. 双击 Generate Bitstream,或右键单击 Generate Bitstream, 选择 Run, 此时将
产生文件:
Your_Project_Name.bit, 该文件为用二进制 01 的格式表示的可编程
开关的配置信息
3. 参数配置
在菜单栏中, 展开
Process→Properties, 弹出 Properties Configuration 窗口, 选择
Generate Bitstream 进行设置。

20230926101514455-image

5-6 General Option

Property Comments Default
version 定义位流文件的编号 00
bin 生成纯二进制位流文件,即不包含常规 bit
件的文件头
OFF
time_info 在位流文件中显示日期/时间信息 ON
gen_mask 生成一个用于 verify FPGA 的遮罩文件 OFF
unused_io_status 将所有未使用的引脚保留在指定的状态 PULLUP

Control Option 为一个 32 位的控制寄存器, 分为若干个控制选项,改变各项的取值,
可实现不同的控制效果。 针对不同的
devicecontrol option 选项有所不同。

5-7 Control Option

Property Comments Default
mclk_freq_div spi flash 的时钟分频系数 2.5MHz
cascade_mode 级联时使用, done pin 做为 input
( 2’b11: flowthrougth mode None
2’b10: bypass mode)
active_done done pin 处于 active 状态,由 cfg 内部决定 1
security 1 时,禁读 sram 0
persist spi pin 是否继续作为 cfg pin 在用户模式使用 0
close_osc 关闭振荡器 0

Startup Option 是跟启动项相关的 32 位控制寄存器,其控制原理同 Control Option.

20230926101839595-image

5-8 Startup Option

Property Comments Default
done_sync 是否同步 done pin 的值 0
usr_gsrn_en 是否使能用户的 gsrn 信号 0
gsrn_sync_sel 是否同步 gsrn 0
done_phase 决定在哪个 phase 放出 done 3’b100
goe_phase 决定在哪个 phase 放出 goe 3’b101
gsr_phase 决定在哪个 phase 放出 gsr 3’b110
gwd_phase 决定在哪个 phase 放出 gwd 3’b110

Design Summary

RTL Summary

HDL2Bit Flow 运行完 Optimize RTL,可展开 Design Summary,双击查看 RTL
Summary

keep_hierarchy 选择为 manual 时, td 仅对用户通过 synthesis directive 选择的
模块保留层次,该文件会层次化地给出分模块的资源使用;当
keep_hierarchy auto 时,
td 会自动选择较大的模块保留层次,该文件会层次化地给出分模块的资源使用。

Hierachy RTL Summary

20230926101954365-image

keep_hierarchy flatten 时,该文件包含了源文件中的所有输入输出端口以及各
逻辑门的使用情况。
Flatten RTL Summary

20230926102007667-image

Gate Summary

HDL2Bit Flow 运行完 Optimize Gate,可展开 Design Summary, 双击查看 Gate
Summary

keep_hierarchy 选择为 manual 时, td 仅对用户通过 synthesis directive 选择
的模块保留层次,该文件会层次化地给出分模块的资源使用;当
keep_hierarchy auto
时, td 会自动选择较大的模块保留层次,该文件会层次化地给出分模块的资源使用。
Hierarchy Gate Summary

20230926102058301-image

keep_hierarchy flatten 时,该文件包含了源文件中的所有输入输出端口以及
各逻辑门的使用情况。
Flatten Gate Summary

20230926102113168-image

Physical Summary

HDL2Bit Flow 运行完 Optimize Routing,可展开 Design Summary,双击查看
Physical Summary
该文件列出了 IO 端口和基本逻辑单元的使用情况和 IO 管脚分布情况。

20230926102138995-image

Timing Summary

HDL2Bit Flow 运行完成后,双击 Design Summary -> Timing Summary 即可打开
时序分析报告(
Timing Report),主界面如下:

20230926102200281-image

Timing Report 的界面主要包括以下部分:

20230926102213283-image

1. Report Navigation
此处为时序报告的目录树,将层次化的依次列出:时序约束类型,时序检查类型,
EndPoint 名称, timing path 名称等信息。
2. Timing Summary
此处将列出时序报告对应的芯片,封装,以及简略的时序统计信息。

3. Timing Group Statistics
Clock constraints
:列出了 SDC 中定义的各个 clock 能到达的最小周期,最大频率,
时钟树的
skew,扇出数以及 TNS 数据;
Minimum input arrival time before clockFPGA 芯片内部 input->reg path 的最大延时。
Maximum output required time after clockFPGA 芯片内部 reg->output path 的最大延
时。
Maximum combinational path delayinput->output 直通的组合逻辑路径最大延时。
Timing constraints 中展开 clock 下的 Setup Check 或者 Hold Check,将根据
proerties 设置显示相应数目的 timing path,双击某一条 timing path,则会在 Timing
Report
右侧栏显示该时序路径的详细信息, 其中主要条目的含义如下:

Start Point 指时序路径的起点,一般为寄存器的 clock 端或原始输入端
End Point 指时序路径的终点,一般为时序单元的输入数据管脚或原始输出端
Point 依次列出了该时序路径经过的结点名
Type 指明该段时序路径经过的是单元(cell)还是线网(net)
Incr 该段时序路径的延时增量
Source File 指明该 net Source File 中定义的地方(需打开 net_info 选项)
Arrival time 表示该时序路径的到达时间:
Arrival time = Tlaunch edge + Tlaunch clock delay + path delay
setup check 的情况下为最大可能延时,而 hold check 的情况下则是最小可能延
时,并且触发时钟的到达时间也已包含在内
Logic 表示逻辑资源在整条时序路径中所占用的延时比例
Net 表示互连资源在整条时序路径中所占用的延时比例
Required time 表示该项时序约束的要求时间:
最大路径约束(
setup check): Required time = Tcapture edge + Tcapture clock delay – Tsetup
– Tclock uncertainty
最小路径约束(hold check): Required time = Tcapture edge + Thold + Tclock uncertainty
Slack 表示时序路径的松弛余量,小于 0 则代表有时序风险:
最大路径约束(
setup check): Slack = Required time – Arrival time
最小路径约束(hold check): Slack = Arrival time – Required time

20230926102317188-image

Timing path 的命名规则为:
“/”表示层级关系; “|”表示并联关系; “.”表示从属关系。
下表介绍了时序路径经过的各节点含义:

Point Type Incr Comment
lcd/reg0_b1|lcd/reg0_b2.clk clock 1.677 表示 lcd 模块内的 reg0_b1 reg0_b2 被合并
到了同一个
slice,该路径起点为 slice clk
端。
clock 代表时钟树的延时为 1.677ns
lcd/reg0_b1|lcd/reg0_b2.q[0] cell 0.146 cell 内部的延时,即该 slice clk 端到输出
q[0]的延时为 0.146ns
_al_u349|lcd/reg0_b0.b[1]
(lcd/state[2])
Net
fanout=6
0.446 net 延时,即前一个 slice q 端到下一个 slice
b 端之间的线网延时为 0.446ns
括号里为
net 名称: net lcd/state[2]
fanout=6,表示该信号一共驱动了 6 个管脚。

对于给出了文件路径的 net 可以右键该 net,点击 Source 则可跳转到源文件相对应
的地方,点击
ChipView则可在 ChipView中显示该路径的具体走线,蓝色线段则为该 net
在整个 path 中的部分。

4. 参数设置
在菜单栏中, 展开
Process→Properties, 弹出 Properties Configuration 窗口, 选择
Timing Option,可以对 Timing Summary 进行参数设置。

20230926102427958-image

5-9 Timing Option Properties

Property Comments Default
net_info 显示 timing report 中的 net 信息 ON
ep_num 显示 endpoints 数量 3
path_num 显示每个 endpoint timing paths 数量 3
report_timing STA 使用更乐观的数据 OFF

Clock Intersection Summary

HDL2Bit Flow 运行完成后,双击 Design Summary -> Clock Intersection Summary
即可打开查看 Clock Intersection,主界面如下:

20230926102504257-image

Clock Intersection 的界面主要包括以下部分:

20230926102517626-image

1. Clock Intersection 数据表
此处为时钟交互的数据表格, 表格每一行的数据均是时钟
单向的, 即从一个时钟
到另一个时钟。 如果两个不同时钟(如
clk_vga_25m sys_clk)之间互有信号发送和捕 获, 在此表格中需要分两行描述, 分别为 clk_vga_25m → sys_clk sys_clk →
clk_vga_25m

20230926102803141-image

其中, source clock destination clock 定义如下:

Source Clock data path 起点 DFF 的控制时钟
Destination Clock data path 终点 DFF 的控制时钟

表中显示了时序路径的详细信息,与 Timing Report 中的信息相对应,其中主要条
目的含义如下:

Edges(WNS/WHS) 此单向时钟关系中最 critical 路径的 launch clockcapture
clock
的触发沿。 RISE_RISE 表示 launch/capture clock 均是
上升沿触发,类似的还有
RISE_FALLFALL_RISE
FALL_FALL
WNS/WHS(ns) Worst Negative Slack,在此单向时钟关系的所有时序路径中,
critical 的那条路径的 slack,以 ns 为单位,不一定为负
TNS/THS(ns) Total Negative Slack,此单向时钟关系的所有时序路径中
slack 为负的总和,以 ns 为单位,肯定不为正。如果不存在
时序违规路径,此值为
0
Failing Endpoints(TNS/THS) 此单向时钟关系的所有时序路径中出现 slack 为负的
endpoint 的总数
Total Endpoints(TNS/THS) design 中存在的此单向时钟关系的所有 endpoint 总数
Path req(WNS/WHS) 在此单向时钟关系的所有时序路径中,最 critical 的那条路径
require time,以 ns 为单位

20230926103822245-image

打开 Clock Intersection Summary 默认显示 Max Data,同时勾选 Show Min Data,则
会显示
Max Min Data,即显示全部信息。

20230926103909356-image

20230926104439291-image

此处描述的分析类型为 setup 或者 recovery,以及 timing report 中的对应信息。

20230926104537898-image

此处描述的分析类型为 hold 或者 removal,以及 timing report 中的对应信息。

20230926104557249-image

 

Clock Pair classification:静态综合时序约束的信息对两个时钟进行分类。可能出现
的标签有:

IGNORED 使用 set_clock_groups 或者 set_false_path 指定此单向时钟关
系中的所有路径不考虑
VIRTUAL 表示 source 或者 destination clock 中至少有一个是 virtual
clock
,多体现于 input/output path 的时序路径中
DERIVED 表示 source 或者 destination clock 中至少有一个是 derived
clock
derived_clocks 生成的时钟
NO_COMMON_MASTER 表示两个时钟来自于两个 primary clock,包括不同 primary
clock
之间的比较
NO_EXPAND 表示在 1000ns 范围内两个时钟周期找不到时钟沿重合的点,
完全是异步时钟
CLEAN 表示两个时钟同属一个 primary clock 定义的时钟域且有限
时间跨度内同步

静态分析按上述顺序依次检查定性,当满足一个定义时检查终止。
Inter-clock Constraints:在时序分析过程中动态地给单向时钟关系记录并在分析结束
后完成总结定性。可能出现的标签有:

NOPATH 不存在此单向时钟关系的时序路径
FALSE_PATH 此单向时钟关系中的所有时序路径均为 false path
EXCLUSIVE_GROUPS 此单向时钟关系中的所有时序路径均被 set_clock_groups
束要求忽略
TIMED_SAFE source destination 时钟同属一个时钟域且周期简单同步
TIMED_UNSAFE source destination 时钟属不同时钟域或者同属一个时钟域
但周期不同步
PT_FP_SAFE source destination 时钟同属一个时钟域且周期简单同步,
有一部分时序路径为
false path
PT_FP_UNSAFE source destination 时钟属不同时钟域或者同属一个时钟域
但周期不同步,有一部分时序路径为
false path

2. N*N 方格图
此处是根据
Clock Intersection 数据表格中的内容画出的一个 N*N 方格图:图中纵
向为
Source clocks,横向为 Destination Clocks,不同的 Inter-clock Constraints 对应不同
的颜色,默认
default 颜色如下:

20230926104725575-image

选择方格中的某一格会在数据表中显示对应的一行;选择数据表中的某一行会在对
应的方格中用白色边框标示。

20230926104847104-image

3. Clock Intersection Options
点击图中按钮处即可打开 Clock Intersecton OptionsVisibility 一栏可以通过对任一
clk 前的方框进行勾选或取消勾选来决定显示或隐藏该 clkColors 一栏可以对任一
Inter-clock Constraints 的颜色进行修改。

20230926104904345-image

20230926104911868-image

Clock Tree Summary

时钟树报告(Clock Tree Summary)主要用于时钟树的延时分析与辅助调试。报告
会给出详细的时钟网络拓扑结构以及整个时钟的最大时钟偏差。 其中, 时钟网络拓扑结
构包括任意引脚的连接关系和物理属性(位置,网络延时等)、终端引脚按前驱路径的
属性分类(走全局时钟资源和走普通互联资源)和时钟终端按
cell属性分类(如slice, bram,
dsp
等); 最大时钟偏差则精确地展现偏差绝对值及对应的引脚集合, 其中偏差值的计算
过程祛除了
common path pessimism
HDL2Bit Flow 运行完成后,双击 Design Summary -> Clock Tree Summary 即可打
开查看
Clock Tree,主界面如下:

20230926105037935-image

Clock Tree Summary 的界面主要包含以下几个部分:

20230926105057922-image

1. Clock Tree Summary
Clock Tree Summary
以时钟域报告为基本单元依次罗列, 时钟域报告以时钟报告为
基本单元依次罗列。时钟以及时钟域的数量与
sdc 中的时钟约束保持一致。
a) Clock Tree Summary
Clock Tree Summary
顶部显示整个时序约束中一共包含的时钟域和时钟数量。

20230926105209250-image

图中 sdc 文件中定义了 3 master clockT65MCPpll_clkT16MCPClock Tree Summary 中分 3 组依次展示每一个时钟域及其内部的时钟信息。
b) Clock Group Summary
每个时钟域分为主时钟和多个派生时钟。主时钟在时钟域报告中被第一个罗列,后
续依次为派生时钟。每个时钟域顶部,显示当前时钟域内一共定义了多少时钟。

20230926105347763-image

c) Clock Summary
单时钟报告主要分为 3 部分:
1) 时钟名、时钟频率、类型

20230926105428471-image

其中,单时钟报告内的浅灰色字体为辅助信息,本身不属于时钟网络的内容,用于
解释并表达某类属性或者统计信息。
2) 时钟网络拓扑结构
时钟网络拓扑结构以引脚为基本单元进行描述。 引脚名称的表达方式为
top model
到当前引脚的 Hierarchy Name
顶部综述本时钟树中的引脚总量。 引脚依据其在时钟树中的级数逐级展开,每个引
脚占用单独一行,两段描述:第一段:引脚的名称,第二段:引脚的简单属性,即所在
net、上级引脚到当前引脚的时序弧类型。如果两个引脚属于同一个 instance,那么时

序弧类型为‘cell’,反之为‘net’ ;锁定引脚,右击可以获取更加详细的属性信息。

20230926105507479-image

时钟网络拓扑结构中的时钟终端引脚采用归类法折叠: 共有两级折叠,每一级折叠
的属性中包含引脚数量。
第一级属性包括:
GLOBAL_NETWORK,表示时钟路径走全局时钟互联;
LOCAL_NETWORK,表示时钟路径走普通互联,多见于 skew 较大的时钟;
NONCLOCK,表示终端引脚为非时钟功能。
第二级属性为逻辑单元的名称,如
MSLICE/LSLICE/IOL/DSP 等。

20230926105527274-image

被当前引脚驱动的多个引脚可能包含时钟树躯干引脚和终端引脚:没有被灰色解释
字体折叠的引脚均为躯干引脚;被灰色解释字体折叠的引脚均为终端引脚。

20230926105546944-image

3) 最大时钟偏差
时钟源到任意一个终端引脚的延时存在一个范围: 最好延时和最坏延时。 比较整个
时钟网络的最好延时引脚和最坏延时引脚,得到差值即为最大时钟偏差。
时钟偏差分为:上升沿时钟偏差和下降沿时钟偏差。时序库延时数据分为信号上升
沿和下降沿延时,因此分别计算时钟上升沿和下降沿的时钟偏差值及对应的引脚集合。

20230926105630568-image

时钟偏差按组描述: 最大偏差一定发生在整个时钟树的某一子树内部。 如果时钟树
内存在两个子树的偏差相同,且均为最大偏差,那么需要分两组分别展示。然而, 最大
时钟偏差通常发生在以整个时钟树根结点的 ‘子树’ 内,因此多数时钟的最大偏差只
有一组。

一组偏差内的引脚按类进行描述,类别有:
FASTEST:从 common ancestor 开始的延时最短的引脚集合;
SLOWEST:从 common ancestor 开始的延时最长的引脚集合;
MUTUAL:从 common ancestor 开始到此子树所有叶子引脚的最长与最短延
时均相同。最大时钟偏差发生时部分终端引脚延时最长且部分终端引脚延时
最短,通常发生于非常平衡的时钟树。

FASTEST/SLOWEST

20230926105711621-image

分别展示最大和最小延时引脚集合。这里的引脚仅用 hier name 表示,相关属性可
TOPOLOGY 中查找。

MUTUAL

20230926105734282-image

最大偏差的计算是比较各个引脚 min delay max delay 的差值,差值最大的引脚集
合即为最大偏差引脚集合。当差值最大的引脚集合为同一个集合时,表示最大偏差发生
在此集合内任意两个引脚之间(多见于完全平衡时钟树)。因此,
FASTEST SLOWEST
集合为同一个集合,只需描述一次,采用 MUTUAL 关键字。

请登录后发表评论

    没有回复内容