推荐答案
测试一下
题目
input clk;
A.按照0、0、0、0、0、1、2、3、0、0、0、0、……这样的规律计数
B.始终按照0、1、2、3、0、1、2、3、……这样的规律技术
C.按照0、0、0、0、3、3、3、3、0、0、0、0、……这样的规律计数
D.按照0、1、2、3、3、2、1、0、0、1、2、3、……这样的规律计数
参考答案与知识点
参考答案
正确答案:D。
解析:cnt是3位计数器,从0到7循环(每次加1,复位到0)。cnt[2]为最高位,当cnt=0~3时cnt[2]=0,当cnt=4~7时cnt[2]=1。{2{cnt[2]}}生成两位重复值:cnt[2]=0时得到2'b00,cnt[2]=1时得到2'b11。assign cnt_out = {2{cnt[2]}} ^ cnt[1:0];异或运算规则:0异或x=x,1异或x=~x。因此,cnt=0~3时,cnt_out = cnt[1:0](即0,1,2,3);cnt=4~7时,cnt_out = ~cnt[1:0](即3,2,1,0)。完整序列:0,1,2,3,3,2,1,0,然后重复(下一个周期从cnt=0开始,再次输出0,1,2,3,3,2,1,0)。选项D的描述“0、1、2、3、3、2、1、0、0、1、2、3、……”与此一致。选项A和C只出现部分值,选项B始终0-3循环,均错误。
涉及知识点
- 位宽运算与重复操作符
- 异或运算的基本性质
- 计数器时序分析
- 多位信号的拼接与按位异或