FPGA
青豆1113
这个作者很懒,什么都没留下…
展开
-
MicroZed Chronicles
If you want E book or hardback versions of the MicroZed chronicles you can get them belowFirst Year E Book hereFirst Year Hardback here.Second Year E Book hereSecond Year Hardback here转载 2017-05-23 20:13:06 · 658 阅读 · 1 评论 -
Xilinx Vivado的使用详细介绍(2):综合、实现、管脚分配、时钟设置、烧写
前面一篇介绍了从新建工程一直到编写代码进行行为仿真,这篇继续进行介绍。修改器件型号新建工程时选择过器件型号,如果新建好工程后需要修改型号,可以选择菜单Tools - Project Settings。弹出窗口中,点击Project Device右侧的按钮,即可选择器件型号。综合(Synthesis)综合类似于编程中的编译。在Flow Navigator或Flow菜单中,选择Synthesis - ...转载 2018-02-13 14:33:08 · 18686 阅读 · 1 评论 -
ZYNQ-用PS控制DDR3内存读写
本编文章的目的主要用简明的方法对DDR3进行读写,当然这种方式每次读写都需要CPU干预,效率是比较低的,但是这是学习的过程吧。本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整性,保证实验的可重现性。 但是用到的模块或者IP的具体作用和用法不保证都重复详细的介绍。本文所使用的开发板是兼容zedboardPC 开发环境版本:Vivado 2015.4 Xilinx SDK 2015.4生成...转载 2018-02-13 14:33:27 · 10507 阅读 · 1 评论 -
VIVADO 入门之仿真与逻辑分析仪使用
多路分频器设计在第七节的学习中,笔者带大家通过一个入门必学的流水灯实验实现,快速掌握了VIVADO基于FPGA开发板的基本流程。考虑到很多初学者并没有掌握好Vivado 下FPGA的开发流程,本章开始笔者讲更加详细地介绍基于VIVADO FPGA开发的流程规范,让读者掌全面掌握FPGA开发流程包括了如何仿真、综合、执行、下载到开发板测试。9.1 硬件图片本章使用到的硬件和前一章一样:LED部分及按...转载 2018-02-13 14:34:22 · 3092 阅读 · 0 评论 -
关于Xilinx的IO引脚命名中N与P的含义
IO_Lxxy_z:其中xx:为某个BANK中唯一的引脚对;y:为差分对输入/输出,N为负端,P为正端;z:为BANK号。Xilinx定义了差分对引脚,是为了使用IBUFDS原语和UBUFDS原语,通过调用这两个模块,或者说软IP核,可直接输出单端信号,从而避免自己编写Verilog模块来处理差分信号。关于IBUFDS原语,描述如下:IBUFDS原语用于将差分输入信号转化成标准单端信号,且可加入可...转载 2018-02-13 14:35:21 · 11962 阅读 · 0 评论 -
对`timescale的深入理解
1. `timescale 1ns / 1ps,含义为:时延单位为1ns,时延精度为1ps。2. 在编译过程中,`timescale会影响其后面所有模块中的时延值,直至遇到另一个`timescale指令或`resetall指令。3. 当一个设计中的多个模块带有自身的`timescale编译指令时,模拟器将定位在所有模块的最小时延精度上,并且所有时延都相应地换算为最小时延精度。在实际应用过程中,如...转载 2018-02-13 14:44:23 · 52550 阅读 · 2 评论 -
`include在Verilog中的应用
"文件包含"处理`include所谓"文件包含"处理是一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。Verilog HDL语言提供了`include命令用来实现"文件包含"的操作。其一般形式为:`include "文件名"图中意思为:在编译的时候,需要对`include命令进行"文件包含"预处理:将File2.v的全部内容复制插入到`include "File2.转载 2018-02-13 14:44:43 · 11420 阅读 · 0 评论 -
FPGA 关于错误(10200)
本人在调试FPGA时有时会出现以下错误:Error (10200): Verilog HDL Conditional Statement error at delay.v(23): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the alw...转载 2018-03-16 19:47:10 · 8130 阅读 · 0 评论 -
FPGA学习-例解阻塞赋值与非阻塞赋值
据说阻塞赋值和非阻塞赋值是Verilog 语言中最难理解的知识点之一,我也觉得,从网上翻阅了资料,也看过一些视频。以下从两个典型的例子以及多个角度去分析得到与验证阻塞赋值与非阻塞赋值的区别,以及各自的特点。 非阻塞赋值与阻塞赋值特性1、非阻塞赋值的特性:赋值语句的流程:a)计算右边的表达式得到结果b)将结果赋值到左边的变量这个过程中允许来自任何其他Verilog语句的干扰,也就是说其他Veril...转载 2018-03-16 21:51:47 · 1244 阅读 · 0 评论 -
Xilinx Vivado的使用详细介绍(3):使用IP核
IP核(IP Core)Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例如C语言中的printf()函数),可以直接调用,非常方便,大大加快了开发速度。使用Verilog调用IP核这里简单举一个乘法器的IP核使用实例,使用Verilog调用。首先新建工程,新建demo.v顶层模块。添加IP核点击...转载 2018-02-13 14:32:53 · 25868 阅读 · 6 评论 -
verilog 双向口使用
芯 片外部引脚很多都使用inout类型的,为的是节省管腿。一般信号线用做总线等双向数据传输的时候就要用到INOUT类型了。就是一个端口同时做输入和输 出。 inout在具体实现上一般用三态门来实现。三态门的第三个状态就是高阻'Z'。 当inout端口不输出时,将三态门置高阻。这样信号就不会因为两端同时输出而出错了,更详细的内容可以搜索一下三态门tri-state的资料.1 使用inout类型数据,...转载 2018-02-13 14:32:34 · 2205 阅读 · 0 评论 -
Ubuntu下bin文件的安装
在unbuntu上装一个vivado,从官网上下了一个下载器居然是bin文件,无从下手,记录一下,以下是bin文件的安装方式一、ubuntu里安装bin文件,需要用命令行,如果你要安装a.bin这个文件,这个文件放在/home/username/sth/目录下面,可以这样做:终端可以在“程序-附件”里面找到,打开以后,输入cd /home/username/sth/ 然后回车;此行切换...原创 2018-02-13 12:06:54 · 16525 阅读 · 3 评论 -
自定义一个AXI-IP核
目的:自定义一个IP核,通过AXI总线与ARM系统连接 环境:Win7 32bitVivado2014.4.1Xilinx sdk2014.4开发板:Zc702 第一步: 新建一个自定义的HDL模块,本实验新建一个16位加法器,保存为test.v,代码如下module test(转载 2017-05-13 22:07:04 · 3268 阅读 · 0 评论 -
Xilinx Vivado的使用详细介绍:使用IP核、例化IP
IP核(IP Core)Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例如C语言中的printf()函数),可以直接调用,非常方便,大大加快了开发速度。使用Verilog调用IP核这里简单举一个乘法器的IP核使用实例,使用Verilog调用。首先新建工程,新建demo.v转载 2017-05-26 11:04:51 · 30634 阅读 · 1 评论 -
VHDL和Verilog的区别
这两种语言都是用于数字电子系统设计的硬件描述语言,而且都已经是 IEEE 的标准。 VHDL 1987 年成为标准,而 Verilog 是 1995 年才成为标准的。这个是因为 VHDL 是美国军方组织开发的,而 Verilog 是一个公司的私有财产转化而来的。为什么 Verilog 能成为 IEEE 标准呢?它一定有其优越性才行,所以说 Verilog 有更强的生命力。 这两转载 2017-05-25 17:59:49 · 5205 阅读 · 1 评论 -
运行vivado project tcl文件建立工程
很多xilinx的测试例程,是给出的project.tcl文件和system_top.tcl文件,分别是生成工程的.tcl与在工程中新建system_top的tcl文件,也就是通过这个两个,不用一步一步的新建工程,就可以使用测试例程了。下面说一下tcl文件的执行过程,将下载例程文件解压(注意:存放的路径不要有中文路径,似乎也没有什么影响,只是以前遇到中文路径的坑太多,为了不必要的浪费时间,原创 2017-05-13 15:08:49 · 19183 阅读 · 3 评论 -
Zynq 自定义模块中断触发实例
最近,设计PL与PS数据交互,用到自定义IP模块,同时需要给ARM侧一个ACK信号,考虑到实时性,采用PL-PS的IRQ。参考官网文档:The_Zynq_Book_ebook.pdfUG111 Embedded System Tools Reference Manual.pdf 的Interrupt Management部分得到中断处理基本流程:(具体函数参考转载 2017-05-22 12:59:47 · 1967 阅读 · 0 评论 -
Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]新建工程打开Vivado软件,直接在欢迎界面点击Create New Project,或在开始菜单中选择File - New Project即可新建工程。点击Next输入工程名称和路径。选择RTL Project,勾选Do转载 2017-05-28 23:03:50 · 13685 阅读 · 0 评论 -
语音合成的思路、语音的声学特征、声音采样的一些资料
语音合成:把语音波形文件重现,以一种灵活的方式,只用极少数的基础数据,比如元音辅音的语音参数,那么首先需要研究元音辅音的语音学性质。先从元音开始,根据相关资料,不同的元音是由相同的原始声带音通过不同的共振腔(由声腔形状的变化决定)产生不同的共振效果,导致其频谱发生很大变化而得以区分。一般来说每个频谱都有三个振幅比较强的频率区,在频谱上呈现为波峰状,称为“共振峰”(formant),从低频到高频转载 2017-06-19 16:35:22 · 17418 阅读 · 0 评论 -
Vivado+FPGA:如何使用Debug Cores(ILA)在线调试
在Vivado下在线调试是利用ILA进行的,Xilinx官方给出了一个视频,演示了如何使用Vivado的debug cores,下面我根据这个官方视频的截图的来演示一下:官方的视频使用的软件版本为2012.2,不过在2015.3下也是差不多的。第一步:标记需要debug的信号例如:VHDL:attribute mark_debug of sineSel转载 2017-06-03 23:42:21 · 3286 阅读 · 0 评论 -
基于Zynq的数据采集系统设计与调试(三) —— FIFO的使用
前言: FIFO是数据采集系统中必不可少的环节,AD采回来的数据要送至ARM/DSP处理,或将采回来的数据写到本地,都需要解决读写速度匹配问题,解决这类问题,首选FIFO。 在我们的设计当中,使用的是ADI公司的AD7989,18bit,100KSPS,采用三线SPI数据传输模式。采用两级FIFO,第一级FIFO用于缓存AD采样点数据,第二级FIFO用于DMA数据传输。转载 2017-06-11 12:42:04 · 3661 阅读 · 0 评论 -
Vivado常见问题集锦
Vivado常见问题集锦3. 提升Vivado编译速度我们都知道Vivado编译起来相当的慢,每次综合起来我就拿起了手机,这个方法可以提高编译速度,在VIVADO中一个run编译时支持的线程数如下表:(综合时一般是2线程) PlaceRouteWindows默认22Linux默认44Windows开启maxThreads=844linux开启maxThreads=888 在tcl脚本处输入如下命令...原创 2018-02-09 18:01:14 · 6831 阅读 · 1 评论 -
Verilog重载模块参数,被引用模块名 # (参数1,参数2,…)例化模块名(端口列表);
阅读文章时看到下面这一段:defparam在某些综合器中无效. 应尽量采用重载模块参数的方法.如: Mem mem_inst # (32,1024) (clr,rstN,wrN,rdN,din, dout) ;平时不怎么注意语法,# (32,1024) ,这个是什么东东,没看懂,google学习之; //-----------------------以下部分为网上摘来的-------------...转载 2018-02-09 20:23:07 · 6979 阅读 · 0 评论 -
verilog中的function用法与例子
函数的功能和任务的功能类似,但二者还存在很大的不同。在 Verilog HDL 语法中也存在函数的定义和调用。 1.函数的定义 函数通过关键词 function 和 endfunction 定义,不允许输出端口声明(包括输出和双向端口) ,但可以有多个输入端口。函数定义的语法如下: function [range] function_id; input_declaration othe...转载 2018-02-09 22:08:35 · 2016 阅读 · 0 评论