HDLBits 刷题记录(5)
1.
可以自己选择延时N个时钟周期的电路:N个DFFs + 一个对应的 N to 1 多路选择器。
具体代码如下。从下面的代码可以看出,my_dffx 是一个最关键的模块。所以以后再写这样的延时电路时,先把最小单元:DFF写好。然后再用例化的手段去实现整个延时电路,感觉看起来就很好理解。当然了,用一个大的always语句块去实现shift-register也行,虽然复杂,但是很简洁的。
2.
做不出的题!用一行代码实现256-1路多路选择器
多路选择器的index是可变的,只要多路选择器输入的位数是恒定的就行。
具体实现代码如下所示。
3.
由题目可知,应该是按位操作,去检测上升沿。所以注意红框中并不是 && 而是 &。
画电路图时一定要准确!要标出信号的位宽!
4.
What does "derive equations by inspection" mean?
个人的理解:用独热码对状态进行编码的好处:通过检测某一位是否为1(就可以得到current state)以及输入就可以得到的第一部分的状态转换电路,通过检测某一位是否为1(就可以得到current state)也可得到第三部分的输出电路。虽然多用了几位,但是状态转移方程更加简单了。
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.