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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9043|回复: 23

[讨论] 关于寄存器在上电时的初值问题?

[复制链接]
发表于 2016-7-11 10:19:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
最近在ASIC设计中,本人采用数字方法实现了一个数字系统的上电复位,在前仿过程中没有问题,但是在后仿过程中,输出一直是不定态x,导致最后无法给整个数字系统上电复位。本人设计的原理图如下:
360截图20160711102111737.jpg
     经过分析,是由于寄存器在时钟上升沿到来时没有先赋初值0,寄存器组的程序如下:
11.png
     我想问的问题是,这个程序有问题吗?如果有问题,那么该如何给Q一个初值?
(【注】:整个数字上电复位只有一个输入一个输出,输入是时钟信号CLK,输出是上电复位信号POR)
     求大神们给给建议……谢谢……
发表于 2016-7-11 12:53:16 | 显示全部楼层
复位后给寄存器赋初始值
 楼主| 发表于 2016-7-11 15:35:14 | 显示全部楼层
回复 2# huster
     关键是这个电路就是为了在上电后产生一个复位信号,输入就是一个CLK,没有复位rst,所以……
发表于 2016-7-11 16:52:20 | 显示全部楼层
不懂。期待大神回答。
没有做过ASIC。这种代码风格也不喜欢,我觉得写FPGA代码越细越好,不怕啰嗦,每一个if else都写的清清楚楚的,这样有时候都很难保证综合出来的结果是自己想要的。更何况写的这么。。。抽象?呵呵
发表于 2016-7-11 19:06:04 | 显示全部楼层
数字电路真正原始的上电复位,是来自于模拟的电压比较器,其原理是电源电压高过参考电压一段时间后,发出一个表明电源ready的信号,这个信号的产生是纯模拟器件,不要要用到任何寄存器。

如果你没有这样的复位源,可以用来自pin上的复位,就是按键reset。
发表于 2016-7-11 20:12:32 | 显示全部楼层
模拟会产生一个复位的
发表于 2016-7-12 10:42:17 | 显示全部楼层
本帖最后由 vigorkylin 于 2016-7-12 10:44 编辑

我怎么看着你的Q除了2'b00还是2'b00呢

还有 你的 if(~EN) 与后面的if到底有没有关系?
我感觉你是太懒以至于丢了begin end
代码风格看着很捉急
发表于 2016-7-12 11:20:29 | 显示全部楼层
在后仿的TB里 deposit 一个random值 于Q ?
 楼主| 发表于 2016-7-12 11:24:50 | 显示全部楼层
回复 4# lijunping 额?我这只是示例,还有其他的没有列举出来。。。。对于上述问题,你有啥高见没?
发表于 2016-7-12 11:26:43 | 显示全部楼层
过来学学!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-15 16:18 , Processed in 0.023347 second(s), 7 queries , Gzip On, Redis On.

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