weiqi7777

coresight(二)coresight寄存器

二、coresight的寄存器coresight对于每个coresight组件,规定了一些寄存器,这些寄存器的偏移是固定的,这些寄存器,是必须存在的。但是有的,可以不实现该寄存器功能。1、寄存器一览coresight架构,对于coresight的组件,定义了若干个固定的寄存器。第一个寄存器的偏移

coresight(一)coresight简介

一、coresightcoresight是ARM公司提出的,用于对复杂的SOC,实现debug和trace的架构。该架构,包含了多个coresight组件。众多的coresight组件,构成了一个coresight系统。我们也可以根据coresight架构,实现自己的coresight组件。每个coresight的组件(component),都

使用ep3命令对代码进行预处理

在写代码时,有一些重复代码,我们想简写这部分代码,以节省编码工作,然后使用预处理工具进行处理,得到最终的代码。perl的EP3,就是这样的一个工具。在https://metacpan.org/search?q=ep3网站上,有介绍这个工具,其实就是perl的一个插件。可以对该插件进行封装,得到

A64的system指令

system指令,也就是sys,sysl指令,的编码如下所示:L:传输方向0寄存器传输到系统寄存器,sys指令1系统寄存器传输到寄存器,sysl指令op0:系统指令类型2'b00:访问PSTATE,访问当前PE状态,hint指令,barrier指令,CLREX指令2'b01:cache维护指令(DC),TLB维护指令(TL

VCS与verdi联合进行单步调试

我们在验证的时候,会有对自己写的验证代码进行debug的时候,往往在这个时候,我们基本是通过$display,系统函数来打印我们关心的东西,然后进行debug。但是这样的效率是很低的。vcs提供了单步调试的功能,并且能够配合verdi工具。利用这两个工具,可以方便我们进行debu

dvteclipse创建新工程(五)

下面,以一个UVM的验证环境,说明一下,怎么使用DVT工具,创建工程。验证环境如下:flist:filelist,包含了环境中需要编译,仿真的文件get_file.sh:自动生成flist文件的脚本Makefile:执行编译,仿真的makefilesource:RTL源代码目录top_tb.sv:验证环境顶层uvm_code:

dvteclipse配置RUN(四)

DVT可以配置run功能,直接在DVT中,运行仿真任务。工程右键,RunAs->RunConfigurations。demo工程,预设了几个RUN配置。以支持debug模式,run模式,以及不同的仿真工具。右下角,配置RUN的命令。这里是执行make命令。sh–c,说明以bash解释器,来执行后面的命令。在S

dvteclipse软件使用(三)

下面,简单介绍下,该软件的一些功能。一、自动补全输入一部分,按ctrl+空格,就会弹出对话框,进行选择,要自动补全的内容。DVT还支持,缩写补全,比如上面的uvm_table_printer,可以输入u_t_p,然后按ctrl+空格,就会自动补全成uvm_table_printer。二、显示类的类型层

dvteclipse打开demo工程(二)

下面,介绍一下,该软件如何打开demo工程。在终端,输入dvt,就会启动dvt软件。打开软件后,在左上角工程目录,会自动出现2个文件夹。其中DVT-Examples,里面是软件提供的demo工程,可以使用这些demo,来熟悉工具的使用。展开,选择systemverilog下的uvm-1.2_ubus工程。

dvteclipse工具简介(一)

这几天,在公司体验了开发verilog,systemverilog,UVM的IDE,真是不用不知道,一用吓一跳,该IDE的功能真是太强大了,简直是开发verilog,systemverilog,UVM的神器。该工具的官方网站如下:https://www.dvteclipse.com/该网页上的DOCS,介绍了该软件的使用方法。该软

ARMv8的CPSR

ARM处理器,有一个寄存器,叫CPSR,保存了当前的处理器状态。但在ARMv8中,AArch64(以下简称A64)和AArch32(以下简称A32)对于这寄存器,有不同的规定。一、A64在A64中,不在使用单一的CPSR寄存器,来保存当前处理器状态,而是用PSTATE来保存处理器状态。PSTATE,包括

system verilog变量定义编译失败

sv中,变量定义,要放在程序的最开头。比如如下:这样,编译才能成功。但是如果,变量定义没有放在最前面,而是放到了赋值语句之后,就会编译报错:VCS编译,就会出现如下错误:Error-[SE]SyntaxerrorFollowingverilogsourcehassyntaxerror:"test.sv",7:tokenis'int'int

A64与A32混合编程

ARMv8中,aarch64和aarch32是通过异常进行切换的。而A32和T32是通过bx指令进行切换的。如下图:以下A64和A32混合编程,是在EL3为aarch64,EL2为aarch32条件下进行编程。在EL3,设置EL2的架构为aarch32,设置好返回地址,通过ERET指令,切换到EL2。&nb

arm fastmodel工具介绍

arm公司,有一款arm指令集仿真工具,名叫fastmodel。该model,可以用来仿真arm的程序,并且打印程序的执行流。不过该工具是收费的。以下是fastmodel的帮助信息。其中有用的一些选项:-a指定装载的ELF可执行程序-S开启CADIserver,允许modeldebugger工具调试-f指定model

jenkins git clone失败

Jenkins任务,clone代码,出现以下错误。clone任务被kill掉了,因此造成代码clone不成功。所以后续的任务,也没有被执行。Killedbysignal15.atorg.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImlp