自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SV中的automatic与static

module breakpoint;int val1;int val2;int result1;//定义在这里,或者定义在未特殊声明的function/task中都是静态的方法function int incr_static(input int a); $display("result1 = %0d", result1); result1 = a + 1; $display("re

2018-01-09 17:14:36 14512 11

原创 VCS 仿真过程中对TCL 的调用

此文关于VCS的基本仿真命令讲解的还是很详细的 https://wenku.baidu.com/view/a514c0ef9ec3d5bbfd0a743f.html3.2 UCLI仿真UCLI仿真其实是建立在TCL语言之上的。所以在UCLI结构中你可以使用TCL命令来控制UCLI的执行。 下面的命令就是建立UCLI仿真: % simv [simv_options] –ucli 注意:使用

2018-01-03 15:16:30 5045

原创 批量修改文件名 与 批量文件字符替换

下面小脚本,用于将当前文件夹内所有文件名做regbox——》genbox替换 shell #!/bin/bash for files in `find . -name "*"` do mv $files $(sed "s/refbox/genbox/g" <<<$files); done

2017-12-18 20:26:14 4774

转载 AXI 的乱序操作

Cachable和bufferable一个Master发出一个读写的request,中间要经过很多Buffer,最后才能送到memory。这些Buffer的添加是为了outstanding,timing,performance等。Buffer有两种类型:一种FIFO结构,仅仅就是保存发送Request给下一级或者返回Response给上一级。还有一种Buffer,在接受了上一级的Request之后立

2017-12-18 20:22:02 10501 1

原创 关于package的import 和文件include

http://www.eetop.cn/blog/html/28/1561828-2316833.html 师父在文章 《SV系统集成篇之一:包的意义》实际上讲解的很透彻了。前几天,在安装sysnopsys Ethernet Vip时发现: 当我把软件部分按照uvm_getting_start安装, 但是elaboration的时候ethernet中的config文件无法正

2017-12-12 19:31:17 3291 1

原创 VTB环境结构

关于EMAC VTB的环境结构的解析 727的环境中关于EMAC 、USB 、PCIE 都是采用了 VTB 的方式完成的。727中使用S家工具 synopsys coretool, 基于一个配置文件,就可以生成一阵个硬件模型(实际就是生成了一个DUT,而且是.v文件)和软件TB. 这套flow 实际是一位未发布的flow (大概只有大公司会这么跟sysnopsys玩吧)。 727 是这样

2017-11-24 18:27:17 1106

原创 VHDL 语法

两个常见的电路描述语法结构

2017-11-24 15:01:14 290

转载 EMAC

以太网卡中数据链路层的芯片一般简称之为MAC控制器,物理层的芯片我们简称之为PHY。许多网卡的芯片把MAC和PHY的功能做到了一颗芯片中,比如Intel 82559网卡的和3COM 3C905网卡。但是MAC和PHY的机制还是单独存在的,只是外观的表现形式是一颗单芯片。当然也有很多网卡的MAC和PHY是分开做的,比如D-LINK的DFE-530TX等。物理层的媒

2017-11-20 15:46:31 10070

转载 DMA知识

DMA(Direct Memory Access,直接内存存取)DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。DMA方式是一

2017-11-20 15:37:21 2414

转载 DMA

DMA(Direct Memory Access,直接内存存取)DMA的和CPU的交互工作模式可参考百度百科https://baike.baidu.com/item/DMA/2385376?fr=aladdinDMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。典型的例子就是移动一个外部内存的区块到

2017-11-17 15:43:47 4863 1

原创 关于MCDF代码中的问题?

MCDF1, 接口连线中的.*表示什么2, 类中的变量定义为local有什么用?P130页有简单的讲解,依然不明确 大意是如果表示为local 或者 portect 类型,在类外面就无法对这个类进行访问了。

2017-11-17 15:26:55 2227

原创 一个子系统的配置

一个子系统一般会有一个CU,  以及很多个IP。这个CU一般会起到控制clk reset 以及power的功能,通过配置寄存器,可以使得这个子系统处于不同的工作模式(如频率,power domain等)。各个IP的工作模式需要配置各个IP各自的寄存器才能达到相应的状态。而这所有的寄存器的配置,一般都会都通过一个AHB/AXI  bus线进行配置操作。这个接口可以访问的空间非常广阔。

2017-11-15 14:02:32 320

原创 clearcase 使用手册

http://www.yolinux.com/TUTORIALS/ClearcaseCommands.html

2017-11-14 17:30:11 1125

转载 关于异步fifo为什么用格雷码

http://www.360doc.com/content/12/1016/16/8804122_241840501.shtml 分类:IC技术文章 首先要了解的是异步FIFO使用格雷码的唯一目的就是“即使在亚稳态进行读写指针抽样也能进行正确的空满状态判断”。那么典型的判断方法是怎样进行的呢?以满状态判断为例,先要对读指针(属于读时钟域)在写时钟域进行抽样,然后才能与写指针进行比较,如果写指针赶上

2017-09-20 00:46:04 2632

原创 Mako脚本

<%!from ubTptEnvDb import dp, masterNum, slaveNumfrom ubTptEnvDb import topName, upperTopName, masterNum, slaveNum, CR_slv_num, IOC_slv_num, APB_slv_num, ATB_slv_num, AHB_slv_num, AXI_slv_num, OCP_s

2017-09-15 22:40:01 400

原创 adapter sequence 和env slave 组件

`ifndef UTB_AHB_MASTER_ADAPTER_SEQUENCE_SV`define UTB_AHB_MASTER_ADAPTER_SEQUENCE_SVclass utb_ahb_master_adapter_sequence extends svt_ahb_master_transaction_base_sequence; /** UVM Object Utility macr

2017-09-15 22:36:59 880

原创 小数分频

http://blog.sina.com.cn/s/blog_8aeb5c2d01012zx9.html

2017-09-11 21:36:45 1370

原创 FSM

http://www.eefocus.com/liuyuxue/blog/13-11/300257_00bea.html 这位博主写得十分全面啊。以下摘录部分 关于二段与三段Coding Style 状态机一般有三种写法,他们在速度、面积、代码可维护性等各个方面互有优劣。一段式:只有一个always block,把所有的逻辑(输入、输出、状态)都在一个always block中实现;这种写法

2017-09-08 19:22:20 316

翻译 异步复位同步释放

1,异步复位与同步释放的区别http://www.doc88.com/p-7178911994213.html 2,为什么要异步复位?结构简单,节省资源——(待深度挖掘,为什么就结构简单了呢?)3,为什么要同步释放?(1)这里有一个宏观解释http://blog.csdn.net/u011729865/article/details/49281713 最好是系统一起复位释放,但是时钟域不同,不可

2017-09-06 00:45:52 909 1

原创 关于TB 编译:compile&elab

VCS 编译产生可执行文件的,流程分为compile-elabcompile使用的命令是vlogan 和 vhdlan -option +文件 这一阶段会检查语法错误、并产生很多的中间lib文件,供elab使用,可以使用-work去指定文件的路径elabelaboration 会产生instance hierachy 和可执行的二进制文件simv 同时elabration 可采用debug

2017-08-15 19:35:42 1825

原创 AHB总线协议整理

这位博注总结的很好啊, http://blog.163.com/qixin_william/blog/static/240217035201491133626819/ http://blog.163.com/qixin_william/blog/static/240217035201491425318830/ 拿过来分析下T1时刻之后,master将第一拍地址和控制信号打入总线,因为是一个

2017-08-11 22:57:48 12857

原创 SV 语法自测程序

时常会碰到需要自测SV 语法的时候,简单的小程序,就够了 vcs -sverilog test.sv simvclass register_hash; string Hwa_hash [int] ; function new ; Hwa_hash [32'h00000000] = "HWaAudShimRev"; Hwa_hash [32'hFF800884] = "H

2017-08-11 21:21:25 962

原创 python 写excel(2)

这篇博客讲的不错http://www.jb51.net/article/77626.htm。使用xlrd读取文件,使用xlwt生成Excel文件(可以控制Excel中单元格的格式)。但是用xlrd读取excel是不能对其进行操作的;而xlwt生成excel文件是不能在已有的excel文件基础上进行修改的,如需要修改文件就要使用xluntils模块。pyExcelerator模块与xlwt类似,也可以

2017-08-11 21:06:14 313

原创 跨时钟域的同步问题

两级同步电路http://www.cnblogs.com/IClearner/p/6485389.html 这个博主讲解的还是很有意思的呢, 配合这个,简短的讲解: http://dengkanwen.com/238.html ,,, 那么问题来了,sync cell的sim jitter 是在抖动什么呢? sim jitter 和clk jitter有什么差别呢?

2017-07-31 12:00:37 4257

原创 Virtual sequence 和test 启动的关系

这是一个UVM的基本结构问题。sequecne的启动先理解一个sequence 的启动机制吧。白书第二章有讲解。 对于一个sequence,在环境中的任意一处实际调用sequence.start就可以启动啦。 但是一般会在前后加上raise/drop_objection().这就又是,objection机制了,在程序进入到某一个phase时,UVM会收集这个phase 所有的objection,

2017-07-30 18:11:50 1675

原创 UVM-regmodel

为什么要用reg model?依据白书,寄存器模型是为了方便环境中组件、如refence model 或 scoreboard 等对寄存器的操控而设定的组件。例如从ref model中向DUT读值的时候,就必须采取前门访问,必须考虑两个问题1,如何操纵参考模型来控制发送启动sequence,以读取reg的值?A:设置全局事件,在refmodel 中触发这一事件,在virtu

2017-07-18 14:12:54 1947

原创 验证结构中IMonitor的作用

DUT  的 input 端口采用的monitor 是干嘛的呢?根据白书:   一,大型项目中,driver 根据协议发送数据,而monitor根据协议接收数据。如果driver和monitor由不同人实现,那么可以大大减少其中任意一方对协议理解的错误。二,便于复用???另外,我的一点理解是:用于判断是否真的将输入,打入了DUT。????就一般环境,IF与dri

2017-07-17 21:50:58 924

原创 IC Flow

http://www.360doc.com/content/13/0426/11/8804122_281039874.shtml系统级设计阶段 :根据产品需求,确定待设计芯片,选择工艺、封装、面积、功耗、接口等各方面要求 定义架构、对模块功能进行划分、选择合适IP前端设计:完成R2N 的过程:RTL –>netlist 。 设计和功能验证 设计:模块设计/系统集成: spyglass 做语

2017-07-16 17:17:02 1408

原创 cshell脚本抓取文件

一个cshell脚本#!/bin/bash touch regexcl.list ##cshell 列表的用法folder_list=(/vobs/cp_rtl-host/test/src/toplevel/lmu \ /vobs/cp_rtl-host/test/src/toplevel/host_spcu )#foreach ({folder_list[i]}

2017-07-16 14:47:34 791

原创 python 写excel(1)

这个脚本完成的内容是:读取一个log中的内容,将其中的部分内容获取,并按照一定规则将其填入excelimport re,osimport xlrdimport xlwtfrom xlwt import *from xlutils.copy import copygen_excel_file = "./find_force.log"class gen_excel: def __ini

2017-07-16 12:18:08 260

原创 关于virtual interface

关于VIF 张强书中如是将:那么如何在driver中使用interface呢?一种想法是在driver中声明如下语句,然后再通过赋值的形式将top_tb中的input_if传递给它:代码清单 2-14class my_driver extends uvm_driver; my_if drv_if; …endclass读者可以试一下,这样的使用方式是会报语法错误的,因为my_driv

2017-07-12 21:59:18 5256

原创 SV之OOP基础知识

Transaction t1 t2 ;t1= new();t2=t1;t1=new();声明句柄:申明指向某一对象的句柄t1,t2中。 创建对象:构造函数new为对象分配空间,并将其地址保存在t1这个句柄中。 传递对象:将t1句柄的对象也传给t2,这时,t1和t2指向同一对象。 创建新对象:这时t1指向新对象,t2仍指向旧对象。静态变量一个类中的静态变量,可以被这个类的所有实例共享,并且

2017-07-11 11:43:50 6676

原创 SV function

写了一个function,借此谈谈 对SV 子程序的理解。//函数function automatic void check_read32 (ref int unsigned rdata , bit [31:0] check_value [], input stri

2017-07-10 19:17:08 2854

原创 输入参数,research,读写文件

写了个python小脚本。对其中方法做个小注解。#!/usr/bin/python##READ ME# search_string.py is a python script , which output string search result base on input file.#first argument : input log file : src_log_folder/confi

2017-07-07 17:34:21 264

转载 AXI协议整理

原文出处 http://blog.csdn.net/rill_zhen/article/details/44219593/总线信号分两种。valid/ready协议 ,1,valid/ready协议 axi协议是典型的基于valid/ready协议的总线协议。 valid/ready协议的优势就是master和slave的相对独立性比较好。 对于一次传输,作为master的发起方不用检查s

2017-06-30 15:14:26 8646

原创 cleartool 基本操作

以下是一个文件打label的shell 脚本#! /bin/shcd $WORKAREA#####创建label cleartool mklbtype -c "test label commond" $1##为单个文件/文件夹打labelcleartool mklabel -rep $1 .##文件夹递归打lebelcleartool mklabel -r -rep $1 bin

2017-06-28 14:13:11 1830

转载 编程的三年

转自http://www.cnblogs.com/vamei/p/5310829.html, 觉得很有道理啊,自勉在创业的过程中,我的主要任务是编程。我从三年前开始写编程博客,有一系列的编程教程,如Python,Java,Linux系统,网络协议,算法,数据分析等等。后来之所以去做创业项目,就是为了在实践中磨砺自己的编程技巧。撇开自身的兴趣爱好不谈,当时会学很多编程技术,也是因为对科研兴趣

2017-05-04 20:03:50 338

转载 linux下删除指定文件之外的其他文件

转载自  http://blog.chinaunix.net/uid-26557245-id-3839702.htmllinux下删除指定文件之外的其他文件 一、Linux下删除文件和文件夹常用命令如下:删除文件: rm file  www.2cto.com  删除文件夹: rm -rf dir需要注意的是, rmdir

2017-04-25 16:20:42 3473

原创 find、grep、sed小命令

参考了http://blog.csdn.net/topgun_chenlingyun/article/details/7701538改出小命令sed -i s/FAILED/PASSED/g `find . -name "*SUB_DOMAIN*" | xargs -I {} grep "FAILED" -rl --include "*store" {}`作用: 1,找到含SUB_DOMAIN的文

2017-04-17 18:32:44 266

转载 vim替换

Removing_duplicate_lines”>http://vim.wikia.com/wiki/Uniq-_Removing_duplicate_lines:g/^(.*)\n\1\n\1/d :g/\%(^\1\n\)\@<=\(.∗\)\n\)\@<=\(.*\)/d删除的是重复项的前面一项;后面的命令删除的重复项的后面的内容。注意两个命令独立的,可以分别使用。对于g命令不是很熟悉,它

2017-04-17 18:25:27 181

空空如也

空空如也

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

TA关注的人

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