verilog数字系统设计教程

来源:百度知道 编辑:UC知道 时间:2024/06/28 03:05:05
verilog数字系统设计教程第八章

夏宇闻的第二版第八章第十四题:
在下列程序中,循环执行完后,V的值是多少?
reg[3:0]A;
reg V,W;
integer K;
.
.
.
A=4`b1010;
for(K=2;K>=0;K=K-1)
begin
V=V^A[K];
W=A[K]^A[K+1];
end
标准答案是V的值是它进入循环体前值的取反。因为V的值与0,1,0进行了异或,与1的异或改变了V的值。
我想知道最开始V没有赋值,那么V的值是多少呢?我记得书上说默认为不定值X,对吗?那么第一次循环执行后V的值是多少呢?最后一次V的值又是多少呢?书上给的真值表说X与1,0进行异或后的值都是X。
请教各位大侠帮忙,本人不胜感激!
我明白了,V的值是什么并不重要,重要的是这个过程。
当V=1时 当V=0时
第一次循环:1^0=1 V=1 0^0=1 V=1
第二次循环:1^1=0 V=0 1^1=0 V=0
第三次循环:0^0=1 V=1 0^0=1 V=1
所以标准答案会说:V的值是它进入循环体前值的取反

V与A的值按位异或的结果赋给V,实际等价于对A进行奇偶校验,当A是奇数的时候,V为了使A为偶数,所以V会取值为1;反之,V取0。请你自己查阅奇偶校验相关。我的解释你是否明白

定义为寄存器型后,默认值是0