自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

那么菜的博客

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

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

原创 后仿真中的必懂之 ffg、ssg、ttg都是啥

我们在后端综合的时候,需要设置几个corner case(一般是best case 和 worst case)来进行约束和分析。case 对应ssg、high temperature、low voltage (可以跑的最低频率。case 对应ffg、low temperature、high voltage(可以跑的最高频率。其实,ffg ssg ttg 都是指的工艺角(process corner。模型会过于悲观,所以采用了新的统计学模型,在。

2024-05-19 10:03:12 1009

原创 后仿真中的必懂SDF篇之可支持的几种时序模型

SDF作为一种标准延时文件,那么它支持的语法和规则,必须与时序模型保持严格一致。SDF提供了许多灵活的语法,供大家使用。

2024-05-18 21:39:22 632

原创 后仿真中的必懂VCS仿真选项之initreg和deposit

后仿真中,我们常常对于没有复位寄存器和存储器单元,使用仿真选项之initreg和deposit,两种处理方式。今天做总结。请注意:请勿将两者进行同时使用。对于到底选取哪种方式,要结合实际的情况决断。但是,两者同时使用,会有冲突,得不到预期结果。

2024-05-16 22:02:24 356

原创 后仿真中的必懂VCS仿真选项之-sdfretain

编译选项加入-sdfretain -xlrm alt_retain后,那些不会让输出发生变化的RETAIN信息和X态(红圈处)就不会体现了。中称这一模式为optimistic mode,因为减少了仿真事件的调度,所以会对仿真速度有一定的优化。PS1.这部分感觉vcs手册中也说的不是很清楚,后面如果有空,再跑仿真确认下。指的是从输入变化后开始计算,输出保持的时间。PS2.选项中的alt应该就是选择的意思,让vcs自己决定哪些不需要的信息可以被优化。的意思,让vcs自己决定哪些不需要的信息可以被优化。

2024-05-16 13:54:33 750

原创 后仿真中的必懂VCS仿真选项之 +ignorempcond

当in1和in2同时1->0 变化时,默认情形下,输出没有延迟。因为sepeciy。endspecify 中没有标明符合此条件的分支。当多个输入同时改变时,VCS支持延迟注释。它忽略条件检查,并从适用的延迟中插入最小的延迟。如果没有匹配的条件弧线从输入(切换)延伸到输出,那么VCS不会标注零延迟。当启用运行选项 +ignorempcond的时候,输出延迟会变为3。您可以使用+ignorempcond运行时选项启用延迟注释。当多个输入同时改变时,它们会对特定的输出信号产生影响。

2024-05-16 13:53:07 165

原创 后仿真中的关于延时问题(如何指定延时模式)

了解到这里,大家可能会有个疑问:据我们常见,一个模块中不仅包含specify块,还会包含大量的门单元等语句。我们通常在specify块中会指定模块路径延迟, 模块内的路径单元(基本的门级单元、开关级元件或者子模块)又存在分布延迟,。模块中这两种延迟经常会共存,那么此时进行仿真时应该使用哪种延迟呢?两种延迟下延时大小如果相等,还好说,如果不相等,那么采取哪种数值呢?例子中存在分布延迟大小为7,module -path-delay 大小为7的延迟数据。

2024-05-16 13:40:58 165

原创 后仿真中的关于延时问题(传输或惯性选择和脉冲控制)

目录通过前面的文章提到,从物理特性角度出发,仿真中存在两种延时:惯性延时和传输延时。那么,实际仿真电路过程中,我们究竟选择的哪种模式呢?传输延迟类型不是默认的延迟类型。我们需要显示指定它。VCS 仿真中添加如下三个编译选项:(1)+(2)+(3)VCS 仿真中添加如下三个编译选项:(1)+(2)+(3)总之,+pulse_e/number 标记错误门限、+pulse_r/number 滤除门限、+pulse_int_e/number 标记错误门限、+pulse_int_r/number 滤除门限,明确指

2024-05-15 09:13:24 589

原创 后仿真中的必懂VCS仿真选项之+neg_tchk/-negdelay/

针对的是timing check task,即$setuphold / $recrem / $nochange 这三种task(据我所知,有且只有这3种),如果这些timing check task中的timing limit有负值,就需要加上这个option,否则vcs会把负的timing limit当作0来处理。针对的是延时的计算,即cell内部(IOPATH)或者cell to cell间(INTERCONNECT)的延时,如果不使用这个option,vcs同样会把负的delay值当作0来处理。

2024-05-11 20:31:31 948

原创 后仿真中的必懂VCS仿真选项之+nospecify/+notimingcheck/

今天,抽空学习和整理一下后仿真中的VCS仿真选项之+nospecify/+notimingcheck/+no_notifier共三个选项。“后仿真很重要,坚持点滴学习”

2024-05-11 08:01:06 339

原创 SystemVerilog/Verilog中的仿真延时建模之模块路径延时

并行连接表示每条延迟路径只有一个源端和目的端,其语法格式如下:(=>) =;其中delay_value可以为1~3个延迟量表达方式,延迟量也可以采用"最小值:典型值:最大值"的形式,如果延迟量多于两个,则可以使用小括号将延迟量包括其来,延迟量之间用逗号分隔.一般只包含*>和=>连接的路径,在其中仅描述简单的源端到目的端的延迟,属于基本模块路径延迟表示形式.

2024-05-08 12:08:53 920

原创 SystemVerilog/Verilog中的仿真延时建模之门延时

提到门延时,就必须重提分布延迟。分布延迟指模块内信号从(或者(今天我们着重看门延迟。如果信号从0/1/z变化到x,那么此时的门传输延迟为上述三种延迟最小的.另外,在进行仿真时,有些逻辑门的输出不可能会出现高阻态z,所以对于这些逻辑门实际上就不存在关断延迟了,类似的逻辑门有:and、nand、、nor、xor、xnor、buf和not等。并且这两种形式结合不同的延迟类型经常会混合使用。

2024-05-08 11:28:35 873

原创 后仿真中的关于延时问题(仿真建模角度)

1.1连续赋值延迟连续赋值延迟用于指定”=”右侧表达式的操作数发生值的变化,到左值被更新之间的时间间隔。它们模拟了惯性延迟模型(Inertial Delay Model,IDM),即它们会把短于门级原语(Primitive)、连续赋值语句(Continuous assignment)的传播延迟(Propagation Delay)的脉冲过滤掉,只能传送稳定时间大于等于传播延迟的信号。

2024-05-08 09:14:55 608

原创 后仿真中的关于延时问题(物理特性角度)

大家都知道,后仿真讲究仿真时序。那么,在网表阶段,接触到后仿延时问题。今天总结一下。

2024-05-07 22:16:00 953

原创 后仿中必须读懂的User-defined primitives(UDP)

UDP,全名:User-defined primitives。用户自己定义的原语。UDP可分为:combinational UDP(组合逻辑)和 sequential UDP(时序逻辑)。

2024-05-07 21:40:43 704

原创 后仿真中的必懂VCS仿真选项之《+no_notifier》

可见,不管是否使用“+no_notifier”都不会影响违例信息的产生和报出,虽然使用“+no_notifier”可以避免标准单元输出不定态,但是这样就存在一个潜在的问题,因为标准单元此时输出为确定的状态,确定的状态一般也就不会影响后续电路的执行,从而如果忽略log文件将会很容易遗漏一些违例信息,为此从严谨的角度出发,除了仿真波形直观的反应以外,必须对于后仿真的log文件中的违例信息进行详细的筛查。Notifier在英文中的意思是通知人、通告人,在后仿真过程中他的作用就跟他的英文意思一样。

2024-05-07 16:35:28 579

转载 芯片后端设计的DRC是什么

首先,我们知道,人类的技术水平永远是有限的,芯片在制造的时候必须要满足一定的规则才能制造出来。因为他们的制造手段会有些许的差别,这些代工厂怎么能在制造规则给的最宽松的前提下,芯片的良率出来又最高,是它们机密中的机密,TSMC就是世界范围这些做的最好的,领先真的不是没有原因的。要知道我们在设计软件里看芯片的电路金属线都是直来直去的,完美的数学意义上的直线,但真正造出来的芯片铁定不是这样,在电镜下的照片可以看到metal从来都是歪歪扭扭的,有的地方粗有的地方细,放大了看特别丑。这种就是工艺带来的偏差。

2024-04-28 14:35:17 32

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

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

2024-03-22 15:17:38 279

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

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

2024-03-22 15:14:50 530

原创 聊聊芯片中的静态功耗(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 1395

原创 #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 89 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 1093

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

2024-02-24 16:07:49 361

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

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

2024-02-24 15:51:31 557

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

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

2024-02-24 14:42:46 263

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

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

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

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

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

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

原创 S4.2.7 Link Training and Status State Rules

2023-10-21 11:41:07 107

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

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

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

Python 学习文章总结概览表

2023-09-19 07:08:50 132

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

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

2023-09-17 10:08:17 3085 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 245

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

仿真调度

2023-08-27 23:05:39 345

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

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

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

2023-08-26 21:14:44 723

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

芯片功耗分析理论知识讲解(三)

芯片功耗分析理论知识讲解的第三部分知识。主要整理了功耗计算理论。

2024-05-19

芯片功耗分析理论知识讲解(二)

芯片功耗分析理论知识讲解的第二部分知识

2024-05-19

芯片功耗分析理论知识讲解(一)

主要整理了关于功耗分析过程中,需要了解的一些基本理论知识。

2024-05-19

门级网表仿真基本知识点整理

主要整理了门级网表仿真,就是后仿真中常见的知识点,做了整理,方便了解。

2024-05-18

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关注的人

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