LPDDR4的ZQ pin, 用来外接一240Ω±1%上拉电阻。LPDDR4将其作为参考电阻,用来校准DRAM内部的240Ω电阻。因为芯片内部的240欧电阻是由CMOS构成,由于CMOS的天然特性,造成该电阻会随着PTV(制程,温度和电压)变化,因此必须对其进行校准。 在JESD209-4B LPDDR4标准中,提到ZQ校准有四个作用: – 输出上拉校准,即校准输出电压VOH PU-Cal (Pull-up Calibration VOH Point) – 输入下拉驱动强度及接收终止电阻的校准 PDDS (Pull …
Write Leveling是从DDR3开始引入的概念,为了解决DQS和CLK的edge alignment的问题。 因为从DDR3开始采用了新的拓扑结构:fly-by。即多个DRAM放置在PCB上时(或多个die),地址线,控制线,时钟线采用fly-by方式进行布线,DQ,DQS和DMI还是采用点对点的布线方式。采用了fly-by的结构,CLK到达菊花链的各个die的时间是不一样的。具体而言,到达菊花链起始端会早些,到达末端会晚些,对于分布在链上的各个DRAM chip来说,不仅存在time skew,而且不同DRAM芯片(die)端的DQS对和CLK…
在Linux/Unix下,提交RTL仿真常用的有两种方法,一个靠perl脚本,一个靠Makefile。当然更多的是将两者组合到一块来用。这里分享下我用过的两个功能比较简单的Makefile。 1. 编译纯verilog DUT+TB 在这个Makefile中, CODE_PATH是dut的源文件存放路径。 filelist 文件名为file.f。case名字是通过TEST变量在command line中制定。这是一个纯verilog的TB+DUT,没有使用SV和UVM。 使用时的命令行: 2. 使用了UVM TB编译 使用时的命令行: 3.使用UVM时需…
常用语句 1 记录脚本命令的自定义函数 把每次脚本执行的命令和参数记保存到一个文件里,以便以后查看 2 字符串处理函数 2.1 字符串分割 split() 2.2 删除首尾特定字符 strip() strip() 移除字符串头尾制定的字符或字符序列,默认为空格或换行符。该函数不能删除中间部分 3 脚本中执行系统命令 4 range() 列表产生函数 range() 函数可创建一个整数列表,一般用在 for 循环中。 函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始。默认是从 …
在ThinkPad X201i用ubuntu16.04已经很久了, wifi连接一直不稳定, 用几分钟就自动断开, 无奈只能重连. 查询无线网卡具体情况如下: $ lspci 02:00.0 Network controller: Intel Corporation Centrino Wireless-N 1000 [Condor Peak] $ sudo lshw -class network *-network description: Wireless interface product: Centrino Wireless-N 1000 [Con…
我接触过SVN,CVS,Clearcase和Git,真正做项目用过的有CVS,ClearCase和Git,在这里简单写下我自己对这三个版本工具的使用感受。 基本对比 SVN,CVS,Git为开源免费工具,ClearCase为IBM所有 。 SVN,CVS,ClearCase为集中管理,Git为分布式管理。 ClearCase只有大公司使用,小公司一般会使用SVN,CVS,Git。 对于硬件RTL代码库,CVS和ClearCase使用比较舒适, 而大团队大项目使用Git造成效率低下。 Git是分布式的版本控制系统,其设计初衷是为了自由,每个开发者不必依赖c…
1 clocking…endclocking块 clocking块是SV新feature,主要是为了更好解决testbench和DUT之间的timing和同步建模的问题,可以使user基于clock cycle在更高的抽象层次上写testbench(如“## 3”,表示三个clock)。clocking只能在module/interface/checker/program中声明,不能在function/task/package中。clocking块是声明和例化一体的(类似always块没有例化语句)。clocking块是对所在的module/…
1. 为什么要理解scheduler? SystemVerilog是HDVL语言,相较与Verilog,除了面向HW design应用,也为了提高verif的效率。所以其仿真调度算法在向下兼容Verilog的同时,增加了不少新的‘Time region’,以便更好的支持program块等针对验证需求的新特性。 SV不同于C/C++等软件语言,为了对硬件进行仿真建模,所以有很多并行的process,而仿真器作为运行在CPU上的软件,只是按照SV LRM的仿真调度算法,开始仿真后,将仿真时间串行的一步步的向前推进。由于SV LRM并没有完全详细的规定并行的p…
1. 整数型字面常量 1.1 整数型字面常量表示方法有两种: 数字直接表示:会被系统识别为32bit宽的有符号数。 指定size和进制,如12‘hDBA, 有可选的宽度,(’), s/S有符号数指示,和数字组成。 默认是无符号数,只有含s/s符号数指示时被识别为有符号数, 如12‘shDBA. 1.2 负数是二进制补码的形式表示 1.3 整数型字面常量的补齐和截断,padded to left, truncated: 对于无符号数,如果向size小的数赋值,则需要将左侧多余的bit截断后赋值。如果向size大的数赋值,则将其左侧填0后赋值,但如果其左侧…
1.1 LTE RAN Protocol Architecture Packet Data Convergence Protocol (PDCP): performs IP header compression to reduce the number of bits to transmit over the radio interface. Radio-Link Control (RLC) : is responsible for segmentation/concatenation, retransmission handling, dup…
1. ClearCase Overview 1.1 SCM • Software Configuration Management • CM is a systems engineering process, and a term of PM. SCM is CM used in Software industry. • is a software engineering discipline consisting of standard processes and techniques often used by organizations to ma…
学习官方培训材料:SpyGlass_CDC_Training_Slides 备注:写下面笔记也是挂一漏万,只能cover 几个常用的rule。想了解每一个rule的详细情况,除了研读这个PPT,最好还是查官方文档,当然会耗费很多时间,但对项目负责做SpyGlass Lint/CDC检查的人,还是必不可少的。我现在还是票友的角色,只是为了处理所负责模块的violation。
SpyGlass工具简介 目前包含:SpyGlass Lint, CDC, RDC, DFT ADV, Power. 是业界RTL Signoff 的重要工具. SpyGlass 的一些基本概念 1.Rule: 是SpyGlass 进行RTL分析的最小单位. 2.Goal: 是一系列相关Rule的集合,组合起来完成RTL分析的某个特定任务. user可以用GuideWare定义好的Goal, 也可根据工程项目要求来选择一系列rule的集合形成自定义Goal. GUI里面点Goal的button来选择设定, 当然也可在Prj file 里定…
1. VCS/VCSMX 一般仿真步骤 VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三步法。仿真前要配置好synopsys_sim.setup文件,里边有lib mapping等信息。设置环境变量’setenv SYNOPSYS_SIM_SETUP /xxx/xxx/synopsys_sim.setup’. VCS对应的waveform工具有DVE和Verdi, DVE因为是原生的,所以VCS对DVE非常友好。但DVE已经过时了,其对uvm等新feature支持的不好。Verdi是Debussy公司的产…
离开校园太久了,再加上工作上确实很少用到,现在基本上把半导体基础的物理知识忘得差不多了. 这两天把这些内容复习下,把脑子里缺的这块拼图补起来,此是前话。下面的内容大多是摘自不同的网页,取其精华形成系统。 原子结构 原子由原子核和围绕原子核旋转的电子构成。如果将原子比作一棒球场,那么原子核大大小不比一个棒球大,但原子的所有重量都集中在原子核上,而电子只相当于棒球场上的苍蝇,所占空间相比来说也是极小的。原子核带正电荷,电子带负电荷。原子内正电荷和负电荷数量相等,所以原子整体是中性的。电子围绕原子核运动,和地球围绕太阳远行相似。在核的引力作用下,电子分成几层(…
1. 综述 发展到现在,Viterbi译码器的硬件结构以及很成熟了。这里要描述的Viterbi译码器采用了一个成熟的规整化的硬件的硬件架构,可根据配置寄存器来对: LTE,NB-IOT及GSM/GPRS/EDGE中使用的卷积码进行译码。 支持tail-bits和tail-biting两种形式。 前向回溯的滑窗技术可以减小幸存路径的缓存器深度. 可配的网格结构支持约束长度为4~7,编码效率为1/2,1/3,1/4,1/5,1/6的卷积码译码。 该项目RTL源代码及验证的testcase已经在github上开源:https://github.com/cool…
1.网格图(Trellis Diagram) 网格图(Trellis Diagram)是卷积解码用到的概念,是理解解码过程的基础。网格图是由按时间顺序排列的状态结点矩阵, 每一列代表当前时刻的所有状态,最左侧第一列代表初始状态(t=0),第二列代表第一个输入进入编码器后的转移状态。红色路径表示输入是0时的转移路径,蓝色表示输入为1时的转移路径。如下图所示, t=1时刻,只有两个从初始状态过来的转移路径,只存在2个可能的状态; t=2时刻,从t=1向t=2转移存在四个路径,此刻存在四种可能状态。 t=3时刻,从t=2过来的转移路径有8条。 以此类推形成整个…
1. 卷积码(convolution code) 卷积码在无线通信里用的非常广泛,通常卷积码编码器开始工作前都要进行初始化,按编码器的初始状态不同可以分为两类: 1.1 末尾补零卷积码(Tail-bits): 通常卷积码编码器开始工作时都要进行初始化,编码开始前将编码器的所有寄存器单元都进行清零处理。而在编码结束时,需要添加0到码流末尾(Tailed Termination),使编码器状态归零, 这即是末尾补零卷积码。相对于编码比特而言,添加的末尾比特增加了编码开销。 1.2 咬尾卷积码(Tail biting): 咬尾卷积编码是一种特殊的卷积编码,它通…
目录 1.HEVC的Profiles(档次),Levels(级别),Tier(层) 1.1 HEVC的Profiles(档次) 1.2 HEVC Levels(级别)和Tiers(层) 2.HEVC的分层结构 2.1 分层结构概述 2.2 VCL 2.2 NAL 2.2.1 NAL unit 头包含的信息: 2.2.2 VCL-NALU和non VCL-NALU具体类型如下: 2.2.3 NALU Payload 1.HEVC的Profiles(档次),Levels(级别),Tier(层) 1.1 HEVC的Profiles(档次…