FPGA之道(26)VHDL初始化

VHDL初始化

未初始化的信号会对芯片的行为有什么影响

信号最终都会对应到存储单元或者连线上,对于组合逻辑的信号,在FPGA上的归属应该是连线,而对于时序逻辑的信号,在FPGA上的归属上应该是寄存器、查找表、块存储等存储单元。
对于连线类的信号,是否初始化对于芯片的行为几乎没有影响,因为芯片一上电后,整个FPGA的输入就由客观环境确定了,那么的连线被高电平驱动源驱动就是高电平,被低电平驱动源驱动就呈现低电平。而不会因为你给信号赋了初值而影响这个结果,否则这也就不是一个组合逻辑了。
对于类似寄存器类的存储单元信号,如果不赋初值的话,不同FPGA芯片型号的默认的上电状态会不同。有的是上电自动存储高电平,有的是自动存储低电平。由于时序逻辑的运算结果很多时候是和当前存储单元中存储的数值有关的,所以这类信号如果未赋初值,很可能造成设计在不同的芯片上运行结果的不同,这是比较危险的。
当然了,也许有的编译器或者芯片型号不支持赋初值的操作,那么这个时候一定要注意复位逻辑的编写。

初始化与仿真

初始化与仿真是息息相关的,无论是连线类还是存储类的信号,若没有初始化,在仿真的一开始都会出现不可确定的波形,如果是std_logic类型的话,就会显示’U’。
对于连线类信号,只要在后续给定输入,那么输出端的连线还是能够回归正常结果的。
但是对于存储类的信号,例如寄存器,如果这个寄存器存在反馈,例如:

signal a 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李锐博恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值