- 博客(198)
- 资源 (16)
- 收藏
- 关注
原创 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 1802
原创 建立时间裕量和保持时间裕量
前面的博客里面有讲解建立时间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 10295 2
原创 以太网基础——ARP协议
MAC地址(Media Access Control Address),直译为媒体访问控制位,也称为局域网地址(LAN address),MAC地址,以太网地址(Ethernet Address)或物理地址(Physical Address)它是一个用来确认网络设备位置的地址。
2024-04-06 23:17:53 415
转载 以太网基础——IP协议
IP(Internet Protocol,互联网协议)是互联网通信的基础协议,它负责将数据包从源地址传输到目的地址。IP协议定义了如何封装数据包,如何寻址数据包以及如何路由数据包,它是随着互联网的出现而诞生的。IP地址就是唯一标识一个主机的地址,通常表示为4个十进制数,每个数的范围是0-255,用点分十进制的格式表示,如192.168.1.1。IP协议是一个无状态的协议,每个数据包都独立处理,不依赖于之前或之后的数据包。此外,IP协议还提供了数据包的差错检测功能。
2024-04-06 18:31:38 40
转载 以太网基础——TCP/IP协议
TCP/IP协议包含了一系列的协议,也叫做TCP/IP协议族(TCP/IP Protocal Suite,或者TCP/IP Protocols),简称TCP/IP,TCP/IP协议族提供了点对点的连接机制,并且将传输数据帧的封装,寻址,传输,路由以及接收方式,都予以标准化。
2024-04-06 00:37:28 63
原创 以太网PHY,MAC及其通信接口介绍
从硬件的角度看,以太网接口电路主要由MAC(Media Access Control)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示:DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中。但是,在实际的设计中,以上三部分并不一定独立分开的。由于,PHY整合了大量模拟硬件,而MAC是典型的全数字器件。考虑到芯片面积及模拟/数字混合架构的原因,通常,将MAC集成进微控制器而将PHY留在片外。
2024-03-26 23:55:42 850
原创 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 917
原创 mipi dsi协议DBI/DPI接口
MIPI dsi协议中的DBI/DPI接口主要用于主机和display设备之间的数据传输,说的更通俗一点就是DSI RX控制器和实际的显示面板之间的接口;
2023-12-17 22:41:10 1447
原创 今天来聊一个简单的握手打拍技巧
握手协议是数字逻辑设计中最最常见的一种设计了,今天就来聊一聊valid-ready握手时,valid和data的打拍技巧。
2023-11-12 23:18:22 306
原创 Lib文件和netlist的关系,DDC文件和netlist的区别
网表文件,也称为门级网表文件,描述了IC设计的门级结构,包括各种门级元件(如AND、OR、XOR等)以及它们的连接关系。因此,netlist文件和DDC文件的区别在于:netlist文件描述了电路的逻辑功能和连接关系,是电路设计的基础;总之,Lib和网表都是数字IC设计中非常重要的文件,但它们的作用和用途不同。综合工具生成的netlist文件和DDC文件都是与电路设计相关的文件,但它们的内容和用途有所不同。在数字IC设计中,Lib和网表都是非常重要的文件,但它们的作用和用途有很大的区别。
2023-11-09 23:41:33 1153
原创 mipi DPHY学习记录
DPHY的内容很多,而且细节很多,我会一点一点的进行补充记录,今天要记录的是cdphy的LP-MODE数据传输的过程。
2023-11-06 00:29:52 318
原创 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 355
原创 Reset信号如何同步?
首先同步reset和异步reset最主要的区别,从定义上就可以看出来,同步reset需要时钟,而异步reset不需要时钟,如果说你的模块需要在没有时钟的时候复位,那只有异步reset能够做到,这也是绝大多数芯片的上电复位信号(Power Reset)以及一些PHY比如USB的内部需要异步reset的原因,而在一些IP中,如果你可以等到时钟开始反转之后再复位,时钟开始翻转之前内部即使没有复位也没有关系的话,那么就可以用同步reset。那就需要对异步reset的time constrain进行特殊的设置了。
2023-10-06 17:03:06 289
原创 systemverilog function的一点小case
关于function的应用无论是在systemverilog还是verilog中都有很广泛的应用,但是一直有一个模糊的概念困扰着我,今天刚好有时间来搞清楚并记录下来。function中如果没有return语句(这是systemverilog增加的特性),那么默认返回与函数名相同的变量作为函数的返回值;那就会报错了,因为这里使用了load_array()的返回值,但是void函数是没有返回值的。看到了吧,function会以return语句声明的值作为函数的返回值;那么编译之后打印的结果是什么呢?
2023-10-05 19:20:28 272
原创 来聊一聊独热码检测
那么让我们想一想该如何解决这个问题,其实有个很简单的思路,就是从独热码的定义出发:只有一位是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 333
原创 你了解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 860
原创 Multicycle path怎么设,真的看这一篇就够了!
我曾经看过不止5以上篇讲解关于multicycle path约束的博客或者文章,真的没有一篇能完全讲清楚这个约束该怎么下,command的option表示什么意思,让对这个问题不清楚的同学能加迷惑。直到看到这篇文章。废话不多说了,直接上干货。
2023-10-02 01:05:59 921
原创 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 757
原创 Verilog_mode常用的几个用法
在顶层实例化时,有大量的信号需要重新命名,使用模板的话会增加大量的注释内容,不过往往这些信号命名有特定的规律,我们可以使用正则表达式来处理,下面举几个例子:1:提取信号中固定位置的数字或者使用@2:删除末尾下划线内容这个我个人最常用;
2023-09-09 16:33:09 434
转载 仲裁器设计一—fixed priority arbiter
固定优先级,顾名思义,就是说每个模块的优先级是固定的,是提前分配好的,如果有两个模块同时产生request,那么优先级高的模块可以获得grant,还是类比老师叫同学起来回答问题,比如,在老师心目中,老师可以这样安排一个优先级:学号,学号是1的同学优先级最高,2号其次,一直到最后一位同学N,当大家举手的时候,总是叫学号最小的哪一个,比如说如果1号同学举手了,那就叫1号;有没有更简介的办法呢?我们一直强调的,如何设计一个参数化的模块,对于上面的仲裁器来说,我们希望可以参数化产生请求的个数,即设计下面的模块。
2023-08-31 20:35:25 272
转载 仲裁器设计二—round_robin
轮询优先仲裁常用于valid—ready握手的mux或者记录模块中选出或者写入的entry,工作中以前经常使用,但是没有深入学习理解其原理,最近刚好有时间,所以详细学习一下其算法原理,在这里进行记录,并贴出verilog代码;
2023-08-31 19:07:53 984
转载 低功耗实例——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 300 1
转载 MIPI-DSI协议解析——DCS命令集
MIPI协议族,定义了一个专门用于显示的命令集,叫做Display Command Set,简称为DCS;这个DCS起什么作用呢?主要是Host和Display之间的一些Command配置和数据传输,以及读Display的数据等;可以看到,一般是一个Command带一堆Data,Command描述了这次传输是用来干嘛的,Data呢,就是此次事件的数据;为了标准话显示设备,所以呢,就有制定一些个标准(听君一席话,如听一席话);
2023-08-27 22:38:15 968
转载 PCIe专题学习——7.0(PCIe热插拔)
为了防止意外的发生,PCIe spec设计了一种“No Surprise”热插拔机制,即,当用户要热插拔PCIe设备时,必须先通知系统软件做好准备,然后通过指示灯告知用户热插拔的状态。当你准备在不断电的情况下插拔一块PCIe SSD时,你可要小心了,如果在PCIe设备不支持热插拔的条件下,很可能会对主板或者PCIe插槽造成损毁。PCIe环境下的热插拔需要软件与硬件的通力合作,先来看一张示意图,红色框内属于软件方面的需求,绿色框内是硬件方面的需求。主要负责处理用户插拔PCIe设备的请求。
2023-08-24 19:33:57 812
转载 PCIe专题学习——6.0(PCIe系统复位方式)
这是PCIe最基本的复位方式,主要通过硬件实现,效果是重置整个设备,对每个状态机,所有硬件逻辑,端口状态和配置寄存器重新初始化。Nots:但是,也会有例外的情况:在某些寄存器中的字段只有在全部电源(包括VCC电源和Vaux备用电源)切断的情况下才会被重置,PCIe Spec给这些估值的字段起了个外号“Sticky Bits”一般来说,Funcdamental Reset是针对整个系统做Reset,但是有时候也可以针对某个单一设备进行重置。
2023-08-24 19:10:23 357
转载 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 925
转载 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 291
转载 PCIe专题学习——4.0(物理层结构解析)
之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。
2023-08-22 14:49:47 271
转载 PCIe专题学习——3.2(数据链路层Ack/Nak机制解析)
之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。
2023-08-22 14:01:54 588
转载 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 185
转载 PCIe专题学习——2.7(事务排序机制)
之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer);
2023-08-21 14:22:49 257
转载 PCIe专题学习——2.6(Flow control的实现过程)
在这里例子中,我们假设VC buffer大小为2KB,之前的文章介绍过Non-posted Header的信用大小为5DW,也就是20Bytes,所以Flow control单元数目最大为2KB/20Bytes=102d=66h。CC-CR = 66h-67h = 66h+99h = FFh不满足判断公式。发送端:CC = CL =66h,CR = CC + PTLP = 66h+01h=67h。CrRcv=00h;同时,CL更新为69和,CC=66h,CR=66h+01h = 67h。
2023-08-21 13:53:35 281
转载 PCIe专题学习——2.5(Flow control缓存架构及信用积分)
之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer);
2023-08-21 13:27:52 209
转载 PCIe专题学习——2.4
接收端通过发送DLLP(Data Link Layer Packets)来告知发送端VC buffer的信用积分(也就是告知VC buffer可用空间),当缓存空间快满的时候,发送端会停止发送TLP,以防止VC buffer容量不足而造成发送端传输的数据被丢失,从而避免要求发送端重新发送刚才发送的数据,最终达到更加有效利用网络带宽。在PCIe协议中,如果要发送以恶搞TLP,就必须要保证接收端有足够的缓存(buffer)来接收,为了实现这一功能,接收端回随时回报可用的缓存空间。
2023-08-21 13:18:16 72
转载 PCIe专题学习——2.3
顾名思义可以定义理解为交通等级,比如在生活中我们遇到救护车或者消防车时,由于救护车和消防车是跟时间赛跑,那么交通等级就高,一般的私家车(可以认为没有交通等级)就必须给救护车或者消防车让行,可能这个比喻不是很恰当,不过大致意思是这样的~这个就是我们本文的重点;:1bit,Byte1,bit0,如果TH=1,就代表在TLP中添加了TLP处理提示,可以告知系统以更有效的措施处理这个TLP。:1bit,Byte1,bit2,这个bit的功能就是是否对TLP进行排序(IDO,ID-based Ordering)
2023-08-20 23:51:51 204
转载 PCIe专题学习——2.2
上篇我们对PCIe的一些基础概念做了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-nased layered protocol),主要包括事务层(Transcation layer),数据链路层(Data link layer)和物理层(physical layer)不需要完成回报(completion)虽然可以加速事务处理的速度,从而提高系统性能,但是,如果在设备端出现error,具体内容也不会回报给Root,而是回给Root发送一条信息让其告诉软件有error需要处理;
2023-08-20 22:58:44 150
转载 PCIe专题学习——2.1
2:事务层根据Device Core的请求,生成TLP Header,加上Device Core提供的data,最后加上ECRC(end to end crc),此时TLP会放入事务层缓存(Virtual Channel Buffer)之中;PCIe总线使用的数据报文首先在事务层中形成,这个数据报文也被称为事务层数据报文,即TLP(Transaction Layer packet),TLP在经过数据链路层时被加上sequence number前缀和crc后缀,然后发向物理层。一:事务层TLP的前世今生。
2023-08-20 21:59:05 158
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关注的人