自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (9)
  • 收藏
  • 关注

原创 VCS使用记录-选项-错误分析

vcs

2024-02-23 13:59:11 681

原创 vcs并行编译-j编译选项

2023-09-04 20:37:30 284

原创 验证环境搭建思想

如果对多个master或者端口建环境,可以把某一个master拿出来做一遍,其他的复制粘贴,改一改,思路方法一样。可以把port / export/类对象作为输入的ref参数,方便扩展方法的功能,也减少参数个数,便于复用。把环境的功能分成多步,比如创建队列,接受trans,保存到队列,预处理trans,比较trans。把待处理的数据先暂存到队列中,用的时候再取。上一步封装成方法,也有利于复用。灵活使用控制开关,比如各种使能。不要写成一坨,不变scale。也可以对暂存的数据进行预处理。每一步都封装成方法。

2023-09-04 20:35:00 134

原创 systemverilog $cast

cast既可以将子类对象转给父类句柄,也可以将父类对象转给子类句柄。

2023-03-17 14:13:32 248 1

原创 突发验证感想(二)

我们EDA验证,仿真条件有限,不可能跑所有、完整的场景,但我们作为验证owner必须要知道到底有哪些应用场景,这个场景不只是soc内部几个模块的互动,而是实际的产品功能。比如说,对于soc的功耗模式,可能有正常模式、浅睡模式、深度睡眠模式,每种模式中soc上不同的模块会on或者off,但具体应用中,什么时候用浅睡,什么时候用深睡呢,这个问题,对于做功耗验证的人来说,是应该要知道的。知道了每个系统的关键验证点,就把握住的soc验证的关键点,或者说soc的命脉,守护住了这些命脉,soc项目就不会流产。

2023-03-09 23:22:04 163

原创 【转载】System Verilog 上下文context的含义以及设置导入函数的作用域

导入函数的上下文是该函数定义所在的位置,比如$unit 、模块、program或者package作用域(scope),这一点跟普通的sv方法是一样的。当top模块调用c_display()方法时,该方法将作用域设置回block,这样它调用的便是block模块中的sv_display(),而非top模块中的同名方法。如同SV代码可以在局部作用域调用方法,导入的C方法也可以在它默认的上下文之外调用方法。返回的作用域被打印了两次,一次是C代码首次被调用时的作用域,另一次是先前保存过的作用域。

2023-03-07 10:37:35 579

原创 突发验证感想(一)

一个好的soc验证工程师,是对PRD和软件需求中的应用场景进行拆解,以场景验证为目标构造测试用例,覆盖关键控制和数据通路。在此基础上对性能进行验证。一个好的soc团队,要有强大的验证基础设施,验证平台层次分明,结构边界清晰,仿真流程成熟可靠,以传统UVM技术为基础,并结合formal,PSS,测试用例自动生成等先进的验证方法。一个好的soc项目,要有前瞻性的市场定位,明确的架构演进方向,切实可行的schedule。

2023-03-02 23:04:23 268

原创 AMBA-AXI(三)exclusive传输

Master 对同一地址先读后写,在读和写之间,其他master不能对这个地址进行写操作

2023-03-01 22:39:45 1354 1

原创 AMBA-AXI(二)AXI的序,保序与乱序

Read ordering:相同的master发出相同ARID的burst到不同的slave,这些burst数据返回的顺序必须跟发出的地址顺序一样;RID要和ARID一样。 Write ordering:AXI4.0中写数据必须跟地址的顺序是一样的,因为缺少WID来跟AWID对应。

2023-03-01 21:32:27 1534

原创 AMBA-AXI(一)burst 传输-INCR/WRAP/Fixed

AXI burst 传输介绍, incr, wrap,fixed

2023-02-26 11:45:59 4143 1

原创 PCIE 学习笔记(入门简介)

pcie基础介绍

2023-02-09 09:10:27 7749 2

原创 verdi -ssf verilog.vf打开多个波形,有的信号显示不完整

在使用verdi -ssf verilog.vf打开波形的时候,有的信号的波形会显示不完整

2022-10-10 18:25:20 2316 1

原创 【计算机组成与设计】-第五章 memory hierarchy(三)

计算机组成与设计第五章 memory hierarchy

2022-09-01 12:00:20 381

原创 【计算机组成与设计】-第五章 memory hierarchy(二)

计算机体系结构中cache基础知识

2022-09-01 11:19:09 507

原创 计算机组成与设计-第五章 memory hierarchy(一)

计算机组成与设计第五章 memory介绍

2022-09-01 10:34:52 524

原创 在verdi波形中显示状态机名字

在RTL中,状态机编码一般是用parameter常量,变量名是大写,变量的值一般是onehot或者格雷码,为了波形中清楚地识别每个状态,最好在波形中显示状态机名字。

2022-08-27 12:02:19 7412 4

原创 Cache coherency

​n ashared memorymultiprocessor system with a separate cache memory for each processor, it is possible to have many copies of shared data: one copy in the main memory and one in the local cache of each processor that requested it. When one of the copies

2022-08-21 11:23:48 390 1

原创 verdi -play选项加载settings,执行一些自定义的初始化Verdi命令

打开Verdi GUI之后,我们可以对verdi进行一些自己喜欢的设置,字体颜色什么的,但是在其他目录下打开其他波形,这些设置就没有了。所以希望能将这些设置保存下来,在下次打开Verdi的时候可以直接用,这就可以用本文的方法—— verdi中的-play选项。...

2022-08-08 08:26:57 1591

原创 在verilog或者systemverilog中通过systemverilog获得环境变量setenv,getenv

在verilog或者systemverilog中通过systemverilog获得环境变量setenv,getenv

2022-08-08 08:21:33 1801

原创 三年上海租房体验

上海租房经历记录

2022-06-12 11:19:15 455 4

原创 systemverilog线程及线程间的通信(二)

1. 旗语 semaphore如果把进程执行看成“开车”这个行为,开车需要钥匙,旗语就类似于“钥匙”。一个线程执行要先申请钥匙(旗语),如果只有一个钥匙(旗语)并且被其他线程申请了,那么这个线程阻塞。当那个线程执行完了,返回钥匙(旗语),被阻塞的线程可以再申请钥匙(旗语)。旗语可以用在多个进程共享资源的时候。 new方法创建一个或多个旗语 get获取一个或多个旗语,获取失败阻塞 put返回一个或多个旗语 try_get()试图获取旗语,但不阻塞。返回1表示...

2022-05-28 20:02:12 666

原创 systemverilog线程及线程间的通信(一)

实际硬件中,计算是并发进行的,在Verilog中通过initial、always、连续赋值来模拟,在测试平台中为了模拟、检验Verilog中的这些语句块,tb使用许多并发的线程。1. 线程的定义和使用1.1 定义线程initial 、always、assign都是进程,初次之外还有: fork join 其内的语句并发,fork-join块执行完才执行后面的语句。 fork join_none 其内 的语句并发,并且不会阻塞块之后的语句,块内语句与块之后的语句是并发关系.

2022-05-28 19:55:52 841

原创 systemverilog中的几个系统函数收藏

1 随机化相关函数1) std::randomize() with对于随机对象,可以采用object.randomize()的方式进行随机化,但有的时候可以通过更简单的方式,不必定义类和例化对象,甚至变量都不是随机类型,也可以对其进行随机化,这就是系统随机化 函数std::randomize。initial begin //SV int value; std::randomize(value) with {value>=0 && value&l...

2022-05-28 19:00:51 3264

原创 SystemVerilog interface详细介绍,附带参考代码,收藏加关注哦

本文将介绍Systemverilog 中interface的主要内容,如果有问题欢迎指出,喜欢的话,点赞、收藏、关注哦。1. Interface概念System Verilog中引入了接口定义,接口与module 等价的定义,是要在其他的接口、module中直接定义,不能写在块语句中,跟class是不同的。接口是将一组线捆绑起来,可以将接口传递给module。2. 接口的优点一)通过接口在module之间或内部进行信号,模块的输入列表就是一个接口,这样简单,避免手动连线的错误..

2022-05-28 18:18:41 4958

原创 VCS仿真选项介绍

VCS仿真流程VCS将.v文件(verilog模型)编译成可执行二进制文件(simv),然后运行可执行文件进行仿真。常用options -l filename 将需要编译的文件的地址写在filename文件下,每行一个文件 -R 编译之后直接运行simv进行仿真 -sverilog 识别system Verilog语法 -full64 在64bit环境下编译和仿真 +v2k IEEE 1364 -2001年的Verilog语法 +noti

2022-03-16 21:20:27 3463

转载 eMMC的读写速度与容量有关系吗?

最近宏旺半导体ICMAX在网上看到有网友说eMMC的读写速度与容量无关,与eMMC的接口形式有关、与版本高低有关。还贴出了例子,比如eMMC5.1与早期有4.3、4.41、4.5等,他们的区别就是接口的读写速度,低版本的eMMC是不支持红框中的HS200和HS400模式的,读写速度自然不如的5.1的快。详情请看下图↓。鉴于宏旺半导体在存储行业有十五年的时间,特别是在嵌入式存储这块有丰富专业的行业经验,在此对网络上的一些言论,从专业角度来看有不恰当之处作一下探讨,仅供参考。关于上图eMMC协议给出的是

2021-11-20 16:41:36 2677

原创 C语言-int变量初始化问题

C中的局部变量,如果没有初始化,C语言并没有规定初始值是多少,而是由编译器来决定的,可能是0,也可能是一个很大的值,所以最好要在定义局部变量的时候初始化一下。在EDA仿真中,有时候会遇到使用了没有初始话的变量,导致noc上报 slave error。...

2021-09-09 11:11:40 2683

转载 关于git提示“warning: LF will be replaced by CRLF”终极解答

一、发现问题windows平台下使用git add,git deploy 文件时经常出现“warning: LF will be replaced by CRLF” 的提示。网上很多解决办法提到:设置core.autocrlf=false,windows也用LF换行。除了记事本,其他编辑器都可以正常编辑。而没有给出具体原因和分析,现在加以补充。二、分析问题格式化与多余的空白字符,特别是在跨平台情况下,有时候是一个令人发指的问题。由于编辑器的不同或者文件行尾的换行符在 Windows 下

2021-06-19 22:01:10 1035

原创 systemverilog中$monitor使用

在SV中$monitor的使用格式与$display相同,语义上有所不同,$display是将双引号中的参数列表内容打印出来,而$monitor是在参数列表发生改变的时候,将参数列表内容打印出来。如果同时使用两个$monitor函数,那么会发生冲突module Mon; bit[7:0] addr; bit[7:0] data; initial begin for(int i=0;i<5;i++) begin #...

2021-04-22 21:00:54 7214 7

原创 子module可以直接用父module中实例化的接口interface

在module中定义一个interface,子module中可以直接用这个interface,而不需要传递什么的。interface bfm; logic[7:0] data; logic[7:0] addr;endinterface;module parent; bfm bif(); initial begin bif.data=0; bif.addr=0; $display("@ %0t : [parent] b

2021-04-22 20:37:30 517

原创 Verdi interactive-simulation和post-simulation

2021-02-22 19:15:02 482

原创 在linux中用 |xargs 给shell命令传参

find ./ -name "abc*"|xargs rm -f // |xargs 将find命令找到的文件用在rm命令上,也就是移除 find匹配到的文件。

2021-01-24 19:14:23 300

原创 grep的多个pattern使用

命令行参数: grep-i pattern files :不区分大小写地搜索。默认情况区分大小写, grep-l pattern files :只列出匹配的文件名, grep-L pattern files :列出不匹配的文件名, grep-w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), grep-C number pattern files :匹配的上下文分别...

2021-01-24 19:12:51 1363

原创 DMA 中断

multiblock用contiguous和auto-loading时,如果使能了中断,那么每次blocktransfer完成后,会暂停。

2021-01-16 22:15:51 5254

原创 DMA 基于shadow register方式的mutilblock transfer

DMA的multiblock transfer有四种方式: Contiguous Address,Auto Reloading,Shadow Register,Linked List。下面介绍shadow register方式:DMA将写入到CHx_SAR, CHx_DAR, CHx_BLOCK_TS, and CHx_CTL 的数据保存到对应的shadow register 中,在下一次block transfer开始之前将shadow register中的数据复制到对应的CHx...

2021-01-16 22:00:21 1286

原创 DMA handshaking

DMA硬件握手主要有dma_req/dma_single/dma_last/dma_acq等几个信号,这些信号的含义从名字可以看出来是什么意思,但它们的含义在不同的流控模式中有所区别,具体如下面图所示:...

2021-01-16 21:56:43 2025

原创 System design process

Systemdesign process建立可运行的系统模型。1. Create system specification在spec中表明设计的目标、性能、成本和开发时间,由工程师(设计验证后端等)和市场人员一起确定。2. Develop a behavioral model为整个系统开发high-level 的行为级模型,用来简单测试设计中的算法,以及它们是否能够满足我们的性能、功能需求。这个模型可以当作设计的参考模型。3. Refine and test behavioral .

2020-12-12 23:22:03 220

转载 linux module工具

Linux下Moudle工具的介绍与使用一、前言在Linux中,当同一款编辑器、运行库、软件存在多个版本且多个版本都需要在不同的场景或人员使用时,配置这些内容的环境变量是一个非常繁琐的过程,而Moudle工具则提供了一个简单快速的方法,Moudle全称为module-environment,是一个专门管理环境变量的工具。二、官网Moudle官网:https://modules.readthedocs.io/en/latest/module.html三、安装Moudle工具是基于TCL

2020-11-19 17:49:24 924

原创 VCS——radiant technology

Radiant TechnologyVCS MX Radiant Technology applies performance optimizations to the Verilog portion of your design while VCS MX compiles your Verilog source code. These Radiant optimizations improve the simulation performance of all types of designs...

2020-11-01 20:08:18 468 1

原创 生成fsdb波形

`timescale 1ns\1nsmodule test;initialbegin$fsdbDumpfile("test.fsdb");$fsdbDumpvars(0,test);end...endmodulevcs中加-fsdb选项

2020-09-01 15:36:51 828

SDIO4.0协议英文版本

SDIO4.0协议的英文原版,方便大家学习SDIO 协议内容

2022-04-12

SD4.0协议中文翻译版本

SD4.0协议的1-6章的中文翻译版本,方便大家参考学习SD协议。 目前一些SD host只支持4.0的版本 ,特别是车载芯片。

2022-04-12

Hardware Architecture Design Methods and Techniques for Digital Circuits

The Art of Hardware Architecture Design Methods and Techniques for Digital Circuits 讲了IC设计中的时钟、复位、异步时钟处理、时钟划分、低功耗、降低耦合等等 一共二百多页

2019-06-02

Cummings_fifo.zip

2001-SD_Synthesis and Scripting Techniques for Designing MultiAsynchronous Clock Design 2002-SD_Simulation and Synthesis Techniques for Asynchronous FIFO Design with Asynchronous Pointer Comparisons 2002-SD_Simulation and Synthesis Techniques for Asynchronous FIFO Design

2019-06-02

2017-IEEE Standard for SystemVerilog

IEEE Standard for SystemVerilog—Unified Hardware Design,Specification, and Verification Language IEEE Std 1800™-2017

2019-06-02

零死角玩转STM32

学习STM32嵌入式开发很好的文档,有各种外设的介绍,文中有代码

2018-08-27

Verilog IEEE1364

IEEE 的1364Verilog标准,2001年出,平时可以作为手册来查找需要的语法、函数

2018-08-27

博士论文 多通道时间交织模数转换器的校正与集成电路实现方法研究pdf

博士论文 多通道时间交织模数转换器的校正与集成电路实现方法研究pdf

2017-11-14

空空如也

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

TA关注的人

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