表示q值发生变化就触发
时序还是组合不能判断吧,时序和组合的区别在于输出是否与之前的状态相关,相关就是时序逻辑,不相关就是组合逻辑。
我也刚学verilog,这是我的理解
首先你的题意表达得非常不清楚(DATA没说位数,不知道DATA的输出具体是什么),只根据你这个时序图看,各个信号都是输出(每个信号处都标明有o输出除了WAIT是i输入以外)这明明就是个测试波形,写出的文件就是testbench。
module UUU;
reg CLOCK;
reg START;
reg ENABLE;
reg [7:0] DATA;
reg KAISHI;
wire WAIT;
//WAIT
assign WAIT = 0;
//初始化
initial
begin
CLOCK = 1;
START = 0;
ENABLE = 0;
KAISHI = 0;
end
//CLOCK产生
always
#5 CLOCK = ~CLOCK;
//START和ENABLE
initial
begin
#12 START = 1;
ENABLE = 1;
#10 START = 0;
#20 ENABLE = 0;
#20 ENABLE = 1;
end
//KAISHI
always @(posedge START)
begin
if(START)
begin
KAISHI = 1;
DATA = 1;
end
end
//DATA
always @(posedge CLOCK or posedge START)
begin
if(KAISHI)
begin
if(ENABLE)
DATA = DATA + 1;
end
else
DATA = 8'bx;
end
endmodule
verilog描写的是电路,电路只有通过复位才能有初始值。
你这个电路需要写一个testbench才能有输出的波形,单单是这个电路的话,因为没有输入,所以没有输出也就没有波形了。
变量初始化赋值,那个是一个软件的行为,只能在testbench里面实现。在实际的电路是做不到的。
以上就是关于Verilog中,always @(q)表示什么意思 有它存在的程序属于 时序还是组合的全部的内容,包括:Verilog中,always @(q)表示什么意思 有它存在的程序属于 时序还是组合的、verilog怎样写可以减少时序违例、Verilog时序逻辑输出如何初始化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)