自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【握手,ACK/NAK,反压】数字电路设计的常见概念解释

总之,握手机制在电路设计中扮演着关键角色,特别是在需要可靠通信的系统中。总之,ACK和NAK主要是由接收数据的一方(通常是RX)发送的,用来告知发送方(TX)数据传输的状态。反压是一种机制,允许接收方(或下游组件)向发送方(或上游组件)发出信号,表示它无法处理更多数据,需要发送方减缓或暂停数据传输。ACK和NAK通常是由接收方(RX)发送给发送方(TX)的。握手是一种控制机制,确保发送方和接收方在数据传输过程中保持同步,并确认数据的成功传输。反压通常是动态的、自适应的机制,而节流往往是静态的、预设的限制。

2024-08-16 12:28:42 880

原创 PCI Express 基础规范修订版6.0【编辑中】

PCIe 6.0协议的学习笔记,重点摘要==,先从TLP写起,慢慢写到PHY吧QWQ

2022-08-15 14:41:28 1997 1

原创 UVM lab02解析

uv m lab 02 03

2022-07-27 23:07:53 313

原创 SGE上的qsub以及作业的状态查看

定义:qsub命令用来像SGE(Sun Grid Engine)提供批量处理作业,SGE提供单节点或者是多节点作业。SGE:Sun电脑所研发的自由软件和开档源代码设计计算机集群软件,BLC通过SGE作业调度系统投放任务。qsub: 提交批处理任务qstat: 检查SGE作业和队列的状态qmod: 修改作业和队列的状态qmod -s: 挂起任务qmod -us (job-id): 解挂任务qdel job_id: 从队列中删除任务qalter: 修改正在排队的作业的属性任务运行状态:r

2022-07-20 17:19:08 4308

原创 如何给APB写HVP

Current Status:TB中已经有了APB VIP, 此时需要添加APB 的 HVP1. 在TB中enable APB coverage在testcase那一层目录下,文件:svt_apb_user_defines.svi, define the macro to enable the default coverage`define SVT_AMBA_DEFAULT_COV_ENABLE2. 在verdi中load hvp并查看跑一个仿真,在verdi -cov里面看到了很多svt

2022-07-20 17:18:14 587

原创 Linux:用echo给当前目录下所有的文件的结尾加一句话

在Linux里给所有文件结尾加一句话/批量处理文件

2022-07-20 17:08:53 362

原创 qstat管理job命令

qstat cmd

2022-07-20 15:35:58 735

原创 作业代码uvm01

wu

2022-07-09 15:33:30 170

原创 UVM-只有driver的验证平台 代码和CMD

dut:driver:toptb:run cmd:

2022-06-25 17:50:19 196

原创 UVM-1.2中PH_TIMEOUT错误的意义以及修改

PH_TIMEOUT的源码,原因,解决方式

2022-06-06 10:49:38 2816

原创 Systemverilog线程之间的通信:事件【event】,旗语以及可执行代码

SV中的事件:event

2022-06-01 14:50:05 1550

翻译 浅述AI对芯片设计验证的影响

芯片设计验证工程师面临的挑战很多,但机会也很多,特别是在人工智能应用方面。

2022-05-24 12:27:40 553

原创 AI芯片的一些思考:什么是AI芯片;AI芯片公司的现状和发展;有没有必要转行

AI芯片工程师到底有多香?

2022-05-18 15:47:27 452

原创 从头到尾创建自己的仿真编译flow

BASE Testbench长这样://///////////////////////////////////////////// This is a wrapper tb for a dff design// VERSION: v0.1// Wrapper TB// Below are the trial wrapper testbench, able to dump waveforms/////////////////////////////////////////////`defi

2022-05-18 11:29:13 168

原创 一些简单实用的python脚本案例合集

一些使用的python脚本小练习。入门用

2022-05-06 17:49:19 3202

原创 SV里的constraint

如果是array变量,如何用佛reach给加constraint: constraint clock_period_c { foreach (clock_period_ps[i]) clock_period_ps[i] dist { PARAMETER_0:=5, PARAMETER_1:=5, [PARAMETER_0+1 : PARAMETER_1-1]:/90 }; }

2022-04-28 16:56:08 1201

原创 pipe symbol “|“ 的用法含义

| pipe symbol is a bit-wise operator.|a & b means you apply a logical OR to all bits of a (producing a single bit), and then do a logical & with b.|a has no effect when a is a single bit.if not in front of a variable|| is or| is or for single

2022-04-12 10:00:55 307

原创 [VCS] vcs编译选项总结(待续)

VCS编译时可以添加的option:kdb : ? dump verdi?vcs - assert dve :把assertion放入vpd文件中,并支持在dve中的trace-R编译以后立即自动执行,原来的runtime参数也应该带上(即不必再用simv)来执行了-cm line+cond+fsm+tgl+branch+assert :可以收集由以下信息带来的的coverage:- line:Line or statement coverage- cond: condition cove

2022-03-28 11:26:14 1567

原创 在sv testbench中加checker的几种办法

1.最简单的if else if (property) begin $error("Error"); end else begin $display("Pass"); end 同时可以在脚本中加入筛选错误信息的判断语句,如果有error这个关键词,就return出FAIL 信息在terminal。# Search for error messageif grep -q error "$wrapper_tb_s

2022-03-24 15:08:02 584

原创 systemverilog中的队列

bit [31:0] mask[$]; // queue of 32-bit (unbound queue)bit queue_1[$]; // queue of bits (unbound queue)int queue_2[$]; // queue of int byte queue_3[$:255]; // queue of byte (bounded queue with 256 entries)string queue_4[$]; // queu

2022-03-23 11:34:29 1205

原创 打印时%p是什么意思

#include<stdio.h>void main() { int i=100; printf("%d\n",i); int *pointer = &i; printf("%p\n",i); printf("%p",pointer);}Output:100 // 变量i的数值0000000000000064 // 变量i的地址 - > 100的hex形式, why?000000000062FE14 // pointer的地

2022-03-22 11:45:20 972

原创 如果DUT含有parameters

如何instantiated?module test; parameter width = 8; parameter reset_value = 0; reg [width-1 : 0] data_in; reg clk; reg rst_n; reg enable; wire [width-1 : 0] data_out; // Instance of DW03_reg_s_pl DW03_reg_s_pl #(width, reset_value) U

2022-03-19 22:54:39 202

原创 Compute Farm:新的数据中心

越来越大的设计规模不仅需要更好的EDA工具,而且还需要显著提高计算能力。物理合成、放置和布线,特别是设计验证应用需要如此多的计算能力,以至于它们常常成为产品开发的瓶颈。在过去的20年里,工业界已经习惯于依赖个人工作站,工程师们用它们来完成产品设计和开发所需的功能。在这一时期的大部分时间里,工程师都是工匠,在推进他们的工艺过程中使用个人工具。当设计师单独为一个项目工作时,管理者更容易预测每个桌面所需的硬件和软件配置。现在,工程师们从事各种复杂程度不同的任务,并使用一些EDA工具。因此,将特定的硬件配置和特定的

2022-03-16 17:20:38 730

原创 什么是NPU

NPU全称: Neural Processor Unit, 是一个AI加速器,为AI加速的定制电路,并且包含一些必要的控制单元和算法,来执行ML算法。尤其适用于操纵predictive model,例如artificial neural networks(ANNs) of random forests(RFs)..NPU有时有类似的名称,如张量处理单元(TPU)、神经网络处理器(NNP)和智能处理单元(IPU)以及视觉处理单元(VPU)和图形处理单元(GPU)。Motivation执行卷积神经网络等深

2022-03-16 14:36:16 13347

原创 催促RTL改bug的邮件

Hi guys,Here is the state of PROJECT_NAME bugs. Please note that I think all bugs should anyway be fixed ASAP as they are now having a direct impact on verification progress:- time taken debugging duplicate test fails- restriction on stimulus (e.g. we c

2022-03-10 14:02:18 174

原创 farm看job的常用command

ps 看 PID, 那些软件正在运行kill % JOBID 杀掉不用的top 看farm里的同事和自己对server的占用,如果CPU占比高了就注意一下qstat 看jobid, prior, name, user, state,submit的时间,等等

2022-03-09 15:17:48 90

原创 类中的构造函数

class中必须要定义构造函数吗?构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的;构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的;...

2022-03-07 09:49:37 281

原创 [pygame]如何安装pygame

保证Python 已经install打开command promote, 敲入python, 如果报错,那么没有安装Python,此时首先安装Python安装好Python后,在cmp里敲入Python,此时出现>>>;此时提示你已经进入Python execute。退出Python,exit().检查是否安装了pip; 如果没有的话先安装pip安装好后,通过pip安装Pygamepip install pygame最后检查pygame安装好没有,在Python下键入.

2022-03-05 16:09:07 4772

原创 Perl学习日记

一些常规用法:my: 把变量的名字和值都限于某个范围内,也就是说,该变量只能本层模块或者函数,可以看到这个变量,高一层或者低一层的都看不到。use strict;:在第一行加这个,据说是为了防止太过简单的语法错误:比如错误使用了'$recieve_date' 变量,但实际上你在程序中已声明的是 '$receive_date' 变量,这个错误就很难发现。同样,use strict 迫使你把变量的范围缩到最小,使你不必担心同名变量在程序的其它部份发生不良作用。(尽管这是 my 的功能,但是如果你使用 u

2022-03-05 11:52:10 139

原创 [SV] 在几个值里随机取一个值

//在class里定义一下rand int randint;//有范围地randomizevoid'(randomize(randint) with { randint >=5 && randint <=7;});//另一种范围表达randomize (randint) with {randint inside {[0:count-1]};};//挨个randomizerandomize (randint) with {randint inside {1,2,

2022-03-02 16:50:28 1518

原创 [验证]增加寄存器的覆盖率

有的寄存器不会被经常地hit,但是要增加其覆盖率,应该怎么做呢?可以写一个register agitation sequence 在vseq里,然后设定一定的概率去调用。其实我有一个问题在这里:如果test不会主动去hit这个寄存器,为了覆盖率去人为的读写寄存器,是否有悖验证的目标;不是找到为什么不去Hit, 而是为了coverage而去hit?Anyway:agitation sequence可以这样写:先通过regmodel和指定的map去access所有类型的寄存器。注意:如果是error_

2022-03-02 15:05:22 602

原创 [VIM]想要在VIM中自动插入

本来是想实现在vim中自动插入:`uvm_info(get_type_name(), $sformatf(""), UVM_NONE)结果在百度看见如下:笑死了。回去试试如何map这句话到自己的vimrc.以下转载: vim中自动添加注释程式的时候给代码注释有时候蛮烦人的,尤其是用英文写注释的时候,但是养成写注释的习惯,对日后代码的维护还是很有帮助的,一般脚本的开头会注明编写时间,版本,用途等说明。VIM 里面能够使用映射(map)来帮您自动插入这些信息,就像下面这样#************

2022-03-02 14:56:02 159

原创 [VIM]用%帮助begin快速找到对应的end

需要vim自带的但是不会自动安装的插件 - matchit在.vimrc 文件中加入:runtime macros/matchit.vim然后设置你相对应的string:let b:match_words='\<begin\>:\<end\>' 重启vim.使用时,在command模式下,光标停在begin处,press %, 帮你找到对应的end....

2022-03-01 13:44:50 2978 4

原创 [SV]实现有50%的几率来实现某事

if ($urandom_range(0, 1) == 1) begin // whatever you likeend

2022-03-01 13:04:39 174

原创 chmod的各种使用方法

chmod的各种使用方法chmod帮助换算方法常用用法帮助换算网站chmod帮助换算方法你好! chmod是一行linux指令,可以改变当前目录下文件的access.常用用法chmod 755 filename/ ——> 可读可写可执行chmod 700 filename/ ——> 除了user之外不可见帮助换算网站换算网站...

2020-10-12 17:21:42 293

空空如也

空空如也

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

TA关注的人

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