前言
对于verilog的学习,这里推荐一个比较好的实践网站HDLBits:https://hdlbits.01xz.net/wiki/Main_Page
本专题记录一些我觉得有价值的题目,希望通过这些题目可以对verilog更加熟练。
第六个专题主要讨论的问题是:Gates和Vectors的应用。一般来说,我们对于两个值之间的按位运算是比较熟悉的,例如a&b或a ^ b。但是有时候,我们想对一个向量的所有位宽进行操作,例如(a [0]&a [1]&a [2]&a [3] ...),如果向量很长,代码会显得比较冗余。
为了简化代码,简约运算符(reduction operators)可以对向量的位进行AND,OR和XOR操作,并产生一位输出,加上NOT运算符!和〜,还可以创建NAND,NOR和XNOR门,例如(〜&d [7:0])。
1、Parity checking
题目:通过不完善的通道传输数据时,奇偶校验通常用作检测错误的简单方法。创建一个电路,该电路将计算8位字节的奇偶校验位(这一位作为第9位)。 我们将使用“偶数”奇偶校验,其中奇偶校验位只是所有8个数据位的XOR。
根据题目的描述,电路显而易见,当输入有偶数个1时,输出为0,则表示“偶校验”正确,输入数据正确有效;当输入有奇数个1时&#x