一些疑惑的点,记录一下
1.递归函数
所谓递归函数,值得是在函数内在此调用该函数
为避免在函数的同一地址空间内进行并发调用,所以采用递归函数;
每次调用该函数时,都为函数分配不同的地址空间;
2.initial/always
模块内可以有多个initial和always (过程块)
并行触发;
initial 只执行一次,always 看触发条件,可多次重复执行;
若always 后没跟触发条件(敏感列表),则always将重复执行,
一般用于生成时钟 always #10 clk = ~clk;
3.阻塞赋值和非阻塞赋值
阻塞赋值:在该语句执行完毕后,更新值
非阻塞赋值:<= 语句执行完毕后,不更新;在块结束后进行赋值
4.位运算符 异或 ^
a^b:对a b 各位上进行异或,输出位宽仍为a/b
^a:将b所有位进行异或,输出位宽位1