FPGA
Lily_9
小硕,FPGA与deep learning学习者。
展开
-
【Vivado——综合】Vivado 综合设置指令列表(RTL/GUI/TCL版本)
参考链接:https://www.xilinx.com/support/answers/55185.html上述链接,提供了Vivado和XST版本开发套件的综合配置选项信息,包括RTL/TCL/GUI版本,可参考。原创 2020-01-17 17:25:49 · 1987 阅读 · 0 评论 -
【FPGA——乘法运算】基于USE_DSP资源来实现
0 背景最近工程主要涉及到乘法和加法运算,然后想将两个无符号数的乘法采用USE_DSP硬核来实现。1 过程软件版本:Vivado 2017.4 Synthesis Settings: 采用工具默认设置。程序编写完毕后,进行综合,然后查看utilization report,发现40个通道对应的乘法运算只使用了2个DSP...转载 2020-01-17 16:33:31 · 2622 阅读 · 0 评论 -
【Vivado——FPGA硬件调试(二)】 例化ILA核
Vivado环境下,FPGA硬件调试方法很多,但常用方法主要围绕 ILA核展开。ILA核简介ILA是Vivado下的一个Debug IP核,类似于片上逻辑分析仪。在上一篇文章中,我们介绍了mark debug + set up debug,抓取信号的实时波形,调试工程;其中set up debug步骤,就是通过图形界面自动添加ILA核。本文将介绍另一种方法:通过在RTL代码中直接例化I...原创 2018-12-18 20:45:06 · 5419 阅读 · 0 评论 -
【Vivado——FPGA硬件调试(三)】Vivado与SDK的联合调试方法——使用ILA
首先介绍一下我的硬件平台:使用的开发板为米联客出的MIZ702,这个开发板与ZedBoard是兼容的。Vivado硬件调试有几种手段:ILA(集成逻辑分析器Integrated Logic Analyzer)、VIO(虚拟I/O Virtual Input/Output)、Jtag-to-AXI等,本方法主要使用了ILA 。本实验系统使用了两种调试手段:ILA和VIO,ILA的引入方式又用...转载 2018-12-25 11:16:00 · 2975 阅读 · 0 评论 -
【Vivado——FPGA硬件调试(四)】快速替换Debug Probes
在使用Vivado Logic Analyzer调试时,常会遇到这样的情形:当前阶段需要观测信号xa_reg,下一阶段需要观测xb_reg,两个阶段原始设计并没有改变,只是需要将xa_reg替换为xb_reg。此时,一种方法是回到综合后的设计,通过Setup Debug重新设置待观测信号,这样固然可行,但需要对设计重新布局布线,耗时,效率低。另一种方法是采用ECO(Engineering Chan...转载 2018-12-25 11:27:31 · 3010 阅读 · 0 评论 -
【FPGA——基础篇】如何理解时序电路
一、概述时序逻辑示意图,如下图所示。数据从一个寄存器出来,经过组合逻辑到达下一个寄存器。 在学习数字电路的过程中,我们都知道时序逻辑,但是大家对时序逻辑真的了解吗? (1)纯组合逻辑电路的缺点在哪? (3)纯组合逻辑电路完成不了什么功能? (2)为什么需要时钟和寄存器呢? 带着这三个疑问我们来...原创 2019-03-02 14:23:00 · 2570 阅读 · 0 评论 -
【FPGA——基础篇】静态时序分析基础
一、建立时间,保持时间为了确保寄存器在时钟沿稳定采集数据,那么必须要满足寄存器的建立,保持时间要求。 建立时间要求:在寄存器有效时钟沿之前至少Tsetup时间,数据必须到达且稳定。如下图所示。 保持时间要求:在数据采集有效时钟沿之后,数据必须维持最短Thold时间不变。如...原创 2019-03-02 15:57:50 · 1278 阅读 · 0 评论 -
【FPGA——基础篇】换个方式理解有限状态机
一、状态机概述有限状态机通常是由寄存器组和组合逻辑组成时序电路,根据当前状态和输入信号可以控制下一个状态的跳转,有限状态机在电路中通常是作为控制模块,作为整个电路模块的核心而存在,它主要包括两大类:Mealy型状态机和Moore型状态机。Mealy型状态机:其组合逻辑的输出不仅与当前状态有关,还与输入有关。如下图所示:Moore型状态机:其组合逻辑的输出只与当前的状态有关。...转载 2019-03-02 16:36:16 · 864 阅读 · 0 评论 -
【ZYNQ-7000 开发之七】PL读写DDR3
0.引言构建SoC系统,毕竟是需要实现PS和PL间的数据交互,而像上一讲那样PL主机与PL从机之间通过AXI4-Lite总线进行交互有点杀鸡用牛刀了。如果PS与PL端进行数据交互,可以直接设计PL端为从机,PS端向PL端的reg写入数据即可,但是对于图像处理等大数据量的数据交互来说,PL端的BRAM毕竟容量有限,很难用BRAM作为两者间的数据缓存器。对于这样的应用来说,利用DDR3作为PS...转载 2019-03-24 22:18:03 · 16011 阅读 · 3 评论 -
【FPGA——基础篇】同步FIFO与异步FIFO——Verilog实现
FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。作用: FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端是AD数据采集, 另一端是计算...转载 2019-04-16 09:20:07 · 26551 阅读 · 19 评论 -
【FPGA——工具篇】32个FPGA开源网站
1. OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到。进入后,选择project或者由http//www.opencores.org/browse.cgi/by_category进入。对于想了解这个行业动态人可以看看它的投票调查。http://www.opencores.org/polls.cgi/listOpe...转载 2019-05-19 14:18:57 · 3325 阅读 · 0 评论 -
【FPGA——时序篇】时序优化的几种方法
参考博文:https://www.cnblogs.com/sepeng/p/5578402.html参考书目:英文版:《advanced FPGA design》 中文版:《高级FPGA设计,结构,实现,和优化》衡量FPGA设计的两个重要指标是吞吐率和延迟。吞吐率:指系统每一个时钟周期内能够处理的数据数量,为了获得更高的吞吐率就需要减少组合逻辑延迟,在组合逻辑中间插入寄存器,也就...转载 2019-05-09 16:53:17 · 10757 阅读 · 1 评论 -
关于CPLD与FPGA的对比分析
1.PLD/FPGA/CPLD PLD(Programmable Logic Device):可编程逻辑器件,数字集成电路半成品,芯片上按照一定的排列方式集成了大量的门和触发器等基本逻辑元件,使用者按照设计要求运用开发工具将这些片内的元件连接起来,此过程称为编程; FPGA:基于查找表技术,要外挂配置用的EEPROM的PLD产品;由逻辑功能块排列为阵列,并由可编程的内部连线连接...转载 2019-05-07 10:46:43 · 1862 阅读 · 0 评论 -
【ZYNQ——自定义AXI IP核】—— Linux系统下驱动程序和应用程序编写
在前面3篇博客的前提下,已经成功将硬件IP添加到了系统。接下来要进行硬件IP驱动得编写和应用程序的编写。硬件驱动和应用程序的源文件下载地址:http://download.csdn.net/detail/young_fly/9509915(1)硬件驱动的编写主要是makefile的编写,每个人的电脑配置都不一样,需要根据自己交叉编译器安装的具体情况,修改makefile, 然后使用make...转载 2019-09-27 16:13:55 · 2103 阅读 · 0 评论 -
【FPGA——基础篇】verilog中assign和always@(*)两者描述组合逻辑时的差别
verilog描述组合逻辑一般常用的有两种:assign赋值语句和always@(*)语句。两者之间的差别有: 1.被assign赋值的信号定义为wire型,被always@(*)结构块下的信号定义为reg型,值得注意的是,这里的reg并不是一个真正的触发器,只有敏感列表为上升沿触发的写法才会综合为触发器,在仿真时才具有触发器的特性。 2.另外一个区别则是更细微的差别:举个例子...原创 2018-11-12 15:52:38 · 9662 阅读 · 2 评论 -
【ZYNQ-7000开发之六】使用PS控制DDR3的读写
本编文章的目的主要用简明的方法在纯PS里对DDR3进行读写。本文所使用的开发板是Miz701 PC 开发环境版本:Vivado 2015.4 Xilinx SDK 2015.410.0本章难度系数★☆☆☆☆☆☆10.1 搭建硬件工程Step1:新建一个名为为Miz701_sys的工程Step2:选择RTL Project 勾选Do not specify sourc...转载 2018-10-26 09:29:48 · 3707 阅读 · 0 评论 -
【ZYNQ-7000开发之四】PS读写PL端BRAM
本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口终端显示。涉及到AXI BRAM Controller 和 Block Memery Generator等IP的使用。本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整...转载 2018-10-26 09:24:08 · 2928 阅读 · 0 评论 -
【ZYNQ-7000——开发之五】:AXI DMA读写FIFO
此文是转载自 http://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html我在测试AXI DMA时参考了这个文章,调通了xilinx官方的axidmatest.c环境:uboot:2015.4 kernel 2015.3 vivado 2015.4.1 修改的地方:1、用SDK生成设备树要添...转载 2018-06-26 14:26:29 · 8536 阅读 · 0 评论 -
【FPGA——原理篇】:基本原理和内部结构
一、FPGA原理FPGA中的基本逻辑单元是CLB模块,一个CLB模块一般包含若干个基本的查找表、寄存器和多路选择器资源,因此FPGA中的逻辑表达式基于LUT的。FPGA内部的编程信息一般存储在SRAM单元中,因此通常的FPGA都是基于SRAM的,所以掉电后信息会丢失,下次上电需要先配置才能使用。着重介绍Xilinx FPGA,二、FPGA产品的速度等级速度等级一般反映一款芯片的...转载 2018-07-27 09:51:54 · 5320 阅读 · 0 评论 -
【ZYNQ-7000开发之七】AXI CDMA特点以及在PS端使用的步骤_理论部分
本编文章是AXI Central Direct Memory Access v4.1的阅读笔记硬件规格部分简介:AXI CDMA为嵌入式系统提供了高性能的片上互联 The AXI CDMA provides high-bandwidth Direct Memory Access (DMA) between a memory-mapped source address and a memo...转载 2018-07-27 10:52:51 · 3513 阅读 · 0 评论 -
【FPGA——工具篇】:Xilinx_ISE_12.4安装包下载百度云网盘
链接:https://pan.baidu.com/s/1vtimUockxhpPI1uTqSyIDw 密码:ssyu原创 2018-05-15 17:05:17 · 10185 阅读 · 3 评论 -
【FPGA——协议篇】:Xilinx AXI4总线介绍
1、什么是AXI AXI(Advanced eXtensible Interface)是一种总协议,该协议的第一个版本AXI3是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分。2010发布的AMBA4.0包含了AXI的第二个版本AXI4。 AXI4包含3种类型的接口: 1)AXI4:...转载 2018-06-22 09:24:30 · 7875 阅读 · 0 评论 -
【FPGA——工具篇】:Modelsim SE-64 10.4下载、破解、安装过程
Modelsim SE-64 10.4破解安装过程百度云链接:https://pan.baidu.com/s/1ONbjNLajFKzHDJ9bs4gz6Q 密码:by0p压缩包解压密码:Lily_9 ①执行软件的正常安装程序.exe,点点我同意神马的….(需要重启一次)②在软件安装目录中找到mgls64.dll文件,右键文件属性取消只读属性。mgls64.dll文件的默认路径...转载 2018-05-15 16:57:25 · 93481 阅读 · 70 评论 -
【FPGA——基础篇】数字电路设计——三态门
1.what is Three-state gate?三态指其输出既可以是一般二值逻辑电路,即正常的高电平(逻辑1)或低电平(逻辑0),又可以保持特有的高阻抗状态。高阻态相当于隔断状态(电阻很大,相当于开路)。高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响。2.why?高阻态的意义在于实际电...原创 2018-09-01 11:13:50 · 4456 阅读 · 0 评论 -
【FPGA——协议篇】:I2C总线协议详解+verilog源码
1.what is I2C bus? ① 2条双向串行线,一条数据线SDA,一条时钟线SCL。 ② SDA传输数据是大端传输,每次传输8bit,即一字节。 ③ 支持多主控(multimastering),任何时间点只能有一个主控。 ④ 总线上每个设备都有自己的一个addr,共7个bit,广播地址全0;系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,...原创 2018-08-25 17:11:45 · 12598 阅读 · 3 评论 -
【FPGA——基础篇】latency与delay概念的区别
最近学习流水线以及状态机,总遇到注入加入寄存器可以分割组合逻辑,从而提高电路的运行频率的说法;还有流水线可以提高速度的说法,刚开始很是疑惑,觉得流水线的方法,输出与输入之间的延时更大了,怎么会提高频率呢?现在才明白是latency与delay的区别,按照自己的理解整理一下。latency:输入数据与该数据经过处理后的结果输出之间的延时,是时钟延迟 一般以时钟为单位,指的是相对于某个时...原创 2018-10-13 17:41:15 · 3248 阅读 · 0 评论 -
【Vivado——仿真】vivado与modelsim的联合仿真
vivado软件中也自带仿真工具,但用了几天之后感觉仿真速度有点慢,至少比modelsim慢挺多的。而modelsim是我比较熟悉的一款仿真软件,固然选它作为设计功能的验证。为了将vivado和modelsim关联,需要进行一些设置,下面一一介绍。一、在vivado中设置modelsim(即第三方仿真工具)的安装路径。在vivado菜单中选择“Tools”——>“Options...”,...转载 2018-10-13 17:42:13 · 2298 阅读 · 0 评论 -
【Vivado——FPGA硬件调试 (一)】mark_debug
Vivado和ISE相比ChipScope已经大幅改变,很多人都不习惯。在ISE中称为ChipScope而Vivado中就称为in system debug。下面就介绍Vivado中如何使用debug工具。Debug分为3个阶段:1. 探测信号:在设计中标志想要查看的信号2. 布局布线:给包含了debug IP的设计布局布线3. 分析:上板看信号一 探测信号探测信号有2种方法一种是...转载 2018-09-30 15:14:48 · 6658 阅读 · 0 评论 -
【FPGA——协议篇】:AXI4、AXI4-Lite、AXI-Stream总线协议的简单认识
(一)AXI总线是什么? AXI是ARM 1996年提出的微控制器总线家族AMBA中的一部分。AXI的第一个版本出现在AMBA3.0,发布于2003年。当前的最新的版本发布于2010年。 AXI4:主要面向高性能地址映射通信的需求; AXI4-Lite:是一个简单地吞吐量地址映射性通信总线; AXI4-Stream:面向高速流数据传输; AXI4总...转载 2018-05-15 17:29:54 · 6687 阅读 · 0 评论