自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (11)
  • 收藏
  • 关注

原创 gvim中文乱码

当我们想把linux中配置(熟悉的)好的vim配置复制到windows系统中时,将.vimrc拷贝到gvim根目录下,并修改为_vimrc。同时,在字体的地方将linux的字体设置换成windows下的设置。如何保持linux下和windows下手感的统一性。会出现菜单栏乱码,并且显示的字体特别小。在_vimrc种插入下面的话。大功告成,回家躺尸。

2023-08-04 08:51:48 760

原创 时序分析总结

时序约束

2022-04-29 22:12:54 2113

原创 Lattice DDR3 ip 注意事项

Lattice DDR3 ip 注意事项do ddr3_ip_eval.do 之后报错!需要将work 的路径手动修改至当前路径下。=>终于!========================为什么app_cmd和datain_rdy不对齐?难怪cmd和data是不对齐的,cmd和地址对齐。因为cmd发完之后就一直在等ipcore输出相应的使能了,和A家和X家都不一样!如果datain_rdy拉高,则将数据延迟一拍后打进ipcore的write_data口。

2022-03-12 23:40:10 740

原创 Altera DDR3调试记录

Altera DDR3调试记录【2021-3-6】生成DDR_IP=======================使用example_design搭建仿真环境读readme.txt\coregen\ddr3_ip\ddr_ip_example_design\simulation\README.txt例化ddr3_ip core时,下面几个接口容易忘记改。msim_setup.tcl 从code\coregen\ddr3_ip_sim\mentor中复制过来,我一般复制到c

2022-03-12 23:24:06 1131 1

原创 V3学院1元培训班笔记(腾讯视频)

V3学院1元培训班笔记(腾讯视频)[2019-10-20 12:00]1.如果时序出现一些问题,可以将查找表和寄存器约束在同一个LE里,这样其组合逻辑的路径会很短AlteraLAB:逻辑阵列块 包含16个LELE: 查找表1 +寄存器1我们写的if…else… 最终映射到查找表(以四输入查找表为例,可以写4个1bit条件)得出的值 最终映射到寄存器中如果我们写的if后面的位宽比较大或者条件较多,就会占用很多LUT,然后从LUT出来再到某一个寄存器,会有很多走线路径,延时比较大。

2022-03-12 23:04:35 665

原创 【高速收发器】xilinx高速收发器学习记录

xilinx高速收发器学习记录说明:本文摘自 V3学院 尤老师的培训班笔记,仅用于个人学习,不用于任何商业用途。满足个人在公交车上或者其他需要不得不等待的时间段内学习的需要。高速收发器的QUAD,如果级联以共享时钟,往上和往下不能超过2级。也就是说,共享时钟的时候,最多是5个QUAD使用一个gtrefclk。为什么只能驱动5个,因为时钟的驱动能力有限。每个quad是4个收发对,5个quad就是20个收发对。GTP的带宽为5G.GT0-GT3可以使用同一个gtrefclk,也可以自定义选择

2022-03-12 22:54:14 2313

原创 【10G以太网】10G Ethernet Subsystem 学习记录

10G Ethernet Subsystem 学习记录说明:本文摘自 V3学院 尤老师的培训班笔记,仅用于个人学习,不用于任何商业用途。满足个人在公交车上或者其他需要不得不等待的时间段内学习的需要。10GBASE-R 是一种使用 64B/66B 编码,数据流为 10.3125Gbit/s。一般情况下参考时钟为156.25M。为什么?10312.5/156.25=66每1bit的时钟为10.3125Gbit/s,那么如果是每66bit为一个数,那么其采样时钟就是10312.5/66=156

2022-03-12 22:28:59 7559 6

原创 【PCIE】基于Riffa架构的PCIE项目

基于Riffa架构的PCIE项目Pcie分为四层:① 物理层:完成信号的转换以及编码包含 PMA 和 PCSPMA: Physical Media Attachment 物理媒介层,完成并转串或者串转并的操作PCS: Physical Coding Sublayer物理的code,其实就是8b转10b的编码,使用 8b/10b 编码这个编码技术是用于高速接口中使得数据链路中的数据 1 和数据 0 更均衡② 链路层:完成一些编码的操作③ 事务层:ipcore 是控制事务处来实现应用层④ 应

2022-03-01 22:58:41 5626 3

原创 【PCIE】PCIE TLP包解析

PCIE TLP包解析说明:本文摘自 V3学院 尤老师的培训班笔记,仅用于个人学习,不用于任何商业用途。满足个人在公交车上或者其他需要不得不等待的时间段内学习的需要。TLP包的公共部分Memory read/write TLP(Mwr/Mrd包)Length的单位是DW,应该填除以4后的结果,如果不能整除,需要加一Completion/Completion with Data TLPs (CPLD包)===============Length一共10bit,其中0表

2022-03-01 22:29:03 7859 1

原创 【PCIE】PCIE笔记摘录

PCIE笔记摘录> 以下内容非原创,主要是摘录 老男孩读pcie和网上的其他文章,仅限学习,不用于任何商业用途。PCIE接口电气的耦合方式高速差分信号电气规范要求其发送端串接一个电容,以进行AC耦合。=================PCIE总线的缺点Pcie的内部实际上还是以64bit/128bit的并行数据传输的,时钟为125M/250M。只不过在物理层转成了高速串口。但是PCIe总线也有其弱点,其中最突出的问题是传送延时。PCIe链路使用串行方式进行数据传送,然而在芯片内

2022-03-01 21:48:04 1263

原创 【千兆网】下游fifo如何根据不同帧长度实时调整rd_en的长度呢?

场景:千兆网采集项目中,对于不同帧长度的写入,下游fifo如何根据帧长度实时调整rd_en的长度呢?我:数据进来数一下长度,读的时候用这个长度去产生rd_en。弊端:如果这一帧是个长帧,后面跟随着几个短帧。写完之后,data_lenth就定下来了,但是随着后面几个短帧紧接着过来,data_lenth说不定已经变了几次了,而此时你的fifo读使能的计数器就会出错。尤老师:数据进一个大fifo的同时,data_lenth也需要进一个小fifo,当小fifo不空并且大fifo已经把当前帧取完了就将小fifo

2022-02-23 22:09:37 393

原创 【Lattice】视频分割项目 SERDES(PCS) IP 相关问题以及解决方法

(2020-03-16-21:00)<涉及项目: Cyclone*HDMI> 平台: altera Cyclo+ Lattice ECP(serides)现象1: 每次把声音调到那一路视频口时,会立马蓝屏(无信号),按红外遥控静音按键后图像又会出来。分析:尝试把it66121的i2s的三根线屏蔽掉则不会出现这种现象。很莫名其妙。抓reval发现serdes的PLL的lock都没起来。解决方案:将上板的输入时钟晶振由27M改成74.25M。将74.25M直接接入SERDES,降低

2022-02-23 16:15:13 3754

原创 视频fenge项目问题点总结

(2020-03-12-21:00)<涉及项目: Cycl32ed**> 平台: altera Cyclone* + Lattice EC****(serides)现象1:上电蓝屏(显示无信号)原因:SERDES误码,在行场信号上误码。解决:local_timing.v接受上板的V信号,如果连续三次计数器的值在vs沿处相等,则认为v信号正确,跟随正确的v信号用本地的时钟产出行场信号。==========================现象2:上电小概率蓝屏(显示无信号),大概

2022-02-23 15:55:44 209

原创 状态机未加超时退出机制问题分析

(2019-11-29-10:24)<涉及项目: Cyclon*81_***top> 平台: altera Cyclon场景:需要用户根据需求实时切换两种分辨率,即DDR的读取长度可能随时会被忽然改变。现象:切换分辨率偶尔出现绿屏,重启后又恢复。该现象具有概率性和随机性。分析:抓revel发现rdgnt(响应)一直为高,说明ddr_bridge响应了rdreq, 但是却没等来正确长度的rdval。结果状态机就死在这里了。可能是因为切分辨率的时候,读长度发生改变,导致状态机死机。

2022-02-23 12:48:36 577

原创 主板和bsd小板传输的数据采样问题

(2019-06-14-16:49)<涉及项目: Video_Switch_xxxx> 平台: lattice ecp5场景:主板fpga将摄像头采集的数据解码出来,通过ODDR将数据传输至BSD(ZYNQ)小板。现象:传数据给bsd小板的时候,发现以双沿bt656传输的数据总是出错(有误码)。后来改为bt1120单沿传输,图像大体上出来了,但是有时候颜色不对,并且会随机出现白色的小点点。摸索: 在发送侧,将Y递加,发现接受的图像亮度竟然不是连续的,而且很有规律。解决方法:

2022-02-23 12:41:26 224

原创 关于切ddr中的切Buffer(DDR多buffer缓存)

为什么要切Buffer呢?(2019-04-10-19:52)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5关于切ddr中的切Buffer若读写帧率一致,则不用切buff,视频无卡顿错位。若读写ddr的帧率不一致,则需要切Buffer;否则这边还没写完,你就来读了,你读的数据就是上半部分是上一帧的,下半部分是下一帧的。====================怎么切buffer进行DDR 读写操作呢?读:最慢的那个读把b空间读完了,才能让

2022-02-22 13:02:09 854

原创 【Lattice】lvdstx ip的eclk一定要大于等于理论计算值

Lattice lvdstx ip的eclk一定要大于等于理论计算值(2019-04-02-19:23)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5现象:Lvds_屏输出,每次上电后下载的时候闪一下colorbar,接着就一直黑屏,然后每次下载都没反应。非得重新上电后再下载colorbar才会闪一下,接着一直黑屏。============================最终发现问题:是eclk,这里的eclk理论值是47.5*3.5=166

2022-02-22 11:46:33 1606

原创 LVDS RX的底层逻辑

LVDS RX的底层逻辑(2019-03-26-20:30)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5现象:lvds接受模块得到的hysnc,de,乱七八糟一度怀疑是eclk 或者sys_clk改错了其实不然==》 在保证lvds_out 正常的情况下,lvds_decode我在这里没加。切记,在仿真时就要加上,调好相位。...

2022-02-22 11:31:45 762 1

原创 【坑】DDR前侧改变数据位宽很容易跳的坑

(2019-03-15-21:29)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5一个很容易掉的坑,写下,以避免后面再跳.!!!!!!!!目的: 原来ddr里走的是rgb888,后边还要旋转操作,前面还要走scaler等,都是走的8*3=24位,比较耗资源。现在改为yc422的数据,16位进ddr做后续一系列处理。之前ddr进出都是正常的,我就默认ddr是对的了。后来出现问题就没往ddr中去想,这没问题嘛!之前不是验证过了嘛。一度以为是scale

2022-02-22 11:16:10 373

原创 【Lattice】关于lattice的lvds管脚约束的注意事项

(2019-03-11)平台: lattice ecp5 LFE5U-25F-BG381关于lattice的lvds报错:ERROR - par: A generic DDR interface has been locked to bank(s) 3,6, which are not neighbors; therefore, the interface cannot be covered by an ECLK signal per device architecture.》》》 其实

2022-02-22 11:06:14 2141

原创 【Lattice】编译报错,但是控制台报告的error数为0,怎么查?

(2019-03-11)Lattice Diamond经常会报这样的错误,明明编译报错,但是最下面的error为0,编译也过了,但就是在布线跑不过去。error为0,怎么查呢?在report的这两处搜error.–>找到线索

2022-02-22 10:57:24 569

原创 【lattice】分配时钟管脚后直接报错

(2019-03-08)<涉及项目:Video_Switch_xxxx>平台: lattice ecp5 xxxxx问题:分配时钟管脚后,报错。但该管脚在别的相同类型芯片的板子上已经成功出货。代码里用到sys_clk的只有两个pll。解决:时钟经过PLLREFCS再进入PLL,就不报错了。PLLREFCS PLLREFCS_inst ( .CLK0 (sys_clk ), .CLK1 (1'b0 ), .SEL (1'b0 )

2022-02-22 10:32:18 992

原创 外部改参数的时候一定要匹配寄存器位宽

(2019-03-05)有的时候在外部修改了参数,但是我忽略了寄存器位数不够,导致查了半天…但是这个是不报错的。改参数时,一定要形成条件反射,改参数立马去看这个参数相关的寄存器位数够不够,特别是把参数改大的时候。本来输入的是colobar.–> 逻辑分析仪一直无法触发vsync变化的情况,–> 改参数的时候一定要保证寄存器位数足够。...

2022-02-22 10:13:42 326

原创 Diamond/Quartus 工具的bug

Diamond /Quartus工具的bug(项目时间:2019.02.18)<涉及项目: Video_Switch_xxxxx>平台: lattice ecp5 / altera cycloneV发现了一个问题,就是不动代码,只加内嵌逻辑分析仪有时候会莫名其妙出错。把逻辑分析仪(reval)放在工程里边编译,下载到板子里可能导致最终显示在板子上的现象是错误的,此时,把逻辑分析仪(reval)去掉,重新编译下载,则会发现板子上的现象是正确的。这可能是Lattice的一个Bug.自己

2022-02-22 09:39:02 300

原创 [STM32和FPGA配合问题]

STM32和FPGA配合问题(项目实际:2018.11.28)<设计项目:light_gun>平台: lattice 2100场景:FPGA满足一定条件就给stm32发送中断,stm32收到中断后,立马来读FPGA(stm32为spi_master)。问题 : 每次都得下载jed文件后程序正常,但是重新上电后程序不正常。正常的数据应该如图1,数据头为10101100(8’hac)但是实际收到的数据如下,并且每次都不一样。原因:单片机运行速度慢于fpga当fpga上电后

2022-02-22 08:50:19 1904

原创 SV中的深拷贝、浅拷贝与句柄复制

SV中的深拷贝、浅拷贝与句柄复制句柄复制只复制句柄,相当于两个句柄指向同一个对象,永远都只有一个对象。module tb;class trans1; int A = 1,B = 2; function FA(); endfunction endclass class trans2; int A1 = 3,B1 = 4; trans1 a = new(); // trans2 里边套一个trans1 function FB(); e

2022-02-18 09:30:08 2020

原创 DVT外部编辑器默认选择moselsim的解决方法

DVT外部编辑器默认选择moselsim的解决方法之前用过modelsim仿真的朋友,在用DVT插入External Buliders时,可能会像我一样,明明选择了Questa, 但是DVT却默认选择modelsim进行编译。在edit中也没找到类似选定编辑器路径的选项,头疼。–> 此处只记录最终解决方法:在系统环境变量中的Path 中将questa放在modelsim前面,否则会默认启动modelsim。(一定要是系统环境变量,不是用户环境变量)将questa的顺序排在modelsim的

2022-02-17 22:31:28 311

原创 task形参类型 inout 和 ref 的区别

task形参类型 inout 和 ref 的区别原文链接 https://stackoverflow.com/q/31017629/13685812通常来说,task或者function的形参声明为input时,input类型的形参仅仅是得到了一份拷贝;当task或者function的形参声明为output时,output类型的形参会在return的时候将此形参的拷贝复制给接收对象。而inout类型的形参,则会在被调用时得到一份拷贝,并在return的时候将形参的拷贝复制给接收对象。==》 以上都

2022-02-15 16:28:42 1683

原创 system verilog学习记录3--线程及通信和覆盖率

system verilog学习记录3–线程及其通信和覆盖率一、线程及其通信fork…joinfork join: 等待所有线程都执行完成才会进行下一步;fork join_any: 只要有一个结束了,就会跳出进行下一步,其他的还会继续进行;fork join_none: 相当于点个火,不等待任何一个,点个火后直接进行下一步,里边的几个线程会继续同步运行。注意:还没执行fork中的任何代码呢,就直接退出了。先执行join_none后面的这一行代码,再执行fork里边的代码;1) 如果结束

2022-02-10 22:30:56 778

原创 sv lab4学习记录

sv lab4学习记录框架图这个mcdf interfance 为什么存在?因为对于chnl_intf, reg_intf, fmt_intf, arb_intf, 他们都是直接和mcdf_intf连接的。有时候我想监测内部的信号,我会把内部的信号直接先交给mcdf_intf。而mcdf_intf又可以被验证环境中的任何一个组件拿到。比方说checker可以通过mcdf_intf监测到chal, reg, formatter,的信号,间接的可以监测到一些关键的信号。这样我们以前的那些黑盒的

2022-02-10 00:11:05 1167 2

原创 sv lab3学习记录

sv la3学习记录#==================================================================================lab_tb11)generator里创建了两个maibox用来握手。① 在generator类中,先将randomize产生的随机数放到 req_mb的mailbox中(发送给initial),然后一直在这里等rsp_mb的get② 在initial类中,复位后就一直get等待req_mb的数,只要有数来

2022-01-30 22:26:48 768 1

原创 sv lab2学习记录

sv la2学习记录包的数据解析假如设计有bug,数据经过arbit到format出来,数据可能会缺失或者被打乱了。此时如果前面输入数据的内容没有将其变得有规律,就会导致输出的数据不知道从哪里来的,为什么数据不完整,难以回溯到根上,也就很难去调试。fork join_none 三个同时执行,点火了之后立即跳出去执行下面的。不等他们中的任意一个结束。但是要注意fork join_none点火之后要注意在某个点要关掉它。 disable ****注意这个很容易错。c

2022-01-30 17:18:03 451

原创 system verilog学习记录2--类和随机约束

system verilog学习记录2–类和随机约束类类的特点:封装,继承,多态。对象创建的初始化顺序,(有super.new())1). 子类实例在初始化的时候要先调用父类的new();2). 父类new()完成后,子类成员变量初始化;3). 最后才会执行子类的new()函数中的剩余代码。父类和子类如果出现两个同名的成员方法?默认没有任何关系但是如果子类中没有写该同名方法,子类默认直接继承父类的方法。但是子类中一旦写了和父类同名的方法,则需要用super来继承该方法,否则就是两

2022-01-30 16:51:04 1505

原创 system verilog学习记录1-- 基础

system verilog学习记录1变量类型四值逻辑是硬件的概念 (v中的reg和wire --> sv中的logic)二值逻辑是软件的概念 (bit)初学者不用理会这么多数据类型,sv中统一只用bit/logic + 位宽 + 寄存器名称即可。注意: 应该尽量避免对两种不同类型的变量进行操作。数组1)定宽数组A. 多维数组// 16个 int (32位) 的数int lo_hi[16]; // 等效于int lo_hi[0:15];int lo_hi[0:1

2022-01-29 00:12:38 878

原创 vim中末行去掉^M

vim中末行去掉^M在Ubuntu系统中打开文件,发现文件中每一个末行都有^M,我们要做的是知道这一个无关的字符是什么作用,然后删除掉这一个无关的字符。工具/原料 ubuntu操作系统Vim编辑器方法/步骤在VM编辑器打开相应的文件,发现文件中每一行都有一个^M字符M字符的来历和作用:在DOS/Windows里,文本文件的换行符为\r\n,而在*nix系统里则为\n,所以DOS/Windows里编辑过的文本文件到了*nix里,每一行都多了个M。所以^M只是一个换行符号,没有实际的用处,我们可以

2022-01-18 09:14:18 1472

原创 modelsim自动化逆向拼接

modelsim(verilog)自动化逆向拼接目的:24位转384位的fifo, 在fifo24–>384时候,需要将fifo_dout倒序拼接。即写成{fifo_dout[23:0],fifo_dout[242-1:24],fifo_dout[243-1:24*2],…} 依次序写16个24bit数,即384位。不想手动复制,只能借助modelsim自动化实现。//vsim -novopt work.test_tb //run -all// 目的:在fifo24-->384时候,

2022-01-14 09:59:33 264

原创 modelsim编译vivado仿真库报错解析

modelsim编译vivado仿真库报错解析modelsim编译vivado一直报错,搞了两天,换了无数modelsim和vivado版本,血的教训,特此记录!编译仿真库注意点:检查环境变量,一定不要不要不要千万不要有 有以下变量,否则编译库时会忽略你选择编译的modelsim版本,默认选这里设置的版本去编译。实测不设置该环境变量可以正常仿真Modelsim和vivado有版本匹...

2021-08-12 08:43:27 5702 5

Quartus-13.0.0.156_Device,包含cyclonev-13.0.0.156

官网已经绝版。 Quartus-13.0.0.156_Device,包含cyclonev-13.0.0.156

2022-02-09

testbench自动对比代码(以SPI_master为例).rar

借鉴UVM的测试方法,在tb中将初始数据和结果数据写入txt文件,处理完成后,读出来,进行逐一对比,并打印结果。无需肉眼一一对比,将结果用计算机自动对比,减少人工工作量,提高了准确率。

2021-10-26

DP1.4标准协议_VESAProposedDisplayPort(DP)Standard.7z

VESA官网的DP1.4标准协议

2021-10-14

路科ic自学文档笔记20210810.7z

路科ic自学文档笔记20210810.7z

2021-08-10

ue10.0 SystemVerilog高亮.7z

ue10.0 SystemVerilog高亮文件,直接复制wordfile.txt

2021-08-03

V2.2_UVM_ABC.7z

V2.2_UVM_ABC.7z

2021-08-03

V2.1_SV_class_20210802_last.zip

V2.1_SV_class_20210802_last.zip

2021-08-02

EIA-CEA-861-D - visa.7z

EIA-CEA-861-D - VISA标准协议

2021-07-30

V2.1_SV_class_20210726_CM.rar

V2.1_SV_class_20210726_CM.rar

2021-07-26

IC验证学习.docx

IC验证学习.docx

2021-07-23

空空如也

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

TA关注的人

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