FPGA基础知识
文章平均质量分 91
七水_SevenFormer
你好,硬件工程师
展开
-
xilinx时序约束
转自:http://blog.chinaunix.net/uid-15887868-id-4091631.html在进行FPGA的设计时,经常会需要在综合、实现的阶段添加约束,以便能够控制综合、实现过程,使设计满足我们需要的运行速度、引脚位置等要求。通常的做法是设计编写约束文件并导入到综合实现工具,在进行FPGA/CPLD的综合、实现过程中指导逻辑的映射和布局布线。下面主要总结一下Xili转载 2015-12-24 14:57:54 · 3480 阅读 · 0 评论 -
Vivado 中调用ultraedit UE
如上图 建议选择Custom Editor ,后面路径为 "C:/Program Files (x86)/IDM Computer Solutions/UltraEdit/uedit32.exe"[file name] 注意不要添加 -l[line number] ,之前添加了 -l[line number] ,一直无法打开。其次路径中不要包含空格原创 2015-11-28 00:23:15 · 6690 阅读 · 2 评论 -
ZYNQ 的三种GPIO :MIO EMIO AXI_GPIO 小节
学了zynq一段时间,一上来的时候就被zynq的GPIO唬住了,实在没搞清楚zynq的GPIO怎么回事,一会这样,一会那样,最后才慢慢发现zynq至少有3种GPIO可以调用。难怪我觉得每篇介绍GPIO的博客说的有一些不一样呢。我们先看有哪三种GPIO:MIO、EMIO、AXI_GPIO。其中MIO和EMIO是直接挂在PS上的GPIO。而AXI_GPIO是通过AXI总线挂在PS上的GPIO上。原创 2015-10-30 00:34:00 · 18326 阅读 · 0 评论 -
ISE综合不通过 但不报错
解决方法可以见官网链接:http://www.xilinx.com/support/answers/59851.html具体原因是因为证书检查的原因。下载相应补丁包,对应更替ISE目录下的文件。注意是更换相应文件夹下的文件,不是文件夹。更换后即可原创 2015-09-08 15:29:58 · 4651 阅读 · 0 评论 -
modelsim显示状态机名称的方法
如下 使用virtual type脚本命令virtual type { {0x000001 IDLE} {0x000002 INIT_PRE} {0x000004 INIT_PRE_NOP} {0x000008 INIT_REF} {0x000010 INIT_REF_NOP} {0x000020 INIT_MRS} {0x000040 INIT_MRS_NOP} {0x000080 ID原创 2015-09-08 15:35:46 · 3142 阅读 · 0 评论 -
UE verilog always(*) 星花 被注释
删除 verilog 2001.uew中的 Block Comment On Alt = (* Block Comment Off Alt = *) 后就可以正常使用always(*)了,要不然在us里这块代码显示被注释了原创 2015-05-27 22:56:32 · 4059 阅读 · 6 评论 -
Xilinx FPGA 学习笔记一-chipscope 无法观察信号 BUFG
今天开始试着使用chipscope,写了一个简单的流水灯的例程,开始综合布线的时候没有问题,但是加上chipscope 以后,综合就总报错。第一种情况:用chipscope直接观察全局时钟信号,即BUFG信号-----X错误如下:ERROR:Place:1136 - This design contains a global buffer instance, , driving原创 2015-04-28 01:55:28 · 31070 阅读 · 1 评论 -
Xilinx FPGA 学习笔记——原语 BUFIO 的理解
我一直没搞明白BUFIO是干嘛用的。官方解释有这么一段话,如下:(virtex的)“BUFIO是用来驱动I/O列内的专用时钟网络,这个专用的时钟网络独立于全局时钟资源,适合采集源同步数据。BUFIO只能由位于同一时钟区域的Clock-Capable I/O驱动。一个时钟区域有4个BURIO,其中的2个可以驱动相邻区域的I/O时钟网络。BUFIO不能驱动逻辑资源(CLB、BRAM等),因为I原创 2015-04-30 00:01:51 · 26155 阅读 · 2 评论 -
OSI七层模型与TCP/IP五层模型——以太网基础01
博主是搞是个FPGA的,一直没有真正的研究过以太网相关的技术,现在终于能静下心学习一下,希望自己能更深入的掌握这项最基本的通信接口技术。下面就开始搞了。一、OSI参考模型 今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型。 1、OSI的来源 OSI(Open System Interconnect),即开放式系统互联。 一般都叫原创 2016-04-24 23:43:56 · 14095 阅读 · 1 评论 -
modelsim仿真MCB DDR3 IP核时的报错
问题描述:ddr3_model_parameters_c3.vh这个文件总是编译不过去,有错误。错误提示: Error: (vlog-2902) ddr2_model_parameters_c3.vh(214): A `define was found on the same line as a SystemVerilog `ifdef, `ifndef, `elsif, or原创 2016-04-17 22:17:48 · 3895 阅读 · 2 评论 -
FPGA基础之异步复位和同步释放电路的详细解释
如图第一个方框内是异步复位和同步释放电路。有两个D触发器构成。第一级D触发器的输入时VCC,第二级触发器输出是可以异步复位,同步释放后的复位信号。电路目的:方式复位信号撤除时产生亚稳态事件。所谓异步复位和同步释放,是指复位信号是异步有效的,即复位的发生与clk无关。后半句“同步释放”是指复位信号的撤除(释放)则与clk相关,即同步的。下面说明一下如何实现异步复位和同步释放的。异步复原创 2013-01-13 13:12:25 · 20452 阅读 · 2 评论 -
PCI 总线学习笔记-PCI9054
转载请注明出处:http://blog.csdn.net/lg2lh/article/details/8042008PCI的基本协议这里就不介绍了,因为一般的芯片协议都是集成好的,我只需要大体了解就行,不需要做芯片,我感觉就不需要太了解协议。 这里讲解是基于PLX 的9054(9052)芯片为基础的,本人只是入门,望批评指正。一、地址映射与数据传输上图中间部分是9054的内原创 2012-10-05 21:04:25 · 25242 阅读 · 3 评论 -
FPGA中inout端口使用方法总结
输入端口可以由wire/reg驱动,但输入端口只能是wire;输出端口可以使wire/reg类型,输出端口只能驱动wire;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为net型。用关键词inout声明一个双向端口, inout端口不能声明为reg类型,只能是wire类型;输入和双向端口不能声明为寄存器类型。INOUT引脚:1.FPGA IO在做输入时,可以用作转载 2012-03-08 20:51:11 · 17417 阅读 · 0 评论 -
边沿检测方法-FPGA入门教程
本节实验主要讲解FPGA开发中边沿检测方法,我们在设计中会经常用到。这个地方大家一定要理解。1.1.1.原理介绍学习HDL语言设计与其他语言不一样,HDL语言设计需要考虑更多的信号的电气特性,时序特性。我们先看一下边沿检测的基本原理。如上图,为我们待检测信号,可以看出边沿的特性:边沿两侧信号的电平发生了变化。红色为上升沿,绿色为下降沿。上升沿之前电平为低,上升沿之后电平为高。下降沿原创 2016-04-21 22:06:05 · 4109 阅读 · 0 评论 -
如何用ModelsimSE仿真IP核-以PLL为例
我们之前介绍了如何使用Modelsim SE进行仿真和利用do文件的仿真方法,但是其中待仿真的模块是我们自己编写的Verilog模块,但是在实际工作中,我们的设计中会经常用到FPGA厂商给我们提供的现成模块—IP核,这些模块我们看到不到源代码,只知道IP核的端口信息,当我们要仿真的时候,同样要向Modelsim提供这些IP核的信息,而FPGA厂商也会给我们提供相应的IP核的编译库文件,我们如果设计原创 2016-04-21 22:02:55 · 19883 阅读 · 7 评论 -
Quartus II 安装教程—FPGA入门教程
Quartus II 工具安装一般分为两个部分,首先是开发工具本身的安装,其次就是器件库的安装,我们可以根据我们的需要选择相应的器件库来安装,这里我们使用Cyclone IV的FPGA,即安装Cyclone器件库即可。第一步:打开我们的软件安装文件夹找到安装文件,双击打开,如下图。第二步:弹出如下对话框,点击Next下一步。第三步:弹出如下对话框,选择”I accept the原创 2016-04-21 21:49:55 · 57740 阅读 · 2 评论 -
如何新建Quartus工程—FPGA入门教程
这一章我们来实现第一个FPGA工程—LED流水灯。我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序。掌握本章内容,大家就算正式的开始入门FPGA开发了。1.1.2.新建工程第一步:从开始菜单启动Quartus II 13.1(64 bit) ,如下图。第二步:菜单栏选择File—>New Project Wizar原创 2016-04-17 23:27:19 · 35756 阅读 · 7 评论 -
搭建Modelsim SE仿真环境-使用do文件仿真
本章我们介绍仿真环境搭建是基于Modelsim SE的。Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera实际是针对Altera 的OEM版本,它事先将Altera的一些IP核仿真库添加到了工具中,但功能上有一些缩减。而Modelsim-SE需要自己手动添加这些仿真库,但是功能更全,而且工作中,工程师更倾原创 2016-04-17 23:25:16 · 16359 阅读 · 1 评论 -
FPGA 时钟设计 1 —— 时钟资源总结
来源:http://guqian110.github.io/pages/2014/08/28/the_clock_design_fpga_1_summary_of_clock_resource.html关于一款芯片,最权威、最新的资料当然是厂家的官方文件。很多大牛都推荐直接阅读原厂的 datasheet 和 user guide。根据我的体验,这确实是最好的途径。原因有两个转载 2015-04-29 23:18:40 · 18309 阅读 · 2 评论 -
Xilinx FPGA 学习笔记——时钟资源
在Xilinx的FPGA中,时钟网络资源分为三大类:全局时钟资源和区域时钟资源。全局时钟资源是一种专用互连网络,它可以降低时钟歪斜、占空比失真和功耗,提高抖动容限。Xilinx的全局时钟资源设计了专用时钟缓冲与驱动结构,从而使全局时钟到达CLB、IOB和BRAM的延时最小。区域时钟资源是独立于全局时钟网络的。Xilinx的器件分成若干个时钟区域,以Virtex-6为例,Virtex-6的最原创 2015-04-23 17:47:45 · 34457 阅读 · 2 评论 -
Bayer图像处理
http://www.cnblogs.com/lin1270/archive/2010/12/01/1893647.html转载 2014-08-06 11:17:01 · 1266 阅读 · 0 评论 -
FPGA配置芯片EPCS读写操作--STM32读写
注意事项:(1)首先STM32需要设置nCE和nConfig信号,即nCE置高,nConfig拉低,获得EPCS的控制权,而后对EPCS操作,操作完成后需要释放这两个管脚,即nCE拉低,nConfig置高。(2)EPCS的极性为:sck为空闲状态为高电平,采样边沿为SCK的第二个跳变沿,(即上升沿,注意前提是SCK空闲为高)SPI_InitStruct.SPI_Direction= S原创 2014-06-04 14:34:14 · 10048 阅读 · 0 评论 -
跨时钟域的寄存器访问
在verilog中,如果对于一个寄存器可能同时有两个时钟clk对其进行操作,为了防止读写冲突,需要做如下简单处理clk_f( fast时钟)和clk_s(slow时钟)clk_s对寄存器time_cnt进行写操作,clk_f对寄存器time_cnt进行读操作, 所以当clk_f边沿读取time_cnt的值得时候,time_cnt可能正是clk_s对寄存器写的时候,从而造成c原创 2014-05-09 18:50:01 · 2085 阅读 · 0 评论 -
Verilog中初始化ram/rom中的数据
http://xmind.iteye.com/blog/696744,readmem,readmemb,readmemh都可以实现:readmemh例子:Verilog代码 `timescale 1ns/100ps module readmem_tb; reg [7:0] Mem[0:'h7ff];转载 2013-08-16 18:52:17 · 12808 阅读 · 4 评论 -
fpga配置文件详解
转自:http://www.cnblogs.com/linjie-swust/archive/2012/04/24/2468166.html FPGA下载文件在实为装载数据到内部配置RAM中,然后初始化FPGA整个电路连线以及设置片内LUT的初始值,一个系统无论大小都会初始化整片FPGA,所以在同一款芯片中无论什么设计,下载文件大小都为固定值如下图所示,和MCU不一样,MCU会转载 2013-03-27 10:08:13 · 4043 阅读 · 0 评论 -
Verilog三段式状态机描述(转载)有自己理解的部分
Verilog三段式状态机描述(转载) 时序电路的状态是一个状态变量集合,这些状态变量在任意时刻的值都包含了为确定电路的未来行为而必需考虑的所有历史信息。状态机采用VerilogHDL语言编码,建议分为三个always段完成。三段式建模描述FSM的状态机输出时,只需指定case敏感表为次态寄存器, 然后直接在每个次态的case分支中描述该状态的输出即可,不用考虑状态原创 2012-10-06 17:57:59 · 4661 阅读 · 0 评论 -
PCI总线地址空间与系统地址空间的关系
1、PCI地址空间PCI总线具有32位数据/地址复用总线,所以其存储地址空间为2的32次方=4GB。也就是PCI上的所有设备共同映射到这4GB上,每个PCI设备占用唯一的一段PCI地址,以便于PCI总线统一寻址。每个PCI设备通过PCI寄存器中的基地址寄存器来指定映射的首地址。PCI地址空间对应于计算机系统结构中的PCI总线。2、系统地址空间如果处理器具有3转载 2012-10-05 11:18:37 · 28547 阅读 · 2 评论 -
FPGA基础之脉冲边沿检测原理verilog版本
最近一直忙着找工作。哎,希望保佑我通过二面吧。verilog的脉冲检测方法一直在用,就那几句话,但一直没想他的原理,今天一个同学说笔试的遇到这个了,我一想,要我写还真写不出来,不懂原理,怎么写啊。死记硬背是我不喜欢的。网上搜了一下,总结一下几种方法。首先介绍一下基本的原理。脉冲边沿的特性:两侧电平发生了变化如上图所示一个脉冲,既有下降沿也有上升沿(好像是废话),系统的时原创 2012-10-23 21:56:30 · 21804 阅读 · 3 评论 -
FPGA基础之逻辑单元(LE or LC)的基本结构
逻辑单元在ALTERA叫作LE,在XILNXXilnx原创 2014-09-05 17:58:23 · 41398 阅读 · 1 评论 -
转--ISE中Xilinx全局时钟系统的设计
在使用QuartusII设计Altera的FPGA时,对于时钟的考虑一般很少。我们想得到一个固定频率的时钟,无非就是将晶振从某个时钟管脚输入:若晶振频率即为期望频率,则可以直接使用;若与期望频率不符,则调动IP核生成PLL,配置PLL的输出为期望频率即可。可是若将FPGA换为Xilinx系列,在ISE环境中设计时,时钟的使用就没那么简单了,尤其是在设计复杂工程时,全局时钟系统的设计显得尤为重要。转载 2015-04-11 19:11:41 · 4671 阅读 · 0 评论 -
Spartan6系列之SelectIO深入详解及高级应用简介
http://www.it165.net/embed/html/201409/2645.html1. 什么是I/O Tile?对Spartan-6系列FPGA来说,一个IO Tile包括2个IOB、2个ILOGIC、2个OLOGIC、2个IODELAY1.1. IOB结构介绍 每个IOB包含了输入、输出、三态驱动器;这些驱动器可以配置为不同的电平标准如LVTT转载 2015-04-01 15:49:14 · 5047 阅读 · 0 评论 -
CRC算法原理及其Verilog实现
http://blog.163.com/fpga_ip/blog/static/2044430242012558747194/一.CRC简介 CRC校验是一种在数据通信系统和其它串行传输系统中广泛使用的错误检测手段。通用的CRC标准有CRC-8、CRC-16、CRC-32、CRC-CCIT,其中在网络通信系统中应用最广泛的是CRC-32标准。本文将以CRC-32为转载 2015-03-19 21:28:37 · 4457 阅读 · 0 评论 -
CMOS Sensor的调试经验分享
CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验。 首先,要认识CMOS摄像头的结构。我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头、感应器和图像信号处理器构成。一般情况下,集成好的模组我们只看到外面的镜头、接口和封装壳,这种一般是固定焦距的。有些厂商只提供芯片,需要自己安装镜头,镜头要选择合适大小的镜头,如果没有夜视要求的话,最好转载 2015-03-02 21:34:09 · 3269 阅读 · 0 评论 -
FPGA状态机跑飞原因分析
主要感谢FPGArun群里的9神和狐狸:原创 2014-04-22 15:46:19 · 7021 阅读 · 1 评论 -
亚稳态 的好文章
http://blog.chinaunix.net/uid-25553717-id-3286143.htmlhttp://blog.sina.com.cn/s/blog_aec06aac01011zgm.html转载 2015-02-04 22:39:46 · 952 阅读 · 0 评论 -
FPGA时序分析的一些理解
最开始看的一些资料,大家其实讲得都差不多,但是我却看得云里雾里的,应该是还没真正理解这个东西。今天心血来潮又把 《七天玩转ALTREA之时序篇》拿出来看了看,应该有些豁然开朗的感觉,在下实属愚笨,想透彻理解一个东西太慢。首先看一下寄存器到寄存器的路径,如图1:data arrive time:数据到达REG2.D的时刻。进行时序分析时,setup 和hold时间分析时的da原创 2014-12-02 19:29:41 · 4029 阅读 · 0 评论 -
FPGA基础之同步复位与异步复位
1、异步复位//异步复位always @ (posedge clk or negedge i_rst)if (!i_rst) begin a <= 1'b0;endelse begina <= 1'b1;end2、同步复位//同步复位always @ (posedge clk )if (!i_rst) begin b <= 1'b0;endelse begin原创 2014-09-09 11:01:59 · 2016 阅读 · 0 评论 -
FPGA基础之锁存器与触发器的设计
首先设计锁存器的时候应该清楚什么是锁存器,锁存器其实是对电平信号原创 2014-09-05 17:07:37 · 8797 阅读 · 2 评论 -
利用JTAG配置EPCS芯片的方法
Cyclone_III 在使用此方法时,要注意FPGA的MSEL0~3脚,不能接地。EP2C系列可以接地,EP3C系列不可以,要相应的配置到AS模式所需的电平。听同事说可以不用AS接口,而用JTAG接口配置EPCS器件,调了几年FPGA了,却从来没有发现这个好方法,于是忙不迭的跟人家学习了一把,具体操作步骤如下:1.在QuartusII中打开工程,然后编译链接,生成JTAG转载 2012-03-23 15:55:40 · 2614 阅读 · 0 评论