- 博客(267)
- 收藏
- 关注

原创 Verilog基础:层次化标识符的使用
一般情况下我们只会接触到简单标识符,但是有些时候(如验证设计时),层次化标识符也会被使用,本文目的是为需要使用层次化标识符的设计人员提供一定参考。
2024-10-22 00:13:36
1265
30

原创 静态时序分析:典型与非典型时序路径的约束详解(一)
时序路径是静态时序分析中的一个重要概念,了解时序路径能帮助设计者更好地编写SDC脚本,本文旨在详细介绍时序路径相关内容。 首先给出时序路径的定义:时序路径是由时序弧构成的数据路径,静态时序分析会分别对每条有约束的时序路径进行时序检查(例如建立时间检查、保持时间检查、移除时间检查、恢复时间检查等)。 时序路径可以是典型的,也可以是非典型的;时序路径可以是有约束的,也可以是未约束的。
2024-03-07 19:26:01
2703
41

原创 Verilog基础:表达式位宽的确定(位宽拓展)
我们可以首先找到被加入上下文环境的操作数,a和b作为+操作符的操作数,是上下文决定的,(a+b)作为整体位与移位操作符的左边也是上下文决定的,(a+b)>>1作为整体是=操作符的右操作数,也是上下文决定的,因此answer(因为=),a,b(因为三层上下文嵌套)都被加入上下文环境中,这三个变量的位宽都是一样的,所以他们三个在运算前不会有拓展。因此首先执行a+b,根据规则,结果为16位,进位被丢失,然后再右移一位,最高位补0,最后赋值给同为16位的answer。很多时候方法很简单。改成a+b+17'b0;
2023-01-27 22:03:25
12186
87
原创 静态时序分析:时序组(Path Group)的概念
要理解时序组(Path Group)的概念,首先得知道时序路径的概念,时序路径是由时序弧构成的数据路径,静态时序分析会分别对每条有约束的时序路径进行时序检查(例如建立时间检查、保持时间检查、移除时间检查、恢复时间检查、最大延迟检查和最小延迟检查等)。
2025-02-06 15:38:06
990
1
原创 Synopsys:set_app_var和set命令的区别
Synopsys的EDA工具中存在一类变量,它们能控制工具的行为,被称为应用变量(application variable),与之对应的是用户自定义变量(user-defined variable)。
2025-02-05 14:47:10
446
1
原创 Formality:黑盒(black box)
在使用Formality时,黑盒(black box)的概念很重要,指的是一个其功能未知的设计。黑盒通常用于设计中不可综合的组件,包括RAM、ROM、模拟电路和硬核IP等。它也是需要匹配的对象之一,必须确保参考设计和实现设计之间存在一一对应的映射,黑盒输入引脚被视为比较点,而黑盒输出引脚被视为普通匹配点,关于这两者的概念,详见下面这篇博客。
2025-01-30 23:23:36
1178
2
原创 Formality:时序变换(四)(寄存器合并)
时序变换在Design Compiler的首次综合和增量综合中都可能发生,它们包括:时钟门控(Clock Gating)、寄存器合并(Register Merging)、寄存器复制(Register Replication)、常量寄存器移除(Constant Register Removal)、不可读寄存器移除(Unread register removal)、流水线重定时(Pipeline Retiming)、自适应重定时(Adaptive Retiming)、相位反转(Phase Inversion)、
2025-01-25 21:08:48
1006
4
原创 Formality:时序变换(三)(相位反转)
时序变换在Design Compiler的首次综合和增量综合中都可能发生,它们包括:时钟门控(Clock Gating)、寄存器合并(Register Merging)、寄存器复制(Register Replication)、常量寄存器移除(Constant Register Removal)、不可读寄存器移除(Unread register removal)、流水线重定时(Pipeline Retiming)、自适应重定时(Adaptive Retiming)、相位反转(Phase Inversion)、
2025-01-25 01:20:17
1322
2
原创 Formality:时序变换(二)(不可读寄存器移除)
时序变换在Design Compiler的首次综合和增量综合中都可能发生,它们包括:时钟门控(Clock Gating)、寄存器合并(Register Merging)、寄存器复制(Register Replication)、常量寄存器移除(Constant Register Removal)、不可读寄存器移除(Unread register removal)、流水线重定时(Pipeline Retiming)、自适应重定时(Adaptive Retiming)、相位反转(Phase Inversion)、
2025-01-23 23:02:01
1076
3
原创 Formality:时序变换(一)(常量寄存器移除)
时序变换在Design Compiler的首次综合和增量综合中都可能发生,它们包括:时钟门控(Clock Gating)、寄存器合并(Register Merging)、寄存器复制(Register Replication)、常量寄存器移除(Constant Register Removal)、不可读寄存器移除(Unread register removal)、流水线重定时(Pipeline Retiming)、自适应重定时(Adaptive Retiming)、相位反转(Phase Inversion)、
2025-01-23 14:53:50
843
1
原创 Formality:不可读(unread)的概念
在Formality中有时会遇到不可读(unread)这个概念,本文就将对此进行描述。不可读是一种状态,触发器、锁存器、输入端口等许多对象都可能位于这种状态,简单来说,不可读就是直接或间接没有驱动任何比较点。
2025-01-22 16:16:30
895
11
原创 Formality:参考设计/实现设计以及顶层设计
FormalityFormality存在两个重要的概念:参考设计/实现设计和顶层设计,本文就将对此进行详细阐述。参考设计/实现设计是中两个重要的全局概念,在使用verify命令时,默认是对它们两者之中的比较点进行验证;而顶层设计则是属于一个容器的局部概念,每个容器只能拥有一个顶层设计,且确定之后就无法更改。
2025-01-17 00:34:35
1111
1
原创 Formality:子网表的产生
当加载了svf文件后,Formality会创建子目录formality_svf并在其中保留svf.txt,这是已加载的svf文件解密后的内容,但有时候还会出现另一个子目录(名字为d1之类的),其内部保留了.a结尾的文件,这其实是部分二进制形式的网表。为什么会有这样的行为呢?首先得了解DesignWare库是如何使用的。
2025-01-14 01:08:45
797
11
原创 Formality:两种等价状态consistency和equality
逻辑锥的等价性检查时,存在两种验证模式:一致(consistency)和等同(equality),要理解这两点,首先得明白综合工具(Design Compiler)是如何处理不定态(x)的信号。
2025-01-12 14:52:21
1027
3
原创 Formality:默认配置文件
当启动Formality时,它会自动执行三个设置文件中的命令,这些文件具有相同的文件名.synopsys_fm.setup.,但位于不同的目录中,它们可以包含初始化参数和变量、声明库等命令。Formality按以下顺序读取这三个目录中的设置文件:
2025-01-10 23:29:29
443
4
原创 Formality:官方Tutorial(二)
本文是对SynopsysFormalityUserGuideTutorial中第二个实验的翻译(有删改),Lab文件可以从以下链接获取。
2025-01-08 00:04:52
1676
原创 Formality:官方Tutorial(三)
本文是对SynopsysFormalityUserGuideTutorial中第三个实验的翻译(有删改),Lab文件可以从以下链接获取。
2025-01-08 00:04:05
712
1
原创 Formality:参数化设计的命名规则
在Formality中使用set_top命令设置一个容器的顶层设计(elaborate)时,一个参数化的设计(或者说模块)可能因为其参数覆盖而出现不同的结构,此时原来的设计名无法进行区分,该设计将会根据其参数名和参数值进行重命名(注意是设计名而不是实例名)。
2025-01-06 22:24:50
1306
1
原创 Formality:设计库(Design Library)和工艺库(Technology Library)
Formality如果在Formality中按照层次结构划分设计对象,从上到下分别是容器(Container)、库(Library)、设计(Design),本文就将介绍库这一层次。
2025-01-05 16:33:45
699
原创 Formality:官方Tutorial(一)
本文是对Synopsys Formality User Guide Tutorial中第一个实验的翻译(有删改),Lab文件可以从以下链接获取。
2025-01-04 00:07:16
1118
3
原创 静态时序分析:线负载模型的选择机制
线负载模型仅在Design Compiler线负载模式(非拓扑模式)下时使用,它估算了导线长度和扇出对网线的电阻、电容和面积的影响,Design Compiler使用这些物理值来计算导线延迟和电路速度。半导体供应商根据其工艺的统计信息开发线负载模型。这些模型包括单位长度的面积、电容和电阻系数,并且还包含一个扇出与长度的表,用于估算网线的长度(扇出数量决定了一个标称长度)。
2025-01-01 21:27:10
1083
3
原创 Design Compiler:两种工作模式(线负载模式和拓扑模式)
Design Compiler可以以线负载模式或拓扑模式启动,必须选择其中一个模式。在拓扑模式下还可使用多模式和UPF模式:多模式允许在多种工作条件和多种模式(例如测试模式和待机模式)下运行工具;UPF模式允许指定先进的低功耗方法。
2024-12-30 22:09:44
725
2
原创 Formality:匹配(match)是如何进行的?
匹配指的是Formality工具尝试将参考设计中的每个匹配点与实现设计中的相应匹配点进行配对,这里的匹配点包括比较点(ComparePoints)以及普通的匹配点(Points)。在介绍匹配点前首先需要了解逻辑锥(LogicCones)的概念,逻辑锥是指从特定的设计对象出发,并向后延伸至某些设计对象的组合逻辑结构,之所以被称为锥,是因为其就像椎体一样(一般)拥有一个顶点和多个底点,如图1所示。
2024-12-29 23:31:39
1113
4
原创 TestMAX/DFT Compiler:时序单元的类型、连接顺序和后DFT优化
TestMAX/DFT Compiler:时序单元的类型、连接顺序和后DFT优化
2024-12-27 22:29:44
1635
9
原创 TestMAX/DFT Compiler:支持的扫描风格
DFT Compiler 支持以下扫描风格:多路复用触发器扫描风格(Multiplexed Flip-Flop Scan Style)(笔者个人认为叫多路复用扫描风格更好)时钟扫描风格(Clocked-Scan Scan Style)电平敏感扫描风格(Level-Sensitive Scan Design, LSSD Style)扫描使能电平敏感扫描风格(Scan-Enabled Level-Sensitive Scan Design, LSSD Style)
2024-12-27 17:10:17
427
1
原创 数字IC前端学习笔记:脉动阵列的设计方法学(四)
脉动结构(也称为脉动阵列)表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地泵入泵出数据以保持规则的数据流。因此,脉动阵列的特征是模块化和规则化,这对于VLSI设计来说是一个重要的性质。脉动阵列可以作为与主机配合的协处理器,从主机接收数据进行计算并将最终结果返回主机。这个操作类似心脏的血液流动,因此被称为“脉动”。
2024-12-25 13:47:05
1219
5
原创 数字IC前端学习笔记:脉动阵列的设计方法学(三)
脉动结构(也称为脉动阵列)表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地泵入泵出数据以保持规则的数据流。因此,脉动阵列的特征是模块化和规则化,这对于VLSI设计来说是一个重要的性质。脉动阵列可以作为与主机配合的协处理器,从主机接收数据进行计算并将最终结果返回主机。这个操作类似心脏的血液流动,因此被称为“脉动”。
2024-12-19 22:48:36
1070
11
原创 Design Compiler:端口和引脚的bbox属性和其location
这篇文章其实源于博主的一个偶然发现,在使用DC-T并查看Layout时,发现了端口对象的bbox与其location无法对应上,如图1所示。
2024-12-17 01:43:00
597
3
原创 数字IC前端学习笔记:脉动阵列的设计方法学(二)
脉动结构(也称为脉动阵列)表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地泵入泵出数据以保持规则的数据流。因此,脉动阵列的特征是模块化和规则化,这对于VLSI设计来说是一个重要的性质。脉动阵列可以作为与主机配合的协处理器,从主机接收数据进行计算并将最终结果返回主机。这个操作类似心脏的血液流动,因此被称为“脉动”。
2024-12-14 18:56:55
958
10
原创 Formality:set_svf命令
Formalitysvf文件的全称是Setup Verification for Formality,即Design Compiler提供给Formality的设置验证文件,它的作用是为Formality的指导模式(Guidance)和设置模式(Setup)提供信息,以帮助其更好地理解和处理设计流程中因使用Design Compiler而引起的设计变更的一种机制。svf文件的详细介绍和生成命令在下面的博客中已经讨论,本文主要讨论Formality中的set_svf命令。
2024-12-11 23:53:01
1442
3
原创 Design Compiler:Topographical Workshop Lab4
本文是对SynopsysDesign Compiler Topographical/Graphical Workshop Lab Guide中Lab4的翻译,Lab文件可以从以下链接获取。
2024-12-10 23:45:29
983
4
原创 数字IC前端学习笔记:脉动阵列的设计方法学(一)
脉动结构(也称为脉动阵列)表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地泵入泵出数据以保持规则的数据流。因此,脉动阵列的特征是模块化和规则化,这对于VLSI设计来说是一个重要的性质。脉动阵列可以作为与主机配合的协处理器,从主机接收数据进行计算并将最终结果返回主机。这个操作类似心脏的血液流动,因此被称为“脉动”。
2024-12-04 01:19:20
1411
13
原创 Formality:等价性检查的流程与模式(Guide、Setup、Preverify、Match与Verify)
Formality:等价性检查的流程与模式(Guide、Setup、Preverify、Match与Verify)
2024-12-02 22:10:35
1474
3
原创 Formality:设置Automated Setup Mode模式
Formality要使用自动设置模式,在加载/执行svf文件之前,需要将synopsys_auto_setup变量(布尔值)设置为true或者在GUI界面中选择Use Auto Setup,如图1所示。当自动设置模式设置后,一组Formality变量会被设置,一些设置命令会执行,以与Synopsys综合工具例如Design Compiler兼容,从而通过使用svf指导文件提高整体工具的设置性能。
2024-12-01 16:31:17
1249
13
Design Compiler Topographical/Graphical Workshop Lab Guide
2024-11-13
Synopsys Design Compiler Topographical/Graphical Workshop Lab
2024-11-13
AMBA AHB规格文档(从AMBA 2到AMBA 5)
2024-10-03
AMBA APB规格文档(从AMBA 2到AMBA 5)
2024-10-03
Conformal 2023系列工具User Guide
2024-06-22
Verilog实现的RISC存储程序CPU
2023-03-12
Cortexm3是小端序,但为什么32位的指令看起来并不是如此?
2024-08-26
对于C语言,在使用大括号初始化数组时,括号内可以是变量吗?
2024-02-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人