FPGA|CPLD|ASICwilliam hill官网
直播中

祁连山

7年用户 24经验值
私信 关注
[问答]

FPGA刚学4天,新手请教几个问题

1,在阻塞赋值中,说是前边赋值阻塞后边赋值,但是看波形明明是同时变化,这是为什么?
2,在if ,else if, else语句中说是顺序执行,是时钟跳一个周期判断一次吗,还是同时判断,如果是同时判断为什么说是顺序执行?
3,是组合逻辑中用=,非组合逻辑中用<=;      还是=会生成组合逻辑,<=会生成时序逻辑,谁是因谁是果?
4,在always @ (a,b)中,是a,b分别跳变的时候触发,还是a==1,b==1的时候触发,如果是跳变触发,为什么说是电平驱动?


  • TIM截图20181115144813.png

回帖(2)

王王

2018-11-22 10:45:21
具体组合逻辑还是时序逻辑  编译器决定的      always ab  任何一个变化都会引起变化
举报

我爱大脸猫

2019-3-27 10:47:48
1、你的if语句是写在always语句里面的,所以只要clk的上升沿到来或者rst_n的下降沿到来就会进行判断,如果你测试代码设计了时钟,那么每个时钟上升沿到来都会判断if语句。
2、一般而言时序设计中用非阻塞赋值,逻辑设计中用阻塞赋值,阻塞赋值和非阻塞赋值你可以分别写出来看看波形就明白了。在时序设计中用阻塞赋值容易产生锁存器。
3、always语句里面的a,b只要有一个变化就会执行。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分