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

2019-07-15 20:44发布

1,在阻塞赋值中,说是前边赋值阻塞后边赋值,但是看波形明明是同时变化,这是为什么?
2,在if ,else if, else语句中说是顺序执行,是时钟跳一个周期判断一次吗,还是同时判断,如果是同时判断为什么说是顺序执行?
3,是组合逻辑中用=,非组合逻辑中用<=;      还是=会生成组合逻辑,<=会生成时序逻辑,谁是因谁是果?
4,在always @ (a,b)中,是a,b分别跳变的时候触发,还是a==1,b==1的时候触发,如果是跳变触发,为什么说是电平驱动?<p>
TIM截图20181115144813.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
wang_wangrui64
1楼-- · 2019-07-15 23:09
具体组合逻辑还是时序逻辑  编译器决定的      always ab  任何一个变化都会引起变化
我爱大脸猫
2楼-- · 2019-07-16 01:36
1、你的if语句是写在always语句里面的,所以只要clk的上升沿到来或者rst_n的下降沿到来就会进行判断,如果你测试代码设计了时钟,那么每个时钟上升沿到来都会判断if语句。
2、一般而言时序设计中用非阻塞赋值,逻辑设计中用阻塞赋值,阻塞赋值和非阻塞赋值你可以分别写出来看看波形就明白了。在时序设计中用阻塞赋值容易产生锁存器。
3、always语句里面的a,b只要有一个变化就会执行。

一周热门 更多>