一,reg
① 将reg的定义放在紧跟着parameter之后;
② 建议具有相同功能的信号集中放在一起;
③ 信号需要对齐, reg 和位宽需要空 2 格,位宽和信号名字至少空四格;
④ 位宽使用降序描述 [6:0];
⑤ 时钟使用前缀clk,复位使用后缀rst;
二,wire
将reg的定义放在紧跟着parameter之后;
wire表示直通,即只要输入有变化,输出马上无条件地反映,线信号;如:wire clk; 其中 clk 就是 wire 类型的信号;reg 关键词,寄存器。和线信号不同,它可以在 always 中被赋值,经常用于时序逻辑中。比如 reg[3:0]led,表示了一组寄存器。
wire只能被assign连续赋值,reg只能在initial和always中赋值。wire使用在连续赋值语句中,而reg使用在过程赋值语句中。在连续赋值语句中,表达式右侧的计算结果可以立即更新表达式的左侧。在理解上,相当于一个逻辑之后直接连了一条线,这个逻辑对应于表达式的右侧,而这条线就对应于wire。在过程赋值语句中,表达式右侧的计算结果在某种条件的触发下放到一个变量当中,而这个变量可以声明成reg类型的。
输入端口可以由wire/reg驱动,但输入端口只能是wire
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



