欢迎光临散文网 会员登陆 & 注册

fpga verilog语法篇 1基本概念 2数据类型 1reg

2023-07-25 00:22 作者:GXTon_阿通  | 我要投稿

reg可以理解为存储数据的地方.可以被赋值和修改.不需要驱动源. 
reg默认的初始值是x(未知状态).
always模块内,被赋值的每一个信号都必须定义成reg型.
(always是一种函数,后面会细细分享...)

需要注意:
reg型数据可以赋正值,也可以赋负值,但当一个reg型数据是一个表达式中的操作数时,它的值被当做无符号值(即:正值). 如:一个4位的寄存器被赋值为-1,那么在表达式被参与计算时,它的值被认为是+15. 
为什么会被认为是+15呢?
-1 取绝对值-->1 除符号位的其他二进制-->001 取反-->110  加一-->111 再加回符号位-->1111就是15 .

reg有时也会被编译器看成wire 这个是编译器自动优化的结果.(大多情况不需要认为干预和理睬) always块中,reg寄存器可能被综合成边沿触发器. 在组合逻辑中,reg寄存器可能被综合成wire型变量. 程序中的代码可以分为可以综合和不可以综合. 可以综合,就是代码会对应硬件中的线或者器件. 不可以综合,是代码不会生成"实物",只是逻辑. 不可以综合的代码,常常用于做测试用.


时序逻辑和组合逻辑

时序逻辑可以理解为,每一拍执行一次.按照时序工作的电路,

组合逻辑是尽量快的执行,一个时间拍,可能执行很多轮.它不会受时间脉冲限制.


fpga verilog语法篇 1基本概念 2数据类型 1reg的评论 (共 条)

分享到微博请遵守国家法律