自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Trace

学无止境、永不止步

  • 博客(51)
  • 资源 (4)
  • 收藏
  • 关注

原创 Notepad++连接linux,直接在本地编辑linux中内容

2019-08-19 23:02:41 601

原创 开机显示error:no such partition的解决办法

问题现象:开机显示: error:no such partition Entering rescue mode… grub rescue>问题原因分析:由于安装win7和linux双系统,linux由于出现问题删除了该分区导致无法正常引导win7开机问题解决: 1、利用大白菜制作U盘启动器 2、重启电脑按F12(根据电脑品牌来确定),进入boot选项 3、选择如下图 ...

2018-02-27 15:06:00 50204 13

原创 opencv:矩阵归一化—normalize()函数

void normalize(InputArray src,OutputArray dst,double alpha=1,double beta=0,int norm_type=NORM_L2,int dtype=-1,InputArray mask=noArray()) 第一个参数:InputArray类型的src。输入图像,即源图像,填Mat类的对象即可 第二个参数:OutputArray类

2017-05-11 23:52:36 1783

原创 opencv:log()函数

log()函数的功能是计算每个数组元素绝对值的自然对数 void log(InputArray src,OutputArray dst) 第一个参数:为输入图像 第二个参数:为得到的对数值其原理如下:

2017-05-11 23:51:53 10681

原创 opencv:计算二维矢量的幅值—magnitude()函数

计算二维矢量的幅值:magnitude()函数 该函数用来计算二维矢量的幅值 void magnitude(InputArray x,InputArray y,OutputArray magnitude) 第一个参数:InputArray类型的x,表示矢量的浮点型X坐标值,也就是实部 第二个参数:InputArray类型的y,表示矢量的浮点型Y坐标值,也就是虚部 第三个参数:OutputA

2017-05-11 23:49:35 24843 1

原创 opencv:扩充图像边界—copyMakeBorder()函数

void copyMakeBorder(InputArray src,OutputArray dst,int top,int bottom,int left,int right,int borderType,const Scalar& value-Scalar()) 第一个参数:InputArray类型的src,输入图像,即源图像,填Mat类的对象即可 第二个参数:OutputArray类型的d

2017-05-11 23:48:13 2813

原创 opencv:返回DFT最优尺寸大小—getOptimalDFTSize()函数

DFT最优尺寸大小:getOptimalDFTSize()函数 getOptimalDFTSize函数返回给定向量尺寸的傅里叶最优尺寸大小。 int getOptimalDFTSize(int vecsize) 此函数的唯一一个参数为int类型的vecsize,向量尺寸,即图片的rows、cols

2017-05-11 23:47:09 5077

原创 opencv:dft()函数详解

dft函数的作用是对一维或者二维浮点数数组进行正向或反向离散傅里叶变换 void dft(InputArray src,OutputArray dst,int flags =0,int nonzeroRows=0) 第一个参数:InputArray类型的src。输入矩阵,可以为实数或者虚数 第二个参数:OutputArray类型的dst。函数调用后的运算结果存在这里,其尺寸和类型取决于标识符,

2017-05-11 23:45:58 15105 3

原创 opencv:离散傅里叶变换

离散傅里叶变换(DFT):指傅里叶变换在时域和频域都呈现离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样。傅里叶变换的原理: 简单说:对一张图像使用傅里叶变换就是将它分解成正弦和余弦两部分,也就是将图像从空间域转换到频域 转换理论基础:任何一函数都可以表示成无数个正弦和余弦函数的和的形式。 二维图像的傅里叶变换可以用以下数学公式表达: 其中f是空间域值

2017-05-11 23:44:32 692

原创 opencv:图像对比度、亮度值调整(理论基础)

一般的图像处理算子都是一个函数,它接受一个或多个输入图像,并产生输出图像。算子的一般形式如下: g(x)=h(f(x))或者g(x)=h(f0(x)……fn(x)) 图像亮度和对比度的调整操作,属于图像处理变换中一种——点操作。 点操作特点:仅仅根据输入像素值(有时加上某些全局信息或参数),来计算相应的输出像素值。这类算子包括亮度和对比度、颜色校正和变换。 两种最常用的点操作

2017-05-11 23:43:28 4594

原创 opencv:通道合并—merge()函数

函数原型如下:

2017-05-11 23:42:42 3696

原创 opencv:通道分离—split()函数

split()函数的使用

2017-05-11 23:41:36 1215

原创 opencv:计算数组加权和—addWeighted()函数

其调用方式如下: addWeighted(srcImage2,alphaValue,srcImage3,betaValue,0.0,dstImage);

2017-05-11 23:40:00 970

原创 opencv:感兴趣区域的操作:ROI

定义ROI区域的两种方法: 1、使用表示矩阵区域的Rect。它指定矩形的左上角坐标(构造函数的前两个参数)和矩形的长宽(构造函数的后两个参数) //定义一个Mat类型并给其设定ROI区域 Mat imageROI; //方法一: imageROI = image(Rect(500,2500,logo.cols,logo.rows));//方法二:指定感兴趣行或者列的范围(Range

2017-05-11 23:38:49 769

原创 opencv:访问图像中像素的三类方法

见代码分析:#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>using namespace std;using namespace cv;//全局函数声明void colorReduce (Mat& inputImage, Mat& outputImage, i

2017-05-11 23:37:53 421

原创 opencv:计时函数

getTickCount()函数返回CPU自某个时间以来走过的时钟周期数 getTickFrequency()函数返回CPU一秒钟所走的时钟周期数示例: double time0 = static_cast(getTickCount()); //记录起始时间 //进行图像处理操作。。。。。。。。。。。。。time0 = ((double)getTickCount() - time0)/getT

2017-05-11 23:36:08 1176

原创 opencv:基本图形的绘制

DrawEllipse()函数的写法 img:表示图像 Point:表示椭圆中心 size:大小位于举行其后面的矩形内 angle:椭圆旋转角度 0,360:表示弧度从0到360度 Scalar:表示图形颜色 thickness:表示线宽 lineType:表示线性DrawFilledCircle()函数用法 DrawLine()函数的写法

2017-05-11 23:35:20 556

原创 opencv:颜色空间转换、点表示、颜色表示

颜色空间转换:cvtColor()函数 cvtColor()函数是opencv里颜色空间转换函数,可以实现各种颜色之间的转换,也可以转化为灰度图像函数原型: void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0) 第一个参数为输入图像 第二个参数为输出图像 第三个参数为颜色空间转换的标识符(见下表) 第四

2017-05-11 23:30:34 1539 1

原创 opencv:图像的载入、显示以及创建窗口

图像的载入:imread()函数 opencv官方文档中的原型: Mat imread (const string& filename,int flags=1); (1)第一个参数,const string&类型的filename,填需要载入的图片路径名。 (2)第二个参数,int类型的flags,指定一个加载图像的颜色类型。默认值为1.有时候调用可以忽略,表示载入的

2017-05-11 23:27:21 7160

原创 opencv:argc和argv的区别与几种main函数的写法

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-05-11 23:22:19 655

原创 UVM的callback的使用(八)

Callback的使用: 作用:提高验证平台的复用性。 UVM中的callback的使用方法: 例子:只涉及到一个类,Mac_transaction。 Task mii_driver::main_phase(); ……. While(1) begin Seq_item_port.get_next_item(req); `uvm_do_callbacks

2017-03-06 00:23:42 2259

原创 UVM的register model介绍(七)

Register model介绍 问题:期待DUT中的状态寄存器会对我们的激励有一定反应。 解决办法: Task scoreborard::main_phase(uvm_phase phase); ……. Reg_model.STATUS_REGread(status,value,UVM_FRONTDOOR); …… EndtaskUvm_reg_field:是

2017-03-06 00:21:54 6356

原创 UVM的各种port(六)

TLM:transaction Level Modeling UVM中常见的port: 前6个定义参数就是port中的数据流类型,而后3个定义中参数则表示(request-response)中发起请求时传输的数据类型和返回的数据类型。Export: 前6个定义参数就是port中的数据流类型,而后3个定义中参数则表示(request-response)中发起请求时传输的数据类型和返回

2017-03-06 00:19:05 14540

原创 UVM的config机制(五)

Config机制 本质是半个全局变量 Config机制是用来传递数据的 比如在case(派生自uvm_test)中build_phase中可如下配置: Uvm_config_db#(int)::set(this,”env.agent.driver”,”pre_num_max”,100); 在driver中的build_phase中设置为: Uvm_config_db#(int)::get

2017-03-05 00:14:24 3694

原创 UVM的sequence机制(四)

Sequence机制: 在整个UVM验证平台中,sequence负责transaction的产生,并通过sequencer发送给driver。要产生不同的transaction,那么就要在sequence中下功夫。不同的case的差异主要体现在sequence的不同上。复杂的同步:virtual sequence 为了使用virtual sequence,一般需要一个virtua

2017-03-05 00:11:16 6806

原创 UVM的transaction及filed_automation(三)

Transaction及field_automation Transaction是整个验证平台中流动的信息单元。Sequence产生出transaction,通过sequencer把此transaction转交给driver,driver根据此transaction的信息驱动接口信号。Monitor监测接口数据,并把数据封装成transaction的形式传递给reference model

2017-03-05 00:07:08 7967 1

原创 UVM的factory机制(二)

Factory机制: 1、 UVM强烈推荐使用uvm_component_utils或者uvm_object_utils宏来注册。用法: Class A extends uvm_component `uvm_component_utils(A); Endclass 创建一个A的实例如下: A a; a=A::type_id::create(“a”,this); 通过该方式,可以

2017-03-05 00:03:53 9659

原创 UVM概述及uvm_component和uvm_object(一)

UVM:Universal Verification Methodology(通用验证方法学) UVM:是建立在systemverilog平台上的一个库,提供了一系列的接口,让我们能够更方便的进行验证。验证平台组成: Driver:用来把不同的激励施加给DUT; Monitor:用来检测DUT的输出; Scoreboard:专门用来比较期望值与monitor检测到的DUT输出; Refer

2017-03-04 23:59:31 16459 3

原创 zynq的启动方式学习

Zynq-7000AP SOC器件有效利用了片上CPU来帮忙配置。在没有外部JTAG的情况下,处理系统(PS)与可编程逻辑(PL)都必须依靠PS来完成芯片的初始化配置。 ZYNQ的两种启动模式:从BootROM主动启动,从JTAG被动启动。 ZYNQ的启动配置分多级进行的。配置至少需要两步,但通常按如下三个阶段进行: 阶段0:该阶段简称为BootROM,控制着整个芯片的初始化过程。放在Boot

2017-02-20 14:25:20 5860 1

原创 zynq的HDMI接口设计

HDMI设计:高清晰度多媒体接口 是一种数字化视频/音频接口技术,最高数据传输速度为5Gbps(目前到10Gbps)。 1、 HDMI传输原理 HDMI系统的架构由信源(source)和信宿(sink)组成。一个设备上可以有多个HDMO接口,但是每个接口都要遵循HDMI信源和信宿的结构。其接口架构图如下: HDMI接口包括3个TMDS数据信道和1个TMDS时钟信道。 TMDS差分传

2017-02-17 22:07:21 3929

原创 C++语法(二)

二、处理数据 1、整型:就是没有小数部分的数字。不同C++整型使用不同的内存量来存储整数。 整型short、int、long和long long: 使用sizeof运算符返回类型或变量的长度的办法。 2、初始化: 注意:如果不对函数内部定义的变量进行初始化,该变量的值将是不确定的。这意味着该变量的值将是它被创建之前,相应内存单元保存的值。 3、成员函数cout.put():

2017-02-16 23:47:51 406

原创 zynq的学习(二)

三、 AMBA协议规范 在片上系统(SOC)设计中,高级微控制器总线结构(AMBA)用于片上总线。 AMBA规范(版本4)定义了7个总线/接口: 1) AXI一致性扩展(ACE) 2) AXI一致性扩展简化(ACE-Lite) 3) 高级可扩展接口4(AXI 4) 4) 高级可扩展接口4简化(AXI4-Lite) 5) 高级可扩展接口流(AXI4-Stream) 6)

2017-02-14 14:36:20 1592

原创 zynq的学习(一)

一、 可编程SOC设计 可编程片上系统(p-soc):包含嵌入式的软核/硬核处理器、存储器和硬件加速器。 硬核处理器:使用硅片上专门的单元实现一个处理器称为硬核处理器。硬核处理器会将一些硬核(如:PowerPC)到FPGA芯片中。 软核处理器:通过使用FPGA片内的设计资源(LUT、BRAM)实现的一个处理器称为软核处理器。软核处理器通过HDL语言或者网表进行描述,必须综合才能使用。1、可编

2017-02-14 13:38:59 2255

原创 linux常用命令总结

学习linux也有一阵子了,现总结一些常用的linux操作命令,方便大家查找 1、 cd命令 这个命令是最基本的也是最常用的。它用于切换当前目录,可以是绝对路径,也可以是相对路径。例: cd /root/home/quan/ #切换到目录/root/home/quan/下 cd ../ #切换到上一级目录 cd ../quan

2017-02-13 15:31:24 522

原创 c++语法(一)

一、 进入C++ 首先介绍一个显示消息的简单C++程序,利用cout生成字符输出。源代码中对注释//忽略。C++对大小写敏感。文件的扩展名为cpp 例:myfirst.cpp 其中endl代表换行。 该程序包含以下元素: 1) 注释,由前缀//标识 2) 预处理器编译指令#include。可以通过手册或在线帮助查看函数描述确定使用头文件。 3) 函数头:int main()

2017-02-12 23:06:03 459

原创 systemverilog语法(十)

二十一、高级接口 虚接口(virtual interface)是一个物理接口的句柄(handle)。 虚接口和对应的通用方法可以把设计和验证平台分隔开来,保证其不受设计改动的影响。当我们对一个设计引脚名字进行改动时,无须改动驱动这个接口的方法,而只需在例化该实物交易处理器的时候,给虚接口绑定对应连接的实体接口即可。以此来实现实物交易处理器的更大重用性。 虚接口的定义:virtual inter

2017-02-12 20:34:06 7910

原创 systemverilog语法(九)

二十、功能覆盖率 功能覆盖率是用来衡量哪些设计特征已经被测试程序试过的一个指标。 1、 覆盖率的类型: 1) 代码覆盖率:衡量多少代码已经被执行过。一般都通过调用代码覆盖率的命令即可实现。 2) 功能覆盖率:确保设计实现了所有的特性。 3)断言覆盖率:一般检查设计中的关键信号是否正确执行,特别是时序检查时需用到断言。 2、覆盖率一般出现的情况,根据下图进行相应的操作,例: 2、

2017-02-12 15:55:30 3890

原创 systemverilog语法(八)

十九、面向对象编程的高级技巧 继承:允许从一个现存的类得到一个新的类并共享其变量和子程序。原始类被称为基类或者超类,而新类因为扩展了基类的功能,被称为扩展类。 OOP真正强大的地方在于它可以使你继承现有类。 1、例:事务基类 扩展类: 将类中的子程序定义成虚拟的,这样 它就可以在扩展类中重新定义,这一点适用于所有的任务和函数,除了new函数。 OOP中类的变量称为属性,而任务

2017-02-12 15:25:34 2997

原创 systemverilog语法(七)

十七、线程 线程的量级比进程小,其代码和存储区可共享,而且所消耗的资源比典型的进程小的多。 1、 线程的使用 1) begin ••••end顺序执行、fork•••join并行执行 2) fork•••join、fork•••join_none、fork••••join_any的区别 注意:1)fork•••join_none块后的那个语句执行早于fork_none内的任何语

2017-02-12 10:15:47 12641

原创 systemverilog语法(六)

十六、随机化 通过随机化可以通过利用CPU的时间来换取人工检查的时间,提高效率,提供足够的激励。 采用受约束的随机测试法(CRT)产生测试集:使用随机的数据流为DUT产生输入的测试代码。改变伪随机数发生器(PRNG)的种子(seed)。 一般会在测试设计时考虑设计规范的边界处,甚至测试设计规范之外的行为。 1、 简单的随机变量的简单类 例: Randc表示周期随机性,即所有的

2017-02-11 17:20:40 31599 2

risc-v_AXI_rtl-verilog源代码

学习risc-v和axi总线的可下载

2022-01-13

在window系统下安装centos双系统

在window系统下安装centos双系统,详细的安装步骤,保证双系统安装可靠

2018-02-27

linux系统上vivado调用VCS仿真

linux系统上vivado调用VCS仿真,可以加快仿真速度,更便于观察波形

2018-02-27

空空如也

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

TA关注的人

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