- 博客(45)
- 资源 (4)
- 收藏
- 关注
原创 基于FPGA和STM32的相位差测量
两路单端的同频信号,直连到FPGA的两个端口上(要控制输入信号的电压),准确测量两路信号的相位差,信号的频率从1Mhz-1hz,精度在0.1°。并且能够通过UART将数据发送到STM32上,并且用LCD屏幕显示出来。环境FPGA:黑金的Artix7开发板STM32: 正点原子战舰精英板EDA工具: Vivado2017.4 和 Keil 52022年10月25日:重大改动!修改代码结构,结构更加清晰,代码更加规范增加仿真指导,帮助大家查看仿真结果vivado代码版本修改为2018.3。
2019-08-24 12:53:41 13715 89
原创 Microbalze Vitis bug:cannot suspend TCF error report Stalled on memory access
比如读的时候没有,没有从机无反应,没有返回值。常见的如apb和axi总线的ready信号没拉高。问题所在其实在最后一句话:Stalled on memory access。访问一片地址不成功,可能是访问memory的总线接口出现了问题。对一片空间进行读写操作时,程序跑飞无法暂停。
2023-04-14 14:05:16 1921 2
原创 USB2.0官方协议手册阅读笔记(2)——数据流模型
这篇博客阅读官方手册5章的内容第5章描述了一些关键的概念,了解每层具体的前必须完整的阅读第5章。物理视图会在6,7,8章中详细说明,逻辑视图会在9,10章中详细说明。整体结构特异性和共性需要协议英文版原文的可以评论区留言,我私发,工作日我都会上线。USB系统的简单视图,这体现了USB系统最重要的两个实体。USB Host为主,USB Device为从,一切事务都是由Host发起!
2022-10-14 17:56:36 1751 1
原创 USB2.0官方协议手册阅读笔记(1)——总体介绍
这篇博客阅读官方手册1-4章的内容BackgroundArchitectural Overview (重点)链接: https://pan.baidu.com/s/1c1T3cRMFcq01I3vEeNldKg?pwd=1111 提取码: 1111 复制这段内容后打开百度网盘手机App,操作更方便哦–usb2.0英文版协议原文如今USB和PCIe已经成为了计算机系统里面最重要的两个接口。
2022-10-13 11:43:03 2973
原创 Xilinx AXI USB2.0 Device IP 手册阅读笔记
(官网搜pg137也行)在Block Design中的样子:IP默认配置:很明显FPGA逻辑做主,USB设备做从拥有:1个Endpoint0,7个用户Endpoint包括32位寄存器,它为核心提供控制和状态信息,可以通过AXI Slave Interface访问。
2022-09-19 18:24:29 3548 3
原创 [Chipscope 16-213] The debug port ‘dbg_hub/clk‘ has 1 unconnected channels 解决
在代码中添加Mark_debug的方式进行debug时,综合完成后,又修改了代码或者xdc,重新综合后,再布局布线就会出现这个报错。注:使用在图上标记和添加ila ip的方式基本上不会出现这个问题。
2022-09-16 10:15:42 16114 3
原创 USB2.0工程搭建并测试之硬件介绍-基于ZCU102(PS端)
打算基于ZUC102实现板卡与电脑的USB通信。下文为硬件部分介绍。基于Xilinx Zynq UltraScale+ MPSoC ZCU102,Vivado版本为2018.3,SDK版本也是2018.3
2022-09-07 11:38:20 1805
原创 IC设计中的一些概念
FPGA中尽量使用高有效的复位信号,采用异步复位同步释放的方式,并且要将复位信号局部化,避免使用高扇出的全局复位。至于驱动多少逻辑单元算过多,需要根据工艺,后端实现情况以及芯片本身类型来决定。...
2022-08-26 15:41:55 266
原创 基于CPLD的主板上电时序控制--状态机方式
博主第一份工作做FPGA工程师,公司给了CPLD的任务给我练手,大大小小参与了几款主板上电的设计,同一套代码进行了多次修改运用。跳槽后,把代码整理一下,改善代码结构,优化可移植性。常用的上电控制有使用单片机和CPLD或者EC的方式,本文使用CPLD实现上电控制操作......
2022-07-25 11:29:58 5858 24
转载 数字IC设计全流程介绍-笔记
数字IC设计全流程介绍 - 温戈的文章 - 知乎FPGA是一款芯片,只是数字IC设计上板测试过程中的一个必要的实现平台,在IC设计和验证过程中,如果深刻理解Verilog(或者其他硬件描述语言)与底层实现的关系才最重要。......
2022-07-13 17:18:17 2085
原创 EXMC(FSMC)转BRAM,实现单片机与FPGA的交互,FPGA端
在国产的GD32和复旦微FPGA之间实现较高带宽的数据通信,可以使用EXMC接口。EXMC接口通过部分逻辑与FPGA中例化的BRAM接口相连。使用双口RAM的形式就能实现GD32和FPGA内部逻辑的交互。
2022-07-05 11:41:00 4286 7
转载 什么是AI芯片? 阅读笔记
算力源于芯片,通过基础软件的有效组织,最终释放到终端应用上,作为算力的关键基础,AI芯片的性能决定着AI产业的发展。不同类型的芯片所擅长的领域不同AI运算指以“深度学习” 为代表的神经网络算法,需要系统能够高效处理大量非结构化数据( 文本、视频、图像、语音等) 。需要硬件具有高效的线性代数运算能力,计算任务具有:单位计算任务简单,逻辑控制难度要求低,但并行运算量大、参数多的特点。对于芯片的多核并行运算、片上存储、带宽、低延时的访存等提出了较高...
2022-06-28 10:51:24 665
原创 VNC笔记
VNC (Virtual Network Console)是虚拟网络控制台的缩写。它是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。
2022-06-27 11:01:00 1031
原创 USB2.0 UTMI PHY芯片测试
为验证一款UTMI接口的PHY芯片数据通路是否正常,功能实现是否满足需求,特搭建此工程进行测试。FPGA芯片:Xilinx XCVU440PHY芯片:CY7C68000平台:Vivado 2019.2
2022-06-23 16:14:23 2892 4
原创 Combinatorial Loop 解决
遇到想要保留的 Combinatorial Loop(组合逻辑换)如何解决 ?RTL图确实存在输出又重新接到输入的环境在xdc文件中加入:用后面的提示替换中的内容注意不要带 !!!!
2022-06-21 11:26:20 6809
原创 Tcl脚本笔记
Tcl脚本语言,在FPGA的开发中经常被用到,什么是Tcl脚本语言,Tcl脚本语言有何优点,如何开发Tcl脚本语言。是FPGA工程师必须掌握的技能。Tcl全名Tool Command Language,是一种解释执行的脚本语言(解释执行就是边解释边执行,区别于编译)。包括两个部分:一个语言和一个库。语言是指: Tcl是一种简单的脚本语言,主要使用命令给一些交互程序如文本编辑器,调试器和shell。库是指:由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上又可以把TCL看作C库。
2022-05-24 15:46:25 1569
原创 vivado生成edf网表文件指令
笔记将要产生网表的模块设置为顶层设置参数 可以选择rebuilt也可以选择full ,full不会展示你设置为顶层模块的内部层次结构,rebuilt会more options 写下-no_iobuf注意 " - "Run Synthesis 完成后打开 Open Synthesized Design在Tcl Console内输入windows下write_edif E:/usb1_core_top.edf生成edf文件,在win下最好添加路径,不然就保存到默认路径下了w
2022-04-27 18:21:22 2983 1
原创 如何实现快速取指
前言取指是流水线结构中的第一步,处理器需要做什么完全由指令决定,如果一个人做题的时间可以忽略不计,那么如何快速的给他出题并理解题目就成为了限制他做完一套题的主要问题。取指的终极目标就是:以最快的速度且连续不断地从存储器中取出指令供处理器核执行。快和连续不断就是快速取指的两个要点!取指的特点对于非分支跳转指令,在存储器中是顺序存储的,处理器会顺序执行这些指令,如果都是这样的指令,那么取指执行几乎都能做到无等待的运行。但是分支跳转指令就不一样了,如果跳转条件满足,则程序需要跳转到不连续的地址处执行对
2022-04-20 10:54:27 700
原创 处理器五级流水线
每次计算必定是一个闭环的过程,有取就会有放回1. 取指(Instruction Fetch)指令取指:将指令从存储器中读取出来的过程。2. 译码(Instruction Decode)指令译码:将取出来的指令翻译的过程,经过译码以后,得到指令需要的操作数寄存器索引。可以通过此索引从通用寄存器组中将操作数读出。3. 执行(Instruction Execute)指令译码后,所需要进行的计算类型都已得知,并且已经从通用寄存器组中读取出所需的操作数,接下来就是指令执行,是指对指令进行真正运算的过程。
2022-04-15 18:21:58 1339 1
原创 CPU的三生三世
1. 前言本专栏为自己的读书笔记2. 一些概念2.1 指令集架构顾名思义:指令的集合,而指令是指处理器进行操作的最小单元。可以理解为计算机硬件和软件之间的一个抽象层。当前Intel和AMD使用的都是X86架构2.2 CISC与RISCCISC复杂指令集,RISC精简指令集。现代指令集都使用RISC,但是由于x86诞生时间早且考虑到向下兼容,x86使用的仍是CISC。不过x86提供了硬件解码器,先将CISC指令翻译成简单的指令序列。2.3 CPU领域之分服务器 x86 由于Intel商
2022-04-15 14:57:00 309
原创 E200 assign替换if,case 语句的问题
Verilog中的if-else和case有两个重大缺点不能传播不定态会产生优先级的选择电路而非并行选择电路,从而不利于时序和面积问题一:Verilog的if-else和case不能传播不定态,以如下代码片段为例。if(a) out =in1;else out =in2;假设a为X不定态,按照Verilog语法,将等效于a=0,从而输出值等于in2,而没有将不定态X传输出去,这种情况在仿真阶段会掩盖某些致命的bug然而使用assign,如果a的值等于x,则out的值也会等于x,可以
2022-04-15 14:56:08 803
原创 I2C协议FPGA verilog开发
说在前头前两天老师布置了一个I2C协议的手绘图,我心想这么简单的协议我就用verilog写一个呗。初步设想是双机,能够实现主从机相互转换,可以相互读写,但是现在只实现了主机写从机读从机,手头上目前还没有FPGA,主从任意转换就没有写了,今天就把目前做到的写下来,以后有机会就填坑。I2C协议瞌睡的洋葱博客这位博主说的十分清楚了,再结合一下百度百科基本上就能搞清楚了。时序图:写寄存器的标准流程为:Master发起STARTMaster发送I2C addr(7bit)和w操作0(1bi
2022-04-13 15:11:30 1831 1
原创 重新安装jkd,eclipse打不开的问题解决
重新下载不同版本的jdk,eclipse报错说在前面第一步:重新修改JAVA_HOME:第二步:修改eclipse.ini文件说在后头说在前面之前下载了一个高版本的jdk,老老实实配置了环境变量,后来手滑把jdk删了,重新装了一个低版本的jdk,结果打开eclipse,显示找不到路径找不到路径,那么问题一定是环境变量出了问题,所以我们就需要修改JAVA_HOME(环境变量),和修改ecli...
2022-04-13 15:10:36 3227 1
原创 输入序列检测笔记
1. 前言输入序列检测,主要包括两种方法状态机法序列缓存对比法牛客网上有Verilog编程的题可以刷,刷了以后将笔记统一到一篇博客上来。题目链接:牛客网Verilog刷题2. 例题12.1 题目请编写一个序列检测模块,检测输入信号a是否满足01110001序列,当信号满足该序列,给出指示信号match。模块的接口信号图如下:模块的时序图如下:2.2 解题思路2.3 代码2.3.1 序列缓冲对比法`timescale 1ns/1nsmodule sequence_dete
2022-04-13 15:05:59 675
原创 MicroBlaze最小系统+UART/CAN/GPIO(PS端 Hello World)
前言MicroBlaze PS的开发是基于PL的,所以在设计设计师要了解底层的设计时什么样的,不然程序就是空中楼阁根本跑不起来。本篇设计时基于我上一篇博客的设计而来的MicroBlaze最小系统+UART/CAN/GPIO为保证质量,本系列文章通过四篇文章四个工程来讲解PS开发的过程:(想写多少写多少)hello worldcan tx rxtestbram read write中断平台是XCKU040,Vivado版本2019.1。本人是之前参与过STM32单片机的开发,水平有限,共
2022-04-02 17:35:49 3202
原创 如何封装Block Design中的模块
工程结构如下选择如下标志,框住需要封装的模块框住后可以进行选择,点击OK在变成橙色的模块上鼠标右键,选择Create Hierarchy。可以修改自己想要的名字完成后变成一个深蓝色的模块可以点击左上角的+号,将其展开。注意封装的时候最好不好把MicroBlaze的东西包进去了,可能会出错...
2022-04-02 11:39:47 1375
原创 MicroBlaze最小系统+UART/CAN/GPIO
平台是XCKU040,Vivado版本2019.1,不同的平台和软件IP配置界面会有些许不同哦。MicroBlaze在FPGA的设计中经常被用到,MicroBlaze可以理解为使用FPGA逻辑资源实现的一个处理器软核。处理器所具有的功能,MicroBlaze也具有。在完成控制任务时,处理器有FPGA无法比拟的优势传统的FPGA+ARM外接方式还需要解决FPGA和ARM通信的问题。这是个非常麻烦的过程。强大的开发库支持,大大节省开发时间开发灵活。
2022-04-01 18:48:05 9349 2
原创 IP使用心得-XDMA IP核使用
PCIe XDMA IP核使用心得随缘更新提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录PCIe XDMA IP核使用心得前言一、PCIE是什么?二、XDMA IP核三、实现过程四、参考资料分享总结前言好久没有认真写博客了,最近开始在公司实习,发现自己对FPGA有了一点新的认识,写篇博客记录一下自己的学习心得。不排除文文章中有错误,欢迎批评指正!q:1391783671 可以加q一起交流学习一、PCIE是什么?二、XDMA IP核三、实现过程四、参
2022-03-23 15:52:14 8806 1
原创 CAN协议笔记
说在前面CAN协议和CAN-FD协议笔记背景CAN是控制器域网 (Controller Area Network, CAN) 的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计
2022-03-21 17:51:10 2298 1
原创 USB2.0协议原文阅读笔记
说在前面这次的整体架构是由FPGA实现的USB2.0控制器通过PCIe挂载在CPU上,USB2.0控制器通过UTMI总线与PHY芯片相连,主要由PHY芯片构成的转接板与外部USB设备相连。本实验打算主要在UTMI总线上分析USB包行为在了解一个协议时,有几点是十分重要的:层次结构应用场景层次结构不同的开发者,关心的不一样,有些时候不是所有的都需要了解掌握。USB2.0的协议源文件就有650页,不可能全部阅读一个USB由三部分组成:USB interconnectUSB devices
2022-03-08 16:43:48 6768
原创 MicroBlaze双核工程搭建及测试
MicroBlaze双核工程总览单个IP设置工程总览单个IP设置Micblaze0 IP设置和Microblaze1 IP设置保持一致
2022-01-21 18:43:37 1354
I3C协议V1.1.1版本
2024-04-16
I2C 协议最新版本 V7 2021年更新
2023-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人