自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (8)
  • 收藏
  • 关注

原创 ARM芯片架构之coresight ATB funnel组件介绍

ATB汇聚器(ATBfunnel)是一种多路trace流合并模块,支持最多8个从端口输入和单个主端口输出。该模块具有可选的APB编程接口,支持端口使能控制、混合仲裁(固定优先级与轮询)及拓扑检测功能。关键特性包括:异步复位、相同数据宽度配置、4事务默认保持时间,以及防止级联时序环路的寄存器切片要求。非可编程模式下默认启用所有端口并采用轮询仲裁。集成测试模式需单独启用,完成后必须复位系统。模块采用组合逻辑设计,寄存器配置涵盖端口控制、优先级设置及调试功能。

2025-09-30 23:32:07 72

原创 ARM芯片架构之coresight 时间戳组件介绍

本文介绍了CoreSight SoC-400中的时间戳组件系统,包括7个关键模块:时间戳生成器、编码器、复制器、异步/同步桥、解码器和插值器。这些组件协同工作,为调试系统提供统一精确的时间基准。时间戳生成器产生全局48位时间戳,编码器压缩传输带宽,复制器分发时间戳,桥接器实现跨时钟域传输,解码器恢复完整时间戳,插值器提供局部高精度。文章还详细说明了时间戳生成器的寄存器模型和通用信号接口,包括控制寄存器、计数器及APB接口规范。该系统支持调试工具的时序分析需求。

2025-09-30 23:10:13 622

原创 ARM芯片架构之DAP:AXI-AP 技术详解

AXI-AP(AXI Access Port)实现了MEM-AP架构,用于直接连接到AXI内存系统。通过合适的桥接组件,也可以连接到其他内存系统。AXI-AP作为连接DAPBUS与AXI系统的关键组件,提供了灵活的存储器访问能力。其主要技术特点包括:​​单时钟域设计​​:简化时序分析,提高系统稳定性​​完善的错误处理机制​​:支持多种错误场景的检测和处理​​严格的传输规范​​:确保数据传输的可靠性和一致性​​灵活的打包传输​​:优化小尺寸数据访问效率​​明确的内存访问规则​。

2025-09-29 21:38:45 946

原创 ARM芯片架构之调试访问端口(DAP)

DAP 是调试工具访问 SoC 的核心接口,由调试端口 (DP) 和一个或多个访问端口 (AP) 组成。本文主要讲解了DAP的用法以及SOC设计时需要考虑的思路。

2025-09-29 21:04:13 1421

原创 ARM芯片架构之APB,ATB总线

APB Interconnect Components 与 ATB Interconnect Components 技术总结。

2025-09-28 21:25:39 1146

原创 ARM芯片架构之CoreSight SoC-400组件详解

ARM CoreSight SoC-400 是一套模块化的调试与追踪解决方案,适用于多核 SoC 开发。其核心组件包括调试访问端口(DAP)、系统追踪宏单元(STM)、追踪内存控制器(TMC)等。DAP 通过 SWJ-DP 支持 JTAG 和串行线调试,提供对内存和外设的实时访问;STM 实现高带宽系统追踪;TMC 管理数据存储与传输;交叉触发接口(CTI/CTM)则支持多核事件同步。

2025-09-25 21:30:23 1031

原创 FPGA自学笔记--VIVADO FIFO IP核控制和使用

本文介绍了在Vivado中生成FIFO IP核的方法及其应用。FIFO作为先进先出的缓冲存储器,分为单时钟(同步)和双时钟(异步)两种结构,分别适用于同/异步时钟域的数据传输。文章详细讲解了FIFO的关键参数、三种实现方式(自定义设计、开源IP核、Vivado自带IP),并重点演示了双时钟FIFO IP的配置流程,包括数据位宽、深度、读写模式等参数的设置。最后提供了IP核的例化模板,为FPGA设计中的跨时钟域数据传输提供了实用解决方案。

2025-09-25 20:29:18 2307

原创 FPGA自学笔记--VIVADO RAM IP核控制和使用

本文介绍了在Vivado中生成和配置RAM IP核的方法,包括通过IP Catalog创建Block Memory Generator,配置端口类型、存储类型(单端口/双端口)、位宽深度等关键参数,并详细说明了不同操作模式(Write First/Read First)的特性差异。文章还提供了Verilog例化模板和测试平台搭建方法,通过仿真验证RAM的读写功能,其中测试平台实现了1024个16位数据的写入和部分地址的读取验证。整个流程涵盖了从IP核生成到功能验证的关键步骤,为FPGA存储设计提供了实践指导

2025-09-23 22:39:12 3675

原创 数字IC/FPGA校招宝典--笔试题(四)

支持字节、半字节和字的传输。如果此时写指针也写到了7,那么二者一比较发现写“满”了,实际呢没有满,不过此时也会停止外部写入(传出了满的信号),这是不会对FIFO中的数据产生影响的,并且很快会恢复到“不满”。在进入到某一phase的时候,UVM会收集此phase提起的所有的objection(raise_objection),并且实时监测所有的objection是否已经撤销了(drop_objection),当发现所有的objection都已经撤销后,那么就会关闭此phase,开始进入下一个phase。

2024-08-07 22:35:05 1238

原创 数字IC/FPGA校招宝典--笔试题(三)

这样做是怕时钟域1中的这个信号,可能不满足时钟域2中触发器的建立、保持时间,而产生亚稳态,因为它们之间没有必然关系,是异步的。,电子的迁移率大于空穴,同样的电场下,N管的电流大于P管,因此要增大P管的宽长比,使之对称,这样才能使得两者上升时间下降时间相等、高低电平的噪声容限一样、充电放电的时间相等。直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的。例如:时钟域1中的一个信号,要送到时钟域2,那么在这个信号送到时钟域2之前,要先经过时钟域2的同步器同步后,才能进入时钟域2。

2024-08-07 22:24:44 738

原创 数字IC/FPGA校招宝典--笔试题(二)

这里的异步电路,指的应该是跨时钟域同步器那一级的路径,该如果没有特殊走线长度等要求,是可以设置false path的。这种检查的目的是为了保证复位释放的时刻能早于时钟沿并且保持到时钟沿到来(recovery,恢复),并且保证复位置位的时刻能晚于时钟沿一段时间(removal,清除),以此来避免复位释放的时候出现亚稳态。可综合代码中,除了for语句中的循环变量可以定义为integer型以外,所有变量和信号都只能为wire或reg型,不能定义为整型,实数型,无符号型,realtime型和time型。

2024-08-07 22:22:47 1410

原创 数字IC/FPGA校招宝典--笔试题(一)

一般而言握手信号可以用于高频时钟域到低频时钟域的同步,但是为了保证数据不被漏采,从高频到低频握手信号valid_tx需要做信号宽度拓展,至少拓展为1.5个周期的rx时钟,因此相应的数据data_tx也要保持多个n个tx周期不变,n=1.5*clk_rx/clk_tx。如果在上一状态寄存器输出为1,下一状态下输出为0,即便0不使用,也产生了0到1的跳变,同样会有功耗,既然不关心,还不如保持输出为1。解析:头脑风暴挖掘测试点是必须的,但是要保证测试点是符合规格说明和约束的,并且是可能会发生的场景。

2024-08-07 22:20:54 1208

原创 IC手撕代码--数字电子时钟设计

最近秋招遇到了好几次这个的笔试题,其实还是比较简单的。关键还是计数器的写法,所以做下总结,之后不论是秋招还是实习面试笔试,尽量可以把这个送分题拿到。

2022-08-26 17:28:44 900 1

原创 数字IC手撕代码50题(11-20)

数字IC面试,FPGA面试手撕代码题全部收录,一共50道,详细讲解。

2022-07-27 10:31:54 1600 1

原创 数字IC手撕代码50题(1-10)

数字IC面试,FPGA面试手撕代码题全部收录,一共50道,详细讲解。

2022-07-25 22:35:49 4244 5

原创 数字IC/FPGA面试宝典--经典60道例题详解

数字IC/FPGA面试笔试题,知识点详细讲解。

2022-07-24 11:28:44 19060 7

原创 FPGA自学笔记--时钟IP核使用(Verilog&VHDL版本)

时钟ip核是一个比较常用的IP核,主要用于对输入的时钟信号进行进行倍频、分频、调整相位。这些功能其实自己去实现也是相对来说比较简单的,但是既然vivado提供了这种封装好的IP核,我们就可以充分的去利用,减少开发者的工作量,而且时钟ip核也有一些比较高级的功能,比如,输出时钟频率和相位的动态调整等等。本篇文章主要记录时钟ip核的基本使用,并附带verilog和vhdl代码及对应的testbench文件,以供同学们相互交流学习。一、时钟ip简介 在介绍时钟管理IP之前,可...

2022-05-09 15:51:35 8446

原创 FPGA自学笔记--串口通信发送多字节数据(verilog版)

串口通信发送多字节数据(verilog版),带testbench。

2022-05-01 16:22:31 13057 13

原创 FPGA自学笔记--串口通信实现(vivado&verilog版)

最近做了两种通信协议的实现的练习(uart,spi),此文介绍uart串口协议(串口发送)的verilog实现和testbench的编写,考虑到还有部分同学使用vhdl,vhdl版本会随后发布。在以后的系列里,还会有介绍spi协议的文章,把我自己学习中遇到的困难和正确的解决方案记录下来,仿真环境为vivado 2018.3.

2022-05-01 14:56:30 9093 23

原创 解决问题:vscode中文乱码(亲测有效)

各位有没有在自己的IDE里面 ,噼里啪啦写了一堆中文注释,结果用vscode打开之后,发现是一堆乱码。或者在vscode写好,再自己的IDE中打开又是一堆乱码。其实就是编码方式的 不同。vscode 已经帮我们提供了比较简单的解决方案。1. 点击 文件-->首选项-->设置,2.输入搜索 files:auto Guess Encoding 如下图:勾选这个猜测编码即可。就这么简单!!目前还没出现过问题。轻松解决。...

2022-04-30 21:27:47 5627 5

原创 解决问题:Jupyter Notebook 无法切换内核

解决问题:Jupyter Notebook 无法切换内核

2022-04-29 17:29:04 2020

原创 FPGA自学笔记--DDS ip核的使用(vivado)

学习记录之用。一、DDS概念DDS(Direct Digital Frequency Synthesizer)直接数字频率合成器本文主要介绍如何调用Xilinx的DDSIP核生成某一频率的Sin和Cos信号。二、频率选择打开IP核配置,parameter Selection选择System Parameters,有两种选择,选择System Parameters时,输出频率可以在IP核中直接输入。选择Hardware Parameter时,可以在IP核中或者程序中输入频率控.

2022-03-03 09:38:44 18185 6

原创 解决问题:Cannot register 2 metrics with the same name: /tensorflow/api/keras/optimizers

这种问题一般还会以下面的两种形式出现。这个原因的应该是keras与tf.keras混淆产生了冲突。进入Anaconda 查看当前的python环境下keras与tensorflow的版本,发现keras 2.7,tensorflow 2.6.解决办法:pip install keras==2.6.0Tensorflow2.6 的发行说明中,Keras 被拆分为单独的 PIP 包(keras),其代码已移至 GitHub 存储库 keras-team/keras。tf.keras 的 API.

2021-12-22 10:25:44 4875 10

原创 线性调频信号的去斜处理和混频的MATLAB实现

首先要知道线性调频信号去斜处理和混频的区别:共同点就是都是正交解调过程,不同点是选取本征信号不同。用于混频的本振信号为单频信号和,这样混频之后的零频部分还是一个有带宽的线性调频信号。而用于去斜的本振信号为线性调频信号本身,这里也是正交解调形式,如果说线性调频信号使用cos来表示,那需要产生一路sin信号(也是线性调频信号) ,在分别相乘得到I路,Q路。如果说线性调频信号使用指数表示,那就是直接去乘它本身。下面是两种方式的比较:我们这里的输入是中频为200Mhz,带宽为320Mhz的线

2021-12-09 22:07:26 8740 6

原创 宽带信号与窄带信号

首先应该要明确的是“宽带”信号和“窄带”信号实质上是一个相对的概念。比如说,10MHz 带宽的接收机在雷达系统中被认为是窄带接收机,然而,达到这种带宽的接收机在通信中却被常常被认为是宽带接收机。这是因为应用的场合不同,造成从信号的带宽的具体数值上很难区分出“宽带”和“窄带”的概念。目前主流的观点认为:宽带信号与窄带信号是根据信号的带宽与载频的比值大小进行区分的。如果信号的带宽和载频的比值不大于10% 的时候,该信号会被认定是窄带信号,若信号的带宽和载频的比值超过百分之十的时候,就可以称之为“宽带”

2021-12-02 17:28:17 4821

原创 LLE算法实现与sklearn实现

在pyhton的机器学习库sklearn中,LLE等降维算法可以直接调用,在本次大作业中,根据LLE的推导过程编写算法实现了LLE,与mainfold自带的LLE进行对比。由于后面的实验中都是直接调用LocallyLinearEmbedding,所以用大量篇幅介绍了LocallyLinearEmbedding的参数含义以及调参方法。图2-5 LLE算法推导实现与sklearn实现对比由图2-5可知,自行编写的LLE降维算法在降维之后的效果略逊于sklearn中提供的接口,后面的实验中都是直.

2021-03-13 17:47:14 2332 1

原创 用turtle库画大风车(零基础python教程适合亲子教学互动)

大风车是少儿节目,它的图标可谓深入人心,用turtle库来画几乎可以不用掌握任何编程基础,适合亲子互动教学演示。首先,安装turtle库。Python2: 直接在cmd里输入pip install turtle,不用下载python3:直接在cmd里输入 pip install turtle,不用下载代码如下。小学水平立马掌握。import turtleturtle.left(-30)turtle.fillcolor("blue")turtle.begin_fill()tu

2020-11-06 12:58:19 4989

原创 Windows下运行shell脚本

1.安装 git2.cmd中进入git所在目录的bin文件夹下3.输入sh .\test.sh成功。

2018-04-25 16:27:55 27536

原创 python 批量化重命名图片

最近在制作深度学习项目的测试集,需要对整个文件夹下的图片重命名以便标注,体会到了python脚本的强大和简便。基本思路:使用python 的os 模块, 对文件夹进行遍历(listdir), 同时使用 rename 进行改名操作。# -*- coding:utf8 -*-import osclass BatchRename(): ''' 批量重命名文件夹中的图片文件 ...

2018-04-25 16:23:43 1135

原创 python将txt转为csv格式

import numpy as np import pandas as pd txt = np.loadtxt('file.txt') txtDF = pd.DataFrame(txt) txtDF.to_csv('file.csv',index=False) 安装pandascmd: pip install pandas

2018-04-25 16:18:39 21937 5

原创 Python中字符串相似对比

import difflibquery_str = '北京市海淀区's1 = '北京市海淀回' s2 = '北京城海淀区' s3 = '北京城海淀回' print(difflib.SequenceMatcher(None, query_str, s1).quick_ratio()) print(difflib.SequenceMatcher(None, query_str,...

2018-04-25 16:14:03 1438

原创 python实现两个json文件对比

先将json读入为字典,提出字典的value,进行比对。import json as jsimport difflibf = open('F:/IMG1.json',encoding='UTF-8')m = open('F:/IMG2.json',encoding='UTF-8')x = js.load(f)y = js.load(m)for my_key in x.keys()...

2018-04-25 16:08:27 9175

原创 Python将数组(矩阵)存成csv文件

将数组或者矩阵存储为csv文件可以使用如下代码实现:import numpy numpy.savetxt('new.csv', my_matrix, delimiter = ',')

2018-04-25 16:06:07 36773 6

原创 Python将csv文件读取为数组(矩阵)

Python处理csv文件时经常会用到讲csv文件整体读取为一个数组或者矩阵的情况,借助numpy包,可以使用如下代码简洁高效低实现:import numpy my_matrix = numpy.loadtxt(open("c:\\1.csv","rb"),delimiter=",",skiprows=0) ...

2018-04-25 16:05:01 36237 3

原创 静态图像-行为识别数据集及论文 Action Recognition in still image

目前关于行为识别的研究多集中在视频,而静态图片只有空间信息,没有时间信息,信息量不够多,所以来做行为识别是有难度的,现有的研究成果比较少,可用的数据集不多,我现在也在做静态图像行为识别方面的研究,多数论文使用的数据集主要有以下几个。一.、Stanford40 Dataset该数据库是斯坦福大学的FeiFei-Li教授所在的团队创建并维护的,包括40种不同的行为类,共9532张图片。每个行为类都有1...

2018-04-04 12:47:18 6558 6

FFT-hdl源代码整理

网络整理

2024-01-27

FFT加速核设计的论文和代码

个人整理

2023-12-24

FFT开源IP核verilog

可以使用的开源FFT核

2023-12-20

FFT verilog 开源 IP 核

自己整理的一些FFT IP核的开源实现,采用verilog实现,具体的解释和使用方法可以进入我的主页获取。

2023-12-11

DDS-IP核的调用--vivado&VHDL

全网唯一一份VHDL DDS ip核使用代码(带testbench,已调通)。实现https://blog.youkuaiyun.com/lgk1996/article/details/123245246中的功能。

2022-06-13

时钟IP核的使用(vivado&vhdl)

vhdl带testbench文件。环境:vivado 2018.3 时钟ip核是一个比较常用的IP核,主要用于对输入的时钟信号进行进行倍频、分频、调整相位。这些功能其实自己去实现也是相对来说比较简单的,但是既然vivado提供了这种封装好的IP核,我们就可以充分的去利用,减少开发者的工作量,而且时钟ip核也有一些比较高级的功能,比如,输出时钟频率和相位的动态调整等等。主要记录时钟ip核的基本使用,并附带vhdl代码及对应的testbench文件,以供同学们相互交流学习。

2022-05-09

vivado时钟IP核的使用

verilog带testbench文件 环境:vivado 2018.3 时钟ip核是一个比较常用的IP核,主要用于对输入的时钟信号进行进行倍频、分频、调整相位。这些功能其实自己去实现也是相对来说比较简单的,但是既然vivado提供了这种封装好的IP核,我们就可以充分的去利用,减少开发者的工作量,而且时钟ip核也有一些比较高级的功能,比如,输出时钟频率和相位的动态调整等等。本篇文章主要记录时钟ip核的基本使用,并附带verilog和vhdl代码及对应的testbench文件,以供同学们相互交流学习。

2022-05-09

串口通信发送多字节数据(verilog版带testbench文件)

在真实的串口数据传输过程中,我们不只是发送 6 7 8 位数据,也有可能发送12 16 20 40位的数据,所以我们需要调用多次串口发送模块来发送多字节数据。 实验环境:vivado 2018.3 实现需求:按照串口协议 发送 40位数据 给接收端。包括状态机的控制,串口单字节的实现,并转串过程,对应的testbench文件等等,已调通,可以看到正确波形。具体介绍可以参考我的博客,https://blog.youkuaiyun.com/lgk1996/article/details/124527371?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22124527371%22%2C%22source%22%3A%22lgk1996%22%7D&ctrtid=uJeuh

2022-05-01

串口通信实现(verilog带testbench文件)

uart_tx模块由单脉冲信号send_go使能,将data[7:0]读入uart_tx模块,发送完成后,输出单脉冲tx_done。总之完成了一个串口发送模块。可以参考我的文章https://blog.youkuaiyun.com/lgk1996/article/details/124523461?spm=1001.2014.3001.5502 环境:vivado + verilog

2022-05-01

滤波器的FPGA实现(VHDL版)

包括matlab仿真,ADC接受模块代码,数字滤波器代码,自适应滤波器代码,都是vhdl实现且是英文资料。ise下实现,

2022-04-22

SPI配置ADC--verilog代码带testbench文件

通过SPI协议,对ADC中的寄存器进行配置。适用于大部分spi接口的ADC配置,例如高速ad hmcad1511,hmcad1520,ADS8694系列等等。也可以参考其中的spi时序的实现方式。主要功能是将rom中的值按照spi时序发给adc,fpga产生sclk给adc,并且进行并串转换。总之,实现了一个三线spi的master工程,带testbench文件。

2022-04-22

DDS ip核使用(vivado)

已调通,频率可控,https://blog.youkuaiyun.com/lgk1996/article/details/123245246?spm=1001.2014.3001.5502。

2022-03-03

空空如也

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

TA关注的人

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