关于FPGA复位的认识】的更多相关文章

Xilinx FPGA复位逻辑处理小结 1. 为什么要复位呢? (1)FPGA上电的时候对设计进行初始化: (2)使用一个外部管脚来实现全局复位,复位作为一个同步信号将所有存储单元设置为一个已知的状态,这个全局复位管脚与任何其他的输入管脚没有什么差别,经常以异步的方式作用于FPGA.因此,设计人员可以在FPGA内部采用异步或者同步的方式来复位他们的设计. (always@(posedge clk or posedge rst) ) 2. 复位是针对存储单元--触发器,首先有必要了解一下触发器(f…
FPGA复位的可靠性(同步复位和异步复位)  reference:http://www.eetop.cn/blog/html/17/743817-24442.html 一.特点: 同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效.否则,无法完成对系统的复位工作.用Verilog描述如下: always @ (posedge clk) begin              if (!Rst_n) 异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位.用V…
xilinx推荐尽量不复位,利用上电初始化,如果使用过程中需要复位,采用同步高复位. 如果逻辑工程较大,复位扇出会较多,会很影响时序,有以下常用方法: 复位信号按照不同时钟域分为rst0..rstn,每个复位信号被对应时钟域的时钟打一拍输出,复位不同时钟域,同时对所有复位寄存器用max fanout约 束. 复位信号上bufg,通过全局时钟线减少信号延迟,同时可以完全忍受高扇出. 不同的大模块用不同的复位信号,设计一个全局复位时序,先复位模块x1    再复位x2...直到复位完成xn.还可以做…
目录 1. 常见问题 2. 常见的复位方式 3. 合理的复位设计 3.1 复位电平 3.2 异步复位同步化 3.3 恰到好处的复位 4. 补充 4.1 所谓的上电初始化 参考文献 一开始接触到FPGA,肯定都知道"复位",即简单又复杂.简单是因为初学时,只需要按照固定的套路--按键开关复位,见寄存器就先低电平复位一次,这样一般情况可以解决99%的问题,甚至简单的设计,就不可能有问题.复杂是因为复位本身是对大规模的硬件单元进行一种操作,必须要结核底层的设计来考虑问题. 1. 常见问题 自…
FPGA低温不能启动分析 现象描述:在给medium板光端机做低温试验时,分别给发送版.接收板断电重新启动,发现有的板子在-40°可以启动,而有些板子在-20°都不能启动,需要升高温度到0°以上才能启动,此时观察到的现象是指示状态的4个led灯都点亮,表现为FPGA一直处于复位模式. 针对这一问题,作如下分析: FPGA在上电前是一片空白的芯片,既使断电前FPGA已经配置为一个正常工作的系统了,但只要断电,它又恢复了空白.也就是说FPGA内部的电路逻辑要落实到一个具体的结构需要有电的维持. FP…
1 系统方案 对于设计一款硬件平台,首先要确定整体框架,确定各个模块所需要的芯片以及电压分配情况.图2.6是笔者曾经设计的硬件平台系统. 图2.6系统框图 对于选定一个系统方案之后,接下来做的要先去查看所选用的芯片的数据手册.那么查看手册一般有几点必须要注意,(1)FPGA的工作电压,确定若FPGA正常工作需要几档电压,好设计电源电路:(2)考虑功耗,这决定着需要多大功率的电源才能驱动芯片正常工作:(3)查看时钟网络的分布,这决定在进行逻辑设计时时钟分配的问题:(4)JTAG下载电路,这一部分是…
FPGA低温不能启动分析 现象描写叙述:在给medium板光端机做低温试验时,分别给发送版.接收板断电又一次启动,发现有的板子在-40°能够启动,而有些板子在-20°都不能启动.须要升高温度到0°以上才干启动,此时观察到的现象是指示状态的4个led灯都点亮,表现为FPGA一直处于复位模式. 针对这一问题,作例如以下分析 FPGA在上电前是一片空白的芯片.既使断电前FPGA已经配置为一个正常工作的系统了,但仅仅要断电,它又恢复了空白.也就是说FPGA内部的电路逻辑要落实到一个详细的结构须要有电的维…
7series 逻辑单元理解 ug768和ug799文档介绍了7系列芯片中包含的基本逻辑单元,对其中常用的单元,进行下分析. 1.IOBUF单元 (1)真值表 (2)用途 the  design  element  is a bidirectional  single-ended  I/O  Buffer  used  to  connect  internal  logic  to  an  external bidirectional pin. (3)属性 (4)模型 (5)心得体会 IOB…
1.异步复位 always @ ( posedge sclk or negedge s_rst_n ) if ( !s_rst_n ) d_out <= 1'b0; else d_out <= a; 综合出来的RTL视图如下所示: 从图中可以看到寄存器d_out有一个低电平有效的复位信号s_rst_n端口,即使设计是高电平复位,实际综合后也会把异步复位信号反向后接到这个CLRN端: 2.同步复位 always @ ( posedge sclk ) if ( !s_rst_n ) d_out &…
今天看了篇博客, 是拿altera的芯片和软件作例子的,讲同步异步复位的: http://blog.sina.com.cn/s/blog_bff0927b0101aaii.html 还有一个博客, http://bbs.ednchina.com/BLOG_ARTICLE_201656_2.HTM 想起<设计与验证>这本书也讲过, 顺便说一下,这是一本非常好的书! 拿 ISE实验了一下,器件选了ZC702,发现看到的RTL级电路,都不一样, 个人觉得现在的FPGA与综合工具都很智能了, 很多小问…
本文整合特权(吴厚航)和coyoo(王敏志)两位大神的博文.我也很推崇这两位大神的书籍,特权的书籍要偏基础一下,大家不要一听我这么说就想买coyoo的.我还是那一句话,做技术就要step by step.闲言少叙,直入正题. 一,异步复位 先看这个电路,就是异步复位的例子.reset使用了reg的复位端 用代码实现的话是这个样子 module reset_test ( clk , rst_n , i_data, o_data ); input clk ; input rst_n ; input…
(1)异步复位与同步复位的写法 1.异步复位与同步复位的区别? 同步复位:若复位信号在时钟有效边沿到来时刻为有效,则执行一次复位操作. 优点: 1)同步复位是离散的,所以非常有利于仿真器的仿真: 2)同步复位只有在时钟有效边缘到来时才有效,所以可以滤除高于时钟频率的毛刺,提高复位的可靠性: 3)使用同步复位的系统可以被设计成为纯粹的同步时序逻辑,这样会有利于FPGA项目开发流程中的时序约 束和时序分析环节的工作,而且综合出来的FPGA设计的性能以便也会较高. 缺点: 1)必须保证复位信号有效持续…
对于FPGA内部的复位,之前一直比较迷,这两天仔细研究官方数据手册,解开了心中的诸多疑惑,感觉自己又进步了呢..... 原创不易,转载请转原文,注明出处,谢谢.   一.关于POR(Power-On Reset ) FPGA在上电工作时,会先进入复位模式,将所有RAM位清除,并通过内部弱上拉电阻将用户I/O置为三态.接着依次完成 配置.初始化工作,如果这一切都顺利,就进入用户模式,FPGA会根据用户所编写的时序逻辑开始工作. 二.FPGA上电工作过程详解 从第一条我们知道,FPGA从上电到进入用…
1.一个简单的异步复位例子: module test( input clk, input rst_n, input data_in, output reg out ); always@(posedge clk or negedge rst_n) if(!rst_n) out <= ; else out <= data_in; endmodule 综合结果如下: 我们可以看到,FPGA的寄存器都有一个异步清零端(CLR),在异步复位设计中,低电平有效的rst_n复位信号就可以直接连在这个端口上.…
Get Smart About Reset: Think Local, Not Global. 对于复位信号的处理,为了方便我们习惯上采用全局复位,博主在很长一段时间内都是将复位信号作为一个I/O口,通过拨码开关硬件复位.后来也看了一些书籍,采用异步复位同步释放,对自己设计的改进. 不过自从我研读了Xilinx的White Paper后,让我对复位有了更新的认识. One of the commandments of digital design states,"Thou shalt have…
在实际设计中,由于外部阻容复位时间短,可能无法使FPGA内部复位到理想的状态,所以今天介绍一下网上流行的复位逻辑. 在基于verilog的FPGA设计中,我们常常可以看到以下形式的进程: 信号rst_n用来对进程中所用变量的初始化,这个复位信号是十分重要的,如果没有复位,会导致一些寄存器的初始值变得未知,如果此时FPGA就开始工作的话,极易导致错误. 那么,这个复位信号来自何处?难道我们做好的系统,每次上电后都要手动按一下reset按钮么? 答案是否定的!这个复位信号其实是由特定的程序来产生的,…
FPGA设计中,层次结构设计和复位策略影响着FPGA的时序.在高速设计时,合理的层次结构设计与正确的复位策略可以优化时序,提高运行频率. 设计中,合理的层次结构是我们所追求的. 划分时,按照逻辑分区将设计划分成相应的功能模块.这种层次结构提供便于在层次边界寄存输出的方法,从而限制特定模块的关键路径.这样分析和修复在单一模块中定位的时序路径就很容易. 实际上,定位超高时钟速度时,应在层次结构的一些层级使用多个寄存器级,以优化时序并为后端工具留下更多设计空间. 好的设计层次结构应该将相关的逻辑集成在…
Fanout即扇出,模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为net delay较大,不利于时序收敛.因此,在写代码时应尽量避免高扇出的情况.但是,在某些特殊情况下,受到整体结构设计的需要或者无法修改代码的限制,则需要通过其它优化手段解决高扇出带来的问题.以下就介绍三个这样的方法: 首先来看下面这个实例,如图1所示为转置型FIR滤波器中的关键路径时序报告,在DSP in FPGA的FIR专题中有介绍转置型结构FIR滤波器输入数据的扇出较大,在图1中所示为11,因此n…
很多FPGA工程师都会遇到timing的问题,如何让FPGA跑到更快的处理频率是永久话题.决定FPGA的timing关键是什么?如何才能跑到更快的频率呢? A. 第一步需要了解FPGA的timing路径: 图1.时序模型 在任何设计中最普通的时序路径有以下4种: 1 输入端口到内部时序单元路径: 2 从时序单元到时序单元之间的内部路径: 3 从内部时序单元到输出端口之间的路径: 4 输入端口到输出端口之间的路径: B.第二步需要能够读懂FPGA的timing报告,从而找到影响timing的问题:…
实验一 测试 实验内容 在simulink创建测试模块,通过测试模块产生信号,再传送到FPGA,FPGA读出后再将信号无处理传送回simulink进行显示.由此来测试整个硬件在环的功能是否正常,并且熟悉整个基础开发流程. 创建模型 创建开发板的信息 在Matlab的指令窗口输入以下指令,hdlsetuptoolpath('ToolName','Altera Quartus II','ToolPath','C:\altera\11.0\quartus\bin\quartus.exe(修改为软件安装…
基于FPGA的飞机的小游戏 实验原理 该实验主要分为4个模块,采用至上而下的设计方法进行设计.由50M的晶振电路提供时钟源,VGA显示控制模块.图形显示控制模块.移动模块的时钟为25M,由时钟分频电路产生获得.时钟分频模块采用PLL进行设计,由50M时钟进行2分频获得25M时钟. 移动模块,控制我方飞机和敌方飞机.子弹的移动,移动的速度可以通过时钟的频率进行控制,操作我方飞机的移动和子弹的发射由外部按键进行控制,控制的方式有发射子弹.左移.右移. 图像显示控制模块,用于控制我方飞机.敌方飞机.子…
FPGA芯片内部硬件介绍 FPGA(Filed programmable gate device):现场可编程逻辑器件 FPGA基于查找表加触发器的结构,采用SRAM工艺,也有采用flash或者反熔丝工艺:主要应用高速.高密度大的数字电路设计. FPGA由可编程输入/输出单元.基本可编程逻辑单元.嵌入式块RAM.丰富的布线资源(时钟/长线/短线).底层嵌入功能单元.内嵌专用的硬核等组成: 目前市场上应用比较广泛的FPGA芯片主要来自Altera与Xilinx.另外还有其它厂家的一些低端芯片(Ac…
最近在调试LATTICE  FPGA 做的视频板子,颇不顺利,所以记录下来作为以后的参考: 1.FPGA的IO口不是所有的都是双向的,有些有特殊作用的是单向的. 在查阅 LatticeECP3-17EAPinout.CSV 之后, 发现在LEF3-17EA-FN484C中,有以下几个管脚是单向的: C4  G7  G6     : jtag 管脚 C14  C15  B15   B16  :编程管脚 K1   L5   L1   K6   N17  M18   :PLL的反馈(fb)管脚 AB2…
芯航线--普利斯队长精心奉献   实验目的: 1.实现FPGA驱动数码管动态显示: 2.使用In system sources and probes editor工具,输入需要显示在数码管上的的数据,数码管显示对应数值. 实验平台:芯航线FPGA核心板.数码管_VGA_PS2模块 实验原理:     电子设计系统中常用的显示设备有数码管.LCD液晶以及VGA显示器等.其中数码管又可分为段式显示(7段.米字型等)以及点阵显示(8*8.16*16等),LCD液晶的应用可以分为字符式液晶(1602.1…
芯航线--普利斯队长精心奉献   实验目的: 1.复习状态机的设计思想并以此为基础实现按键消抖 2.单bit异步信号同步化以及边沿检测 3.在激励文件中学会使用随机数发生函数$random 4.仿真模型的概念 实验平台:芯航线FPGA核心板 实验原理:     按键在电子设计中使用的最多,从复位到控制设置均可以看到其身影.现在按键的功能也种类也越来越多,例如多向按键.自锁按键.薄膜按键等.普通按键其硬件示意图如图9-1所示. 图9-1 按键示意图 芯航线开发板所载的为两脚贴片按键,分别位于开发板…
芯航线--普利斯队长精心奉献   实验目的:1.学习状态机的相关概念 2.理解一段式.两段式以及三段式状态机的区别以及优缺点 实验平台:芯航线FPGA核心板 实验原理: 状态机全称是有限状态机(finite-state machine,缩写:FSM)是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型. 状态机分为摩尔(Moore)型有限状态机与米利(Mealy)型有限状态机.摩尔状态机输出是只由输入确定的有限状态机(不直接依赖于当前状态).米利有限状态机的输出不止与其输入有关还于它的…
关于FGPA的复位 当初开始学FPGA的时候,总是疑惑:FPGA不是没有复位管教么,但总在always看到有复位信号.这个复位信号(我们暂且称为rst_n)从哪里来? 实际上是可以从两个方面获得的,这与我们的MCU一样. 上电自动复位 手动按键复位 考虑到系统的初始化可能需要一定的时间,需要写一段Verilog代码进行延时复位,这段代码综合后就是上电自动复位的过程,上电自动复位也要外部硬件提供一个低电平脉冲,第二种方法要求有按键复位的按键电路.作为一个正常的系统,上电自动复位和手动的按键复位都是…
第一个FPGA工程----点亮开发板上的3个LED灯 1.新建FPGA工程 开启Quartus2的画面 File--New Project Wizard..指定工程的路径与工程名 指定所使用的FPGA设备型号 2.添加设计文件 本设计采用Verilog HDL硬件描述语言建模 3.建模 本设计有三个输出量,没有输入量,这三个输出量对应FPGA芯片的三个管脚,同时被置高电平,用来驱动LED灯. 4.编译工程 Processing--Start compilation 并生成编译报告 5.引脚分配…
最近要用到Synplify,但以前没使用过,无基础,找到一篇帖子,隧保存下来. 本文转自:http://blog.sina.com.cn/s/blog_65fe490d0100v8ax.html Synplify 使用过程中最常用的选项及命令的介绍.一. 状态机相关(1)FSM Compiler Option FSM Compiler是一个全局选项.勾选此选项之后Synplify Pro会自动检测代码中的状态机,根据状态数量的不同选择不同的编码方式.状态数量在0~4之间采用顺序编码(Sequen…
目录 1.注意事项 2.设备简介 3.引脚分配 注意事项: ① 插拔下载线时必须断电! ② Quartus II 软件和 NIOS 软件的版本必须一致,并安装在同一个目录下面,安装目录不要有中文和空格. ③ 工程未使用到的 IO 请设置为三态. ④ 要用quartusII不要用64位的那个启动,否则就报XXXX不支持. 设备简介: ① 主芯片采用 ALTERA 公司最新四代 FPGA CycloneIV 系列 EP4CE6E22C8N: ② 板载 EPCS4N/EPCS16 大容量串行配置芯片…