Verilog中,always @(q)表示什么意思 有它存在的程序属于 时序还是组合的

Verilog中,always @(q)表示什么意思 有它存在的程序属于 时序还是组合的,第1张

表示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时序逻辑输出如何初始化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10138213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存