自定义博客皮肤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)
  • 资源 (3)
  • 收藏
  • 关注

原创 vivado进行IP核移植(复制)

要想在一个工程中设置好的IP核移植到另一个工程中,只需要将xci文件添加即可。步骤如下:1、add source2、add file注意第一个不能勾选,不然会和第二个冲突。3、选择文件对应IP核的xci文件即可。...

2021-12-16 21:06:01 13652 2

原创 时钟门控技术-clock gating

目录1、时钟门控技术简介2、门控单元结构图3、时钟门控的生成 1、时钟门控技术简介降低动态功耗的主要技术手段之一是时钟门控技术,clock gating技术,是指在电路中插入时钟门控单元,在电路不需要工作的时候控制时钟关闭,降低所有不工作电路的翻转次数,降低动态功耗。2、门控单元结构图3、时钟门控的生成时钟门控单元时由综合工具自动生成的,能根据RTL代码风格自动生成,但需要按固定的写法才能生成门控单元...

2021-10-06 19:16:27 4602 1

原创 浅谈低功耗设计

目录一、低功耗设计简介二、功耗的组成三、各抽象层次降低功耗四、常见的低功耗技术1、power gating 电源门控技术2、多电压供电技术3、多阈值电压技术4、clock gating 门控时钟技术5、DVFS 动态电压频率调整技术6、寄存器传输级降低功耗技术一、低功耗设计简介芯片功耗的问题最近几年得到了越来越多的重视,主要来源于以下几个方面: 1、90nm以下,随着设计流程的发展,芯片的集成度达到了上千万门级。一颗最顶级的芯片总功耗可以达到惊...

2021-05-09 16:47:27 4841 1

原创 序列检测的两种实现方式:状态机与移位寄存器

背景序列检查是笔试中常考的编程题 ,如果笔试中没有的话,同一家公司的面试中大概率会在手撕代码环节进行考察,总的来说,序列检测是一个不太困难却又非常重要、易考的知识点。比较常用的序列检测实现方式是状态机,逻辑清晰,写起来方便。但也见过面试官会问知不知道其他的实现方式,这时他要考察的点其实就是移位寄存器的方式实现,下面将分别介绍两种方式的实现。我们将以1101的检测为例。状态机方式实现...

2021-05-06 21:55:32 1810 3

原创 分频电路的实现:奇数分频、偶数分频和小数分频

偶数分频偶数分频是最简单的,N分频需要计数到(N-1),并在(N/2 - 1)和(N - 1)处更改输出的取值即可,只需要单一时钟沿计数。下面是四分频电路的实现:代码:奇数分频

2021-04-13 18:03:39 5704 1

原创 联发科2022暑期实习笔试题

笔试题一共八道,第一道是根据门电路写逻辑表达式。第二个是根据逻辑门和触发器连接图和给定信号的波形,补全波形。第三个记不清了。第四个是智力推理题,难度很小。第五个是描述做过的项目。第六个是脚本编程题。第七个是描述触发器连接原理图。第八个是C语言编程题。别的题目记不清了,第六个的题目是:用你熟悉的脚本语言(Perl/python/)to delete duplicate lines in specified file. and 不要打乱已有内容的顺序。我做的时候将duplicate lines理解成空白

2021-04-10 12:16:07 2869 3

原创 ZYNQ学习之路(四):DDR读写测试实验

一、AXI协议简介ZYNQ的架构是分为PL与PS的,因此两者之间免不了数据交互,之前我们介绍了通过BRAM进行交互,但BRAM进行交互存在速度慢、内存有限的缺点,对于ZYNQ7020来说,其BRAM只有4.9M,当数据量较大时,就没有办法使用了。而PS端的DDR3起码是512M,甚至有的达到了4G,可以满足大量数据进行交互。PL与PS进行高速的数据交互要通过AXI协议。zynq 7000 SOC 的 HP 口是 High-Performance Ports 的缩写,如下图所示,一共有 4个 HP 口

2021-03-07 00:25:46 8219 10

原创 FPGA/数字IC之有限状态机:简介及其编码方式:顺序码、独热码与格雷码比较

一、状态机的分类标准状态机分为摩尔(Moore)状态机与米勒(Mealy)状态机。摩尔状态机的输出只与当前状态有关,且只在时钟边沿到来时发生变化。米勒状态机的输出不但与当前的状态有关,还和当前的输入有关,这一特点使其控制和输出更加灵活,但增加了设计的复杂性。两种状态机的示意图如下:二、状态机的优点与存在的问题优点:状态机的优点显而易见,结构分明、易读易懂易排错,逻辑清晰。缺点:两个状态转换时,容易出现过渡状态;运行过程中,可能进入非法状态;在一种器件上稳定工作,移植到另一种器

2021-02-23 10:37:38 3927

原创 ZYNQ学习之路(三):自定义IP实现PL处理PS写入BRAM的数据

ZYNQ系列嵌入式FPGA可以使PS将数据写入PL部分BRAM,PL可以将数据读取后再重新写入BRAM,PS将数据读出后再传走,这样可以使PL部分专心处理数据,不用考虑相对缓慢的数据接收与发送部分,并且可以实现数据的缓存。实验目的:通过自定义IP核,将PS写入BRAM的数据加一后重新写入BRAM,再与第一次写入的数据比较。首先创建IP核:Tools->Creat and Package New IP,选择创建AXI4 Peripheral:在 Name 一栏的名称改为“ pl_bram

2021-01-24 17:06:51 4221 7

原创 常用串行总线(一):UART及FPGA实现

目录一、uart及RS232协议介绍二、实验设计三、代码分模块展示rx部分tx部分四、效果展示一、uart及RS232协议介绍通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。通俗的讲就是把多比特的数据转化为单比特的数据,或者把单比特的数据转化为多比特的数据。..

2020-12-23 19:39:21 1376

原创 VGGNet简介及VGG13实现cifar100分类

VGGNet简介VGGNet简介VGGNet由牛津大学计算机视觉组合和Google DeepMind公司研究员一起研发的深度卷积神经网络。VGG名字来源于Visual Geometry Group, Department of Engineering Science, University of Oxford。它探索了卷积神经网络的深度和其性能之间的关系,通过反复的堆叠3*3的小型卷积核和2*2的最大池化层,成功的构建了16~19层深的卷积神经网络。VGGNet获得了ILSVRC 2014年识别比.

2020-12-22 13:40:29 3263 2

原创 学会python正则表达式,这2篇文章就够了(二)

学会python正则表达式,这2篇文章就够了(一)书接上文,我们来介绍一下分组。分组、组号调用与起别名如下图所示,我们想匹配123456或者123556,因此我们将正则表达式设置为1234|556,但结果却和我们所想的不一样。这是因为‘|’会自动的将其左右各分为一部分,分别匹配,因此对于a字符串匹配到了1234而b中既没有1234又没有556,因此返回为空。这时候要想按我们所想的实现,就需要用括号进行分组了,加上括号后,‘|’会将4和5各自作为一部分,这样就可以匹配到123456或者123556

2020-12-16 21:58:52 307

原创 学会python正则表达式,这2篇文章就够了(一)

一、正则表达式正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索

2020-12-15 13:43:32 241

原创 数字电路中的竞争与冒险

目录一、竞争与冒险的概念1、竞争2、冒险二、冒险的分类静态冒险与动态冒险逻辑冒险和功能冒险三、判断静态冒险代数法卡诺图法四、冒险的消除1、脉冲封锁2、 引入滤波电容3、增加冗余项4、将组合电路改为时序电路五、写在最后六、参考文献一、竞争与冒险的概念竞争与冒险树数字电路中常见的现象,是逻辑门因输入端的竞争而导致输出产生不应有的尖峰干扰脉冲(又称过渡干扰脉冲)的现象。1、竞争当一个逻辑门的两个输入端的信号同时向相反方向变化时,...

2020-11-30 22:06:03 12853

原创 一、基于ZYNQ的HLS矩阵乘法加速实验(二)

继续上篇:首先将生成好的IP添加到IP库中,方法如下,第三步选择刚刚导出的路径,会自动识别出IP核。接下来创建Block Design,先添加ZYNQ处理器,选择合适的DDR芯片型号和UART,然后将新添加的IP核加进BD中,点击自动连接,最终生成的框图如下:留意一下寄存器的地址:接下来就是传统的流程:生成output和顶层文件,综合实现布局布线,导出到Hardware,Launch SDK。在SDK中创建一个新的Application,创建空文件或者HelloWord文件,我.

2020-10-16 21:29:44 2172

原创 一、基于ZYNQ的HLS矩阵乘法加速实验(一)

HLS创建矩阵乘法加速器目录HLS创建矩阵乘法加速器一、实验目的二、HLS设计三、打包IP一、实验目的通过HLS自动生成一个对两个4*4的矩阵进行乘法的电路,然后通过HLS进行优化,打包AXI接口并创建IP,最后在vivado中调用,在SDK中进行正确性检验。本篇我们只介绍HLS如何加速并打包生成IP,与vivado的联合测试将在下一篇介绍。二、HLS设计首先创建一个工程,我的工程名叫matrix,然后在source中添加两个文件,一个是.cpp文件,用来进行函数的定义,

2020-10-16 13:25:08 4551 4

原创 ZYNQ学习之路(二):PS与PL通过BRAM交互

在 ZYNQ SOC 开发过程中, PL 和 PS 之间经常需要做数据交互。对于传输速度要求较高、数据量大、地址连续的场合,可以通过AXI DMA 来完成。而对于数据量较少、地址不连续、长度不规则的情况,此时 AXI DMA 便不再适用了。针对这种情况,可以通过 BRAM 来进行数据的交互。实验目的:将数据从PS端写入PL部分的BRAM,然后将数据从BRAM读出来与原数据进行比较,判断是否写入成功。一、搭建硬件框图首先添加ps处理器,只需添加UART串口并设置相应的DDR型号即可,虽然我们用不到

2020-09-27 20:58:47 4465

原创 Verilog中的 full case 与 parallel case

在使用Verilog时,case语句时非常常见的,case语句中有些非常有意思的东西,full case 与 parallel case,在这里我想写一下一些关于它们的相关知识。一、full case在使用case时,我们一般要求在没有罗列所有情况时,要将default添加进去,以防止出现latch,但是有时候我们就会非常容易漏掉default,比如我们表示红绿灯时,三种情况需要两位,我们用00、01、10分别代表红绿蓝,这时我们已经将所有情况罗列清楚,但却没有用到11,就会很容易将其忘掉,就会..

2020-09-25 22:08:13 6095 4

原创 ZYNQ学习之路(一):LWIP数据传输与数据处理(一)(PS处理)

LwIP是Light Weight (轻型)IP协议,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。关于以太网的相关信息这里不做详细介绍,我只介绍如何通过ZYNQ实现数据的环路测试。实验目的是通过在SDK修改代码,实现将数据+1后返回的操作。具体步骤:一、VIVADO部分配置:创建处理器并设置我的这里串口选的UART1的48和49。.

2020-09-11 18:34:38 6193 5

原创 FPGA异步信号寄存器打拍

寄存器打拍对于异步信号的处理,一般要进行寄存器打拍以防止亚稳态的产生。通常可以打一拍、两拍或者三拍。打一拍就是指将信号延时一个时钟周期,打n拍就是延迟n个时钟周期。当同一个时钟域的信号由于各种延时导致不能满足时序要求时,可以进行打一拍的操作。异步信号也可以进行打一拍的操作,关于打一拍的具体规则如下:1.全局时钟的跳变沿最可靠。2.来自异步时钟域的输入需要寄存一次以同步化,再寄存一次以减少亚稳态带来的影响。3.不需要用到跳变沿的来自同一时钟域的输入,没有必要对信号进行寄存。4.需要用到跳变沿

2020-08-06 10:38:20 5801 1

原创 异步简单双口RAM的实现

RAM的分类RAM,随机存取存储器,有单口和双口之分,单口RAM只有一个数据线和地址线,不能同时进行读取操作,双口RAM有读和写两个地址线和数据线。因此双口RAM使用要比单口RAM广泛。双口RAM有真双口和简单双口之分,真双口有两个读端口和两个写端口,简单双口只有一个读端口和一个写端口,一般读写要求不高时,简单双口RAM就能满足我们的需求。另外根据时钟的不同,RAM还有同步异步之分,同步RAM是指读写采用同一个时钟,异步RAM是指读写的时钟不同。异步简单双口RAM的实现实现的双口RAM的功能

2020-08-05 16:59:36 4215 1

原创 FPGA之按键消抖

按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。消抖原理抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。在开始的抖动时间内,按键会不断地断开闭合,这就会导致电路认为我们在不断的按下按键,对实验造成很大的影响。消抖的常用方法为延时消抖。延时消抖是指在按下按键5-10ms后,等按键不再抖动后进

2020-08-02 18:39:02 1278

原创 Verilog常用语法总结

作为常用的硬件描述语言之一,Verilog的语法非常丰富,但常用的语法却并不多,下面我们来介绍一下比较常用的语法。

2020-07-19 16:22:42 4008

原创 机器学习之集成学习:GBDT

一、什么是GBDT

2020-07-18 23:11:35 896

原创 机器学习之集成学习:adaboost+详细构建实例分析

一、

2020-07-17 16:30:26 1355

原创 机器学习之集成学习:随机森林

一、什么是随机森林随机森林,Random Forest,简称RF,是集成学习思想中bagging的一个变种,随机森林在以决策树为基学习器的构建的bagging集成的基础上,在决策树的构建过程中引入了属性随机选择。一般的决策树的...

2020-07-15 18:49:26 484

原创 机器学习之集成学习:bagging、boosting和stacking

一、什么是集成学习集成学习,顾名思义就是将多个学习器结合起来以完成学习任务的一种学习思想。俗话说,三个臭皮匠,顶一个诸葛亮,集成学习就是运用了这种思想。一个模型的结果存在一定的随机性,那么就采用多个模型来抵消这种随机性,大家都说好才是真的好。所以理论上集成学习的思想可以提高模型的性能。以分类任务为例,我们可以训练m个分类器,每个分类器可以采用相同的算法,也可以采用不同的算法。如果每个分类器均选择决策树算法,那么这个集成学习算法就叫做随机森林,如果各个分类器不一样,最终组合在一起的方法,称为Stack

2020-07-14 23:02:00 2069 1

原创 机器学习之聚类算法:K均值聚类(二、算法案例)

一、简易数据集的Kmeans实现数据下载 提取码:quu3导入库并载入数据:import numpy as npimport matplotlib.pyplot as plt # 载入数据data = np.genfromtxt("kmeans.txt", delimiter=" ")定义函数:计算距离、初始化聚类中心和更新聚类中心函数:# 计算距离 def euclDistance(vector1, vector2): return np.sqrt(su..

2020-07-12 11:15:08 3225 4

原创 机器学习之聚类算法:K均值聚类(一、算法原理)

一、K均值聚类

2020-07-12 10:52:06 11352

原创 机器学习之PCA:主成分分析(二、算法案例)

目录一、降维实例二、鸢尾花数据集降维一、降维实例data数据下载,提取码:fobw导入库、载入数据并可视化:import numpy as npimport matplotlib.pyplot as pltdata = np.genfromtxt("data.csv", delimiter=",")x_data = data[:,0]y_data = data[:,1]plt.scatter(x_data,y_data)plt.show()画出的图如下:..

2020-07-11 09:01:16 1191

原创 机器学习之PCA:主成分分析(一、算法原理)

一、主成分分析主成分分析是一种常用的无监督学习方法。它利用正交变换,把由线性相关变量表示的观测数据转换成少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。由于主成分个数通常少于原始变量的个数,所以这一方法属于降维。PCA的一般流程是:...

2020-07-10 23:25:01 991

原创 机器学习之朴素贝叶斯:Naive Bayesian(二、算法案例)

一、鸢尾花数据集朴素贝叶斯实现# 导入算法包以及数据集from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import classification_report,confusion_matrixfrom sklearn.naive_bayes import MultinomialNB,BernoulliNB,Gaussian

2020-07-10 11:07:43 1168

原创 机器学习之朴素贝叶斯:Naive Bayesian(一、算法原理)

一、概率论基础

2020-07-09 09:58:47 559

原创 机器学习之决策树:二、算法案例

一、鸢尾花数据集决策树分类from sklearn.datasets import load_irisfrom sklearn import tree from sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scorefrom sklearn.metrics import classification_report,confusion_matrixfrom sklear

2020-07-08 10:33:18 449

原创 机器学习之决策树:一、算法原理

目录一、算法介绍二、概念介绍2.1、信息熵2.2、信息增益与信息增益率一、算法介绍决策树(Decision tree)是一种基本的分类与回归算法,本次博客只讨论用于分类的决策树。决策树,顾名思义,是一种基于树结构的决策选择模型,表示基于特征对实例分类的过程。它可以认为是if-then的规则集合,也可以认为是特征空间上的条件概率分布。决策树依据对某种特征的满足与否进行子集划分,整棵树的节点分为内部节点和叶子节点,内部节点对应作为划分依据的特征,叶子节点表示满足从根节点到该叶子节点.

2020-07-07 21:49:00 306

原创 机器学习之KNN:K近邻算法(二、算法案例)

一、KNN的简单实现案例假设我们有两类样本:A和B,均为二维数据,A类包括:(2,8)(2.5,10)(2,9),B类包括:(4,2)(4,1)(4.5,3),测试样本点为(3,9)。首先导入数据,数据分布如下图:import matplotlib.pyplot as pltimport numpy as npimport operator# 已知分类的数据x1 = np.array([2,2.5,2])y1 = np.array([8,10,9])x2 = np.array([4.

2020-07-05 16:45:10 478

原创 机器学习值KNN:K近邻算法(一:算法原理)

一、KNN概述KNN是一种常见的有监督学习算法,可以用于分类,也可以用于回归,比较常用于回归。K近邻算法的直观解释就是给定一个已知样本分类的训练数据集,当有新样本输入时,在训练集中找到K个和新样本距离最近的的训练样本,这K个训练样本多数属于哪个类别,就把这个新样本判定为哪个类别。二、KNN三要素2.1、距离度量多维特征空间中,两个样本的距离,代表这两个样本的相似程度,距离越近,相似程度就越高,属于同一类别的概率就越大,KNN通常使用的距离度量方法是欧几里得距离,简称欧氏距离。在n...

2020-07-04 21:07:15 4463 1

原创 近似误差与估计误差

误差误差是指测量值与真实值之间的差距,误差的大小反映了实验、观察、测量和近似计算等所得结果的精确程度。误差的绝对值越小,精确程度越高。近似误差与估计误差近似误差:对现有训练集的训练误差。估计误差:在测试集上的测试误差。我们先从字面意思上理解,我们在训练过程中,追求的是要训练误差尽可能的小,就是要尽可能的逼近训练集的数据,使预测值与训练集相似程度更高,因此模型预测出来的值与训练数据的误差称为近似误差。而在测试过程中,我们是要比较用模型估计出来的值与真实值之间的差距,侧重点在于估计,所以这个误差称为估

2020-07-03 18:10:22 4703 2

原创 矩阵求导与标准方程法

目录一、分子布局与分母布局二、矩阵求导的一般形式三、常用到的矩阵求导四、标准方程法一、分子布局与分母布局求导时可能会出现两种基本的形式,分别为分子布局和分母布局。分子布局,Numerator layout,是指分子为列向量或者分母为行向量。分母布局,Denominator layout,是指分子为行向量或者分母为列向量。对于其他的一些形式,我们既可以按分子布局处理,也可以按分母布局处理。我们约定用y、y和Y分别表示标量、向量和矩阵。二、矩阵求导的一般形式对于分子布局.

2020-07-02 16:59:10 730

原创 anaconda3配置Pytorch教程,亲测有效

一、安装anaconda3安装anaconda3的教程比较多,大家可以去网上找一下,这里有一篇“红狼大大”的博文,可以参考下:https://blog.youkuaiyun.com/zhongaiyisheng_/article/details/88352476二、安装Pytorch2.1、检查anaconda安装情况打开Anaconda Prompt,依次输入python、ipython、conda等,若不报错,说明anaconda安装成功。每次输入后退出命令为exit()。2.2、创建虚..

2020-06-30 09:14:40 3831 4

AT24Cxx.zip

EEPROM芯片数据手册,包含AT24C01A/02/04/08A/16A和AT24C32/64。其中AT24C01A/02/04/08A/16A为同一个数据手册,AT24C32/64为另一个。

2021-02-06

赛灵思axi协议UG.zip

UG761和UG1037都是关于AXI协议的指导手册,想要详细的学习AXI协议的可以详细看一下。

2021-02-04

2020lee_ml_HW1.zip

2020春季台大李宏毅老师机器学习视频课作业一,在李老师所给示例的基础上,按照他所给的提示进行的简单更改,效果比初始示例效果有所提升。

2020-06-21

空空如也

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

TA关注的人

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