LPDDR4的训练(training)和校准(calibration)–Write Leveling(写入均衡)

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…

使用CVS仿真的两个简单的Makefile

在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时需…

python集腋成裘

常用语句 1 记录脚本命令的自定义函数 把每次脚本执行的命令和参数记保存到一个文件里,以便以后查看   2 字符串处理函数 2.1 字符串分割 split() 2.2 删除首尾特定字符 strip() strip() 移除字符串头尾制定的字符或字符序列,默认为空格或换行符。该函数不能删除中间部分 3 脚本中执行系统命令 4 range() 列表产生函数 range() 函数可创建一个整数列表,一般用在 for 循环中。 函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始。默认是从 …

ubuntu16.04 wifi 不稳定问题

在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…

漫谈用过的版本管理工具–CVS,ClearCase和Git

我接触过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…

SystemVerilog LRM 学习笔记 — clocking块

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/…

SystemVerilog LRM 学习笔记 — SV Scheduler仿真调度

1. 为什么要理解scheduler? SystemVerilog是HDVL语言,相较与Verilog,除了面向HW design应用,也为了提高verif的效率。所以其仿真调度算法在向下兼容Verilog的同时,增加了不少新的‘Time region’,以便更好的支持program块等针对验证需求的新特性。 SV不同于C/C++等软件语言,为了对硬件进行仿真建模,所以有很多并行的process,而仿真器作为运行在CPU上的软件,只是按照SV LRM的仿真调度算法,开始仿真后,将仿真时间串行的一步步的向前推进。由于SV LRM并没有完全详细的规定并行的p…

System Verilog LRM 学习笔记 — 字面常量

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后赋值,但如果其左侧…

LTE UpLink Phy上行物理层简介

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…

ClearCase Overview

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…

Synopsys SpyGlass CDC 学习 (二)

学习官方培训材料:SpyGlass_CDC_Training_Slides 备注:写下面笔记也是挂一漏万,只能cover 几个常用的rule。想了解每一个rule的详细情况,除了研读这个PPT,最好还是查官方文档,当然会耗费很多时间,但对项目负责做SpyGlass Lint/CDC检查的人,还是必不可少的。我现在还是票友的角色,只是为了处理所负责模块的violation。