- 博客(208)
- 资源 (16)
- 收藏
- 关注

原创 spyglass cdc检查约束
1:set_asyncrst_ignore_patheg:set_asyncrst_ignore_path -from [get_pins ${DSIR_HIRE}dsi_rx_ss_1/DWC_mipidsi2_device/u_regbank/phy_rstz_reg_0_/Q] -to_clock {hsrx_word_clk_d0_div2_dsi_rx_ss_1}2:set_cdc_ignore_path -from -toeg:set_cdc_ignore_path -from ${DSIR_H
2023-10-24 19:19:15
1213

原创 你了解RDC吗?
举个例子,如果reset1_n的部分要被power gating了,或者被soft reset了,而reset2_n的domain依然工作,那么就会出现这种情况,产生RDC最。在上面这幅图中,我们有2个reset,分别是reset1_n和reset2_n,其中flop F1是被reset1_n给异步reset的,而F3是被reset2_n给异步reset的,F2可能是被同步reset给复位,也可能没有reset,而这其中,F1和F2和F3的控制逻辑的fan-in,也就是说F1的变化会影响到F2和F3的值。
2023-10-02 13:30:10
2159

原创 Multicycle path怎么设,真的看这一篇就够了!
我曾经看过不止5以上篇讲解关于multicycle path约束的博客或者文章,真的没有一篇能完全讲清楚这个约束该怎么下,command的option表示什么意思,让对这个问题不清楚的同学能加迷惑。直到看到这篇文章。废话不多说了,直接上干货。
2023-10-02 01:05:59
3526

原创 amba_axi_聊一聊narrow single
AMBA总线无论是soc还是FPGA,应该都是比较常用的一组总线协议,对于其中的协议,有一种传输形式叫Narrow Transfers。
2023-07-23 16:25:21
1972
2

原创 说一说logically exclusive 和 physically exclusive
彼此之间没有任何交流的意思是:不存在任何时序路径,其起点是由C1驱动的,而终点是由C2驱动的,也不存在任何路径,其起点是由C2驱动,而其终点是由C1驱动的。图中C1端口经过走线到达MUX的输入端口A,之所以要在A处定义生成时钟,是为了使约束命令向后兼容代码,如下图中所示,如果在后续版本中的代码中,C1和C2时钟的logically exclusive关系消失,而同时我们一开始就定义C1和C2是logically exlusive的,那么此时就会错误的省去某些path的时序分析从而埋下隐患。
2023-04-05 23:52:06
2622

原创 SNPS Timing Constraints and Optimization学习记录
使用set_max_delay或set_min_delay命令,可以用自己的指定的时间值覆盖默认的最大或最小时间。用上面的命令工具会忽略掉clock(lauch 和 capture edge)的关系,REGA到REGB 路径的延迟如果大于12 unit - setup ,path就认为违例了,就会报timing violation。是这么描述的,使用set_max_delay/set_min_delay指定的值覆盖默认的建立和保持时间。
2022-12-09 00:42:12
2261

原创 Design compiler约束之——path_group
今天发现了一个宝藏文档(这也反映出了我有多菜,这么晚才发现)synopsys官方的timing约束手册。通过官方文档中的描述来一起学习一下这个path group约束。设计的时序路径被组织成group的形式,默认情况下,设计中每个时钟域有一个path group。
2022-11-26 22:05:28
2262
3

原创 认识异步复位寄存器同时学习timing_arc约束
dc工具也认为异步复位比异步置位的优先级高,当verilog代码中把resetn放在前面时,~resetn和setn会被连接在CD和SDN上,而当代码中把setn放在前面时,综合后的电路会多出来一些cell,用于判断setn优先级高于resetn,如上述图中所示。还要说明的一点是,always语句的敏感列表中的信号数不局限于2个或者3个,而是可以有更多,只要他们全都是edge trigger即可,那么假如在RTL时,我设置两个异步复位信号,综合以后的电路会是什么样子?
2022-11-05 19:18:32
6830
1

原创 说一说axi的几个典型特性
交织传输,是指在不同的trans中beat交替的传输,但是同一个trans内部的beat还是按照顺序进行传输的,首先我们要知道axi的平均带宽为多少,master—>slave的延迟有多大,典型trans为多大。因为论坛上已经有很多关于axi这些概念的讲解,所以这里我只说一些别人没有讲到的,如有不对请指正。eg:平均带宽1GB/s,通路上的延迟为1000ns,典型trans为512Byte。RID_2,RID_1,RID_0(R通道)eg:ARID_0,ARID_1,ARID_2(AR通道)
2022-11-03 00:04:30
769

原创 建立时间裕量和保持时间裕量
前面的博客里面有讲解建立时间Tsetup和保持时间Tholdon的概念以及要满足的和时钟之间的关系,这里不再重复,在了解建立时间裕量和保持时间裕量之前我们先来了解一下触发沿Launch Edges 和锁存沿Latch Edges。一般认为Launch edge为 T=0;Launch Edge: the edge which “launches” the data from sourc.........
2018-08-12 22:10:25
11186
2
原创 DLLP包详解,Ack/Nak机制解读
DLLP一般指的是由发送端的数据链路层发送,接收端的数据链路层接收的数据包,其和事务层(Transaction Layer)一般没有什么关系,本文将要介绍的DLLP指的正是这样的数据包,一般用于Ack/Nak机制,功耗管理,Flow Control和一些厂商自定义用途等,示意图如下:DLLP的格式是固定的,一共有8个字节,包括Framing (SDP & END)。和TLP不一样的地方是DLLP并未携带任何路由信息,原因很简单,因为DLLP只在相邻两个设备的数据链路之间通信,
2025-03-25 14:37:21
294
转载 PCIe个人理解专栏——【4】Symbol
我们知道,从数据链路层下来的数据流(TLP/DLLP)需要经过一个编码,一个字节8bit编码后变为10bit,这个10bit我们称之为Symbol,中文称之为符号,也有很多文章叫字符,为了统一,本文也称之为字符,因为是数据编码,我们称之为数据字符,表示为Dxx.y;注意:上述一级后面物理层相关的,我们讨论的都是gen1,gen2为准,gen3以及以后更改了编码方式和部分控制字符,略有不同,但并不影响我们对协议整体理解,因为协议规定,链路训练首先要求双方都从gen1开始;
2025-02-24 10:37:22
57
转载 PCIe个人理解专栏——【3】热插拔原理
PCI express Capability structure必须实现slot control register 和 slot status register。
2025-02-07 19:10:19
162
原创 PCIe 个人理解专栏——【2】LTSSM(Link Training and Status State Machine)
链路训练和状况状态机LTSSM(Link Training and Status State Machine)是整个链路训练和运行中状态的状态转换逻辑关系图,总共有11个状态。
2025-01-25 21:19:15
621
转载 PCIe 个人理解专栏——【1】带宽计算
通常我们对于高速链路的数据传输速率的单位是Gbps(Gigabitsper second)即链路上每秒传输千兆个bit,当然也有GBps(Gigabytesper second)差别在于一个是小写的b,一个是大写的B,即GBps = Gbps/8,两者还可以写成Gb/s,GB/s;
2025-01-25 20:20:31
76
原创 eFuse基本概念
GTP-4o(电子熔丝)是一种在集成电路(IC)设计中常用的可编程熔丝技术。它在芯片中起着至关重要的作用,主要用于配置、调整、修复和安全相关的功能。以下是关于 eFuse 在芯片中的用途和相关技术的详细解释。
2024-06-30 22:58:14
7817
原创 讲透filelist中+incdir+ 和 `include 的用法
在大多数 Verilog 编译器(如 VCS、ModelSim/Questa、Verilator)中,使用+incdir+选项指定包含路径后,仍然需要在filelist文件中列出每一个 Verilog 源文件。+incdir+选项仅告诉编译器在特定目录中查找头文件(例如.vh/ .inc 文件),而不会自动包含这些目录中的 Verilog 源文件。你需要明确地列出每一个 Verilog 源文件,以便编译器知道要编译哪些文件。filelist。
2024-06-25 17:04:29
4935
原创 以太网基础知识(四)—Auto-Negotiation & Link Training
100G 以太网自协商(Auto-Negotiation)是为了让两个相连的设备自动选择最佳的链路配置。这包括链路速度、双工模式和其他参数。以下是100G以太网自协商的发包结构和详细过程的详细描述。
2024-06-16 23:42:51
1858
原创 以太网基础知识(三)—FEC概念以及编码原理介绍
RS是一种基于有限域(Galois Field, GF)的块编码技术。它能够纠正突发错误和随机错误,特别适用于高误码率环境。符号:RS 编码处理的是符号而不是单个位。每个符号由多个比特组成,通常是 8 位(即一个字节)。码字长度 (n):一个 RS 码字包含的符号总数。信息符号数 (k):一个 RS 码字中实际传输的信息符号数。冗余符号数 (n-k):用于错误检测和纠正的冗余符号数。
2024-06-16 23:26:44
5160
原创 以太网基础知识(二)—NRZ,PAM4,DME
了解调制技术需要引出“码元”的概念。一个码元就是一个脉冲信号,即一个最小信号周期内的信号,我们都能够理解,最简单的电路,以高电平代表1,低电平代表0,一个代表1或者0的信号,就是一个码元。信号可以传递信息主要是因为信号有频率,振幅,相位,波长,周期,其中频率/波长/周期三者有相关性,因此可以认为,频率,相位,振幅使信号可以传递信息,其中最常见的是振幅(电平),所以,有没有可能让一个码元/脉冲信号携带的信息量是2或者4bit呢?
2024-06-16 19:45:31
4290
原创 以太网基础知识(一)—名词解释
在搞以太网的时候碰到了很多名词,比如:100Base-T、100Base-TX等这些东西,在IEEE802.3中,也到处是这些词。数字100用单位MHz (Megahertz)表示网线设计的频率。即100 MHz。MHz的值越大,网线所支持的速度就越快。如果你尝试将这种类型的网线用于更高的频率(和速度)中,那么它将不工作或者变得极为不可靠。100 MHz以每秒100Mbit的速度传输,这在理论上指的就是12 Mbps。然而,在实际中,可能还无法获得超过4 Mbps。
2024-06-10 23:15:39
1158
原创 以太网基础——ARP协议
MAC地址(Media Access Control Address),直译为媒体访问控制位,也称为局域网地址(LAN address),MAC地址,以太网地址(Ethernet Address)或物理地址(Physical Address)它是一个用来确认网络设备位置的地址。
2024-04-06 23:17:53
1039
转载 以太网基础——IP协议
IP(Internet Protocol,互联网协议)是互联网通信的基础协议,它负责将数据包从源地址传输到目的地址。IP协议定义了如何封装数据包,如何寻址数据包以及如何路由数据包,它是随着互联网的出现而诞生的。IP地址就是唯一标识一个主机的地址,通常表示为4个十进制数,每个数的范围是0-255,用点分十进制的格式表示,如192.168.1.1。IP协议是一个无状态的协议,每个数据包都独立处理,不依赖于之前或之后的数据包。此外,IP协议还提供了数据包的差错检测功能。
2024-04-06 18:31:38
593
转载 以太网基础——TCP/IP协议
TCP/IP协议包含了一系列的协议,也叫做TCP/IP协议族(TCP/IP Protocal Suite,或者TCP/IP Protocols),简称TCP/IP,TCP/IP协议族提供了点对点的连接机制,并且将传输数据帧的封装,寻址,传输,路由以及接收方式,都予以标准化。
2024-04-06 00:37:28
1853
原创 DSI2协议之BTA行为理解
Ack and error report可以作为任意command或read request的响应(在master向slave发起BTA之后),在Master发送完毕一个Transmission之后,如果检查到ECC err那么在Master发送一个read request包之后就会发起BTA,而Slave则会返回Ack and Err Report包。这里需要注意的是csi cphy ppi接口包的header和dsi cphy ppi接口包的header 在多trio上分配形式存在差别。
2024-03-02 18:45:44
1594
原创 mipi dsi协议DBI/DPI接口
MIPI dsi协议中的DBI/DPI接口主要用于主机和display设备之间的数据传输,说的更通俗一点就是DSI RX控制器和实际的显示面板之间的接口;
2023-12-17 22:41:10
2680
原创 今天来聊一个简单的握手打拍技巧
握手协议是数字逻辑设计中最最常见的一种设计了,今天就来聊一聊valid-ready握手时,valid和data的打拍技巧。
2023-11-12 23:18:22
1312
原创 Lib文件和netlist的关系,DDC文件和netlist的区别
网表文件,也称为门级网表文件,描述了IC设计的门级结构,包括各种门级元件(如AND、OR、XOR等)以及它们的连接关系。因此,netlist文件和DDC文件的区别在于:netlist文件描述了电路的逻辑功能和连接关系,是电路设计的基础;总之,Lib和网表都是数字IC设计中非常重要的文件,但它们的作用和用途不同。综合工具生成的netlist文件和DDC文件都是与电路设计相关的文件,但它们的内容和用途有所不同。在数字IC设计中,Lib和网表都是非常重要的文件,但它们的作用和用途有很大的区别。
2023-11-09 23:41:33
2350
原创 mipi DPHY学习记录
DPHY的内容很多,而且细节很多,我会一点一点的进行补充记录,今天要记录的是cdphy的LP-MODE数据传输的过程。
2023-11-06 00:29:52
702
原创 Reset信号如何同步?
首先同步reset和异步reset最主要的区别,从定义上就可以看出来,同步reset需要时钟,而异步reset不需要时钟,如果说你的模块需要在没有时钟的时候复位,那只有异步reset能够做到,这也是绝大多数芯片的上电复位信号(Power Reset)以及一些PHY比如USB的内部需要异步reset的原因,而在一些IP中,如果你可以等到时钟开始反转之后再复位,时钟开始翻转之前内部即使没有复位也没有关系的话,那么就可以用同步reset。那就需要对异步reset的time constrain进行特殊的设置了。
2023-10-06 17:03:06
861
原创 systemverilog function的一点小case
关于function的应用无论是在systemverilog还是verilog中都有很广泛的应用,但是一直有一个模糊的概念困扰着我,今天刚好有时间来搞清楚并记录下来。function中如果没有return语句(这是systemverilog增加的特性),那么默认返回与函数名相同的变量作为函数的返回值;那就会报错了,因为这里使用了load_array()的返回值,但是void函数是没有返回值的。看到了吧,function会以return语句声明的值作为函数的返回值;那么编译之后打印的结果是什么呢?
2023-10-05 19:20:28
582
原创 来聊一聊独热码检测
那么让我们想一想该如何解决这个问题,其实有个很简单的思路,就是从独热码的定义出发:只有一位是1,其余位都是0,那么不管我们输入信号有多少位,有一个性质是不变的--把这些位加起来,最后的结果肯定是1,那么我们就可以利用一个for循环,把每一位相加,最后把最终的和1比较一下,如果是1,那就是独热码,如果不是1,那就是其他的数,非常的直观。,当A为全0的时候,P也是全0,但是A取反之后是全1,所以A反和P按位OR之后也会得到全1,幸好,特殊情况就只有一种,我们只需要对A进行一下全0的判断就可以了。
2023-10-05 12:07:14
774
原创 vim,emacs,verilog-mode这几个到底是啥关系?
有意思的来了,vim为了方便verilog coder例化和集成子模块,搞了一个verilog-mode.vim插件,但是年久失修,用着不顺手,慢慢的被coders弃用了;喜欢折腾的大佬就搞了一个移花接木,给vim写了一个emacs插件,这个插件能用来调用emacs的verilog-mode.el 这个好用的插件。本来就是一个为了提升工作效率的工具本不想花时间去研究他们之间的关系,无奈公司的工具太拉,只能自己去研究研究搞一套顺手的。但是问题是用vim的人太多啦,vim自己搞的插件不行,有愿意搞的人,
2023-09-16 00:13:18
1026
原创 Verilog_mode常用的几个用法
在顶层实例化时,有大量的信号需要重新命名,使用模板的话会增加大量的注释内容,不过往往这些信号命名有特定的规律,我们可以使用正则表达式来处理,下面举几个例子:1:提取信号中固定位置的数字或者使用@2:删除末尾下划线内容这个我个人最常用;
2023-09-09 16:33:09
1087
转载 仲裁器设计一—fixed priority arbiter
固定优先级,顾名思义,就是说每个模块的优先级是固定的,是提前分配好的,如果有两个模块同时产生request,那么优先级高的模块可以获得grant,还是类比老师叫同学起来回答问题,比如,在老师心目中,老师可以这样安排一个优先级:学号,学号是1的同学优先级最高,2号其次,一直到最后一位同学N,当大家举手的时候,总是叫学号最小的哪一个,比如说如果1号同学举手了,那就叫1号;有没有更简介的办法呢?我们一直强调的,如何设计一个参数化的模块,对于上面的仲裁器来说,我们希望可以参数化产生请求的个数,即设计下面的模块。
2023-08-31 20:35:25
936
1
转载 仲裁器设计二—round_robin
轮询优先仲裁常用于valid—ready握手的mux或者记录模块中选出或者写入的entry,工作中以前经常使用,但是没有深入学习理解其原理,最近刚好有时间,所以详细学习一下其算法原理,在这里进行记录,并贴出verilog代码;
2023-08-31 19:07:53
3492
1
转载 低功耗实例——isolution cell以及level shift的选择
一:电平不同的模块之间即需要level shift,故netAB/BA/AD/CD/DC都需要level shift,至于level shift的位置是放在src端还是des端,一般来说H2L的由于只包含有des的power rail,所以肯定要放在des端,而L2H的则包含有两种power driver,肯定需要跨电压域的电源线连接,考虑到output driver需要的电流一般要大于input driver需要的电流,所以也推荐放在des端,在本题中也未提到电平之间的相对大小,所以我都放在des端。
2023-08-28 19:17:40
895
2
转载 MIPI-DSI协议解析——DCS命令集
MIPI协议族,定义了一个专门用于显示的命令集,叫做Display Command Set,简称为DCS;这个DCS起什么作用呢?主要是Host和Display之间的一些Command配置和数据传输,以及读Display的数据等;可以看到,一般是一个Command带一堆Data,Command描述了这次传输是用来干嘛的,Data呢,就是此次事件的数据;为了标准话显示设备,所以呢,就有制定一些个标准(听君一席话,如听一席话);
2023-08-27 22:38:15
3568
1
questasim 安装包
2020-12-27
sublim package control
2020-11-25
NOIP1SN5000A
2017-12-23
altera 原语手册
2017-11-21
ZedBoard Zynq-7000 ARM FPGA进阶级处理器 全可编程逻辑智能互联开发系统 用户手册.pdf
2017-10-11
ug388 User Guide
2017-10-11
Xilinx FPGA应用进阶 通用IP核详解和设计开发
2017-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人