- 博客(61)
- 资源 (2)
- 收藏
- 关注
转载 IC验证——MCDF结构
IC验证——MCDF结构 - 知乎目录MCDF简介 通道模块(_Channel) 寄存器模块(_Registers) 仲裁模块(_Arbiter) 整形器模块(_Formater)MCDF简介这个例子作为IC验证的入门案例,接下来所有的关于语法和试验都会从这个例子展开所有我们一遍看功能文档一边对照Verilog语句实现仔细弄清楚这个设计的各个部分。该设计我们称之为多通道数据整形器(MCDF,multi-channel data formatter),它可以将上行(uplink)
2022-05-14 22:21:04
3366
转载 多通道整形器模块验证 V2.2_UVM寄存器模型2,常规方法,使用场景
多通道整形器模块验证 V2.2_UVM寄存器模型2,常规方法,使用场景 - 知乎一、前门访问 & 后门访问1、前门访问定义 在寄存器模型上做的读写操作,通过总线UVC实现总线上的物理时序访问 物理时序协议,耗时, 真实的物理操作 寄存器前门访问的两种方式write, write_reg 优先使用第一种方法。 /************************一:reg方法***************************/virtual
2022-05-13 12:03:58
1094
转载 UVM——RAL模型运用之三(UVM_REG的访问方法介绍)
UVM——RAL模型运用之三(uvm_reg的访问方法介绍) - 灰信网(软件开发博客聚合)一、寄存器的访问方法汇总 寄存器模型相关类的访问方法: 在此注意区分,uvm_reg所提供的四种方法read()、write()、peek()、poke(),其中read()、write()用于前门访问时,只针对寄存器对象;用于后门访问时,不仅针对寄存器对象,还针对寄存器域。而peek()、poke()只能用于后门访问即针对寄存器对象(Register)、还针对寄存器域(Field)和寄存器块(Bl
2022-05-12 17:47:17
3685
3
原创 PCIe扫盲——物理层逻辑部分基础(一、二、三)
[转载]PCIe扫盲——物理层逻辑部分基础(一、二、三) - 知乎写在前面笔者在工作中需要包个 PCIe wrapper,正在努力飞快学习 PCIe ing.本文系转载,略做格式调整与增加解释(使用斜体表示),转自:http://blog.chinaaet.com/justlxy/p/5100053328转载正文物理层逻辑部分基础(一)首先,回顾一下,之前看了很多遍的PCIe的Layer结构图:PCIe中的物理层主要完成编解码(8b/10b for Gen1&am
2022-05-10 22:11:04
459
转载 UVM——TLM通信
https://blog.youkuaiyun.com/weixin_42482170/article/details/123444062TLM通信TLM(Transaction-Level Modeling)是一种基于事务的通信方式,通常作为模块之间的通讯使用。TLM通信需要两个通信对象:initiator,target。initiator发起通信请求,target作为发起通信的响应方。而按照transaction的流向,可以将对象分为producer和consumer。producer是数据产生的地方
2022-05-09 17:45:40
869
转载 pcie总线频率和带宽_PCIe 体系结构简介
pcie总线频率和带宽_PCIe 体系结构简介_孙雪芸的博客-优快云博客PCIe的历史PCIe是在PCI(Peripheral Component Interconnect)的基础上发展而来的。而PCI则是Intel在1992年提出的一套总线协议,并召集其它的小伙伴组成了名为 PCI-SIG (PCI Special Interest Group)(PCI 特殊兴趣组)的企业联盟。 这个组织就负责PCI和其继承者们(PCI-X和PCIe的标准制定和推广)。PCI的提出
2022-05-09 00:14:15
1193
转载 异步FIFO的实现(从verilog代码到波形)上
一、异步fifo的简单介绍我们知道,fifo最简易的结构可以由一个DPRRAM实现,只不过fifo不需要地址,每个数据的存取位置都是顺序变化的(遵守先进先出的原则),这一点是与正常的存储器不同的地方。在设计之前,首先需要明白以下这些问题:1.何为同步和异步?首先要理清我们所说的“同步”与“异步”的关系。上一篇文章也有提到,“同步”是指时序逻辑的信号变化是基于同一个时钟。若信号是基于不同的时钟变化,比如clk1和clk2(这两个时钟没有确定的相位关系)称为异步。所以,这里所说的异步fifo则.
2022-05-07 17:20:17
351
转载 SVT APB VIP
前言之前自己做了AHB_APB和APB_UART,深刻认识到agents,就是根据AMBA协议写的,称为VIP。这篇文章就简单列出APB_VIP的相关介绍。介绍APB VIP支持验证SoC设计,其中包括实现APB规范的接口,该VIP可在UVM测试平台中的使用,且可提供:协议功能和抽象受约束的随机验证功能覆盖可快速创建复杂的测试模块化测试平台架构,可提供最大的重用性,可扩展性和模块化经过验证的验证方法和方法事务级模型自检测试面向对象接口协议特性APB VIP当前支持以下协议功
2022-05-07 15:02:46
1793
转载 在linux的centos平台下安装vcs教程
最近在centos上安装vcs真的是付出了很多时间,终于找到了适合的教程,自己也安装成功,现在把方法拿出来与大家分享。首先贴出自己参考的教程,讲解的非常全面,基本上没有坑。CentOS7安装VCS、Verdi、SCL_thompsonm的博客-优快云博客https://blog.youkuaiyun.com/weixin_44692278/article/details/120247394这个教程上面的资源经过我的测试也都是可以使用的。一、安装installer打开终端,进入synopsysins
2022-05-06 18:46:36
1673
转载 【FPGA】异步复位,同步释放的理解
如果没有前面两级触发器的处理。异步信号直接驱动系统的触发器。会出现什么情况?回答:很多人只知道触发器D端口来源是异步的话,会因为建立保持时间的时序违反而在触发器Q端口产生亚稳态。 但是不清楚,异步复位信号为什么会导致亚稳态的产生。首先,回顾理论教材里介绍的建立保持时间违反分析,教材一般都是拿没有复位端口的D触发器举例。然后,画出带有异步复位端口的D触发器,下图带异步复位Rd,并带有异步置位端口Sd。由此得知,异步复位信号或者异步置位信号,跟数据端口D信号,没有什么区别,都会存在建立保持时间的
2022-05-06 11:38:43
249
转载 数字IC设计入门必备——VIM自定义模板调用与VCS基本仿真操作示例
一、前言 毕业论文答辩结束,闲下来写篇文章。芯片研发人员都在Linux系统下借助各种EDA工具和代码语言完成工作,因此提高代码开发效率,熟练运用开发工具是十分必要的。本文讲述VIM编辑神器的verilogHDL自定义模板调用以及VCS仿真软件的基本使用方式。二、VIM编辑器自定义模板调用 在之前的博文中谈到过GVIM编辑器中可以通过调用模板来生成重复性代码,但没有介绍自定义模板的方式。关于VIM的安装与配置详细内容,见参考文献1。这里主要用到VIM的用户配置文件:.vimrc(若没有新建该文
2022-05-06 11:37:09
808
原创 elaborate
analyze: 读入RTL代码,分析每个文件的语法是否正确。(这个时候每个module还是独立的,没有instance的关系)elaborate: 用analyze已经读入的RTL代码来构建hierarchy。顶层是可以设置的。这个时候整个design的层次就有了,instance的关系也明确了。...
2022-04-26 16:51:20
2060
转载 基于UVM的Testbench之二(spi_agent)
基于UVM的Testbench之二(spi_agent)_SD.ZHAI的博客-优快云博客
2022-04-23 23:34:05
379
转载 大疆 IC设计校招笔试题目
前言后面,打算整理下数字ic笔试面试题目,希望以此为出发点,补充知识点!声明:个人觉得,学习期间,基本上都是知识的搬运,所以本博客所有内容都可以被大家引用!为了大家方便引用,博客内的图片都没有加博客的水印(除非不是自己的或者没看到)!这篇文章会基于下面这些文件整理,并参考大疆IC设计校招笔试题讲解,希望大家有所了解。本文的ppt,请点击链接下载!大疆介绍大疆官网:www.dji.com/cn校园招聘关于大疆大疆以" The Future of Possible(未来无所不能)"为主旨理念
2022-04-23 22:40:05
4302
转载 生产者-消费者模式:用流水线思想提高效率
话题:生产者-消费者模式:用流水线思想提高效率Worker Thread模式类比的是工厂里车间工人的工作模式。但其实在现实世界,工厂里还有一种流水线的工作模式,类比到编程领域,就是生产者-消费者模式。生产者-消费者模式在编程领域的应用也非常广泛,前面我们曾经提到,Java线程池本质上就是用生产者-消费者模式实现的,所以每当使用线程池的时候,其实就是在应用生产者-消费者模式。当然,除了在线程池中的应用,为了提升性能,并发编程领域很多地方也都用到了生产者-消费者模式,例如Log4j2中异步Append
2022-04-23 22:25:32
464
转载 AHB-SRAM简单设计之架构图解
前言还是慢慢来,比较快!在接触这个小项目时,就有种想法,吃透项目!参考文章:基于AHB总线的sram控制器设计、AHB—SRAMC项目(结构图,核心代码、Testbench架构)问:对于小白,该项目有哪些模块?如何着手?答:这个项目分为三个模块,一个顶层模块sram_top.v,两个内部模块sram_slave_if.v和sram_core.v。其中sram_core.v,一般是公司买的,不用自己写,所以大家可以直接拿来用;sram_slave_if.v是总线控制单元,我们主要是设计这个内部模块
2022-04-23 22:23:06
677
转载 AHB-SRAM简单设计之架构图解
前言还是慢慢来,比较快!在接触这个小项目时,就有种想法,吃透项目!参考文章:基于AHB总线的sram控制器设计、AHB—SRAMC项目(结构图,核心代码、Testbench架构)问:对于小白,该项目有哪些模块?如何着手?答:这个项目分为三个模块,一个顶层模块sram_top.v,两个内部模块sram_slave_if.v和sram_core.v。其中sram_core.v,一般是公司买的,不用自己写,所以大家可以直接拿来用;sram_slave_if.v是总线控制单元,我们主要是设计这个内部模块
2022-04-22 19:42:08
385
翻译 解决SUN中CC编译器编译可变参数宏报错
解决SUN中CC编译器编译可变参数宏报错。最近修改了一个项目中的日志组件,在打印函数的地方添加了文件名,行数。原来的日志宏是这样的:#define TADD_NORMAL Loglog函数的实现是void Log(const char * fmt, ...){ ....}使用方式:TADD_NORMAL("记录日志");TADD_NORMAL("记录日志[%d]",1);现在要添加文件名和行数。方案一:TADD_NORMAL("[%s %d]:记录日志",__F.
2022-04-15 15:52:36
509
转载 路科验证MCDF_lab4笔记
验证框图学前提示1、实验3到4为什么多了那么多package?因为实验4的接口、模块变多了,所以需要针对他们有各自的package2、mcdf的文件夹中编译有先后,先编译arbiter、formater、reg、salve_fifo,再编译mcdf模块。3、可回顾lab0,各部分功能4、看tb文件的顺序:1、DUT接口2、环境中例化的接口,FMT_IF,REG_IF,CH_IF3、各个pkg中drv、mon等都是啥4、顶层盒子env的结构,组件如何连接5、test是如何协调各个gen
2022-04-14 22:00:05
1406
转载 UVM学习整理——UVM通信(component类)
目录三、UVM通信(component类)3.1UVM TLM基本概念3.2TLM通信端口3.2.1单向通信端口3.2.2双向通信端口3.2.3多同名端口通信3.2.4分析端口——Analysis port(一对多传输、最常用)3.3TLM FIFO3.3.1两种TLM FIFO3.3.2TLM FIFO自带的方法三、UVM通信(component类) UVM验证平台的特点是验证环境整体基于面向对象的开发方式,组件之间的通信也是基于TLM通信方式,...
2022-04-13 22:14:07
804
转载 协议篇(二)I2Cverilog实现
协议篇(二)I2C的verilog实现零.基本协议数据发送模块仿真仿真接收模块(略),把最后的状态改为接收,三态门在这两天个状态打开并接收数据就可以了零.基本协议链接:I2C协议主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;、如果主机要接收从器件的数据,首先由主器件寻址从器件
2022-04-11 09:20:45
3003
1
转载 I2C总线传输协议 详解
简介I2C(Inter-integrated Circuit)总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信号线来完成信息交换。I2C最早是飞利浦在1982年开发设计并用于自己的芯片上,一开始只允许100kHz、7-bit标准地址。1992年,I2C的第一个公共规范发行,增加了400kHz的快速模式以及10-bit扩展地址。在I2C的基础上,1995年Intel提出了“System Management Bus” (SMBus),用于低速设备通信,SMBus 把时钟频率限
2022-04-11 08:30:47
1847
转载 芯片验证的策略篇(作者良心大作,验证必看)
我们在上一章芯片 芯片验证全视 中给出过芯片产品开发的流程图,而在描述中我们将开发流程分为了两条主线: 芯片功能的细分 不同人员的任务分配 即是说不同人员需要在硅前的不同阶段实现和测试芯片的模块功能。如果我们从另外一个角度看,芯片的开发即是将抽象级别逐次降低的过程,从一开始的抽象自然语言描述到硬件的HDL语言描述再到最后的门级网表。而在我们已经介绍过RTL设计和门级网表以后,这里需要引入一个目前更高抽象级的描述TLM(事务级模型,transaction level models)
2022-04-02 15:17:57
1601
转载 AMBA总线—AHB总线协议详解
一、典型AMBA系统AHB总线的强大之处在于它可以将微控制器CPU、高带宽的片上RAM、高带宽的外部存储器接口、DMA总线master、各种拥有AHB接口的控制器等连接起来构成一个独立的完成SOC系统,不仅如此,还可以通过AHB-APB桥来连接APB总线系统。AHB可以成为一个完成的SOC芯片的骨架二、AHB总线简介1、AHB总线组成完成的AHB总线由四个部分构成:AHB主设备Master:发起一次读/写操作,某时刻只允许一个主设备使用总线 AHB从设备Slave:响应一次读/写操作
2022-03-27 20:08:01
23032
6
转载 AMBA AHB学习总结
AMBA总线概述系统总线简介:系统芯片中,各个模块之间需要有接口来连接,总线作为子系统之间共享的通信链路其优点是低成本、方便易用,缺点是会造成性能瓶颈。AMBA 2.0AMBA全称Advanced Microcontroller Bus Architecture高级微控制器总线架构定义了三种总线:AHB(Advanced High-performance Bus):高性能总线ASB(Advanced System Bus):高级系统总线(这个用的相当少)APB(Advanced Peri
2022-03-27 19:56:21
1244
转载 AHB的学习笔记1-两级流水线和Burst传输
1、 AHB是两级流水线先地址和再数据,单周期操作相关问题:AHB是流水的吗?是几级流水?如果这一拍是地址且有数据,那么下一拍地址能改吗?两级流水,先地址再数据。下一拍只要Hready有效,地址就可以改。(考察AHB的单周期传输)2、Burst传输Burst用通俗的语言就是一次发一串数据,那么这一串数据的具体形式由Burst[2:0]和Hsize[2:0]有关;Burst分为回环(wrap)和增量(incr),增量相对于回环要简单一些。(1) 比如Burst为INCR4,那么就是这一串数据有4
2022-03-27 19:36:47
1977
转载 system verilog 源码
https://github.com/riscv-mcu/e203_hbirdv2/tree/master/rtl/e203https://github.com/alexforencich/verilog-ethernet
2022-03-27 19:33:23
596
转载 uart
1、并行和串行的意思:并行通信:如果一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信。并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。串行通信:串行数据传输时,数据是一位一位地在通信线上传输的,先由具有几位总线的计算机内的发送设备,将几位并行数据经并–串转换硬件转换成串行方式,再逐位经 传输线到达接收站的设备中,并在接收端将数据从串行方式重新转换成并行方式,以供接收方使用。串行数据传输的速度要比并行传输慢得多
2022-03-11 22:59:06
400
转载 mcdf实验
MCDF实验一、MCDF功能描述二、设计结构三、接口描述1、系统信号接口2、通道从端接口3、整形器接口4、控制寄存器接口四、接口时序1、通道从端接口时序2、整形器接口时序3、控制寄存器接口时序五、寄存器描述1、地址0x00 通道1控制寄存器 32bits 读写寄存器2、地址0x04 通道2控制寄存器 32bits 读写寄存器3、地址0x08 通道3控制寄存器 32bits 读写寄存器4、地址0x10 通道1状态寄存器 32bits 只读寄存器5、地址0x14 通道2状态寄存
2022-01-29 23:17:43
1451
1
翻译 Systemverilog 总结
Systemverilog数据类型l合并数组和非合并数组1)合并数组:存储方式是连续的,中间没有闲置空间。例如,32bit的寄存器,可以看成是4个8bit的数据,或者也可以看成是1个32bit的数据。表示方法:数组大小和位,必须在变量名前指定,数组大小必须是【msb:lsb】Bit[3:0] [7:0] bytes;2)二维数组和合并数组识别:合并数组:bit [3:0] [7:0] arrys;大小在变量名前面放得,且降序二维数组...
2022-01-18 20:44:30
2147
转载 IC验证的经验总结
IC验证的经验总结 ----IC验证工程师的“易筋经” 有人认为我验证做得很牛,也有人认为我的验证早就丢下了;有人认为我发现了各个项目的不少问题,也有人认为我在CMM库的几百个问题单大部分属纯净水。 好吧,无论怎样,我还是把我在验证中如何发现和定位Bug的思路稍微描述总结一下,纯属灌水。以前华仔曾经叫我写过一次,我随手写了一点点,这次还是详细一点吧,主要分几点:视...
2022-01-13 14:57:50
8026
1
转载 网表 vivado
1、网表的概念综合后或实现过程中各个子步骤所生成的DCP文件。2、网表的对象网表中有5类重要的对象,分别为模块(cell)、引脚(pin)、网线(net)、端口(port)和时钟(clock)。如下图所示,这里注意pin和port的区别。这5类对象构成了网表中的基本对象,也是在描述约束以及编辑网表时不可避免地会查找或引用的对象。 图1 网表...
2022-01-13 14:02:20
1876
转载 AHB-SRAM项目之并发进程与进程通信(SystemVerilog笔记之4)
在开始该模块之前,应该了解的内容如下:Fork_join三兄弟,automatic的task和function和静态的有何区别?开始:首先将program改成automatic类型,这样在program里写task和function时,就会让task和function变成automatic类型的。之后用fork join实现generator和driver的启动。虽然用fork_join将其包起来了,但目前仍旧存在一定的问题,比如:但现在代码看起来不够简洁,比如u_ahb_maste
2021-10-24 11:33:45
312
转载 linux系统上实现vivado调用VCS仿真教程
在linux系统上实现vivado调用VCS仿真教程作用:vivado调用VCS仿真可以加快工程的仿真和调试,提高效率。前期准备:确认安装vivado软件和VCS软件VCS软件最好安装VCS-MX的版本,可以混合编译Verilog和VHDL语言由于在linux系统中个人用户各种权限被限制,导致很多地方无法正常使用软件之间的协调工作。为了以防万一,在此以个人用户去实现vivado调用VCS仿真。1、 配置好个人用户下的.bashrc(只要运行cd命令即可到达该目录下(利用命令 ll –...
2021-10-18 16:15:03
814
转载 Sed是一个非交互性文本流编辑器
Sed是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。vi中的正则表达式命令在sed中大多可以通用。##sed常用选项-e script 指定sed编辑命令-f scriptfile 指定的文件中是sed编辑命令-n 寂静模式,抑制来自sed命令执行过程中的冗余输出信息,比如只显示那些被改变的行。-i[SUFFIX], –in-place[=SUFFIX] 替换和备份源文件edit files in place (makes backup if extension s
2021-09-20 23:29:36
112
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人