关于verilog求高手解答
事件A分别在10,20,30发生,而B一直保持X状态,问在50时Count的值是多少。reg[7:0]Count;initialCount=0;alwaysbegin@(...
事件A分别在10,20,30发生,而B一直保持X状态,问在50时Count的值是多少。
reg[7:0] Count;
initial
Count=0;
always
begin
@(A) Count=Count+1;
@(B) Count=Count+1;
end
答案是Count=1。
我想请教高手帮忙解答一下解题过程,越详细越好,小弟刚刚接触Verilog。。
谢谢~ 展开
reg[7:0] Count;
initial
Count=0;
always
begin
@(A) Count=Count+1;
@(B) Count=Count+1;
end
答案是Count=1。
我想请教高手帮忙解答一下解题过程,越详细越好,小弟刚刚接触Verilog。。
谢谢~ 展开
2个回答
展开全部
always里的begin...end之间的语句顺序执行
count初始化为0
然后等待10ns事件A发生后执行count加1
然后一直等待事件B发生(永远等待)
由于事件B保持 不能继续执行 即不能达到end 也就不能再次重新执行到@(A)
事件A之后的变化不再影响
count初始化为0
然后等待10ns事件A发生后执行count加1
然后一直等待事件B发生(永远等待)
由于事件B保持 不能继续执行 即不能达到end 也就不能再次重新执行到@(A)
事件A之后的变化不再影响
追问
意思是说x状态就会一直等着吗?谢谢~
我还想问下比如定义integer A;
那A是属于什么类型呀?书上没找到。。。谢谢拉
追答
虽然x是不确定值 但在仿真里被认为是一个固定的值 所以不能激活事件
integer是有符号类型 使用方式和reg一样
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询