amobbs.com 阿莫电子技术论坛
标题:
问一个verilog基本知识,
[打印本页]
作者:
jjj
时间:
2012-12-2 14:30
标题:
问一个verilog基本知识,
module sset(clk,indb,outdb);
input clk;
input[15:0] indb;
output[15:0] outdb;
reg[15:0] outdb;
reg[15:0] outtemp;
always @(posedge clk)
begin
outtemp=indb;
outdb=outtemp;
end
endmodule
这样的写法是不是就是已经默认了:
assign outdb=outdb;
assign indb=indb;
还有在这句里面,
这样修改:
always @(posedge clk)
begin
outtemp<=indb;
outdb<=outtemp;
end
是不是和原程序效果一样?如果效果不一样,有什么区别??看书上说always @(posedge clk)语句里面应该用非阻塞赋值,为什么很多程序还用阻塞赋值?
刚学FPGA,有很多为什么!!!
作者:
mitchell
时间:
2012-12-2 14:40
always @(posedge clk)
begin
outtemp=indb;
outdb=outtemp;
end
这样的写法,等同于:
always @(posedge clk)
begin
outtemp<=indb;
outdb<=indb;
end
"看书上说always @(posedge clk)语句里面应该用非阻塞赋值,为什么很多程序还用阻塞赋值?"
阻塞赋值可以方便的在时序逻辑中实现复杂的组合逻辑表达式。
作者:
chinabn
时间:
2012-12-3 09:28
你然你都说了 : 书上说always @(posedge clk)语句里面应该用非阻塞赋值
书上说的是 : "应该"而不是“必须”
就好比中午应该吃饭,而不是必须吃饭!
仔细看下,转换后的逻辑图
作者:
jjj
时间:
2012-12-3 09:33
多谢上面两位的回答,我再好好看看书
作者:
浮云残雪
时间:
2012-12-3 13:19
这是两种赋值的区别。一种用于时序电路,一种用于组合电路
欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/)
Powered by Discuz! X3.4