自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WKH

  • 博客(59)
  • 收藏
  • 关注

原创 FPGA 之 xilinx DDS IP相位控制字及频率控制字浅析

DDS

2023-08-12 19:47:02 1225 1

原创 FPGA 之 时序分析

FPGA 之 时序分析

2022-09-14 23:07:48 3489 2

原创 FPGA 之 设计实现过程

FPGA设计实现过程

2022-09-10 14:09:29 935

原创 FPGA 之 时钟,时钟域, 以及复位系统的设计

FPGA 之 时钟,时钟域, 以及复位系统的设计

2022-09-08 20:31:53 2290 1

原创 Verilog 之并行,串行,数据类型,操作符号等相关基础归纳

Verilog 之并行,串行,数据类型,操作符号等相关基础归纳

2022-09-04 19:07:06 2655

原创 zynq-7000 vivado之address editor的使用

vivado SoC

2022-06-12 22:30:31 7569 1

原创 zynq7000 中断原理分析及IO中断解析

Zynq 7000 中断分析文章目录Zynq 7000 中断分析GIC及中断机理Crotex-A9常用汇编指令Zynq中断控制GPIO中断控制单IP双通道单IP多位双IP中断源GIC及中断机理Crotex-A9常用汇编指令类型指令描述备注内部数据传输指令MOV R0 R1R1 2 R0#0xFF:立即数:MOV R0, #0xFF内部数据传输指令MRS R0,SRSR 2 R0读特殊寄存器: MRS R0, CRSR内部数据传输指令MSR SR

2022-04-13 20:42:08 1553

原创 Zynq7000 USB2.0协议解析及USB控制器详解

USB 2.0规范及控制器文章目录USB 2.0规范及控制器USB2.0Univerasl Serial BusUSBHostUSB总线接口标准总线信号USB拓扑结构数据流模型数据编解码和位填充USB逻辑部件USB时间基准USB 描述符USB设备USB设备供电方式USB设备分层USB设备插入检测机制USB设备状态USB总线枚举USB传输传输类型包(Packet)事务(transaction)传输(transfer)传输种类传输机制Zynq USB DeviceHardware System系统接口控制器结

2022-04-05 22:21:22 7351 1

原创 Verilog 之《设计与验证VerilogHDL》- 同步设计原则, 多时钟处理

1.异步时序设计\同步时序设计异步电路特点电路的核心是核心逻辑用组合逻辑实现电路的主要信号,输出信号等不依赖于任何一个时钟信号,不是由时钟信号驱动触发器(FF)发生异步时序电路最大的缺点是容易产生毛刺不利于器件移植不利于静态时序分析(STA),和验证设计时序性能同步时序电路特点电路的核心逻辑用各类触发器实现电路主要信号, 输出信号由时钟边沿驱动触发器发生,同步时序电路可以较好的避免毛刺有利于器件移植,STA,验证设计时序性能同步设计原则:使用时钟边沿触发所有操作数据

2021-09-04 17:42:23 755

原创 Verilog 之《设计与验证VerilogHDL》- RTL级建模

1. 阻塞赋值 \ 非阻塞赋值 \ 连续赋值对于时序逻辑,即always 模块的敏感列表为沿敏感信号 (时钟或者复位的上下沿),统一使用非阻塞赋值 “<=”对于always模块的敏感列表为电平信号的组合逻辑,统一使用阻塞赋值 “=”对于assign关键字描述的组合逻辑 (通常为连续赋值语句) ,统一使用 “=” ,变量定义为 wire 型变量注:在后两项中使用 “=” 主要原因在于避免产生组合逻辑环, 其会导致在时序路径无法被工具分析从而使不同批次器件逻辑功能发生一定概率的错误2. 寄

2021-08-02 22:26:09 1040

原创 Zynq-7000 AMP运行模式下的软件切换及多版本固化运行

Zynq平台AMP运行模式下的软件切换及多版本固化运行1. Zynq双裸核AMP运行环境构建 11.1 Zynq架构概要 11.2 Zynq启动与配置 21.2.1 启动流程概述 31.2.2 PS硬件启动阶段 31.2.3 PS软件启动阶段 41.2.4 启动文件构成 41.2.5 启动模式 41.2.6 BootROM的执行 51.2.7 FSBL或用户代码执行 51.2.8 PL启动处理 61.2.9 PL配置路径 61.2.10

2021-05-24 22:25:18 4387

原创 Zynq-7000基于zynq平台裸跑LWIP协议栈的详解(万字长文)

1. LWIP协议栈·· 11.1 LWIP库·· 21.2 LwIP原理分析·· 31.2.1 动态内存管理·· 31.2.2 数据包pbuf 41.2.3 网络接口·· 71.3 PS的千兆以太网控制器·· 72. 硬件部署·· 92.1 Ethernet硬件设计·· 92.2 Vivado工程创建·· 103. 软件设计·· 133.1 LwIP echo Server 133.2 Ethernet Server构建·· 153.2.1 系统平台·· 153.2.2 TCP

2020-12-13 17:59:47 13244 1

原创 Zynq-7000 PS重配置PL

环境搭建Zynq-7000的结构分为PS(ARM)和PL(FPGA),当然也可以理解为PL作为一种外设挂载在PS端。在正常的系统加载顺序(FALSH \ SD -> FSBL -> PL ->BITSTRAM ->PS ELF)完成后重新配置PL程序,可以利用XLINX官方BSP逻辑xdecfg_polled_example的Demo例程实现PS配置PL比特流,将指定DDR空间的数据配置到FPGA。具体的平台启动方式如图1-1。1.1 Vivado工程创建选择create .

2020-09-24 20:49:10 8109 23

原创 Zynq-7000 SoC内为PL分配的信号

2020-09-20 21:32:15 191

原创 Zynq-7000 AXI总线接口和协议

amba_axi4.pdf,本文图片来源Zynq支持三种AXI总线,拥有三种AXI接口。AXI4:(For high-performance memory-mapped reqirements)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输。AXI4_Lite:(For simple,low-throughput memory-mapped communicatin)是一个轻量级的地址映射单次传输接口,占用很少的逻辑单元。AXI4_Stream:(For hi

2020-09-13 21:13:35 808

原创 Zynq-7000 启动与配置

对网络上的描述进行总结学习:(需要继续补充)

2020-09-13 19:16:20 484

原创 Zynq-7000 信号,接口,引脚

· 引脚供电PS和PL供电相互独立,但是PS供电必须在PL之前PS-PL MIO-EMIO 信号和接口MIO 是I\O外设连接的基础。但是MIO引脚个数只有54个。通过配置可将I\O信号连接到MIO引脚, 通过EMIO接口, 也可将PS内的I\O外设连接到PL中(包含PL器件引脚)。允许PS内的I\O外设控制器与PL内的用户定制逻辑连接,这样可以访问更多的器件引脚(PL引脚)。I\O控制器的I\O多路复用信号是不同的,即一些IO端口信号只能使用MIO引脚,而不能使用EMIO,即这部分的I.

2020-09-13 19:11:09 2453

原创 Zynq-7000 SoC内的互联结构

互联结构实现 Zynq-7000 SOC内PS内各个模块的连接, 以及PS和PL的连接.基于AXI高性能数据通路的PS互联在PS内用于连接各个模块主要包含 OCM互联单元和中央互联单元OCM 互联central Interconnect和PL的访问, 提供256KB SRAM的OCM访问CPU和ACP接口,通过SCU访问OCM时,有最低的延迟中央互联中央互联为64位宽度,通过其可以将IO端口和DMA控制器连接到DDR存储器控制器和OCM,此外,可以连接到用于互联PL逻辑的AXI_.

2020-09-13 18:40:33 682

原创 Linux文件系统

Linux目录结构目录存放内容/bin存放Linux常用命令的执行文件 , 例如mv\ls 等/boot存放操作系统启动是所要用到的程序./etc存放系统管理时要用到的各种配置文件和子目录, 如网络配置文件, 文件系统, 设备配置信息, 设置用户信息. 系统启动过程中需要读取相应参数进行配置/etc/rc.d存放Linux启动和关闭时要用到的脚本文件/etc/rc.d/init存放所有Linux服务默认的启动脚本.(/etc/xinetd.d也可能会用

2020-09-06 14:04:57 182

原创 红黑树定义和插入

红黑树的性质首先红黑树确保没有一条路径回避其他路径长出两倍,由此红黑树是接近平衡的红黑树有以下性质:每个节点不是红色就是黑色如果一个节点是红色的,则它的两个孩子节点是黑色的如果一个节点是红色的,则他的两个孩子节点是黑色的对于每个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数据的黑色节点每个叶子节点都是黑色的(此处叶子结点为空节点)红黑树节点的定义// 节点的颜色...

2020-09-06 13:56:58 102

原创 Zynq-7000 SoC处理系统PS的构成

Zynq-7000 SoC处理系统PS的构成应用处理器单元 (APU) 应用处理单元高性能特性,兼容ARM处理器 即:存储器单元DDR控制器Quad-SPI控制器静态存储器控制器I/O外设两个三模式以太网控制器两个USB控制器两个SD\SDIO控制器两个SPI控制器两个CAN控制器两个UART控制器两个IIC控制器总共54个PS一侧的MIO引脚应用处理器单元 (APU) 应用处理单元高性能特性,兼容ARM处理器 即:双核ARM Cortex-a9多核处理器 (ARM V7).实时运行选项. 允许单

2020-09-06 13:40:11 1177

原创 线程,进程,线程池

进程进程用户角度 : 正在运行的程序操作系统角度 :进程就是操作系统对于运行中程序的描述信息 - 进程描述符 - 统称PCB多进程在于同一时间进程多任务并行进行。此时关口在于并行进程数量一般都比CPU数量多,这就需要并发,常见的为时间片轮转算法,即所有正在运行的进程轮流使用CPU,每个进程允许占用的CPU的时间很短,不同进程进行切换,同一时间有且仅有一个进程占用CPU线程在Linux下...

2019-10-06 19:07:54 200

原创 MySQL增删查改操作

CRUD : Create ; Retrieve ; Update ; Delete

2019-09-13 14:37:25 121

原创 表的约束null/not null ; default ; comment ; zerofill ; primary key ; auto_increment ; unique key

真正约束字段的是数据类型,为保证数据合法性,需要添加额外约束: null/not null ; default ; comment ; zerofill ; primary key ; auto_increment ; unique key空属性两个值 : null / not null数据库默认字段通常是字段为空,但是在应用过程过程中尽量保证字段不为空,因为数据为空没有办法参与运算默...

2019-09-05 15:29:59 1485

原创 MySQL 数据类型

数据类型分类分类数据类型说明数值类型bit(M)位类型,M为指定位数,默认为1,范围1-64数值类型tinyint [unsigned]带符号范围-128 ~ 127,无符号的0~255.默认有符号数值类型smallint [unsigned]带符号是 -2^15 次方 ~ 2^15 -1 ,无符号是2^16 - 1数值类型bool使用0 ...

2019-09-02 14:03:36 186

原创 MySQL数据库 库操作, 表操作

基本使用Windows下安装MySQL5.7CentOS 7 通过 yum 安装 MariaDBCentos 6.5下编译安装MySQL 5.6.14连接服务器mysql -h 127.0.0.1 -P 3306(默认链接3306端口) -u root查看数据库连接情况show processlist数据库之间的切换如果知道目标库名称可直接使用 : use XX;以hel...

2019-09-01 10:49:26 257

原创 linux常用命令(续)

1.Linux下查看中断cat /proc/interrupts2.du命令可以显示目前的目录所占的磁盘空间 hdparm命令可以查看硬盘信息3.每天开机在/misc目录下创建一个当天日期的文件夹echo “mkdir /misc/date +%Y%m%d” >> /etc/rc.d/rc.local4.将光盘/dev/hdc卸载的命令umount /mnt/cdrom /...

2019-08-27 10:19:16 264

原创 unordered_map,哈希结构

C++11中新增4个unordered系列关联式容器unordered_map说明unordered_map存储<key, value>键值对的关联式容器,其允许通过keys快速的索引到与其对应的value.在unordered_map中,键值通常作为唯一标识元素,而映射值只是一个对象,其内容与此键关联,键和映射值的类型可能不同unoedered_map并没有对<key...

2019-08-24 16:23:24 2702

原创 C\C++内存管理new/malloc/calloc/realloc

首先,C\C++中程序内存区域划分如下图:1.栈即堆栈, 非静态局部变量/函数参数/返回值存放,向下增长2.内存映射段是高效的I/O映射方式,用于转载一个共享的动态内存库,可以使用系统接口创建共享内存,做进程间通讯3.堆用于程序运行时的动内存分配,向上增长4.数据段 : 存储全局数据和静态数据5.代码段可执行代码/只读常量C语言动态内存管理(malloc/calloc/realloc...

2019-08-22 18:37:35 288

原创 AVL树的插入,旋转,性能

AVL树向二叉搜索树中插入新节点后,保证每个节点的左右子树高度差的绝对值不超过1(对树中的节点进行调整),降低树的高度,减少平均搜索长度AVL树具有以下特点:左右子树都是AVL树左右子树高度只差(平衡因子)的绝对值不超过1(1/0/-1)如果一颗二叉搜索树是高度平衡的,就是AVL树,如果其存在n个结点,其高度可保持在O(log N),搜索时时间复杂度(O (longN))AVL树结...

2019-08-21 15:58:28 822 2

原创 二叉搜索树

map/multimap/set/multiset的底层都是按照二叉搜索树来实现的二叉搜索树即二叉排序树,为空树或者满足下列性质:若左子树不为空,则左子树的所有节点值小于跟的值若右子树不为空,则右子树上所有节点的值大于根节点的值左右子树也分别为二叉搜索树二叉搜索树的查找二叉搜索树的插入二叉搜索树的删除先查找元素是否在二叉搜索树种,不存在返回,否则:1.要删除的节点无孩...

2019-08-20 21:51:51 378

原创 C++STL树形关联式容器之set

set基本概念std::setset是按照一定次序存储元素的容器在set内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序set元素的value即为元素的标识(value就是key,类型时T),每个value必须唯一,set中的元素不能再容器中修改(元素总是const) ,但是可以从容器中插入删除set通过key访问单个元素的速度比unordere...

2019-08-19 17:12:20 380

原创 C++STL树形关联式容器之map

STL(standard template libaray-标准模板库)STL的6大组件序列式容器底层为线性序列,存储的是元素自身vector , list, deque, forward_lsit(C++11)…关联式容器与序列式不同的是其在内部存储的为**<key, value>**结构的键值对,在检索数据时效率更高键值对用来表示一对一对应关系的结构,只包含两...

2019-08-19 11:02:33 351

原创 C++智能指针

智能指针的使用和原理RAIIRAII(resource acquisition is initaliation) 是一种利用对象生命周期来控制程序资源( 内存,文件句柄,网络连接, 互斥量等) 的技术在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后在对象析构的时候释放资源.实际上是把管理资源的任务给给一个对象,此时就可以:不需要显式的释放资源采取这种方...

2019-08-18 14:29:30 145

原创 C++多态

多态即是当不同的对象完成时产生不同的状态多态的构成条件多态是在不同继承关系的类对象,去调用同一函数产生不同行为构成多态同时要满足:必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,同时派生类中必须对虚函数进行重写虚函数虚函数 : 被virtual修饰的类成员函数称为虚函数虚函数的重写(覆盖) : 派生类中有一个和积累中完全相同的虚函数(返回值类型,函数名字,参数列...

2019-08-16 22:24:14 192

原创 C++的继承

继承class Person;{public: void Print() { cout<< "name: " << _name <<endl; cout<< "name: " << _name <<endl; }}

2019-08-16 16:41:26 167

原创 C++模板

tmplete<class T>bool isEqual(T& left, T& right){ return left == right;}//函数模板特化tmplete<>bool isEqual<char*>(char*& left,char*& right){ if(isEqual(left, righ...

2019-08-11 12:27:22 136

原创 iterator失效小结

序列式容器(如: vector deque)数组型数据结构vtctor的iterator失效:erase删除pos位置的数据,导致pos迭代器失效删除pos位置的数据,导致pos迭代器失效造成非法访问insert在pos位置插入数据,导致pos迭代器失效insert可能会导致增容,增容后pos还是指向原来的空间,而原来的空间已经释放了.导致非法访问.链表式数据结构listlist底...

2019-08-10 15:24:43 373

原创 string,vector,list,stack,queue,deque主要内容总结与横向比较

stringstring类对象的常见构造constructor(函数名称)功能string( )构造空的string类对象,即空字符串string( const char* s)用C-string 来构造string类对象string( size_t n,char c)string类对象中包含 n 个字符cstring( cosnt string&a...

2019-08-10 11:20:44 307

原创 锁的种类和应用(部分)

互斥锁自旋锁循环判断条件是否满足,反应及时,但是CPU消耗较高,适用于阻塞时间很短的等待读写锁读写锁默认读优先使用读者写者模型 – 写互斥 , 读共享写的时候, 别人既不能读,也不能写读的时候可以一起读,但是不能写若当前已经加写锁,则其他线程加写锁 / 读锁都会被阻塞若当前已经加读锁,则其他线程可以继续加读锁,但是加写锁会阻塞读写锁的阻塞使用自旋锁实现可重入锁偏向锁...

2019-07-29 22:40:50 223

空空如也

空空如也

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

TA关注的人

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