- 博客(42)
- 资源 (6)
- 收藏
- 关注
原创 clock的时钟频率check代码
在芯片验证过程中,手动检查多个时钟频率既耗时又容易出错。为了提高效率和准确性,作者设计了一个宏define check_boot_start_crg,通过输入参考频率和时钟路径参数,自动验证时钟频率。该宏通过记录时钟边沿的时间差,计算实际频率,并与参考频率进行比较,若超出允许范围则报错,否则输出通过信息。此方法显著简化了时钟频率验证的流程,提升了验证的自动化水平。
2025-05-21 14:09:06
371
原创 时钟产生的公共模块示例
文章介绍了一个用于生成任意频率时钟的公共模块clk_gen,旨在简化芯片验证过程中频繁编写时钟生成代码的繁琐步骤。该模块通过输入参考频率ref_freq和抖动jit,输出可调节频率的时钟信号clk_out。模块内部将整数频率转换为实数类型,计算周期并引入随机抖动,利用forever循环和随机延迟生成时钟信号。这种方法不仅提高了代码的复用性,还增加了时钟信号的灵活性,适用于复杂的验证场景。
2025-05-16 10:31:42
306
原创 PCIE 链路训练目标
->TX向RX发送该数据信号--》RX的PHY通过CDR电路将发送端时钟从接收数据恢复;--》恢复出的时钟对接收数据信号进行采样--》CDR正确恢复出时钟,即为位锁定;即正常设备下:device A lane0/1/2/3 和device B lane0/1/2/3连接;允许device A lane0/1/2/3来连接device 3/2/1/0;即PCIE x16允许设备连接x8/x4的设备;位锁定只能正确接收识别数据流中的0/1,不确定发送内容;因此需要确认连接链路宽度;
2025-05-09 10:18:11
237
原创 PCIE的LTSSM状态机跳转详解
跳转条件:双方成功交换TS1和TS2,则此时已经实现了位锁定和符号锁定,才能检测出特定序列,协商出支 持最高速率(Gen x);跳转条件:EQ参数收敛,即信号眼图质量满足要求;作用:读取当前的LTSSM状态(比如0x3表示Polling状态);若是发现信号质量眼图不足,进入Recoverty状态进行EQ;:实现位锁定、符号锁定、极性翻转-->协商出GEN几;失败:若EQ无法收敛,则进入Detect状态;5.L0状态-->Recovery状态。4.Recovery-->L0状态;ltssm状态机图如下。
2025-05-09 07:37:45
497
原创 PCIE中断发送与接收
当设备生成MSI中断请求时,向远端设备产生一个IMWr transaction ,此transaction 的地址(IMWr)为MSI寄存器(MSI_ADDR_LOW_REG, MSI_ADDR_HIGH_REG)中的地址,数据(IMWr数据)为将MSI数据寄存器(MSI_DATA_REG)中的低5位修改为中断向量号,其余位不变。MSI中断支持32个中断向量,产生PCIE_MSI_Int0-PCIE_MSI_Int7八个中断事件,分别送给CorePac0-CorePac7。
2023-03-28 09:55:28
2180
原创 PCIE的loopback功能配置流程
b. RC模式下,链路进入L0状态后,控制器自动发送Set_Slot_Power_Limit消息,设备状态寄存器的UR detected 比特设置为1;该功能仅支持RC模式。b. 配置寄存器PIPE_LOOPBACK_CONTROL_OFF中的PIPE LoopbackEnable比特;a. 清除寄存器PIPE_LOOPBACK_CONTROL_OFF中的PIPE LoopbackEnable比特;c. 配置寄存器PORT_LINK_CTRL_REG中的Loopback Enable比特。
2023-03-15 09:30:33
3060
原创 PCIE启动建链流程
2. 配置device_type确定是EndPoint模式还是RootComplex模式。1. 使能crosslink(CX_CROSSLINK_ENABLE=1);
2023-03-15 09:07:32
1818
原创 IC验证仿真时Dump波形时fsdbDumpvars的参数介绍
$fsdbDumpvars 有三个参数:depth,scope和parameter。
2022-08-19 09:27:27
7495
原创 关于Verilog/SystemVerilog中force的使用
force和release只能用于begin...end中,如果在tb中使用,需要放在initial块中。
2022-08-19 09:10:12
14295
3
原创 Verilog语法中pullup.pulldown使用举例和分析
在模拟IP仿真时,通常会使用到上拉、下拉电阻设置(此时还不是网表或hi spice仿真),其上拉电阻对应信号可赋值为1,下拉电阻赋值为0。因此会使用到pullup或pulldown。
2022-07-25 09:56:25
2876
原创 SystemVerilog 在interface中使用modport时的例化问题
在中有一个非常实用的功能,那就是interface。在最近写一个小练习的时候,不仅使用到了interface,还在interface中使用了modport,但是在一开始例化的时候出了点问题,所以在这里说一下需要注意的地方。...
2022-07-15 10:49:42
922
转载 SystemVerilog covergroup语法小结
Covergroup是承载coverage的容器。 coverage只能收集integral Data types,对于real等类型的数据是不能收集的。
2022-05-30 10:01:03
3919
转载 IC验证面试常问题88道
定宽数组、动态数组、关联数组、队列各自特点和使用多线程fork join/fork join_any/fork join_none的用法差异Task和function的区别简述UVM的工厂机制SV中的interface的clock blocking的功能UVM从哪里启动,接口怎么传递到环境中
2022-05-30 09:41:37
7335
2
原创 Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)
Python的作用域和Javascript几乎一致,这里就不做解释,本文重点介绍一下三个概念:属性取值和赋值过程属性描述符装饰器
2022-05-11 16:00:46
302
原创 Python:Python学习总结
Python应该是写起来最舒服的动态语言了,一下是一些读书笔记,最后会介绍一下高级的用法:Mixin、Open Class、Meta Programming和AOP。
2022-05-11 14:47:59
524
原创 初学者简易.vimrc编写指南
VIM 中可供用户定制的选项非常非常多,作为初学者,我们没有必要了解这么多东西。下面,滇狐简单列出了一些最常用的配置项,大家可以根据自己的需要将这些内容添加到自己的 .vimrc 中。
2022-04-20 16:29:58
919
转载 Linux查询端口被占用命令
常用命令:netstat -ntlp //查看当前所有tcp端口netstat -ntulp | grep 80 //查看所有80端口使用情况netstat -ntulp | grep 3306 //查看所有3306端口使用情况
2022-04-20 16:22:31
2782
原创 SVN安装以及使用教程
假如项目已经在服务器的仓库里,那么现在你要做的就是把它检出到本地。 首先创建一个空文件夹。在空文件夹内右键,选择SVN检出。
2022-04-20 16:17:06
3798
1
原创 SPMI协议的理解
SPMI协议理解SPMI总线分高速和低速,高速是0-26MHz,低速是0-15MHz;总线上最多4个主设备,16个从设备;当前控制总线的主设备叫BOM,从设备分2种:一种不能申请占总线,另一种能申请占总线,这种情况下CLK的时钟是BOM发的,从设备只控制数据总线。 SPMI主设备的2个信号线是CMOS结构,从设备也是,但从设备内可以集成500k-2M的下拉电阻,也可以放到外面的连接线上;但若从设备多了,总的下拉电阻必须大于125K. 每次数据通信前,都有一个总线仲裁的过程,各设备在仲裁阶段申请总线,
2022-04-11 10:43:54
12248
转载 调试备忘录-SWD协议解析
SWD的全称应该是The Serial Wire Debug Port(SW-DP),也就是串行调试端口,是ARM目前支持的两种调试端口之一,另一个调试端口叫做JTAG Debug Port,也就是我们常用的J-link上面的调试端口(JTAG模式下)。基于ARM CoreSight调试构架,SWD可以通过传输数据包来读写芯片的寄存器。
2022-04-11 10:42:31
12322
12
转载 TortoiseGit 使用教程
作为一个软件开发人员,不可能不知道Git。Git作为一个复杂的版本控制系统,命令之多,即使经常使用,一些命令也记不住,一般只记住几个常用的命令,不是所有使用Git命令行都是高效的。本教程不讲Git命令,而是先让你用上git,再去学习git。本教程应该称作TortoiseGit入门指南。因为下面要借助一个图形化的软件,TortoiseGit来操作git。用GUI(图形界面)再谈CLI(命令行),我相信这会更容易让人接受。
2022-04-08 11:35:29
14488
2
原创 常见Python面试题——代码系列
1、如何反向迭代一个序列?#如果是一个list,最快的方法使用reversetempList = [1,2,3,4,5,6]tempList.reverse()for x in tempList: print x#如果不是list,需要手动重新排列tempList = (1,2,3,4,5)for i in range(len(tempList)-1, -1, -1)...
2020-03-17 21:28:22
524
原创 什么是良好的Verilog代码风格
什么是良好的Verilog代码风格前言前段时间在公司负责制定代码规范,费了九牛二虎之力,终于整理出来一份文档。由于保密规定的缘故,无法与大家直接分享这份文档,但是文档中的大部分规范都是我自己长期总结出来的,在这里也与大家分享一下。代码示范为求直观,首先贴上一份示范代码,然后我再进行逐条详细解释。以下代码是我之前做的一个同步FIFO模块,代码如下:show source由于博客...
2020-03-14 10:03:32
462
原创 shell编程之大全
bash编程之变量bash变量类别本地变量:只对当前shell进程有效的变量,对其它shell进程无效,包当前shell进程的子进程VAR_NAME=VALUE变量赋值:向变量的存储空间保存数据变量引用:${VAR_NAME}"":弱引用,里面的变量会被替换'':强引用,里面的所有字符都是字面量,直接输出环境变量:对当前shell进程及其子shell有...
2020-03-02 21:21:52
384
原创 IC设计笔试面试经典100题(大部分有答案)
1:什么是同步逻辑和异步逻辑?同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入x有无变化,状态表中的每个状态都是稳定的。异步时序逻辑电路的特点:电路中除可以使用带时钟的触发...
2020-02-21 16:21:39
6500
2
原创 python的闭包函数
下面的代码是python的闭包def line(a,b): def sub_line(x): return a*x+b return sub_linef = line(3,2) #此时f=3x+2print (f(3)) #f(3) = 11运行结果C:\python3.8.1\python.exe D:/python/day3/demo.py...
2020-02-16 21:44:46
221
原创 用python解决数学问题
如题:python代码如下:for a in range(1,5): for b in range(0,9): for c in range(0,9): abc = a*100 + b*10 + c t1 = abc % 8 == 0 #甲说abc可以被2整除3次 t2 = abc...
2020-02-13 11:40:57
2613
2
原创 python实现99乘法表
for i in range(1,10): for j in range(1,i+1): print(i,'*',j,'=',i*j,end='\t') print()最后的print()的作用是换行。第一个print中的end=“\t”这里是不换行的,导致里面循环结束不会换行,那么第二个print是让第一个循环结束一下就换行一次。如果出现多个print的...
2020-02-13 11:33:24
557
原创 Vim命令及含义大全
一、Unix编辑器概述编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件。Unix及其相似的ix操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列的ex编辑器,包括 ex, edit,ed 和vi.其中ex,edit,ed都是行编辑器,现在已很少有人使用,Unix提供他们的原因是考虑到满足各种用户特别是某些终端用户的需要。值得庆幸的是,Unix提供了全...
2020-02-11 17:18:50
2631
1
原创 Mercurial中的hg 命令及注释大全
用了3年的hg,突然要切换到git,最近两天被git折磨的吐血,可是擦擦干净还得干活不是~趁着对hg的了解还新鲜,总结下来,过几天git熟了再来个对比说明哈~~hg和svn最大的区别就是remote repo和working copy之间多了个local repo,还有就是强大的Queue功能。经验之谈就是,一定要发挥queue的强大优势,否则hg就白用了!这里列了一下常用的hg命令,最后还...
2018-08-21 14:11:39
5318
vim-mucomplete
2025-05-15
IHI0022E_amba_axi_and_ace_protocol_spec.pdf
2020-02-10
Intel@Low_Pin_Count.pdf
2020-02-11
ADS2015破解文件(64位)
2016-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人