在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: xduryan

[求助] 求教一个fpga复位的问题

[复制链接]
 楼主| 发表于 2016-7-11 10:07:01 | 显示全部楼层
回复 5# vongy
5.png
 楼主| 发表于 2016-7-11 10:08:33 | 显示全部楼层
回复 9# YYFFLLMMNN


   那这段话怎么理解
6.png
 楼主| 发表于 2016-7-11 10:17:43 | 显示全部楼层
回复 9# YYFFLLMMNN


   这是我把帖子里的程序简单实现了一下,用fgpa  editor看了最后实现的结果,图中FF的INIT属性难道不是FF的上电初始值吗?难道这个属性不起作用?任何FF在上电的初始值都是0?求确定,这个对我很重要,这两天调程序遇到一个跟复位和初始值有一定关系的bug
发表于 2016-7-11 10:54:03 | 显示全部楼层
我以前看的书确实是告知我不行的,至少在verilog里面我还没见过。
你可以用程序跑一下(不是仿真),观察非复位的初始化(不要设置为全0)是否成功了。
图中初始化的值为全0,与Xilinx/Altera公司的上电默认寄存器的值(全0)是一样的。
这样初始化看起来当然是成功了。
发表于 2016-7-11 17:01:00 | 显示全部楼层
reg [3:0] a = 4'd2;
这种情况用在没有复位信号但需要有上电初始值的情况。
always @(posedge clk) begin
   a <= b;
end

如果接口中已经有复位信号,那么就不需要上电初始值了,直接在复位中给定复位值就行了。
发表于 2016-7-12 10:12:19 | 显示全部楼层
FF在上电时的默认值是0还是1?
答:我记得在Xilinx与Altera都是默认为0,因为它们都是掉电要丢数据的芯片;
      只有Actel公司的是掉电不丢的,所以寄存器保持上次修改后的值。
      PS.默认值到底是多少,你上电之后引出来看灯亮不亮或者用Chipscope看不就行了,用得着这么纠结?
发表于 2016-7-12 10:28:36 | 显示全部楼层
本帖最后由 vigorkylin 于 2016-7-12 10:35 编辑

你在测试程序initial语句开始时加入
force uut.data = 8'ha5;
试试
在module中给reg赋初是没用的,仿真器在分析设计的时候就会把它忽略掉的

你碰到的上电初始值问题是什么问题,何不说出来,也许跟你这里的问题有很大不同只是你理解偏差呢
发表于 2016-7-12 11:33:50 | 显示全部楼层
本帖最后由 iyama 于 2016-7-12 11:34 编辑

fpga 里面寄存器给一个初始值应该是可以的
因为是异步复位,所以跟clock没关系

rst 先设为1 再试试?

initial begin

rst = 1;

#111;
rst = 0;

#111;

rst = 1;


end
发表于 2016-7-12 16:38:29 | 显示全部楼层
你写的代码中复位形式是: 异步复位。同步复位和异步复位的比较
一、特点:

         同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用Verilog描述如下:
always @ (posedge clk) begin
if (!Rst_n)
...
end

        异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。用Verilog描述如下:
always @ (posedge clk or negedge Rst_n) begin
if (!Rst_n)
...
end
二、各自的优缺点:
1、总的来说,同步复位的优点大概有3条:
a、有利于仿真器的仿真。
b、可以使所设计的系统成为100%的同步时序电路,这便大大有利于时序分析,而且综合出来的fmax一般较高。
c、因为他只有在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的毛刺。他的缺点也有不少,主要有以下几条:
a、复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。同时还要考虑,诸如:clk skew,组合逻辑路径延时,复位延时等因素。
b、由于大多数的逻辑器件的目标库内的DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会耗费较多的逻辑资源。

2、对于异步复位来说,他的优点也有三条,都是相对应的
a、大多数目标器件库的dff都有异步复位端口,因此采用异步复位可以节省资源。
b、设计相对简单。
c、异步复位信号识别方便,而且可以很方便的使用FPGA的全局复位端口GSR。

缺点:
       a、在复位信号释放(release)的时候容易出现问题。具体就是说:倘若复位释放时恰恰在时钟有效沿附近,就很容易使寄存器输出出现亚稳态,从而导致亚稳态。
       b、复位信号容易受到毛刺的影响。
三、总结:
    所以说,一般都推荐使用异步复位,同步释放的方式,而且复位信号低电平有效。这样就可以两全其美了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 12:42 , Processed in 0.020565 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表