- 博客(204)
- 资源 (16)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 你了解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
1184
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 amba_axi_聊一聊narrow single
这里面就有点儿意思了,比如说在FPGA中常用的512byte总线位宽场景下,FPGA设计里一般也会直接固定死arsize,awsize为0x6,即每拍传输64bytes,然而协议里面的设置野允许了axsize可以设置为0x0~0x6中任一值,即每一拍可以传输1,2,4,8,16,32,64中的任一情况,而这种不满位宽输出的场景,即为“Narrow Transfers”AMBA总线无论是soc还是FPGA,应该都是比较常用的一组总线协议,对于其中的协议,有一种传输形式叫Narrow Transfers。
2023-07-23 16:25:21
1186
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
1967
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 建立时间裕量和保持时间裕量
前面的博客里面有讲解建立时间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
10566
2
原创 eFuse基本概念
GTP-4o(电子熔丝)是一种在集成电路(IC)设计中常用的可编程熔丝技术。它在芯片中起着至关重要的作用,主要用于配置、调整、修复和安全相关的功能。以下是关于 eFuse 在芯片中的用途和相关技术的详细解释。
2024-06-30 22:58:14
1221
原创 讲透filelist中+incdir+ 和 `include 的用法
在大多数 Verilog 编译器(如 VCS、ModelSim/Questa、Verilator)中,使用+incdir+选项指定包含路径后,仍然需要在filelist文件中列出每一个 Verilog 源文件。+incdir+选项仅告诉编译器在特定目录中查找头文件(例如.vh/ .inc 文件),而不会自动包含这些目录中的 Verilog 源文件。你需要明确地列出每一个 Verilog 源文件,以便编译器知道要编译哪些文件。filelist。
2024-06-25 17:04:29
410
原创 以太网基础知识(四)—Auto-Negotiation & Link Training
100G 以太网自协商(Auto-Negotiation)是为了让两个相连的设备自动选择最佳的链路配置。这包括链路速度、双工模式和其他参数。以下是100G以太网自协商的发包结构和详细过程的详细描述。
2024-06-16 23:42:51
370
原创 以太网基础知识(三)—FEC概念以及编码原理介绍
RS是一种基于有限域(Galois Field, GF)的块编码技术。它能够纠正突发错误和随机错误,特别适用于高误码率环境。符号:RS 编码处理的是符号而不是单个位。每个符号由多个比特组成,通常是 8 位(即一个字节)。码字长度 (n):一个 RS 码字包含的符号总数。信息符号数 (k):一个 RS 码字中实际传输的信息符号数。冗余符号数 (n-k):用于错误检测和纠正的冗余符号数。
2024-06-16 23:26:44
1230
原创 以太网基础知识(二)—NRZ,PAM4调制技术
了解调制技术需要引出“码元”的概念。一个码元就是一个脉冲信号,即一个最小信号周期内的信号,我们都能够理解,最简单的电路,以高电平代表1,低电平代表0,一个代表1或者0的信号,就是一个码元。信号可以传递信息主要是因为信号有频率,振幅,相位,波长,周期,其中频率/波长/周期三者有相关性,因此可以认为,频率,相位,振幅使信号可以传递信息,其中最常见的是振幅(电平),所以,有没有可能让一个码元/脉冲信号携带的信息量是2或者4bit呢?
2024-06-16 19:45:31
1155
原创 以太网基础知识(一)—名词解释
在搞以太网的时候碰到了很多名词,比如: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
672
原创 以太网基础——ARP协议
MAC地址(Media Access Control Address),直译为媒体访问控制位,也称为局域网地址(LAN address),MAC地址,以太网地址(Ethernet Address)或物理地址(Physical Address)它是一个用来确认网络设备位置的地址。
2024-04-06 23:17:53
759
转载 以太网基础——IP协议
IP(Internet Protocol,互联网协议)是互联网通信的基础协议,它负责将数据包从源地址传输到目的地址。IP协议定义了如何封装数据包,如何寻址数据包以及如何路由数据包,它是随着互联网的出现而诞生的。IP地址就是唯一标识一个主机的地址,通常表示为4个十进制数,每个数的范围是0-255,用点分十进制的格式表示,如192.168.1.1。IP协议是一个无状态的协议,每个数据包都独立处理,不依赖于之前或之后的数据包。此外,IP协议还提供了数据包的差错检测功能。
2024-04-06 18:31:38
159
转载 以太网基础——TCP/IP协议
TCP/IP协议包含了一系列的协议,也叫做TCP/IP协议族(TCP/IP Protocal Suite,或者TCP/IP Protocols),简称TCP/IP,TCP/IP协议族提供了点对点的连接机制,并且将传输数据帧的封装,寻址,传输,路由以及接收方式,都予以标准化。
2024-04-06 00:37:28
544
原创 以太网PHY,MAC及其通信接口介绍
从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示:DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中。但是,在实际的设计中,以上三部分并不一定独立分开的。由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。
2024-03-26 23:55:42
1638
原创 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
1020
原创 mipi dsi协议DBI/DPI接口
MIPI dsi协议中的DBI/DPI接口主要用于主机和display设备之间的数据传输,说的更通俗一点就是DSI RX控制器和实际的显示面板之间的接口;
2023-12-17 22:41:10
1784
原创 今天来聊一个简单的握手打拍技巧
握手协议是数字逻辑设计中最最常见的一种设计了,今天就来聊一聊valid-ready握手时,valid和data的打拍技巧。
2023-11-12 23:18:22
522
原创 Lib文件和netlist的关系,DDC文件和netlist的区别
网表文件,也称为门级网表文件,描述了IC设计的门级结构,包括各种门级元件(如AND、OR、XOR等)以及它们的连接关系。因此,netlist文件和DDC文件的区别在于:netlist文件描述了电路的逻辑功能和连接关系,是电路设计的基础;总之,Lib和网表都是数字IC设计中非常重要的文件,但它们的作用和用途不同。综合工具生成的netlist文件和DDC文件都是与电路设计相关的文件,但它们的内容和用途有所不同。在数字IC设计中,Lib和网表都是非常重要的文件,但它们的作用和用途有很大的区别。
2023-11-09 23:41:33
1479
原创 mipi DPHY学习记录
DPHY的内容很多,而且细节很多,我会一点一点的进行补充记录,今天要记录的是cdphy的LP-MODE数据传输的过程。
2023-11-06 00:29:52
399
原创 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
540
原创 Reset信号如何同步?
首先同步reset和异步reset最主要的区别,从定义上就可以看出来,同步reset需要时钟,而异步reset不需要时钟,如果说你的模块需要在没有时钟的时候复位,那只有异步reset能够做到,这也是绝大多数芯片的上电复位信号(Power Reset)以及一些PHY比如USB的内部需要异步reset的原因,而在一些IP中,如果你可以等到时钟开始反转之后再复位,时钟开始翻转之前内部即使没有复位也没有关系的话,那么就可以用同步reset。那就需要对异步reset的time constrain进行特殊的设置了。
2023-10-06 17:03:06
410
原创 systemverilog function的一点小case
关于function的应用无论是在systemverilog还是verilog中都有很广泛的应用,但是一直有一个模糊的概念困扰着我,今天刚好有时间来搞清楚并记录下来。function中如果没有return语句(这是systemverilog增加的特性),那么默认返回与函数名相同的变量作为函数的返回值;那就会报错了,因为这里使用了load_array()的返回值,但是void函数是没有返回值的。看到了吧,function会以return语句声明的值作为函数的返回值;那么编译之后打印的结果是什么呢?
2023-10-05 19:20:28
381
原创 来聊一聊独热码检测
那么让我们想一想该如何解决这个问题,其实有个很简单的思路,就是从独热码的定义出发:只有一位是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
491
原创 Multicycle path怎么设,真的看这一篇就够了!
我曾经看过不止5以上篇讲解关于multicycle path约束的博客或者文章,真的没有一篇能完全讲清楚这个约束该怎么下,command的option表示什么意思,让对这个问题不清楚的同学能加迷惑。直到看到这篇文章。废话不多说了,直接上干货。
2023-10-02 01:05:59
1494
原创 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
823
原创 Verilog_mode常用的几个用法
在顶层实例化时,有大量的信号需要重新命名,使用模板的话会增加大量的注释内容,不过往往这些信号命名有特定的规律,我们可以使用正则表达式来处理,下面举几个例子:1:提取信号中固定位置的数字或者使用@2:删除末尾下划线内容这个我个人最常用;
2023-09-09 16:33:09
651
转载 仲裁器设计一—fixed priority arbiter
固定优先级,顾名思义,就是说每个模块的优先级是固定的,是提前分配好的,如果有两个模块同时产生request,那么优先级高的模块可以获得grant,还是类比老师叫同学起来回答问题,比如,在老师心目中,老师可以这样安排一个优先级:学号,学号是1的同学优先级最高,2号其次,一直到最后一位同学N,当大家举手的时候,总是叫学号最小的哪一个,比如说如果1号同学举手了,那就叫1号;有没有更简介的办法呢?我们一直强调的,如何设计一个参数化的模块,对于上面的仲裁器来说,我们希望可以参数化产生请求的个数,即设计下面的模块。
2023-08-31 20:35:25
452
1
转载 仲裁器设计二—round_robin
轮询优先仲裁常用于valid—ready握手的mux或者记录模块中选出或者写入的entry,工作中以前经常使用,但是没有深入学习理解其原理,最近刚好有时间,所以详细学习一下其算法原理,在这里进行记录,并贴出verilog代码;
2023-08-31 19:07:53
1765
转载 低功耗实例——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
434
1
转载 MIPI-DSI协议解析——DCS命令集
MIPI协议族,定义了一个专门用于显示的命令集,叫做Display Command Set,简称为DCS;这个DCS起什么作用呢?主要是Host和Display之间的一些Command配置和数据传输,以及读Display的数据等;可以看到,一般是一个Command带一堆Data,Command描述了这次传输是用来干嘛的,Data呢,就是此次事件的数据;为了标准话显示设备,所以呢,就有制定一些个标准(听君一席话,如听一席话);
2023-08-27 22:38:15
1553
转载 PCIe专题学习——7.0(PCIe热插拔)
为了防止意外的发生,PCIe spec设计了一种“No Surprise”热插拔机制,即,当用户要热插拔PCIe设备时,必须先通知系统软件做好准备,然后通过指示灯告知用户热插拔的状态。当你准备在不断电的情况下插拔一块PCIe SSD时,你可要小心了,如果在PCIe设备不支持热插拔的条件下,很可能会对主板或者PCIe插槽造成损毁。PCIe环境下的热插拔需要软件与硬件的通力合作,先来看一张示意图,红色框内属于软件方面的需求,绿色框内是硬件方面的需求。主要负责处理用户插拔PCIe设备的请求。
2023-08-24 19:33:57
1103
转载 PCIe专题学习——6.0(PCIe系统复位方式)
这是PCIe最基本的复位方式,主要通过硬件实现,效果是重置整个设备,对每个状态机,所有硬件逻辑,端口状态和配置寄存器重新初始化。Nots:但是,也会有例外的情况:在某些寄存器中的字段只有在全部电源(包括VCC电源和Vaux备用电源)切断的情况下才会被重置,PCIe Spec给这些估值的字段起了个外号“Sticky Bits”一般来说,Funcdamental Reset是针对整个系统做Reset,但是有时候也可以针对某个单一设备进行重置。
2023-08-24 19:10:23
558
转载 PCIe专题学习——5.0(总线电源管理)
之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)一:电源管理PCIe总线的电源管理包括两方面的内容:一是基于软件控制的电源管理机制,这部分与PCI总线兼容;二是基于硬件控制的电源管理机制, 不需要Host端软件口控制,PCIe链路自主管理。
2023-08-24 18:09:04
1467
转载 PCIe专题学习——4.1(物理层数据流解析)
由于Gen1&Gen2 (8b/10b编码)与Gen3 (128b/130b编码)在物理层中的数据编码原理不同,物理层对Gen1&Gen2 与Gen3定义的控制字符也不同。同样,不同数据编码也造就了不同的数据流格式。之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。
2023-08-22 15:18:18
499
1
转载 PCIe专题学习——4.0(物理层结构解析)
之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。
2023-08-22 14:49:47
402
转载 PCIe专题学习——3.2(数据链路层Ack/Nak机制解析)
之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。
2023-08-22 14:01:54
798
转载 PCIe专题学习——3.0(数据链路层概述)
之前的文章中,我们提到在PCIe体系结构中,数据报文首先在设备的核心层(Device Core)中产生,然后技工该设备的事务层(Transaction Layer),数据链路层(Data Link Layer)和物理层(Physical Layer),最终发送出去,而接收端的数据也需要通过物理层,数据链路层和事务层,并最终到达Device Core;从上图中,我们也可以看到,Data Link Layer在PCIe总线中处于承上启下的作用,保证来自事务层的TLPs在PCIe总线中正常的传递;
2023-08-21 14:40:59
254
questasim 安装包
2020-12-27
sublim package control
2020-11-25
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关注的人