- 博客(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
原创 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
原创 从头到尾创建自己的仿真编译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
原创 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关注的人