自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Verilog基础:层次化标识符的使用

一般情况下我们只会接触到简单标识符,但是有些时候(如验证设计时),层次化标识符也会被使用,本文目的是为需要使用层次化标识符的设计人员提供一定参考。

2024-10-22 00:13:36 1265 30

原创 静态时序分析:典型与非典型时序路径的约束详解(一)

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

2024-03-07 19:26:01 2703 41

原创 数字IC基础:数字集成电路书籍推荐

书籍推荐

2024-03-01 14:50:15 2339 68

原创 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:比较点的验证状态和整体验证状态

Formality:比较点的验证状态和整体验证状态

2025-01-16 00:30:29 1105 3

原创 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:工具生成的文件

Formality在启动和运行时会创建一些目录和文件,本文旨在对它们进行说明。

2025-01-10 22:18:00 935

原创 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

原创 Linux:各发行版及其包管理工具

Linux。

2025-01-02 21:18:56 711

原创 静态时序分析:线负载模型的选择机制

线负载模型仅在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

原创 嵌入式:各型号的J-link、J-Trace和Flasher简介

各型号的J-link、J-Trace和Flasher简介

2024-12-30 15:44:42 880

原创 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

原创 编程语言注释的方式

编程语言注释的方式

2024-12-20 23:51:32 375 10

原创 数字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

Formality官方Tutorial

Formality官方Tutorial

2025-01-03

Verdi各版本User Guide

Verdi各版本User Guide

2024-12-25

Power Compiler各版本User Guide

Power Compiler各版本User Guide

2024-12-25

HDL Compiler各版本User Guide

HDL Compiler各版本User Guide

2024-12-25

PrimeTime各版本User Guide

PrimeTime各版本User Guide

2024-12-25

VCS各版本User Guide

VCS各版本User Guide

2024-12-25

Formality各版本User Guide

Formality各版本User Guide

2024-12-25

Design Compiler各版本User Guide

Design Compiler各版本User Guide

2024-12-25

Design Compiler Topographical/Graphical Workshop Lab Guide

Design Compiler Topographical/Graphical Workshop Lab Guide,来自EETOP坛友的分享

2024-11-13

Synopsys Design Compiler Topographical/Graphical Workshop Lab

Synopsys Design Compiler Topographical/Graphical Workshop Lab Guide,来自EETOP坛友的分享

2024-11-13

VC Spyglass RDC User Guide 2022

VC Spyglass RDC User Guide 2022

2024-11-09

VC Spyglass Lint User Guide 2022

VC Spyglass Lint User Guide 2022

2024-11-09

VC Spyglass CDC User Guide 2022

VC Spyglass CDC User Guide 2022

2024-11-09

VC LP User Guide 2022

VC LP User Guide 2022

2024-11-09

VC Formal User Guide 2022

VC Formal User Guide 2022

2024-11-09

AMBA AHB规格文档(从AMBA 2到AMBA 5)

AMBA AHB(Advanced High-performance Bus)是由ARM公司设计的一种总线接口,专门用于处理高带宽和高性能数据传输需求。它也是AMBA总线协议家族的一部分,与APB(Advanced Peripheral Bus)和AXI(Advanced eXtensible Interface)总线并行使用。AHB主要用于连接高性能的核心模块,如处理器核心、DMA(Direct Memory Access)控制器和高速存储设备。这种总线支持高数据传输速率和更复杂的总线控制特性,如突发传输和分裂传输,以优化系统性能和增加总线使用效率。AHB适用于那些需要处理大量数据或执行复杂数据处理任务的系统,例如在多媒体处理和高速缓存系统中。

2024-10-03

AMBA APB规格文档(从AMBA 2到AMBA 5)

AMBA APB(Advanced Peripheral Bus)总线是ARM公司设计的一种总线接口,专门用于与低带宽控制外设连接。它是AMBA总线协议家族的一部分,该家族还包括其他几种总线协议,如AHB(Advanced High-performance Bus)和AXI(Advanced eXtensible Interface)。APB被设计用于简单的外设,例如时钟控制、接口控制和I/O端口,这些外设不需要高速数据传输。

2024-10-03

使用Pytorch量化框架的训练后量化(PTQ)的Vision Transformer

项目中包含vit-b在imagnet上的预训练权重,只能在CPU上执行。

2024-07-21

Conformal 2023系列工具User Guide

Conformal形式验证系列包括Conformal LEC(Logic Equivalence Checking)、Conformal ECO(Engineering Change Orders)、Conformal LP(Low Power)、Conformal CD(Constraint Designer)以及Conformal Verify。

2024-06-22

Verilog实现的RISC存储程序CPU

来自于《Verilog HDL高级数字设计》,电路包含三个功能单元:处理器(数据通路)、控制器和存储器。程序指令及数据放在存储器中。程序执行时同步地进行指令的读取、译码和执行:(1)对ALU中的数据进行操作;(2)修改寄存器的内容;(3)修改程序计数器(PC);指令寄存器(IR)和地址寄存器(ADD_R)的内容;(4)修改存储单元的内容;(5)获取存储器中的数据和指令;(6)控制系统总线上的数据传送。其中,指令寄存器IR用于存放当前正在执行的指令,程序计数器PC用于存放下一条将要执行指令的存储地址,而地址寄存器ADD_R则用于保存下一个将要读/写的存储单元地址。

2023-03-12

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除