自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

那么菜的博客

勤,方能补拙,那就一步一个脚印。

  • 博客(380)
  • 资源 (6)
  • 收藏
  • 关注

原创 聊聊芯片中的动态功耗( Average Power)

Power的计算是一个非常复杂的计算过程,下面我们简单介绍一下Power的计算,通过上面的内容我们可以知道Psw和Pinternal都和反转率有关系,为了更加精确的得到功耗情况,可以由前端设计人员仿真得到VCD文件,进而加入Power计算的流程,这样可以得到更加准确的平均功耗和峰值功耗(Peak Power)。目前业内主流的功耗分析工具是PTPX,对具体细节感兴趣的可以去查看Synopsys的官方文档,在下一篇文章中我们将介绍Average Power在IR分析中的应用。

2024-03-22 15:17:38 214

原创 聊聊芯片中的动态功耗( Dynamic Power)

我们先看Switching Power,开关功耗是指在逻辑门开关时所引起的功耗,在CMOS逻辑门输出节点产生逻辑转换时,电源对输出节点电容充放电所产生的功耗。电源在一个充放电的周期中提供的能量一半都将以热的形式被消耗,由此可见动态功耗的主要是逻辑门的输出电容引起的。Internal Power 主要包括内部短路电流对应的损耗(Short circuit)和内部节点充放电产生的功耗(Internal switching Power)。

2024-03-22 15:14:50 315

原创 聊聊芯片中的静态功耗(Leakage Power)

cell_leakage_power:标示固定的leakage power值,如果library里没有该变量的定义,或者该变量是个负值,工具会用default_cell_leakage_power的值,如果default_cell_leakage_power也没有指定,则用default_leakage_power_density的值乘以该cell的面积来计算得出一个leakage值,如果这三个变量都没有定义,则leakage的值为0。

2024-03-22 14:52:21 967

原创 #systemverilog# 说说Systemverilog的常用《概率分布函数》

dist_normal、$dist_exponential、$dist_poisson和 $dist_erlang,是一个整数输入,它使函数返回的平均值接近指定的值。与$dist_normal函数一起使用的standard_deviation参数是一个有用的整数输入确定密度函数的形状。它们是: $random、$dist_uniform、$dist_normal、$dist_exponential、$dist_poisson、 $dist_chi_square、$dist_t和$dist_erlang。

2024-03-13 16:08:05 44 1

原创 DFT系列文章之 《SCAN技术 scan cell 讲解》

在可测性设计(DFT)技术中,scan的设计是其中非常重要的的一块内容,今天就来介绍一下业界常用的三种scan cell。一般来说,一个scan cell有两个不同的可选择的输入。第一个输入为数据输入(data input),也就是电路的组合逻辑的输入端。而第二个输入是扫描输入(scan input),由上一个scan cell的输出驱动的,从而形成一个或多个移位寄存器链(shift registers),我们把它称为扫描链(scan chain)。

2024-02-24 16:21:23 1003

原创 DFT系列文章之 《SCAN技术原理》

2024-02-24 16:07:49 354

原创 DFT系列文章之 《BIST技术》

bist是内建自测试,一般有rambist、flashbist等,它是内部集成专门测试算法,同时还包括测试控制电路,输出结果比较等电路,它是芯片中实际电路;scan是一种结构性测试,它将芯片内部的寄存器替换成专门的寄存器,然后连接成1条链或多条,这种方式只需要在输入端输入pattern,在输出端对比输出即可,它不care芯片功能,可以节省很多测试case开发时间,同时也减少测试时间。另一种比较少见的BIST称为Array BIST,它是MBIST的一种,专门用于嵌入式存储器的自我测试。

2024-02-24 15:51:31 402

转载 DFT系列文章之 《DFT基本知识点》

额外的pin会插入或改变原有的逻辑。

2024-02-24 14:42:46 120

原创 DFT系列文章之 《DFT Scan chain》

scan DFF 是在原DFF 的输入端增加了一个 MUX,于是多了几个 pin :scan_in,scan_enable,scan_out。简单来讲,scan chain 工作时分为三个步骤: load ····> capture ····> unload。3. 在 SE 有效拉高时,将 input pattern 串行打入scan register。unload 是将scan chain 中的数据串行输出,得到 output pattern。2. 将 scan register 首尾依次串接起来。

2024-02-24 10:26:35 392

原创 S4.2.4.7 Start of Data Stream Ordered Set (SDS)

SDS 代表传输的数据类型从有序集转为数据流。它会在 Configuration.Idle,Recovery.Idle 和 Tx 的 L0s.FTS 状态发送。Loopback 模式下,主机允许发送 SDS。非 Loopback 模式下,SDS 有序集后面必须是 Non-Flit 的数据块,且数据块的第一个字符是数据流的第一个字符。1b/1b 下,发射器会发送两个背靠背的 SDS,且必须是 128b 对齐边界。接收器收到 4 个有效的 B1_C6_C6_C6 序列且其中至少 2 个满足 4 字节对齐则认为是

2023-11-05 23:08:50 395

原创 S4.2.4.5 Fast Training Sequence (FTS)

Fast Training Sequence (FTS) 主要用于在L0s->L0跳转的过程中,让Receiver 检测到电气空闲退出,以及实现bit 和 symbol lock。对于Gen1/2 FTS的组成如下: 一个设备最大可以请求的FTS数量是255个,可以提供的位锁定时间大小为: 4 * 255 * 10 * UI。当速率为5.0 GT/s,则在发送第一个FTS之前,需要连续发送四个EIE(k28.7)符号,用于帮助Receiver 检测到电气空闲退出状态。一个FTS是由13

2023-11-05 16:18:58 411

原创 S4.2.4.5 Lane Polarity Inversion

原文摘录:PCIe 协议规定,必须支持该特性。该特性的目标也是为了简化 PCB 的布线。每个 lane 都包含一组发送(Tx)和接收(Rx),而 Tx 和 Rx 分别包含两根差分信号线(D+ 和 D-)。Polarity Inversion 的作用就是把某个设备的 D+ 变成 D-,D- 变成 D+。开启 Polarity Inversion 之后的效果如下图所示:为了实现D+和D-正负极检测,接收逻辑Rx需要查看接收到的TS1或TS2中的Symbol 6到15:如果在TS1中接收到的是D21.5而不是D

2023-11-04 22:02:23 655

原创 UVM 验证方法学之interface学习系列文章(八)《interface不小心引入X态问题》

虽然我们没有启动UVC 进行端口的信号驱动,但是由于最高位bit[8] 是出于非z 状态,而是 x 状态,那么该x 态会传入 RTL 代码中。所以,如果我们不能够在interface 中的位宽连续赋值语句中给与格外关注,我们会遇到纠结的问题。前面文章提到,随着验证复杂度的不断增加,interface 的bind 的操作,是必不可少的用法。module a 的输出,连接到 module b 的输入,同时,内部bind 结构内部,通过连续赋值语句,对moule b 的信号进行再次驱动。

2023-10-21 13:04:02 483

原创 S4.2.4.3 Electrical Idle Sequence(EIOS)

1.1 EIOS的具体码型1.2 EIOS的识别规则1.3 EIEOS的具体码型当某种状态下,发送器想要进入电器空闲状态的时候,发送器必须发送EIOSQ,也既是:电器Electrical Idle Odered Set Sequence。当然,除非在某些情况下,特殊制定,也是可以不发送EIOSQ的。若当下速率是Gen1/3/4/5, 一个EIOSQ 是由一个 EIOS 组成;若当下速率是Gen2,一个EIOSQ是由2个EIOS组成。(1)8b/10b 编码模式,Gen1/2 当使用8b/10b编码的时候,一

2023-10-21 12:32:19 1324

原创 S4.2.7 Link Training and Status State Rules

2023-10-21 11:41:07 100

原创 #Day Day Plan# 《NCB_PCI_Express_Base 5.0.1.0》pdf 译文笔记 模版

目录一 本章节主讲知识点1.1 xxx1.2 sss1.3 ddd二 本章节原文翻译2.1 ddd三 本章节关联知识点2.1 ddd四 本章节存疑问题2.1 222五 总结

2023-10-21 08:43:09 667

原创 #Day Day Plan# 《NCB_PCI_Express_Base 5.0.1.0》pdf 译文笔记

第4章 Physical Layer Logic BlockS4.1 IntroductionS4.2 Logical sub-blockS4.2.4 Link Initialization and TraningS4.2.4.3 Electrical Idle Sequence(EIOS)

2023-10-21 08:41:42 627

原创 【Python入门级】#基础篇#文章目录概览汇总

Python 学习文章总结概览表

2023-09-19 07:08:50 127

转载 【Python 基础篇】Python中的 __name__ == ‘__main__’ 详解

学习过C语言或者Java语言的盆友应该都知道程序运行必然有主程序入口main函数,而python却不同,即便没有主程序入口,程序一样可以自上而下对代码块依次运行,然后python不少开源项目或者模块中依然存在 __name__ == “__main__” 这种写法,具体是上面意思呢?

2023-09-17 10:08:17 2645 1

原创 #systemverilog# 之 event region 和 timeslot 仿真调度(九)assign 赋值 和 always 组合赋值的调度区别

有时候,我们会发现一个问题,举个最简单的例子:比如将两个信号进行简单的异或运算。该逻辑运算,我们可以使用 assign 数据流建模完成,也可以使用always 组合逻辑过程赋值语句实现。load_3 : load_0 更新在active region, 而 load_2 更新在 NBA region, 那么 当执行语句。load_3 发生在 Active region 和 NBA region。load_3_1数据的更新发生在两个 Active region。不慌,今天,我们举个例子,来验证这一点。

2023-09-04 22:47:09 224

原创 #systemverilog# 之 event region 和 timeslot 仿真调度(八)assign 赋值必在Active域调度?

仿真调度

2023-08-27 23:05:39 329

原创 #systemverilog# 之 event region 和 timeslot 仿真调度(七)Active/NBA 咋跳转的?

激活后,发现均是非阻塞赋值,那么非阻塞赋值的左侧变量更新,肯定是在下一个NBA 域,也就是NBA(2),因为没有Active(2) 存在,所有 NBA(2)紧挨着NBA(1)出现。在NBA(1) 和 NBA(2)中间,没有active(2) 出现,大家不要固性思维,觉得每个调度域,会按照Active -> NBA 这样完整的跳转运行。其实,该电路非常简单,恰好在NBA(1) 和 NBA(2) 之间,没有相应的Active(2) 事件进行调度,所以也就没有展示出Active(2) 域。这样解释,应该合理吧。

2023-08-27 22:41:50 789

原创 #systemverilog# 之 event region 和 timeslot 仿真调度(六)疑惑寄存器采样吗

想必大家在刚开始尝试写Verilig HDL代码的时候,都是参考一些列参考代码,有些来自于参考书,有些来自于网上大牛的笔记,甚至有写来自于某宝FPGA开发板的授权代码。我们发现,由于clk_div2_nonblk 采用的非阻塞赋值,那么其变化区间,应该是位于clk 的变化区间的下一个紧挨着NBA 域。这里,我们再新增一个时钟,该时钟也是clk 的二分频,但是代码采用的非阻塞赋值的方式,具体代码如下。这里,我们新增一个时钟,该时钟是clk 的二分频,但是代码采用的阻塞赋值的方式,具体代码如下。

2023-08-26 21:14:44 710

原创 #systemverilog# “类”翱翔在systemverilog的天空(Ⅱ)关于理解new() 和 super.new() 函数

/ 通过调用我们自己写的构造函数 function new()...endfunction: new 函数,首先创建一个 transaction 对象并为其分配空间, 其次初始化变量,最后返回对象入口地址给句柄。指针的内容是一个地址。在类“base”中,我们定义了它的构造函数new(),一个简单的$display语句。super.new( ): 继承类中new()函数默认一开始就会调用其父类中的new()函数(super.new( )).在本例中,我们在new函数中传递参数data,以初始化类中的变量。

2023-08-06 13:40:26 436

原创 #systemverilog# 说说Systemverilog中《ref》那些事儿

草稿#systemverilog# 说说Systemverilog中《ref》那些事儿草稿#systemverilog# 说说Systemverilog中《ref》那些事儿草稿#systemverilog# 说说Systemverilog中《ref》那些事儿草稿#systemverilog# 说说Systemverilog中《ref》那些事儿草稿#systemverilog# 说说Systemverilog中《ref》那些事儿草稿#systemverilog# 说说Systemverilog中《ref》那些

2023-08-06 10:43:28 223

原创 #systemverilog# 说说Systemverilog中《automatic》那些事儿(关于for循环+fork...join_none相结合变量应用研究)

相反,声明在fork...join_none 内部二级作用域的自动变量或者普通变量,线程结束之后,变量也就不复存在,不可以被上一级的线程继续使用。今天,我们谈谈另一个问题,也是应用比较多的场合:在for循环+fork...join_none 发起线程的时候,相关自动变量的如何使用问题。如果我们实际使用过程中,不将 变量 j 声明为 automatic 类型,那么fork...join_none 发起的线程中,j 是无法得到不同 i 变量数值的。那总有什么区别之处吧?可是,实际场合,我们会发现如下的用法。

2023-08-05 07:41:41 376

原创 #systemverilog# 说说Systemverilog中《automatic》那些事儿(关于for循环内置变量研究)

上面的截图,是来自于前面的文章,当时留下的疑问,今天和大家是实践一下小细节问题。

2023-07-29 10:08:35 170

原创 #systemverilog# 说说Systemverilog中《automatic》那些事儿

前面我们学习了有关systemverilog语言中有关《static》的一些知识,同static 关系比较好的哥们,那就是 《automatic》。今天,我们了解认识一下。

2023-07-29 07:50:43 490

原创 #systemverilog# 说说Systemverilog中《static》那些事儿(内存管理篇2)

一、C语言的内存分配C语言主要分为:BSS、Data、Text、Heap(堆)、Stack(栈)静态内存分配:BSS、DataBSS段Data段程序执行代码:TextText段动态内存分配:Heap(堆)、Stack(栈)Heap(堆)堆扩张堆缩减Stack(栈)栈栈示例。

2023-07-28 20:03:10 134

原创 #systemverilog# 说说Systemverilog中《static》那些事儿(内存管理篇1)

其实,绿皮书中也曾提到:自动的内存管理系统是SystemVerilog的整体组成部分。对象、字符串、动态数组、以及联合数组的内存是动态分配的。当创建对象的时候,SystemVerilog会分配更多的内存。当对象不再需要的时候,SystemVerilog自动地释放内存以便这些内存能够被重新使用。。如果没有自动的内存管理,SystemVerilog的多线程、重进入环境会增加许多导致用户出错的机会。一个手工的内存管理系统(就像C语言的malloc和free所提供的那样)是不够的。fork // 主线程。

2023-07-28 19:43:13 182

原创 草稿#systemverilog# 说说Systemverilog中《static》那些事儿(生命周期属性篇)

其实将一个任务函数或块声明成static或者automatic还是为了决定其内部数据的生命周期属性,这与静态方法的static有本质上的不同。注意第二句话"具有自动变量生命周期的静态方法",也就是说这个任务虽然是静态任务,但是其内部数据的缺省情况下的生命周期是自动的。

2023-07-27 23:23:49 283

原创 #systemverilog# 说说Systemverilog中《static》那些事儿(实战篇)

在上一篇文章《文章中,从理论上,阐述了static 和automatic 关键字的概念,我们从理论学习上,想必大家都有了自己的认识。今天,我们实战角度,通过最简单的例子,讲述这些用法,方便大家有更深刻的理解。

2023-07-27 22:28:05 268

原创 #systemverilog# 说说《队列》那些事儿

最近不断使用到systemverilog 语言编程中的队列语法。今天抽时间,尽肯能全的整理一下队列的相关用法,一是加固基础打牢,而是在代码编写过程中,提高代码水平。队列是一种复合数据结构,可以用来存储多个数据的容器,但同时又拥有自己的优势特性。正如绿皮书所言,队列的引入,使得SV语言在建模时,更加灵活自如,它在功能上同时兼容了动态数组和链表。可以随意插入元素,可以随意弹出元素。另外,队列还提供了许多内建方法。队列不需要new 方式创建。

2023-07-25 22:57:38 342

原创 IC验证中的force/release 学习整理(9)后门访问机制成与败

当在首次仿真的时候,通过使用该选项,可以让VCS 自己去自动学习整个仿真过程中需要使用到的module 或者 scope 的 ACC capability ,这样既可以满足性能要去,也能够满足仿真中的客户需求。我们知道,比较新版本的工具,已经建议使用-debug_access+* -debug_region+* 相结合的方式,来满足不同场合的用户需求。不然,你百般尝试,也会无济于事的。注意, 单纯看-debug_access+pp 选项,它的功能权限,小于等于pli_learn.tab文件中的声明权限。

2023-07-24 19:45:29 235

原创 #VCS# 关于VCS 编译和仿真选项 force_list

验证环境中构造用例时可能会通过force内部的信号,达到测试的目的.为了方便后续环境检视,可以通过设置编译选项和运行选项的方式,获取force的信号.

2023-07-20 22:52:36 715

原创 #VCS#关于 simv 可执行返回结果的释义

VCS MX生成的simv可执行文件在出现错误,致命错误和断言失败时返回非零值。

2023-07-20 22:41:06 281

原创 #systemverilog# 关于关键字 之 event 了解这些够了(二)->和 ->> 区别

在上一篇文章,我们学习了event 的相关语法和举例,清晰的说明了具体场合的使用规则。今天,我们着重看一下 -> 和 ->> 的区别,进而在以后的工作过程种,能为大家带来一些便利。使 用 -> 要特别注意:等待事件和触发事件的先后顺序。这种问题尤其在 同一个 time-slot 场景,对顺序要求特别注意。可以看出,触发a 事件的时候,等候事件@a 并不在其对象序列中,错失良机。那么 ->> 呢,我们看看。

2023-07-16 12:13:24 437

原创 #systemverilog# 关于关键字 之 event 了解这些够了(一)

触发机制:-> 、->>等待机制:@、wait(event.triggered)、wait_order(ev1,ev2,ev3...)综上示例,@和wait都可以有效的阻塞事件,如果触发线程和阻塞线程在同一时刻发生,则使用wait(event_name.triggered)的线程会被触发,结束阻塞,而使用@event的线程则不会被触发,处于阻塞状态。

2023-07-16 11:39:21 267

原创 #systemverilog# 进程控制问题#(五)关于 disable fork陷阱篇3

今天,我们以几个例子的形式,展示fork..join/join_any/join_none + disable fork 语句的组合方式,分别查看了仿真结果。其实,实际应用中,更多的场合是 使用 fork...join_none/join_any + disable fork 组合的方式。这一点,大家一定要注意。另外,我们通过最后一个例子,也通过实践,加强了对前面文章《#systemverilog#进程控制问题#(六)进程监视》中讲述的内容的理解。

2023-07-15 17:28:38 386

原创 #systemverilog# 进程控制问题#(五)关于 disable fork陷阱篇1

请注意一种特殊情况:当begin...end 嵌套与 fork...join 中时,且他们之间没有其它任何额外进程,此时begin...end 中的语句还是顺序执行,此时相当于一个单进程。此例子就是一个典型的顺序块和并行块混合的例子。仿真结果: 只有thread_2_2_1 和 thread_2_2_2_1 线程被killed, 其它正常运行和退出。此例子就是一个典型的顺序块和并行块混合的例子。动态进程:fork...join_any 、fork...join_none 发起;

2023-07-09 22:45:36 369

FPGA/ASIC+SSC扩频三角波调制+90度相位差+600pp随机抖动+Verilog模型

今天,提出并实践了一种基于verilog/systemverilog编程语言的SSC 建模模型方法,及如何产生90度相位差的思路。另外,还实现了600ppm 随机抖动的效果。还总结了如何提高建模精度的一些注意点,目的方便大家对ssc 调制时钟的理解。

2024-03-12

FPGA/ASIC+SSC扩频三角波调制+180度相位差+600pp随机抖动+Verilog模型

今天,提出并实践了一种基于verilog/systemverilog编程语言的SSC 建模模型方法,及如何产生180度相位差的思路。另外,还实现了600ppm 随机抖动的效果。还总结了如何提高建模精度的一些注意点,目的方便大家对ssc 调制时钟的理解。

2024-03-12

FPGA/ASIC+SSC扩频三角波调制+270度相位差+600pp随机抖动+Verilog模型

今天,提出并实践了一种基于verilog/systemverilog编程语言的SSC 建模模型方法,及如何产生270度相位差的思路。另外,还实现了600ppm 随机抖动的效果。还总结了如何提高建模精度的一些注意点,目的方便大家对ssc 调制时钟的理解。

2024-03-12

单例模式+UVM验证平台+force/release/probe信号

单例模式是一种常用的软件设计模式,其主要目的是确保一个类在整个应用程序生命周期中只有一个实例,并提供一个全局访问点以获取该实例。我们在UVM种经常使用,例如uvm_root、uvm_factory,单例模式的使用特点就是定义的类都会提供一个get方法来获取类的实例,并且是唯一实例。 今天,借助于UVM设计模式中的单例模式,来实现在UVM TB 验证平台中对RTL层级结构中的信号,进行force/release、probe 目的。 所以,借助于UVM实战书籍中的例子,实现该目的。

2024-03-10

FPGA/ASIC+SSC扩频正弦波调制+270度相位差+Verilog模型

波形调制,ssc扩频时钟设计,编写了一种基于verilog/systemverilog编程语言的SSC 正弦波 建模模型方法,及如何产生270度相位差的思路。

2024-03-09

FPGA/ASIC+SSC扩频正弦波调制+180度相位差+Verilog模型

编写了一种基于verilog/systemverilog编程语言的SSC 正弦波 建模模型方法,及如何产生180度相位差的思路。

2024-03-09

FPGA/ASIC+SSC扩频正弦波调制+90度相位差+Verilog模型

编写了一种基于verilog/systemverilog编程语言的SSC 正弦波 建模模型方法,及如何产生90度相位差的思路。

2024-03-09

FPGA/ASIC+SSC扩频三角波调制+270度相位差+Verilog模型

SSC扩频时钟,其目的:为了降低与信号基频相关的EMI辐射,虽然整体能量不变,但峰值功率降低。峰值能量色散量取决于调制带宽、扩频深度和扩频曲线。由此产生的SSC调制载波信号最终的抖动比未调制载波信号高得多。最常见的调制技术是下扩频和中心扩频:下扩频:载波按指定的百分比调制至低于标称频率,而不是更高;中心扩展:载波按指定百分比调制高于和低于标称频率。 基于以上理论,今天,提出并实践了一种基于verilog/systemverilog编程语言的SSC 建模模型方法,及如何产生270度相位差的思路。另外,还总结了如何提高建模精度的一些注意点,目的方便大家对ssc 调制时钟的理解。

2024-03-08

FPGA/ASIC+SSC扩频三角波调制+180度相位差+Verilog模型

SSC扩频时钟,其目的:为了降低与信号基频相关(包含信号本身以及谐波)的EMI(Electromagnetic interference)辐射,以减少系统之间的干扰。扩频时钟使用调制来实现频谱功率的扩展。载波信号通常是高频时钟信号,与低频调制器信号进行调制。虽然整体能量不变,但峰值功率降低。峰值能量色散量取决于调制带宽、扩频深度和扩频曲线。由此产生的SSC调制载波信号最终的抖动比未调制载波信号高得多。 基于以上理论,今天,提出并实践了一种基于verilog/systemverilog编程语言的SSC 建模模型方法,及如何产生180度相位差的思路。并提供了多种精度需求的SSC建模。

2024-03-08

FPGA/ASIC+SSC扩频三角波调制+90度相位差+Verilog模型

SSC扩频时钟,其目的:为了降低与信号基频相关(包含信号本身以及谐波)的EMI(Electromagnetic interference)辐射,以减少系统之间的干扰。该技术广泛用于微处理器、PCIe、USB等高速协议中。 扩频时钟使用调制来实现频谱功率的扩展。载波信号通常是高频时钟信号,与低频调制器信号进行调制。虽然整体能量不变,但峰值功率降低。峰值能量色散量取决于调制带宽、扩频深度和扩频曲线。由此产生的SSC调制载波信号最终的抖动比未调制载波信号高得多。最常见的调制技术是下扩频和中心扩频:下扩频:载波按指定的百分比调制至低于标称频率,而不是更高;中心扩展:载波按指定百分比调制高于和低于标称频率。 基于以上理论,今天,提出并实践了一种基于verilog/systemverilog编程语言的SSC 建模模型方法,及如何产生90度相位差的思路。另外,还总结了如何提高建模精度的一些注意点,目的方便大家对ssc 调制时钟的理解。

2024-03-08

systemverilog_ssc_clk_generated.sv

SSC时钟扩频调制技术广泛用于高速通信协议中,本文基于systemverilog语言,采用高速协议中普遍使用的三角波-向下展频方式,编写验证模型,并可VCS/Verdi 仿真和波形查阅。

2021-12-24

MindShare_PCIe_Elastic_Buffer.pdf

一篇关于PCIE/SATA 高速协议中使用的弹性缓冲器的文章,精读!!!

2021-11-30

基于PCIe2.0协议的PCS层弹性缓冲器设计

最近开始学习 PCIE,网上、公司、学校等等海收集各种资源,说实话,PCIE 的资源不少,中文资料也不少。该文章,简介明了,更容易让新手对PCIE由恐惧,变得自信心满满。希望对大家有用。一起努力

2020-11-28

从PCIe探索弹性缓冲器真义(陈乃塘)

最近开始学习 PCIE,网上、公司、学校等等海收集各种资源,说实话,PCIE 的资源不少,中文资料也不少。该文章,简介明了,更容易让a新手对PCIE由恐惧,变得自信心满满。希望对大家有用。一起努力

2020-11-28

stm32F107VC+SPI1+LWIP

基于stm32植入ucos系统以及lwip协议栈,实现以太网DP83848与PC机之间进行通信,stm32作为服务器。PC端作为客户端

2016-01-04

一种基于虚拟仪器技术的电力参数测量仪[1]

一种基于虚拟仪器技术的电力参数测量仪[1]

2014-07-04

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

TA关注的人

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