自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (2)
  • 收藏
  • 关注

原创 Python 正则表达式小结2

[声明]:本文参考了白夜黑雨老师的网页。如有侵权,请与我联系!!!1. re切割字符串2 . re字符串替换代码如下:import renames = '关羽; 张飞, 赵云, 马超, 黄忠 李逵'namelist = re.split(r'[;,\s]\s*',names) #切割字符串print(namelist) # namelist返回一个列表names = '''下面是这学期要学习的课程:<a href='https://www.bilibili.com/video/

2022-03-20 16:44:03 1704

原创 Python 正则表达式小结1

[声明]:本文参考了白夜黑雨老师的网页讲解。如有侵权,请与我联系!!!Python 正则表达式小结11. 正则表达式验证2. 特殊元字符及含义3 匹配某种字符类型4. 正则表达式举例大收藏家说1. 正则表达式验证提供两个网站用于正则表达式的验证,可以敲入文本与正则表达式。通过该网站,验证正则表达式的正确性。非常好用!英文网站中文网站2. 特殊元字符及含义元字符含义.表示要匹配除了 换行符 之外的任何 单个 字符*星号-表示匹配前面的表达式任意次,包括0次

2022-03-20 01:17:13 384

原创 AMBA-ATB spec

AMBA-ATB spec1. ATB总线的用途及版本1.1 ATB总线用途一般来说,ATB(Advanced Trace Bus)总线用来在ARM的coresight组件之间传递trace数据。如下图所示:1.2 ATB总线的版本ATB(Advanced Trace Bus)共有两个版本,其中v1.0作为AMBA3的一部分,于2006年发布的,而v1.1则是2012年随着AMBA4发布的。ATB规范新增了数据(主要针对trace data)不可知的接口,以便在跟踪系统中根据 AMBA 规范跟

2022-01-12 11:19:36 4426

原创 APB协议讲解

1. APB介绍1.1 APB的产生APB(advanced Peripheral Bus)协议是ARM公司中AMBA协议的一种。最早的APB协议现在叫做APB2,2003年ARM公司发布了APB3,2010年发布APB4。APB协议是向下兼容的,随着时间的推移,根据实际需求,APB3在APB2的基础上添加一些功能,APB4在APB3的基础上再添加了一些功能。现在我们所说的APB总线一般是指APB3,APB4增加的功能很少被使用到。1.2 APB的功能一个典型的APB总线架构如下图所示:APB使用的

2022-01-06 11:59:48 12432 2

原创 PWM模块原理及简单的设计思路

PWM模块原理及简单的设计思路1. 什么是PWM信号PWM可以算是数字电路中的“独臂”神通,“独臂” - 只需一根线;“神通” - 在很多关键的应用中起到栋梁的作用。PWM(脉宽调制 Pulse Width Modulation)从字面意思上讲它是一种“调制”方式,调制就意味着在某些载波信号上携带了某些的信息,通过解调的过程就可以得到其携带的信息,这些信息的属性由PWM的产生端定义,总之在这一根仅仅发生0、1交替变化的信号线上可以做出很多文章。2. 芯片的PWM引脚输出的波形可能是下面这样3

2021-10-09 21:15:23 10990 5

原创 UVM中sequence的挂载与启动

1. main_phase 是什么?main_phase是与run_phase并行的12个小的phase中的一个phase,也是一个可以耗时的phase。在UVM验证平台中,只要一个类使用了uvm_component_utils注册且此类被实例化了,那么这个类的main_phase就会自动被调用。2. 通过 start()函数进行挂载以下代码为UVM实战第44页代码task my_env::main_phase(uvm_phase phase); my_sequence seq; phase.r

2021-09-01 19:12:41 1994 1

原创 UVM常用函数 print_topology()& factory.print()&get_full_name

UVM常用函数 uvm_top.print_topology()& factory.print()&1 uvm_top.print_topology;要打印验证环境的结构,需要在验证环境构建之后打印,可以在final_phase中打印。virtual function void final_phase(uvm_phase phase); super,finial_phase(phase); uvm_top.print_topology(); factory.print();e

2021-09-01 15:25:35 4803

原创 uvm_config_db使用方法总结

uvm_config_db使用方法总结声明:本文参考gsithxy的文章1. uvm_config_db get and setuvm_config_db::set and uvm_config_db::get methods are used to store and retrieve the information from the database respectively.1.1 uvm config db set methodvoid uvm_config_db#(type T = in

2021-08-31 21:36:22 897

转载 Linux系统下python的调试方法

声明:本文转自Jaww的博客python有调试工具pdb,可以用来进行代码调试。pdb的常用命令说明:l #查看运行到哪行代码 n #单步运行,跳过函数 s #单步运行,可进入函数 p 变量 #查看变量值 b 行号 #断点设置到第几行 b

2021-01-24 13:13:00 396

原创 Python3 argparse解析与使用

官方文档链接中文版,我觉得已经写的非常详细了!

2021-01-11 19:42:33 165

转载 python3中的RE(Regular Expression: 正则表达式)使用

python3中的RE(Regular Expression: 正则表达式)使用声明:本文转自itw_wang的文章,请看原文。1.引入正则模块import re #引入正则表达式2.主要使用的方法 match(), 从左到右进行匹配#pattern 为要校验的规则#str 为要进行校验的字符串result = re.match(pattern, str) #如果result不为None,则group方法则对result进行数据提取result.group()正则表达式1️

2021-01-11 15:42:57 223

转载 Python中的os.mkdir()函数

Python中的os.mkdir()函数声明本文转载自毛毛打死小怪兽的文章1. 创建目录在Python中可以使用os.mkdir()函数创建目录(创建一级目录)。其原型如下所示:os.mkdir(path)其参数path 为要创建目录的路径。例如要在D盘下创建hello的目录>>> import os>>> os.mkdir('d:\hello')可以使用os.makedirs()函数创建多级目录。其原型如下所示:os.makedirs(pa

2021-01-10 09:45:15 21051

原创 Centos7系统安装riscv-spike

Centos7系统安装riscv-spike1. 官方网址为https://github.com/riscv/riscv-isa-sim2. 官方提供的安装方案但是在Centos系统中安装device-tree-compiler时却提示没有该安装包3. 解决方案yum install dtc使用该指令后可继续执行。...

2020-12-31 10:59:40 997

原创 Centos7系统安装qemu

Centos7系统安装qemu1. 安装网址为https://www.qemu.org/download/2. 安装方法如下这里可以选择自己想要的版本进行安装3. 安装中出现了问题ERROR: glib-2.22 gthread-2.0 is required to compile QEMUcentos 6.5 源码编译qemu ./configure时出现错误 ERROR: glib-2.22 gthread-2.0 is required to compile QEMU4. 解决方

2020-12-31 10:41:54 1684 1

原创 python 安装: WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in

python 安装: WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.系统CENTOS6.10,安装Python3时遇到了如下问题,在CENTOS7系统上安装时未遇到上述问题。WARNING: pip is configured with locations that require TLS/SSL, however the

2020-12-27 23:06:19 10930 2

原创 Centos7安装python3

Centos7安装python3本文参考了metoo9527的文章。前言官方已经停止了对CENTOS6系列的更新与支持,有时候需要更新一些库会报错链接地址上的内容不存在,使用python3的pip3指令也会遇到很多问题,并且很多库受限于CENTOS6无法跟新到新的版本,对于程序的安装与使用非常不方便,所以强烈建议大家不要使用CENTOS6,使用CENTOS7及以上版本,我就是遇到很多bug,最后换成了CENTOS7.安装步骤1、安装依赖包yum -y groupinstall "Developm

2020-12-27 22:34:22 114

原创 RISC-V GNU Toolchain介绍

RISC-V GNU Toolchain介绍Rriscv-gnu-toolchain与普通gnu-toolchain基本相同,支持riscv32/64位指令集架构* 一个安装脚本github上红色括号内的脚本可以安装GNU工具链,不过要说明的是默认安装的是64bit的工具库,如果需要安装32bit的可能还需要自己安装。1、整个工具链包括以下内容:-GCC(GNU C Compiler):通过“预处理-编译-汇编-链接”,将.c文件转换为目标机器上的可执行文件。-C运行库:包括glibic, m

2020-12-27 21:52:59 2205

原创 VCS中如何查看功能覆盖率与代码覆盖率

Makwfile中命令行CM = -cm line+cond+fsm_branch+tgl //表示要收集的代码覆盖率类型CM_NAME = -cn_name $(OUTPUT) //表示覆盖率的文件名CM_DIR = -cm_dir ./$(OUTPUT).vdb //表示覆盖率要存放到哪个目录下-cm_nocasedef /

2020-12-17 19:08:57 10056 1

原创 用verilog实现偶数,奇数,半整数,分数(小数)分频

用verilog实现偶数,奇数,半整数,分数(小数)分频一般来说,N倍分频是指时钟频率变为原来的1/N,而时钟周期变为原来的N倍。1. 偶数分频N为偶数,设计一个计数器,循环从0-(N-1)计数,在在N/2-1与N-1分别将输出取反,即完成偶数N分频。用verilog代码实现如下://div2always@(posedge clk or negedge rstn) begin if(!rstn) div2_clk <= 1'b0; else div2_clk <

2020-09-06 10:05:28 1653

转载 6.Matlab如何将彩色图像转换为灰度图像

6.Matlab如何将彩色图像转换为灰度图像1.在数字图像中,彩色图像->灰色图像,一般有以下三种方式:2.下面就以上三种方式,利用Matlab软件实现2.1取平均值和仅取Green色2.2 利用灰度转换公式...

2020-08-23 17:40:59 9005 1

原创 5.用Matlab如何将位深度为16的图片转换为二进制文件

5.用Matlab如何将位深度为16的图片转换为二进制文件1. 问题的提出使用FPGA做图像处理的测试时,常常需要做一些图像的测试激励,需要将一些图片存储到FPGA中,一般来说FPGA芯片的片内ram不超过2MB,当你想要存储的图片超过2MB时怎么办呢?一种方案是将图片先存到SD卡中,当FPGA上电时再将SD卡中的数据读入FPGA。此时,存入SD卡中的数据不能直接从PC上存入,存入SD卡中的数据须为二进制文件。2. 用Matlab将位深度为16的图片转换为二进制文件2.1 位宽的区别假设A=uin

2020-08-23 17:22:54 1978

原创 4. Matlab中如何调整图片的大小

4. Matlab中如何调整图片的大小1. 问题提出用matlab处理图片时,有时我们想调整图片的大小,你可以自己写一个 matlab算法来调整图片的大小,还可以用matlab内置的imresize函数来调整图片的大小。2.matlab实现以下代码的功能为选择指定位置的图片,利用bilinear算法重新调整图片的大小,并显示出来。...

2020-08-23 16:05:02 6827

转载 3. Matlab的取整方法及位宽设置

3. Matlab的取整方法及位宽设置1. Matlab取整函数: fix, floor, ceil, roundY=fix(X)将 X 的每个元素朝零方向四舍五入为最近的整数。对于正方向的 X,fix 的行为与 floor 相同。对于负方向的 X,fix 的行为与 ceil 相同。Y = floor(X)将 X 的每个元素四舍五入到小于或等于该元素的最接近整数。Y = ceil(X)将 X 的每个元素四舍五入到大于或等于该元素的最接近整数。Y = round(X)将 X 的每个元素四舍五入为

2020-08-23 15:36:05 1942

原创 2. Matlab中将两个16进制数据的文本读入并进行对比

2. Matlab中将两个16进制数据的文本读入并进行对比1. 实现功能16进制数以如下格式保存。实际工作中我们有时需要用matlab将两个数据文档进行对比,实现方法如下:2.实现数据对比首先用textread将指定位置的文本以字符串的形式读入matlab,然后将文本转换位char类型,再用hex2dec语句将char类型转换为十进制,然后用一个for语句就可以进行对比了。相关matlab代码...

2020-08-23 14:43:06 1650 1

原创 1. Matlab中如何读入图片数据

1. Matlab中如何读入图片数据1.matlab中用imread将指定位置的图片读入程序pic1 =imread('F:/EMCCD_data/fin_photos/ori_lena_4k.png');2.matlab中用imshow来显示图片figure(1)imshow(pic1);3. matlab中用imwrie来将图片保存到指定位置,可以指定保存的文件类型为jpg或者png。可以用bitdepth关键词来指定像素位深度。imwrite(pic1,'F:/EMCCD_data/fi

2020-08-23 14:13:04 5845

原创 Linux系统常用快捷键及VNC基本使用命令

Linux系统常用快捷键及VNC基本使用命令文章目录Linux系统常用快捷键及VNC基本使用命令Linux系统的特点Linux树型目录结构Linux系统常用命令VNC常用命令Linux系统的特点多任务系统在linux系统中可以同时执行多个任务。就同一个终端而言,用户可以执行几个任务。但这几个任务看起来在同时执行。这意味着,用户在编译一个文本文件时,可能此时另一个文件正在被格式化,同时另一个文件正在被打印。Linux系统比较稳定,很少会卡顿。对多用户的支持使得多个用户能在同一时间登录和使用系统,多

2020-08-12 14:41:06 4088

原创 IC设计中时钟偏斜对延时的影响

IC设计中时钟偏斜对延时的影响1. 什么是时钟偏斜芯片实际工作中,时钟并不是同时到达各个时序元件,在到达时间上又某种不确定性,因而可能减少用于计算的时间。如下图所示:图中加粗clk线表示时钟可能最迟到达的时间。斜阴影线(hashed line)表示由于时钟偏斜,时钟可能提早达到的时间范围。2.时钟偏斜对延时的影响在以触发器为基础的系统中对于最大延时约束,最坏情形发生在发送触发器接收的是最迟到达的时钟(上升沿),而接收触发器接收到的是最早到达的下一个时钟(上升沿)。在这种情形中,时钟偏斜将作为时序

2020-08-04 20:09:51 728

原创 时序电路的传输延时

时序电路的传输延时1. 下图是时序电路的一些基本延时参数2. 触发器时序电路所要满足的条件2.1 组合逻辑电路所要满足的最大延时在理想情况下,整个时钟周期都可以用来在组合逻辑中进行计算,但是,触发器的时序开销将减少这一计算时间。如果组合逻辑的延时太大,那么接收元件因没有充分的建立时间而将采样错误的数值,这称为建立时间失效(setup time failure)或最大延时失效(max-delay failure)。它可以通过重新设计逻辑使逻辑速度加快或加长时钟周期来解决。下图显示了假设时钟为无偏斜的理

2020-08-04 19:47:45 5921 1

原创 主从D触发器的实现及建立保持时间详解

主从D触发器的实现及建立保持时间详解1. 双稳态电路双稳态电路原理图如下图所示,可以用来构成存储单元(锁存器,触发器),SRAM等。2. RS锁存器电路结构及真值表如下图所示:3. 带时钟信号的D锁存器4. 基于二选一电路的D锁存器5. D锁存器电路(传输们实现二选一)6. 主从D触发器电路实现如下从下面这张图便可以很容易的感知建立时间的起因在clk上升沿前, D需要稳定多少时间使得QM采样到的值是正确的。D需要通过I1、 T1、 I3、 I2,忽略时钟反相器的延时

2020-08-04 13:46:41 9146 1

原创 用Xilinx的FPGA实现HDMI(DVI)接收器

用Xilinx的FPGA实现HDMI(DVI)接收器1. 问题-HDMI接收器1.1 ADV7511一般来说,如果要使用HDMI作为视频收发协议的话,会配置关于HDMI的编解码芯片。常见的有ADV7511(HDMI发送器)和ADV7611(HDMI接收器)。这样开发者关于HDMI的设计部分可以转化为与HDMI接收或者发送芯片的数据交互。利用FPGA进行设计时,有的FPGA有HDMI接口,却没有HDMI编解码芯片。这个时候要如何使用HDMI接口呢?一种方案是通过FMC接口外置HDMI模块子卡,这样就可

2020-07-31 20:51:49 8051 6

原创 HDMI介绍及硬件实现原理

HDMI介绍及硬件实现原理1. HDMI接口HDMI是新一代多媒体接口标准。全称为(High-Definition Multimedia Interface),高清晰多媒体接口。HDMI能够同时传输视频和音频,简化了设备的接口和连线。同时,提供了更高的数据传输带宽,可以传输无压缩的数字音频及高分辨率视频信号。HDMI接口如下图所示:HDMI向下兼容DVI(数字视频接口,只能用来传输视频,而不能同时传输音频)。DVI和HDMI接口协议在物理层均使用TMDS标准传输音视频数据。DVI接口如下图所示:

2020-07-31 19:37:55 10075

原创 组合电路中的静态冒险与动态冒险

组合电路中的静态冒险与动态冒险文章目录组合电路中的静态冒险与动态冒险1. 静态冒险1.1 静态1型冒险定义:静态1型冒险是这样的输入组合对: a) 只有一个输入变量不同; b) 这两种输入组合都产生1输出。这样在不同输入变量发生转变期间,就有可能发生短暂的0输出。1.2 静态0型冒险定义:静态0型冒险是指这样的组合对: a) 只有一个输入变量不同; b) 这一对输入组合都产生0输出。这样在不同输入变量发生转变期间,就可能产生短暂的1输出。2. 动态冒险3. 利用卡诺图发现静态冒险4. 设计无冒险电路由于

2020-07-31 16:17:16 9799

原创 用verilog实现全加器

用verilog实现全加器关于全加器的原理,可以参考我的博客半加器与全加器的实现`下面是用verilig代码实现的4位全加器:`timescale 1ns/1psmodule addr4 (input[3:0] data1,input[3:0] data2,output [4:0] sum);wire c1;wire c2;wire c3;adder_1 u_1(.a0 (data1[0]),.b0 (data2[0]),

2020-07-31 11:19:37 5413

原创 半加器与全加器的实现

半加器与全加器的实现声明:本文引用了微信公众号“摸鱼范式”的部分内容。1. 半加器半加器和全加器的区别在于,是否有进位输入端,可以直观地理解为,半加器是两个一比特相加,而全加器是三个一比特相加,输出结果和进位信号。半加器的真值表如下图其逻辑表达式为根据逻辑表达式,可以使用如下门电路实现2. 全加器全加器真值表如下:其逻辑表达式为:使用门电路搭建如下:3. 行波进位加法器以4bit的行波进位加法器为例,需要使用4个1bit加法器实现,如下图所示。在进行加法运算时,首先准备好的

2020-07-31 11:08:08 12303 2

原创 状态机与序列检测器的实现

状态机与序列检测器的实现1. 什么是状态机状态机(State Machine)/有限状态机(Finite State Machine,简称FSM)在有限个状态之间按一定规律转换的时序电路。在电路设计中主要用于逻辑控制。2. 两种状态机类型Mealy 状态机Moore 状态机两种状态机的区别在于:Moore的输出只取决于当前状态,而Mealy的输出不仅取决于当前的状态,还取决于外部的输入。三段式可以在组合逻辑后再增加一级寄存器来实现时序逻辑输出:1、可以有效地滤去组合逻辑输出的毛刺;2、

2020-07-30 17:45:27 1349

原创 Xilinx FPGA中如何设置LVDS差分信号

Xilinx FPGA中如何设置LVDS差分信号1. 什么是lvds差分信号(选自百度百科)LVDS(Low Voltage Differential Signal)是一种低振幅差分信号技术。它使用幅度非常低的信号(约250mV)通过一对差分PCB走线或平衡电缆传输数据。它能以高达数千Mbps的速度传送串行数据。由于电压信号幅度较低,而且采用恒流源模式驱动,故只产生极低的噪声,消耗非常小的功率,甚至不论频率高低功耗都几乎不变。此外,由于LVDS以差分方式传送数据,所以不易受共模噪音影响。LVDS最早是

2020-07-30 13:35:24 11204 6

原创 Xilinx工具JTAG-HS2的使用

Xilinx工具JTAG-HS2的使用我使用的板子为digilent公司的genesys2开发板,前段时间板子坏了,接通电源后开发板依旧没电,于是返厂维修,回来后电源那块稍微有些变好,接通电源后有电,但是维修人员说下载器坏掉了,给赔了一个JTAG-HS2回来,所以这个新玩意怎么用呢?在淘宝上digilent店铺描述是这样的简言之,就是可以像JTAG一样烧录数据到FPGA开发板。并且JTAG能做的事它都可做。所以,应该接在开发板上哪里呢?如下图J19位置,这个就是开发板上预留的JTAG端口,将JT

2020-07-29 23:50:26 3234

原创 Verilog中Function和Task的区别

Verilog中Function和Task的区别区别:函数可以返回一个值而任务可以返回多个值函数一经调用必须立即执行,里面不能包含任何的时序控制,而task中可以有时序控制函数可以调用函数,但不可以调用任务,任务既可以调用函数也可以调用任务函数必须要有一个输入参数,而任务可以没有参数输入任务输出的信号或设置为输入输出的端口,在模块中必须定义为reg信号verilog书中是这样写的:函数类似于任务,也能提供在模块的不同位置执行共同代码的能力。函数与任务的不同之处在于函数只能返回一个值,它不

2020-07-29 10:13:43 2006

原创 如何确定SD卡中文件的物理地址

如何确定SD卡中文件的物理地址1. 问题的提出在使用verilog进行设计的时候,当我们使用FPGA的SD卡资源时,比如说将SD卡中的数据读到FPGA的芯片中(SD卡中的数据可以从PC机中写入),我们需要确定设计从SD卡的哪个地址开始读数据,用winhex软件就可以很好解决这个问题。2. winhex软件的使用1.SD卡初始化SD卡使用前最好进行格式化,而且存入SD卡中的数据需要转换为二进制(bin)文件,可以使用matlab或其他工具进行转换。2. winhex的使用将SD卡插入读卡器,将读

2020-07-28 13:04:41 2638

原创 Verilog中三态门输入输出的使用

Verilog中利用三态门设计输入输出端口1. 设计中遇到的问题在利用Verilog进行硬件设计的时候,有时,我们需要设计一些总线,总线既可以输入又可以输出,我们会将端口设置为inout型,那么,这种类型的端口在模块内部是如何使用的呢?2. 什么是高阻态?高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定的。简介:在电子学中,高阻

2020-07-28 11:23:08 8714

winhex.rar

winhex,可以用来查看SD卡中的数据及文件的地址。存入SD卡中的文件须为二进制文件。大家可以免费下载。

2020-07-28

syn_fifo_yang.v

利用xilinx开发板自带的ram资源来构造一个同步FIFO,位宽16bit,深度为32的同步FIFO设计。

2020-07-06

空空如也

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

TA关注的人

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