OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5055|回复: 2

[ALTERA] 刚开始看FPGA,关于REG初值疑问

[复制链接]

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2015-12-20
在线时间
24 小时
发表于 2020-2-27 18:59:32 | 显示全部楼层 |阅读模式
对于FPGA,跟CPU不同它没有RST脚,用到的rst信号实际是个普通IO脚来的,整个运行过程并不一定会发生rst(不讨论在普通IO脚加RC电路,单轮一般调试一致开着电JTAG运行)。
而对于寄存器,对于各个IDE如果不给初值那它到底是1还是0还是未知值?(对于CPU,是在0地址开始运行,并且会执行一段初始化代码再到用户程序,用户程序定义变量时给初值是个很普遍习惯)
看教程代码一般都是
reg[7:0'] cnt;     //A
always ....
    if(~rst)
        = 0       //B
    else
    .....           //C

由于不一定发生复位,B可能根本不执行,此时C处是不是有跑错隐患,至少在开始的几个节拍(B处可能枚举了任意情况的处理,错误状态会改成正确状态)。  可以在A处定义变量给初值吗? 反正想要的是上电REG就有合理值,而不是在C处做错误处理纠正回来。并且不希望是用跟IDE绑定的特殊方法初始化,希望是通用方法。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2020-2-28 09:32:51 | 显示全部楼层
这个在我们开拓者的FPGA开发指南中有介绍过。
QQ截图20200228093112.png
当然也可以在A处定义初始值,比如reg [7:0] cnt = 0;

回复 支持 反对

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2015-12-20
在线时间
24 小时
 楼主| 发表于 2020-2-28 09:39:30 | 显示全部楼层
QinQZ 发表于 2020-2-28 09:32
这个在我们开拓者的FPGA开发指南中有介绍过。

当然也可以在A处定义初始值,比如reg [7:0] cnt = 0;

谢谢解答,我半夜找到个资料有说这个问题   https://www.cnblogs.com/kingstacker/p/9821663.html 文中详细说了A,B处的赋值意义。 又引来新的复位的疑问。
文中说FPGA官方推荐少复位,并且要用同步复位,也就是只敏感clk一个信号,并且使用高电平复位。      但是看历程,甚至搜索网上别人历程,基本都用到复位,并且是敏感两个信号也就是异步复位,而且用的低电平复位,跟官方全都相反?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-3 09:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表