自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 2021-05-24

1.LPDDR4 无法调最高速率4266一般主要是电源纹波不满足,需要添加片上电容,封装电容,以及板级电容优化。2.LPDDR4-4266 初始化 training fail调整ODT和Ron 值(40Ω)3.derate 后出现系统卡死derate 不能与per bank refresh 同时开,因为derate 后刷新频率提高4倍,而per bank refresh的刷新间隔比4倍tRFC小,会导致上次刷新还没结束,下一次刷新就到了,导致刷新一致占用带宽。4.LPDDR4-3733 初始化正

2021-05-24 19:35:05 836 1

原创 如何使用PT 罗列所有例化单元的路径

DDR 控制器后仿时需要提取所有两级同步的第一级reg,设置而X态不传播。比如需要提取的例化名为GEN_FST2_sample_meta_reg_0。先设置PT报的数目,默认是100条,可能不够,通过如下命令设置成800条set_app_var collection_result_display_limit 1000提取命令:get_cells -h -f “full_name =~ GEN_FST2_sample_meta_reg_0" > GEN_FST2_sample_meta_reg

2021-01-05 20:44:48 533

原创 DDR3与DDR4的区别

1、DDR4的RAS/CAS/WE与A16/A15/A4复用端口,通过ACTN区分2、DDR3的IO电压1.5V,DDR4的IO电压1.2V3、DDR3只有3个MR寄存器,DDR4有6个MR 寄存器,4、DDR3不可读颗粒信息,DDR4可读出MR的基本信息5、DDR3的MPR只有一种pattern,且不可写; DDR4的pattern分为三种情形,6个page6、DDR4支持DM与DBI复用功能7、DDR4支持CRC校验,用于检测当前比干扰出错,ALERT_n 拉低反馈8、DDR4支持CA 奇

2020-11-17 17:28:22 5061

原创 ODT和RON原理

DDRPHY读操作的时候,数据从SDRAM颗粒驱动,在DDRPHY端ODT吸收。驱动值为1时,RON_PU的开关闭合,RON_PD的开关断开,ODT_PU和ODT_PD都闭合。此时总电阻 ,DQx的电平为当RON_PU值越小,电平越接近VDDQ,即驱动越强。反之则驱动越弱。ODT_PU 效果一样当驱动之为0时, RON_PU的开关断开,RON_PD的开关闭合。ODT_PU和ODT_PD都闭合。此时总电阻为 ,DQx的电平为当RON_PD越小,电平越接近0,即驱动越强。反之驱动越弱。ODT_PD效果一样

2020-11-11 15:44:13 2308

原创 常用工具

1、 vim 根据包含的内容删除整行 :g/包含内容/d2、 grep -v “OK” 显示不含ok的行3、 svn add后的数据取消svn revert4、 grep “” 源文件 | sort | uniq >目标文件 输出唯一5、 excel 选择一个单元格; 切换到“数据”; 然后选择“数据验证”下拉–数据验证-选择序列-设置你需要的数据,下拉框的多个设置,用英文的逗号分开; 6、 点击开始–条件格式–突出显示单元格规则–等于 设置选项颜色7、 top -u we

2020-09-17 17:47:20 144

原创 verilog for循环的使用

Verilog 中重复的内容可以使用for循环来完成,目前总结的注意点如下:1、always 内部用for循环,需要定义interger类型变量,否则有些仿真工具会报错2、异步复位时序逻辑always@下面第一行必须是异步复位,不能有for循环,否则综合工具会报错3、for语句在always 外部,或者使用for循环例化模块,需要定义genvar变量,否则有些仿真工具会报错。...

2020-09-17 17:39:09 35621 6

原创 DDR仿真模型memory_write的使用

DDR仿真时为了减少数据写到DDR的时间,会使用模型里的memory_write函数,通过使用$readmemh读取准备好的数据文件,再初始化到颗粒里面。memory_write 函数使用步骤如下:1、统一地址粒度。一般load进去时给的是系统地址(sys_addr),粒度为1字节,内存地址(dram_addr)的粒度跟DQ的位宽有关,比如32位的DQ,那么系统地址除以4就是内存地址,即dram_addr=sys_addr2、地址印射。将DDR的地址转换为rank,bank,row,col地址,这个需要

2020-06-29 17:44:16 1711

原创 FPGA综合常见报错

1、FPGA工程综合时DDR3 mig核PHY only报critical warning:[Memdata 28-204] The BRAM instance */inst/u_ddr3_mem_intfc/u_ddr_cal_riu/mcs0/lmb_bram_I/RAM_Inst/Using_B36_S2.The BRAMs[12].RAMB36_I1 could not be found in the netlist.Please verify the instance name in th .b

2020-06-12 13:44:33 1585

原创 Linux cd到其他目录后自动执行ls命令

使用Linux cd 命令时,默认是不显示该目录下的内容,无法知道是否有文件,有哪些文件等信息。所以需要手动输入一个ls命令,如果对环境不是很熟悉,且文件路径结构较复杂时,需要每进入一个目录就输入一次ls命令,影响效率。可以在环境变量中设置,cd进入一个目录后自动执行一次ls命令,显示目录下的内容列表。具体实现如下:~/.tcshrc 添加如下两行内容:alias setprompt 'set prompt="[${user}@ ${cwd} ]% " ’alias cd ‘chdir !* &amp

2020-06-08 11:51:13 3483

原创 芯片DDR调试常见问题

1、 DDRPHY ZQ CALIB 校准异常,RX CALIB校准不通过。解决方法:检查PCB设计,纠正ZQ电阻实际连接与IP手册要求不一致问题。2、 DDR 基本写读测试512MB以上数据量时会出现错误,且出错的地址空间随机。解决方法:检查PCB板设计,发现多个负载挂在一个电源上导致DDR供电不足,飞线输入单独电源后解决。3、 DDR3/4提速到1866和2133时不能正常访问,基本的写读数据都会出错。解决方法:当速率大于1600后需要进行窗口对齐操作,通过逐个扫描DQ 的per-bit-de

2020-06-01 18:20:58 11886 4

原创 加密模型仿UVM环境仿真异常

买的第三方DDRPHY,是cadence加密.v 模型,在普通环境仿真正常 ,UVM环境DDRPHY的write leveling 前后都没有发送MRS1寄存器,写操作CWL=11,与配置的CWL=10不一致。解决方法:uvm时加mise=0

2020-06-01 18:10:25 246

原创 Synplify 综合Gtech 网表

Synplify 综合Gtech 网表文件时报错:没有定义网表内例化的单元。把芯动提供的Gtech_lib.v 库吃进去后,报无法综合 primitive 。 原因:通过百度查到网上有类似的问题,给出的答案是:“Synplify里面自带了gtech和dw_verilog库,需要你自己加入到那个库的路径里面去” 通过在Synplify安装目录下找到lib的文件夹里搜索 “grep –r –color “gtech” ./ ” 找到下面有一个叫“gtech.v”的文件夹,控制器里的例化单元名模块名,在里面能

2020-06-01 18:03:11 3830 1

空空如也

空空如也

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

TA关注的人

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