- 博客(101)
- 收藏
- 关注

原创 FPGA学习笔记_图像处理5_FPGA实现灰度图像高斯滤波算法
FPGA学习笔记图像处理算法1. 灰度图像高斯滤波算法 1.1 原理 1.2 FPGA实现灰度图像高斯滤波算法1. 灰度图像高斯滤波算法1.1 原理高斯滤波:线性平滑滤波,低通滤波器,用于消除高斯噪声原理:对整幅图进行加权平均,每一个像素点的值,由其本身和领域的其他像素值经过加权平均之后得到。优点:克服了边界效应,相对于均值滤波平滑效果更柔和,边缘保留的更好。1.2 FPGA实现灰度图像均值滤波算法FPGA实现步骤:F(x,y): (x,y) 点的像素值G(x
2021-02-18 11:12:31
2929
5

原创 FPGA学习笔记_图像处理4_FPGA实现灰度图像均值滤波算法
FPGA学习笔记图像处理算法1. 灰度图像均值滤波算法 1.1 原理 1.2 FPGA实现灰度图像均值滤波算法1. 中值滤波算法1.1 原理均值滤波:线性滤波,邻域平均法。原理:用均值代替原图像中的各个像素值。即以目标像素(x,y)为中心的找出N个像素f(x,y),再用这N个像素的平均值代替原目标像素,作为处理后的图像的点g(x,y)=(1/N)(∑f(xi,yi))。缺点:不能很好的保护图像细节,使图像变得模糊,不能很好的去除噪声点。1.2 FPGA实现灰度图像均值滤
2021-02-18 08:30:59
2010
1

转载 时间管理_帕累托法则(二八定律)
时间管理帕累托法则(二八定律)1. 二八现象2. 相关理论3. 总结1. 二八现象1.管理学:通常一个企业80%的利润来自它20%的项目[3] ;这个80/20定律被一再推而广之–经济学家说,20%的人手里掌握着80%的财富。有这样两种人,第一种占了80%,拥有20%的财富;第二种只占20%,却掌握80%的财富。-漠视20%80%两者相关性,如同只认可喂饱口腹的最后一口饼子2.心理学:20%的人身上集中了人类80%的智慧,他们一出生就鹤立鸡群。大智出有大伪,朴素的力量同样托起
2021-02-09 12:13:20
2478

原创 FPGA学习笔记_图像处理3_FPGA实现中值滤波算法
FPGA学习笔记图像处理算法1. 中值滤波算法 1.1 原理 1.2 FPGA实现中值滤波算法1. 中值滤波算法1.1 原理将每一像素点的灰度值设置为该点的某领域窗口内的所有像素点灰度值的中值。特点:有效抑制噪声,保护图像边缘信息,是经典的平滑噪声方法,可用作处理RGB图像格式。方法:将数据按大小排序,然后根据有序的数字序列找中值,排序算法:冒泡排序,二等分排序等软件算法,适合硬件的排序算法比较少。分别对三行像素进行排序分别对三行像素中的3个最大,3个中间,3个最小
2021-02-08 23:03:50
3516
6
原创 AMBA_AXI Protocol_基本读写事务
AXI4和AXI5写事务依赖中描述的附加依赖关系意味着,接受所有写数据并在接受地址之前提供写响应的AXI3从机与AXI4或AXI5不兼容。从机还必须在置位BVALID之前等待置位WLAST。注意,主机可以依赖于按顺序从使用相同ID的事务返回的读取数据,因此主机只需要足够的存储空间来读取来自不同ID的事务的数据。- 接收信息的AXI接口可以等待,直到它检测到一个VALID信号,然后才置位其相应的READY信号。当VALID被置位时,它必须保持,直到VALID和READY都被置位时,在上升时钟边缘,握手发生。
2023-08-30 11:30:52
291
原创 AMBA_AXI Protocol_Introduction
信息源(information source)使用VALID信号指示通道中的valid address,data,或者control information是可使用的;Read data通道和write data通道都包含LAST信号指示一次transaction的最后一个数据项的传输。这个特性意味着一个register slice可以在任何一个通道的任何一个节点插入,代价是额外的延迟周期。5个通道中的任意一个通道都由一系列的信息信号集,还有提供双向握手机制的VALID和READY信号组成。
2023-08-25 11:14:56
332
原创 AMBA_AXI Protocol_Burst Address
对于WRAP突发,Wrap_Boundary变量定义了WRAP边界: Wrap_Boundary = (INT(Start_Address / (Number_Bytes × Burst_Length)))× (Number_Bytes × Burst_Length)对于INCR突发和地址没有wrapped的WRAP突发,在突发中第一次传输之后的任何传输的地址: Address_N = Aligned_Address + (N – 1) × Number_Bytes。
2023-08-22 17:54:11
290
原创 AMBA_AXI Protocol_Transaction Identifiers
在将RID值传递给正确的主机端口之前,互连器会删除RID标识符的这些位。对于写响应:互连器使用BID标识符的附加位来确定写响应的目的地是哪个主机端口。当主机连接到互连器时,互连器向ARID、AWID和WID标识符附加额外的位,这对主机端口来说是唯一的标识符。互连必须确保主机按照发出的地址的顺序,接收来自不同的从机,但是具有相同的ARID值的事务序列的读取数据。从机必须确保任何返回数据的RID值与它正在响应的地址的ARID值匹配。结合来自不同主机的写事务的互连必须确保它按照地址顺序转发写数据。
2023-08-22 14:03:31
205
原创 LINUX学习笔记_GIT操作命令
git pull[远端名称][分支名称]:拉取指令,将远端仓库的修改拉倒本地并自动进行合并,等同于fetch+merge。git fetch [远端名称][分支名称]:抓取命令,将仓库里的更新都抓取到本地,不会进行合并,如果不指定远端名称和分支名称,则抓取所有分支。如果当前分支已经和远端分支关联,则可以省略分支名和远端名;git push [-f][–set-upstream][远端名称[本地分支名][远端分支名]]如果远程分支名与本地分支名相同,则可以只写本地分支;git remote:查看远端仓库。
2023-08-15 15:45:04
392
原创 ARM CORETEX M0简介
R13:堆栈指针SP,M0不同的物理位置上存在两个栈指针,主栈指针MSP,进程栈指针PSP。在处理模式上,只能使用MSP,在线程模式下,通过CONTROL寄存器控制使用哪种指针,系统上电默认MSP;处理模式(handler mode):当处理器发生了异常或者中断,则进入处理模式进行处理,处理完成后返回线程模式。异常:由cpu自己产生,reset,hardfault,SVcall,pendsv,systick。NVIC:嵌套向量中断控制器,帮助cpu处理外部的中断请求,max32个中断,4级中断优先级。
2023-07-09 14:03:30
1444
原创 同步FIFO的设计
数字IC设计学习笔记同步FIFO的设计1. 同步FIFO的设计同步FIFO的设计问题描述基于RAM设计同步FIFORAM宽度8bit,RAM深度512,ADDR位宽:2^9=512Verilog代码方法1: 用长度(fifo深度)计数器fcnt,执行一次写操作,fcnt加1,执行一次读操作,fcnt减1. 写满:fcnt=fifodeapth; 空:fcnt=0&& !en_r)|(factor=1&&en_r);module fifo
2022-03-20 20:50:00
1078
1
原创 RAM设计
数字IC设计学习笔记序列检测1. RAM设计RAM设计问题描述设计实现一个512*8的双端口RAMRAM宽度8bit,RAM深度512,ADDR位宽:2^9=512Verilog代码module ram_dual( clk_r, clk_w, en_r, en_w, addr_r, addr_w. data_r, data_w); parameter DLY = 1; parameter RAM_WIDTH = 8; parameter RAM_DEP
2022-03-20 15:00:00
2355
原创 基于状态机(FSM)的序列检测
数字IC设计学习笔记序列检测1. 基于状态机(FSM)的序列检测1. 基于状态机(FSM)的序列检测)状态转移图序列检测:1110010Verilog代码module det_seq( input clk, input rst, input in, output wire out, output wire [2:0] state); parameter s0=3'd0; parameter s1=3'd1
2022-03-19 23:02:05
1072
1
原创 数字IC验证学习笔记_APB
数字IC验证学习笔记APB总线1. AHB总线测试激励1. APB总线测试激励1.1 写操作Verilog代码task write_oper(addr_t address,data_t data_w); @(posedge apb_bus.clk); apb_bus.sel = 1; apb_bus.write = 1; apb_bus.wdata = data_w;
2022-03-19 12:38:05
853
原创 数字IC验证学习笔记_AHB总线
数字IC验证学习笔记AHB总线1. AHB总线测试用例(TestCase)2. AHB总线测试平台(TestBench)1. AHB总线测试用例(TestCase)1.1 写操作Verilog代码task ahb_write(input [31:0] addr, input [31:0] wdata);begins @(posedge hclk); #1; hsize = 2'b10; htrans = NONSEQ; hwrite = 1; hsel = 1; h
2022-03-19 12:28:21
2192
原创 Makefile 脚本运行VCS仿真
LINUX学习笔记Makefile 脚本运行VCS仿真1. 文件2. Makefile 脚本3. 命令1. 文件tb.list: tesetbech文件目录rtl.list:rtl代码文件目录tc_teset.v: 测试用例代码2. Makefile 脚本 TC= COV_OPTION = -cm line+cond+fsm+tgl+branch COV_OPTION += -cm_dir ${TC}_cov copy_case: cp -rf ../
2022-03-15 18:34:36
2633
原创 Cadence IRUN仿真编译选项
IRUN仿真编译选项1. 仿真编译选项 -64bit Invoke 64bit version -a_ext <ext> Override extensions for archive files -abv2copt Enable optimization on 2 cycle assertions -abvcoveron Enable cover
2022-01-08 16:23:58
17178
4
原创 Synopsys VCS仿真编译选项
VCS仿真编译选项1. 扩展选项2. 自带编译选项1. 扩展选项+vcs+line+wait:一直等待license。+maxdelays/+mindelays:使用SDF文件中最大延时/最小延时,maxdelay直接影响建立关系,mindelay直接影响保持关系。+nbaopt:删除非阻塞赋值语句中的延时。+neg_tchk:使能时序检查中的负延时。+nospecify:屏蔽路径延时和时序检查。+notimingcheck:不进行时序检查。+prof:在vcs仿真过程中生成vcs.
2022-01-07 16:37:53
6625
原创 MCU学习笔记_通信接口简介
MCU学习笔记通信接口简介1. 通信接口2. 串行通信1. 通信接口处理器与外部设备通信的方式并行通信传输原理:数据各个位同时传输优点:速度快缺点:占用引脚资源多串行通信传输原理:数据按位顺序传输优点:占用引脚资源少缺点:速度相对较慢2. 串行通信分类单工:只支持数据在一个方向上传输半双工:允许两个方向传输,但同一时刻,只允许数据在一个方向上传输全双工:同一时刻允许数据在两个方向上传输,要求发送端与接收端都有独立的接收和发送能力通信方式同步通信:带
2021-05-13 17:33:40
2218
原创 芯片设计知识_芯片设计中工艺文件
芯片设计知识芯片设计中工艺文件1. 工艺库文件简介1. 工艺库文件简介完整工艺库文件主要组成为:1、模拟仿真工艺库,主要以支持spectre和hspice这两个软件为主,后缀名为.scs——spectre使用,.lib——hspice使用。2、模拟版图库文件,主要是给cadence版图绘制软件用,后缀名为.tf,.drf。3、数字综合库,主要包含时序库,基础网表组件等相关综合及时序分析所需要用到的库文件。主要是用于DC软件综合,PT软件时序分析用。4、数字版图库,主要是给cadence
2021-05-10 11:57:17
2172
1
原创 MCU学习笔记_哈佛结构和冯. 诺伊曼结构
MCU学习笔记哈佛结构和冯. 诺伊曼结构1. 哈佛结构2. 冯. 诺伊曼结构微控制器(Microcontroller)根据存储器结构可分为哈佛结构(Harvard) 和冯. 诺伊曼(Von Neumann) 结构;1. 哈佛结构将程序指令存储和数据存储分开的存储器结构中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一 步的操作( 通常是执行)。可以使指令和数据有不同的数据宽度2. 冯. 诺伊曼结构也称普林斯顿结构,是一
2021-05-08 14:06:40
1104
原创 MCU学习笔记_WWDG窗口看门狗
MCU学习笔记WWDG窗口看门狗1. WWDG窗口看门狗概述2. 寄存器和HAL库函数配置3. 实例1. IWDG独立看门狗概述用于检测由外部干扰或不可预见的逻辑条件件造成的应用程序背离正常的运行序列而产生的软件故障。喂狗时间有上下限的范围。下限固定,通过设定相关的寄存器,设定上限时间。喂狗的时间不能过早也不能过晚。时钟来源于APB1总线时钟,经过预分频器产生时钟给递减计数器。看门狗复位:喂狗的时候,计数器的值 > 设定值W[6:0]计数器的数值从0x40减
2021-04-28 16:53:10
428
原创 MCU学习笔记_IWDG独立看门狗
MCU学习笔记IWDG独立看门狗1. IWDG独立看门狗概述2. 寄存器和HAL库函数配置3. 实例1. IWDG独立看门狗概述看门狗,watchdog,用于检测单片机程序运行状态的模块或者芯片。行为:在启动正常运行时,系统不能复位;在程序异常执行时,系统复位,程序重新执行。STM32内置两个看门狗:独立看门狗IWDG,窗口看门狗独立看门狗IWDG:由专用的低速时钟(LSI)驱动,即使主时钟发生故障,它仍然有效。适合应用于需要看门狗作为一个主程序之外能够完全独立工作,并且对时
2021-04-27 16:18:10
1362
原创 MCU学习笔记_STM32低功耗模式概述
MCU学习笔记电源管理系统1. STM32低功耗模式概述2. 寄存器和库函数配置3. HAL库配置PVD实例1. STM32低功耗模式概述系统或电源复位后,微控制器处于运行状态,HCLK位CPU提供时钟,内核执行代码。当CPU不需要继续运行时,乐意利用多种低功耗模式来节省功耗。3种低功耗模式:睡眠模式:内核停止 ,外设如NVIC,系统时钟Systick仍然运行停止模式:所有时钟都停止。1.2/1.8V内核电源工作。PLL, HIS 和HSE RC振荡器功能禁止。寄存器和SRAM内
2021-04-26 17:27:49
1521
4
原创 MCU学习笔记_PWR电源管理系统
MCU学习笔记电源管理系统1. STM32电源监控器概述2. STM32电源3. HAL库配置PVD实例1. STM32电源监控器概述原因保持系统正常运行实现特定条件下的低功耗模式上电复位(POR)/掉电复位(PDR)当VDD/VDDA低于指定阈值VPDR/VPOR时,器件无需外部复位,便会保持复位状态。VPDR/VPOR针对于芯片基本上是固定的。VDD: 0~VPOR(典型值1.72V):上电复位VDD持续上升时间:正常运行状态:下降至VPDR:掉电复位欠压
2021-04-26 15:37:00
5074
2
原创 MCU学习笔记_外部中断/事件控制器
MCU学习笔记外部中断/事件控制器1. IO口外部中断原理概述2. IO口外部中断HAL库配置方法3. IO口外部中断HAL库配置例子1. IO口外部中断原理概述STM32控制器支持的外部中断/事件请求IO口外部中断STM32每个IO口都可以作为外部中断输入每个外部中断线可以独立的配置触发方式(上升沿,下降沿,双边沿触发),触发/屏蔽,专用的状态位。STM32供IO使用的中断线只有16个,但STM32F系列的IO口多达上百个GPIO和中断线映射的关系M3/M7:配置寄存器SYS
2021-04-25 16:39:53
1619
1
原创 MCU学习笔记_DMA原理
MCU学习笔记DMA原理1. DMA原理2. DMA相关概念3. DMA数据流配置过程4. HAL库配置DMA1. DMA原理DMA, Direct Memory Access, 即直接存储器访问。无需CPU直接控制,通过硬件为RAM和IO设备开辟一条直接数据传输通道,将数据直接从一个地址空间复制到另一个地址空间,传输动作本身由DMA控制器实现。作用:为CPU减负,提升CPU效率STM32F4/F7: 2个DMA控制器,16个数据流。每个DMA控制器都用于管理一个或者多个外设
2021-04-23 16:13:28
3161
1
原创 MCU学习笔记_IO引脚复用和映射
MCU学习笔记IO引脚复用和映射1. 端口复用2. 端口复用配置过程1. 端口复用STM32有很多内置外设,外设的外部引脚都是与GPIO复用的。即,一个GPIO,如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用时,就叫做复用。STM32的端口复用映射原理STM32系列MCU的IO引脚通过一个复用器连接到内置外设或模块。复用器一次只允许一个外设的复用功能(AF)连接到对应的IO口。这样确保同一个IO引脚的外设之间不会发生冲突。端口复用映射示意图由AFRL[3
2021-04-22 19:17:20
4052
3
原创 MCU学习笔记_STM32 中断优先级管理NVIC
MCU学习笔记STM32 中断优先级管理NVIC1. NVIC 中断优先级分组2. NVIC 中断优先级设置3. NVIC 总结1. NVIC 中断优先级分组ARM CM4/CM7内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置;STM32并没有使用内核中全部内容,只使用了一部分。STM32F40xx/STM32F41xx总共有92个中断。10个内核中断,82个可屏蔽中断。STM32F42xx/STM32F43xx总共有97个中断。1
2021-04-22 18:03:34
604
原创 MCU学习笔记_STM32 Systick定时器工作原理
MCU学习笔记Systick定时器工作原理1. STM32 Systick定时器基础2. STM32 Systick定时器相关寄存器库函数1. STM32 Systick定时器基础Systick定时器, 系统滴答定时器,24位的倒计数定时器,计数到0时,将从RELOAD寄存器中自动重装载定时初值。只要不在SysTick控制及状态寄存器中的使能位清零,就永不停息,及时在睡眠模式也能工作。Systick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。其中断优先级也可以设置。
2021-04-22 17:08:05
1120
原创 MCU学习笔记_GPIO工作原理
MCU学习笔记STM32时钟1. STM32 GPIO基础知识2. STM32 GPIO工作模式3. STM32 GPIO寄存器1. STM32 GPIO基础知识GPIO, General purpose input output, 通用输入输出端,可通过程序软件配置成输入或者输出端。引脚与GPIO的区别和联系STM32的引脚中,有部分是做GPIO使用,其他部分是电源引脚/复位引脚/启动模式引脚/晶振引脚/调试下载等功能的引脚。例如:STM32FXXXIGT6:140个IO口 =
2021-04-20 17:41:12
3065
2
原创 LINUX学习笔记_SVN操作平台
LINUX学习笔记SVN操作平台1. SVN操作流程2. Server服务器端软件安装3. Server服务器端配置4. Client客户端软件安装与使用.5. 使用client客户端软件连接server服务器SVN, subversion,版本控制软件;特点:操作简单,入门容易;支持跨平台操作(windows,linux, macos);支持版本回退功能;获取:C/S结构软件(client客户端/server服务器端)Server:visualsvn , http://www.vi
2021-04-20 11:32:32
140
原创 MCU学习笔记_STM32时钟
MCU学习笔记STM32时钟1. STM32时钟类型2. 从程序的角度配置时钟1. STM32时钟类型5个时钟源:HSI, HSE, LSI, LSE, PLLHSI,高速内部时钟,RC振荡器,频率为16MHz,精度不高。可以直接作为系统时钟或者作PLL时钟输入。HSE,高速外部时钟,可接石英/陶瓷晶振(OSC),或者接外部时钟源,频率范围4MHz~26MHz。可以分频后作为RTC的一个时钟源;也可作为系统时钟源。LSI,低速内部时钟,RC振荡器,频率为32KHz,提供低功耗时钟。主要提
2021-04-19 19:00:06
849
原创 MCU学习笔记_C语言基础
MCU学习笔记C语言基础1. 位操作2. define宏定义关键词3. ifdef /ifndef 条件编译4. extern变量声明5. typedef 类型别名6. 结构体7. static关键词8. __weak弱函数1. 位操作6种位操作运算符“&”:按位与;“|”:按位或;两个操作位,只要有一个为1,结果就为1;“^”:按位异或;两个操作位不同时,结果为1;“~”:取反;“<<”:左移;“>>”:右移;2. defin
2021-04-18 16:50:33
1718
6
原创 LINUX学习笔记_Shell脚本_条件判断
LINUX学习笔记字符处理命令1. 正则表达式与通配符2. 基础正则表达式3. 支持正则表达式的命令1. 排序命令sort命令格式:sort[选项]文件名选项:-f: 忽略大小写-n:以数值型进行排序,默认使用字符串型排序-r: 反向排序-t: 指定分隔符,默认的分隔符是制表符;sort -t “:”-k n[,m]: 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)可以搭配管道符使用例子:2. 统计命令wc命令格式:wc [选项] 文件名
2021-04-12 13:44:24
186
原创 LINUX学习笔记_Shell脚本_正则表达式
LINUX学习笔记Shell脚本_正则表达式1. 正则表达式与通配符2. 基础正则表达式3. 支持正则表达式的命令1. 正则表达式与通配符正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep, awk, sed等命令可以支持正则表达式通配符(*:匹配任意字符, ?:匹配任意一个字符, [ ]:匹配中括号中指定的任意一个字符)用来匹配符合条件的文件名,通配符是完全匹配。Ls, find, cp 这些命令不支持正则表达式,所以只能使用shell自己的通配符进行匹配。2.
2021-04-07 23:18:56
273
原创 LINUX学习笔记_Shell脚本_字符处理命令
LINUX学习笔记Shell脚本_字符处理命令1. 排序命令sort2. 统计命令wc1. 环境变量配置文件简介命令格式:sort[选项]文件名选项:-f: 忽略大小写-n:以数值型进行排序,默认使用字符串型排序-r: 反向排序-t: 指定分隔符,默认的分隔符是制表符;sort -t “:”-k n[,m]: 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)可以搭配管道符使用例子:2. 统计命令wc命令格式:wc [选项] 文件名
2021-04-07 22:53:11
140
原创 LINUX学习笔记_Shell脚本_环境变量配置文件
LINUX学习笔记Shell脚本_环境变量配置文件1. 环境变量配置文件简介2. 环境变量配置文件作用3. 其他配置文件和登陆信息1. 环境变量配置文件简介Source命令强制性让当前的配置文件生效,不需要注销或者重新登陆命令格式:source空格 配置文件 或者是 .空格 配置文件环境变量配置文件简介环境变量配置文件中主要是定义对系统的操作环境生效的系统默认环境变量,如PATH, HISTSIZE, PSI, HOSTNAME等默认环境变量。环境变量配置文件类型/et
2021-04-05 21:22:04
231
原创 LINUX学习笔记_Shell脚本_Bash的运算符
LINUX学习笔记Shell脚本_Bash的运算符1. 数值运算与运算符2. 变量测试与内容替换1. 数值运算与运算符① Declare声明变量类型命令格式:declare [+/-][选项] 变量名选项:-:给变量设定类型属性+:取消变量的类型属性-i:将变量声明为整数型(integer)-x: 将变量声明为环境变量-p:显示指定变量的被声明的类型② 数值运算方法一: declare方法二:expr 或 let 数值运算工具方法三:“((运算
2021-04-05 21:08:58
206
原创 LINUX学习笔记_Shell脚本_Bash的变量
LINUX学习笔记Shell脚本_Bash的变量1. Bash的变量含义2. 变量设置规则3. 变量分类1. Bash的变量含义变量计算机内存的单元,其中存放的值可以改变。当shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。使用变量可以保存有用的信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。2. 变量设置规则变量名称可以由字母,数字,下划线组成,但是不能以数字开头。在Bash中,变量的默认类
2021-04-05 18:12:56
181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人