佛系学FPGA&&数字设计
文章平均质量分 83
重新开始学习FPGA!
背影疾风
路漫漫其修远兮,吾将上下而求索。
展开
-
前言——致读者
我不推荐大家抱着把FPGA当成单片机的思路来学习FPGA,因为单片机有单片机适用的功能,FPGA有FPGA适用的功能,杀鸡可以用牛刀,但杀鸡傻子才用牛刀。FPGA是一个工具,我们经常称之为数字积木,从逻辑的角度出发,与、或、非三种逻辑构成了世间万物,因此FPGA能通过编程实现各种逻辑功能,甚至我们可以用FPGA实现CPU的功能。数字设计是一个很庞大的内容,三言两语解释不清,我的学习过程是从51单片机开始,之后逐步过渡到32位单片机,机缘巧合下接触到FPGA,然后就来到了数字设计的世界。...原创 2022-08-17 11:13:31 · 199 阅读 · 0 评论 -
Verilog 基础仿真文件编写
在学习Verilog的过程中,相信大家都陷入了一个怪圈,那就是对于写模块相当拿手,但是一到编写仿真激励的时候就开始“抓瞎”,不知从何写起,本人也是一样。发现问题就要积极解决问题,因此,总结一篇博客(今后会不断更新)来介绍常用的一些基础仿真语句,供自己总结,也供大家查用。原创 2023-03-13 17:50:38 · 6623 阅读 · 0 评论 -
一起学时序分析之建立/保持时间裕量
裕量,英文名称叫做“Slack”。我们在Vivado实现后的报告中常常能看到这样一栏:上面我们一直提到了一个词:裕量。究竟如何理解“裕量”这个词呢?所谓的裕量字面上理解就是多出来的量,之前的文章中我们讨论过建立时间和保持时间的概念。对于建立时间,我们要求信号在建立时间之前就要稳定下来,至于具体提前了多久,那就得用“建立裕量”WNS和TNS进行衡量。对于保持时间,我们要求信号要在保持时间之后才可以变换,至于延后了多久,那就得用“保持裕量” WHS,THS进行衡量。原创 2022-12-01 12:29:28 · 4538 阅读 · 0 评论 -
一起学时序分析之时序分析基本路径
之前介绍了关于时序分析的基础知识,本节将打开时序分析的大门,来介绍一下时序分析的基本路径。原创 2022-11-23 12:11:42 · 1254 阅读 · 0 评论 -
从结构上浅谈FPGA实现逻辑的原理
FPGA是啥?你要是在百度上一查,多数会搜到什么 Field Programmable Gate Array,现场可编程门整列嘛,但是这句话对咱们新手理解FPGA起到的作用十分有限,其实不单是新手朋友,就连我这个玩了几个月的FPGAer也不求甚解,我脑海里隐隐约约的印象就是: 这个概念伴随了我很久,知道我看了一本关于FPGA结构的书,虽然是走马观花浏览了一遍,但还是给了我一些启发,今天特写一篇博客记录一下我的一些感悟。原创 2022-11-18 11:26:46 · 2414 阅读 · 0 评论 -
HLS优化实战之数组
手把手带你在实战中学习和分析HLS数组优化的内容,本篇为上,主要介绍优化策略。原创 2022-11-02 12:33:01 · 2002 阅读 · 5 评论 -
以爱情规律为例,浅谈三段式描述状态机
正所谓,天下武功,唯快不破同样,天下代码,唯练不破。状态机是一种方法论,不仅仅存在于时序电路,更是在编程算法和现实生活中广为存在,可以说,万物本质皆为状态机,我们要保留一颗融会贯通的心,这样学习才能得心应手,游刃有余。原创 2022-10-29 18:37:48 · 1255 阅读 · 0 评论 -
ZYNQ之路--HLS入门实例
上一节我们介绍了如何建立一个HLS工程以及HLS的工程结构,这一节我们着眼于HLS的优化部分,通过Xilinx官方提供的小示例来宏观了解HLS的优化操作。原创 2022-10-27 01:40:46 · 1360 阅读 · 0 评论 -
ZYNQ之路--AxiIIC IP核使用(基于PYNQ)
本博客介绍IIC传输协议的内容,以及如何在PYNQ上使用Axi IIC的IP核原创 2022-10-09 19:39:57 · 2755 阅读 · 0 评论 -
ZYNQ之路--HLS入门示例分析(基于UG871)(一)
哈喽各位同学大家好,前一篇文章中,我们介绍了HLS的一些基础知识,以及Vivado HLS的工程结构和主界面等,本节我们就以官方UG871中的一个实例来体会HLS设计的落地过程。原创 2022-10-07 01:03:42 · 1785 阅读 · 1 评论 -
ZYNQ之路--HLS入门
了解了HLS的优点、原理、工程架构、设计流程之后,我们就算是开始入门了HLS了;哥们我以一个先飞半米的笨鸟的角度来谈,其实HLS的内容真的是太多了,UG902和UG871加起来就有七八百页,并且还有很多繁杂的接口和库函数,可以说HLS的学习是不容易的。但是不要气馁,事实上HLS的学习适合于一边做项目一边学习,那么多库,那么多手册,不需要你从头看到尾,只要在项目应用的过程中遇见了,就学习,总结,不出几个月其实这部分内容你一定会很熟悉了!原创 2022-10-04 01:00:11 · 1685 阅读 · 0 评论 -
ZYNQ之路--Xilinx AXI-Full-Master实例代码翻译
在我学习过程中遇到了第一个认知上的门槛:AXI协议。试想一个场景:我PL端的IP要通过AXI-Full协议给PS端传输数据,我该怎么做?首先肯定是创建一个带有AXI-Full-Matser的接口下一步,Xilinx官方会给我们一个接口的实例文件:顶层是一个对外的接口,而内层的代码则是AXI-Full-Master接口的协议实现。当然了,我们肯定是要通过改动这个文件来将我们自己的IP和AXI接口协议相结合,因此我们有必要读懂AXI-Full-Master的代码内容。原创 2022-10-02 20:25:26 · 2323 阅读 · 0 评论 -
一起学时序分析之延迟与时钟偏斜和抖动
我们上一节提到了一些基础的时序参数,这一节我们来补充一下有关于路径与路径延迟,以及时钟偏斜(Clock Skew)和时钟抖动(Clock jitter)的内容。原创 2022-10-02 02:28:16 · 2435 阅读 · 0 评论 -
一起学时序分析之基础时序参数
什么是时序电路?我曾写过来阐述时序电路的一些概念。其实,简而言之,时序电路就是 “”构成,组合逻辑电路主要完成电路功能,锁存器和触发器,并且让输出的结果在时钟信号的节奏下。锁存器由于其对电平敏感的特性在时序电路中比较少地使用(毛刺),我们大多数使用的是对触发沿敏感的触发器。原创 2022-10-01 02:17:18 · 2309 阅读 · 0 评论 -
ZYNQ之路--制作AXI4 接口IP的思路
AXI的全称叫做即高级可扩展接口,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。很容易理解这个总线的重要作用:Soc上各个子模块之间要进行通信,既然是通信那么总得有一个规范和标准,AMBA就是为了这样一个目的而提出的(不要问为啥是由ARM公司提出的,问就是因为ZYNQ使用的是ARM的内核)原创 2022-09-30 03:07:46 · 3005 阅读 · 0 评论 -
ZYNQ之路--程序固化教程
我们刚开始使用ZYNQ时,习惯使用JTAG在线将ZYNQ的PS和PL部分的配置文件烧录进ZYNQ,这样方便我们进行调试,但是却带来了掉电配置文件丢失的问题,因此,在我们学习ZYNQ的路上,必须要学会如何把配置文件保存进非易失的存储器件当中去。原创 2022-09-26 00:18:36 · 5566 阅读 · 0 评论 -
ZYNQ之路--带你弄明白Vivado设计流程
经过一段时间的摸索,我大概对于使用这些软件有了一些心得体会,所以为什么要写这篇博客呢?当然是因为网上有关的内容太少了。各类五花八门的教材打着教会你ZYNQ的旗子,实际上做的都是一些填鸭式的教学,我们往往只知其然而不是所以然,不得其精髓,这是我们应该避免的。原创 2022-09-24 02:27:57 · 2286 阅读 · 0 评论 -
剖析LeNet-5 网络结构
本文介绍LeNet-5的网络结构与参数数量原创 2022-09-17 16:42:50 · 2593 阅读 · 2 评论 -
神经网络不神秘--初步认识ANN
读完之后大家可能对神经网络有了一些了解,可能你们会恍然大悟:噢,也就那么回事,不就是做数学运算嘛?但是,这只是神经网络的九牛一毛罢了。从前的人们也是这样看神经网络的,智商不够,算力来凑呗。但是随着卷积神经网络CNN等等的兴起,人们发现臃肿的神经网络也可以变得轻巧灵动,并且迸发出巨大的应用,这也是我们为什么要学习和研究神经网络的原因。两千多字下来了,相信大家也看累了,下一篇我们就一起来手把手实操一遍神经网络吧!原创 2022-09-15 02:07:43 · 520 阅读 · 0 评论 -
ZYNQ之路--初级开发流程介绍
很多有玩过FPGA的老兄入手了ZYNQ,也明白什么PS+PL的开发方式,但是不知道开发ZYNQ究竟要怎么样做。本篇博客是本人阅读正点原子等开发资料的一些感悟,希望能让大家对ZYNQ的开发流程有一个更清楚的认识。原创 2022-09-12 21:48:45 · 2016 阅读 · 0 评论 -
ZYNQ之路--搞清楚Xilinx开发软件之间的关系
实在不懂Xilinx的开发软件有哪些,是用来干嘛的了,所以可以来看看这篇博客,希望能给大家提供一些帮助。原创 2022-09-12 01:09:18 · 5808 阅读 · 0 评论 -
ZYNQ7000零基础学习之路--Day1
最近我被隔离了,很不幸我关注的比赛又开始报名,但是作为一只略懂FPGA的菜鸟,我对ZYNQ可谓一无所知,虽然之前零零散散玩过几个软核,但是我确实没有很清楚何为ZYNQ这个问题,因此我想记录一下自己学习的过程,也算是无聊中的一种自我激励。原创 2022-09-10 00:06:56 · 1595 阅读 · 0 评论 -
手把手带你实现SDRAM控制器(带Verilog代码)
SDRAM芯片需要配合专门的控制电路使用才能发挥功能,这一节我们将一步步分析,使用Verilog搭建一个SDRAM驱动控制器。原创 2022-09-07 09:14:44 · 4952 阅读 · 1 评论 -
FPGA之SDRAM基础知识学习
通俗易懂,为大家介绍存储器的基础知识,以及SDRAM的操作命令!原创 2022-09-05 13:21:18 · 1773 阅读 · 0 评论 -
手把手教你写Ov7725摄像头数据采集模块(带Verilog代码)
手把手教大家怎么对一个问题进行分析,如何把解决方案转换为Verilog代码,以ov7725 ,VGA数据采集为例。原创 2022-09-04 01:51:44 · 2109 阅读 · 2 评论 -
FPGA之OV7725摄像头采集与VGA显示实验--4--摄像头数据输出VAG协议分析
大家好,前面几节给大家介绍了OV7725摄像头通过SCCB协议进行配置的内容,这一节我们来聊一下关于OV7725摄像头的VAG协议的知识,为后面的数据采集模块做铺垫。原创 2022-09-03 21:37:06 · 1054 阅读 · 0 评论 -
简明时序电路分析
我想向大家分享一下如何对简单时序电路进行分析,故本篇博客主要面向数字电子技术初学者,不烧脑。原创 2022-08-16 16:18:53 · 2268 阅读 · 0 评论 -
浅谈Verilog中的逻辑运算符
缩位运算符都是单目运算符,一般是将缩位运算符放置在操作数前面,如&A、|B、^C、^~D等等,注意千万不要放到后面去,缩微运算和前面讲的逻辑类运算区别度高,我们来看一下其综合的电路有什么特殊之处。结果说明,当in1为010和001时输出的结果都是一样的,也就是说010和001其实都代表着真,只有当in1=000时代表假,所以输出变成0。如“A===1'bx”当A等于x时,整体就为1,所以===更加严格,连x和z都比较。test的功能是将in1与in2进行逻辑与,看好哦,in1与in2。...........原创 2022-07-25 21:11:32 · 18320 阅读 · 3 评论 -
FPGA之OV7725摄像头采集与VGA显示实验--3--摄像头配置模块实现(Verilog代码)
上一节向大家介绍了摄像头配置的SCCB协议发送器的Verilog实现,这一节则向大家介绍配置信息存储模块:ovcfg_info的Verilog实现。原创 2022-09-03 01:15:33 · 1068 阅读 · 0 评论 -
FPGA之OV7725摄像头采集与VGA显示实验--2--SCCB协议发送器实现(Verilog代码)
上一节学习了OV7725的配置协议SCCB;这一节我们将讲解SCCB模块的Verilog实现。原创 2022-09-02 22:38:42 · 1298 阅读 · 0 评论 -
FPGA--OV7725摄像头采集与VGA显示实验--1--OV7725使用与驱动协议
摄像头采集是图像处理的第一步,本章节分为多部分,旨在让大家学会如何使用OV7725采集图像,并且使用VGA协议显示出来。原创 2022-09-01 14:27:48 · 3572 阅读 · 0 评论 -
FPGA IP核之 FIFO
FIFO是英文 First In First Out的缩写,即先进先出,常常作为数据缓冲器,实现数据先入先出的读写方式。我们学过ROM 和 RAM,它们都是按照地址进行数据的读写操作,而FIFO则更像一根管子,数据从一头流向另一头。也因此,FIFO 只有一个写端口和一个读端口,外部无需使用地址。...原创 2022-08-31 23:18:30 · 1188 阅读 · 0 评论 -
数字设计项目一:直接信号发生器(DDS)产生爱心波
DDS,即Direct Digital Synthesis ,直接数字频率合成器。我们常常用DDS配合DAC芯片来产生信号波形,其原理也十分简单:就是把目标波形上每个点的值逐个输出到DAC芯片上去以此产生模拟波形。本文介绍一种爱心波产生的方法。...原创 2022-08-17 00:00:10 · 1133 阅读 · 0 评论 -
FPGA--(基于Quartus的FPAG程序下载与固化教程)VGA显示实验之上板测试
本节内容旨在教会大家如何下载程序进入FPGA并且验证我们前几节所做的VGA显示实验。原创 2022-08-23 15:12:39 · 2181 阅读 · 0 评论 -
FPGA--VGA显示实验之Verilog代码描述(系统组装)
在前几节的努力下,我们成功地实现了VGA显示系统的各个部分,这篇文章我们将把零散的模块进行组合,并仿真验证。原创 2022-08-23 12:31:47 · 680 阅读 · 0 评论 -
FPGA--VGA显示实验之Verilog代码描述(图像数据生成模块)
图像数据生成模块在VGA显示系统中主要用来根据坐标数据产生颜色数据。原创 2022-08-23 01:20:40 · 1008 阅读 · 0 评论 -
FPGA--VGA显示实验之Verilog代码描述(VGA时序控制模块)
vga_ctrl模块的功能是输出满足时序要求的行扫描与场扫描信号,以及向vga_pic模块发出像素坐标索引,索要该像素点的颜色数据,同时在行有效周期和场有效周期输出像素RGB565参数。原创 2022-08-22 23:11:13 · 1976 阅读 · 1 评论 -
FPGA--VGA显示实验之Verilog代码描述(时钟模块)
手把手教你基于Quartus II的PLL IP核例化过程(图解)原创 2022-08-22 17:57:55 · 2155 阅读 · 0 评论 -
FPGA--VGA显示驱动实验
学习图像处理的第一步,我想从VGA显示开始。本篇文章基于野火FPGA教程,分享自己在实验过程中的感悟。原创 2022-08-22 15:45:20 · 2124 阅读 · 0 评论