IC 前端设计
文章平均质量分 88
wonder_coole
半导体行业非IT码农一枚
展开
-
微电子/半导体/芯片设计网络资源搜集分享
自己收藏夹里东西,觉得不错就分享下,随时添加(●'◡'●)半导体新闻资讯https://en.wikichip.org/wiki/WikiChip CPU 架构和型号 roadmap及相关新闻 https://www.techinsights.com/很多手机拆解的文章都是从这里来,甚至拆解到芯片内部 https://www.design-reuse.com/ 介绍市场在售的各种IP,也包含一些知识介绍文章专业知识深入学习类https://www.allaboutcirc...原创 2021-07-29 12:16:43 · 1212 阅读 · 2 评论 -
使用VCS进行带UPF的RTL低功耗仿真
概括使用VCS进行UPF的RTL级PA仿真相关知识,总结实践中需要注意的要点,及碰到的问题。原创 2020-09-07 11:56:07 · 14041 阅读 · 1 评论 -
LPDDR4的训练(training)和校准(calibration)--Write Leveling(写入均衡)
Write Leveling是从DDR3开始引入的概念,为了解决DQS和CLK的edge alignment的问题。 因为从DDR3开始采用了新的拓扑结构:fly-by。即多个DRAM放置在PCB上时(或多个die),地址线,控制线,时钟线采用fly-by方式进行布线,DQ,DQS和DMI还是采用点对点的布线方式,这造成到达DRAM端的DQS对和CLK对的信号延时不同。 采用了fly-...原创 2019-10-28 23:14:31 · 25756 阅读 · 0 评论 -
UVM学习笔记--UVM 基础
1.UVM component相较与UVM object所具有的两大特性:在new时候通过指定parent参数来形成一种树形结构。具有phase的自动执行的特点。原创 2019-05-09 22:40:27 · 1900 阅读 · 0 评论 -
UVM学习笔记--build_phase的执行顺序
理解UVM build_phase的执行顺序很重要虽然明白build_phase的执行顺序是由上往下,由根节点到叶子节点,但具体细节还是不清楚,如是在同级的所有节点都先创建完成,在开始下一级节点的创建?还是某个节点一下所有节点都创建完,在创建兄弟节点及其子节点呢?我做了个试验,在每个component的new函数结尾会打印tag是 [new_call]的信息, 在每个build_phase函数...原创 2019-05-10 19:06:33 · 9495 阅读 · 6 评论 -
UVM学习笔记--TLM通信
Table of Contents1.TLM简介2.UVM TLM基本概念2.1 TLM 通信常用的的三种传输:Put/Get/Transport2.2 TLM 通信中的三种端口:Port,Export,IMP2.3 Put/Get/Transport等动作的实现2.4 跨层次连接3. 所有常用的一对一Port类型的总结4. Analysis端口(一对多连接)...原创 2019-05-15 19:28:33 · 8829 阅读 · 0 评论 -
UVM学习笔记--phase机制
1.UVM phase 概览UVM采用phase机制来自动化运行testbench各个仿真过程。UVM phase支持显示或隐式的同步方案,运行过程中的线程控制和跳转。用户只要把代码填入对应的phase,这些代码就会自动在正确的时间执行。各个phase执行顺序如下图所示:相较于OVM,UVM新增了12个小的task phase,如下图:其中run_phase和uvm新增加的12...原创 2019-05-22 15:57:40 · 16981 阅读 · 3 评论 -
UVM学习笔记--sequence和sequencer
1. UVM sequence机制的意义UVM的sequence机制最大的作用就是将test case和testbench分离开来。 对一个项目而言,testbench是相对稳定的框架,而针对各个module要有不同的测试内容,所以具体的test case 的差异非常大。在UVM中, test和sequence类总是成对出现,实现了testbench和具体的test case的结合。test类...原创 2019-05-29 10:19:44 · 26689 阅读 · 2 评论 -
UVM学习笔记--寄存器模型 Register Model
1.寄存器模型( Register model )简介UVM的寄存器模型是一组高级抽象的类,用来对DUT中具有地址映射的寄存器和存储器进行建模。它非常贴切的反映DUT中寄存器的各种特性,可以产生激励作用于DUT并进行寄存器功能检查。通过UVM的寄存器模型,可以简单高效的实现对DUT的寄存器进行前门或后门操作。它本身也提供了一些寄存器测试的sequence,方便用户直接使用。UVM的寄存器模型...原创 2019-06-13 17:43:53 · 31370 阅读 · 10 评论 -
维特比译码器(Viterbi Decoder)硬件架构(三)--硬件结构描述及RTL源代码
1. 综述发展到现在,Viterbi译码器的硬件结构以及很成熟了。这里要描述的Viterbi译码器采用了一个成熟的规整化的硬件的硬件架构,可根据配置寄存器来对LTE,NB-IOT及GSM/GPRS/EDGE中使用的卷积码进行译码。前向回溯的滑窗技术可以减少Path Metric Buffer. 基于可配的网格结构可实现约束长度为4~7,编码效率为1/2,1/3,1/4,1/5,1/6的卷积码的译...原创 2019-06-21 14:35:30 · 3853 阅读 · 4 评论 -
使用CVS仿真的两个简单的Makefile
在Linux/Unix下,提交RTL仿真常用的有两种方法,一个靠perl脚本,一个靠Makefile。当然更多的是将两者粘合到一块来用。这里分享下我用过,功能比较简单的Makefile。CODE_PATH = /home/xxx/work/rtlcode/dut # dut rtl pathCASE :=GUI :=TEST = $(CASE) # case name from...原创 2019-04-22 14:17:43 · 1534 阅读 · 0 评论 -
维特比译码器(Viterbi Decoder)硬件架构(一)--卷积码及编解码算法介绍
1. 卷积码(convolution code)卷积码在无线通信里用的非常广泛,通常卷积码编码器开始工作前都要进行初始化,按编码器的初始状态不同可以分为两类:1.1 末尾补零卷积码(Tail-bits):通常卷积码编码器开始工作时都要进行初始化,编码开始前将编码器的所有寄存器单元都进行清零处理。而在编码结束时,需要添加0到码流末尾(Tailed Termination),使编码器状态归...原创 2019-01-23 23:12:23 · 8838 阅读 · 0 评论 -
Synopsys SpyGlass CDC 学习 (一)
原创声明http://blog.csdn.net/wonder_coole/article/details/79542241,本博客所有文章均同步发表于www.mx1980.cn/blogSpyGlass工具简介目前包含:SpyGlass Lint, CDC, RDC, DFT ADV, Power. 是业界RTL Signoff 的重要工具. SpyGlass 的一些...原创 2018-03-13 16:29:24 · 32248 阅读 · 4 评论 -
VCS 编译仿真方法总结
VCS/VCSMX 一般仿真步骤VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三步法。仿真前要配置好synopsys_sim.setup文件,里边有lib mapping等信息。设置环境变量'setenv SYNOPSYS_SIM_SETUP /xxx/xxx/synopsys_sim.setup'. VCS对应的waveform工具有DVE和Verdi, DVE因为...原创 2018-03-19 22:24:39 · 50397 阅读 · 12 评论 -
System Verilog LRM 学习笔记 -- 数据类型
一般的SystemVerilog专业书不会全方位细致的讲SV,所以过一遍Accellera的SV LRM还是很有必要的。IEEE SV标准: IEEE 1800-2017 - IEEE Standard for SystemVerilog--Unified Hardware Design, Specification, and Verification LanguageAccellera的...原创 2018-08-20 12:38:14 · 5549 阅读 · 1 评论 -
System Verilog LRM 学习笔记 -- 字面常量
1. 整数型字面常量1.1整数型字面常量表示方法有两种:数字直接表示:会被系统识别为32bit宽的有符号数。 指定size和进制,如12‘hDBA, 有可选的宽度,(’), s/S有符号数指示,和数字组成。 默认是无符号数,只有含s/s符号数指示时被识别为有符号数, 如12‘shDBA.1.2 负数是二进制补码的形式表示1.3 整数型字面常量的补齐和截断,padded to l...原创 2018-08-28 16:43:31 · 1747 阅读 · 0 评论 -
SystemVerilog LRM 学习笔记 -- SV Scheduler仿真调度
1. 为什么要理解scheduler?SystemVerilog是HDVL语言,相较与Verilog,除了面向HW design应用,也为了提高verif的效率。所以其仿真调度算法在向下兼容Verilog的同时,增加了不少新的‘Time region’,以便更好的支持program块等针对验证需求的新特性。SV不同于C/C++等软件语言,为了对硬件进行仿真建模,所以有很多并行的proces...原创 2018-08-29 22:13:49 · 9069 阅读 · 2 评论 -
SystemVerilog LRM 学习笔记 -- clocking块
1clocking...endclocking块clocking块是SV新feature,主要是为了更好解决testbench和DUT之间的timing和同步建模的问题,可以使user基于clock cycle在更高的抽象层次上写testbench(如“## 3”,表示三个clock)。clocking只能在module/interface/checker/program中声明,不能在fun...原创 2018-09-10 22:46:33 · 24252 阅读 · 2 评论 -
Synopsys SpyGlass CDC 学习 (二)
学习官方培训材料:SpyGlass_CDC_Training_Slides备注:写下面笔记也是挂一漏万,只能cover 几个常用的rule。想了解每一个rule的详细情况,除了研读这个PPT,最好还是查官方文档,当然会耗费很多时间,但对项目负责做SpyGlass Lint/CDC检查的人,还是必不可少的。我现在还是票友的角色,只是为了处理所负责模块的violation。本文为博主原创文章,...原创 2018-03-15 12:16:53 · 22828 阅读 · 4 评论