- 1easy
Vectors
Connect a three-bit input to a vector output and expose its individual bits as scalar outputs.
- 2medium
8-bit Vector Bit Reversal
Reverse the bit order of an 8-bit vector using the concatenation operator.
- 3medium
Byte Select from a 32-bit Word
Extract one of four bytes from a 32-bit word using part-select (bit-slicing) syntax.
- 4medium
Concatenation and Replication
Build a 32-bit word from four bytes and an 8-bit pattern from a repeated 2-bit value using concatenation and replication.
- 5medium
Sign Extension
Sign-extend an 8-bit two's-complement value to 16 bits using the replication operator.
- 6easy
Four-Input Gates
Combine four four-bit inputs using bitwise AND, OR, and XOR.
- 7easy
Vector Bitwise and Logical Operators
For two 3-bit inputs, produce their bitwise OR, their logical OR (one bit indicating whether either vector is nonzero), and both bitwise inverses concatenated with `not b` in the upper three bits.
- 8easy
Vector Part Select
Select the low and high byte from a 16-bit input.
- 9easy
Vector Reversal
Reverse the bit order of an eight-bit vector.
- 10easy
Vector Concatenation and Splitting
Concatenate six 5-bit inputs in the order `a` through `f`, append two low-order 1 bits, then split the resulting 32-bit vector into outputs `w`, `x`, `y`, and `z` from most significant to least significant.
- 11easy
Replication Operator
Fill an eight-bit vector with eight copies of a one-bit input.
- 12easy
Vectors in More Detail
Rearrange vector slices to exchange the high and low nibbles.
- 13easy
More Replication: Pairwise Equality
Compare every ordered pair of the five input bits. For each pair, set the corresponding output bit to 1 when the two input bits are equal. The 25 comparisons are arranged as five copies of `a`, then five copies of `b`, through five copies of `e`, compared against five repeats of `a & b & c & d & e`.