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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4341|回复: 16

[讨论] 既然FPGA在信号定义时可以赋初值,那为何设计中还需要复位信号?

[复制链接]
发表于 2016-11-21 15:02:51 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 笑陵韵 于 2016-11-23 15:04 编辑

RT,最近写代码想到一个很有意思的问题:既然FPGA在信号定义时可以赋初值,那为何设计中还需要全局复位信号?因为在我的理解中,上电复位信号的目的是给设计内的信号一个明确的初始值(当然有些没有初始值也无所谓了),既然在信号定义时可以赋初值,加复位信号岂不是多此一举?
---------------------------------------------------------------------------------------

    看到回复中有提到“信号声明时不推荐赋值”或者“通常仿真时才会这么用”,因此补充一下个人观点:先前我也同样持有上面同样的观点,但后来看Xilinx的XST文档时发现如下描述:

未命名1.bmp

因此,我认为给信号赋初值显然是合理的,同时综合工具也允许如此操作。至于设计中的上电复位信号是否还有其他考虑(诸如方便调试什么的),还请路过的大神们指点迷津。拜谢!
发表于 2017-1-20 16:21:07 | 显示全部楼层
方便调试
发表于 2017-1-20 14:54:50 | 显示全部楼层
每种综合工具对语言的支持都不完全一样吧,代码里最好还是不要出现这种依赖于综合工具的设计。你说的这种,好像一般的综合工具直接干掉了,相当于没有赋值。
发表于 2016-11-28 12:57:02 | 显示全部楼层
学习一下!!!!
发表于 2016-11-27 14:40:37 | 显示全部楼层
硬件描述语言在信号定义时赋值,只在仿真情况下有效,综合工具会忽略的,只能通过复位信号给确定的初始值。
发表于 2016-11-25 17:30:00 | 显示全部楼层
说说我遇到的状况。
1 定义状态机没有默认初始态的时候,仿真显示状态机为XXXXX;后续的流程更加无法执行。所以我认为定义寄存器赋予初始值是很有必要的。
2 复位问题。你定义的寄存器类型,在定义的时候赋值,之后没有赋值就保持在当前状态。有时候下板测试,没有复位端你要重新上电掉电测么……
3 对于小白来说,在结果未知的情况下,还是先把可能出错的地方解决掉吧。
发表于 2016-11-25 16:55:30 | 显示全部楼层
xilinx 本来就不推荐全局复位设计,FPGA上电时就会对所有的RAM,LUT进行复位,即使你不赋初始值,同样可以不加复位
发表于 2016-11-24 22:10:48 | 显示全部楼层
回复 1# 笑陵韵


   不错,不错,受教了。。。。
 楼主| 发表于 2016-11-24 17:25:35 | 显示全部楼层
回复 9# AnswerLJ

嗯嗯,从这个角度考虑,通过复位赋初值确实有这个必要

多谢了!
发表于 2016-11-23 17:27:00 | 显示全部楼层
好的coding style能够适配的几乎所有的综合工具,直接对寄存器赋值可能在某些综合工具上获得支持,但是代码移植到别的综合工具上可能失败!硬件描述语言主要是要用语言表达设计思想,在常规情况下,大家都会把寄存器直接赋值认为是RTL仿真时候的初值而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 00:47 , Processed in 0.022633 second(s), 9 queries , Gzip On, Redis On.

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