This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
notes:discrete:fall2022:projects:lmr0 [2022/09/27 21:03] – [PROGRAM] gsuber | notes:discrete:fall2022:projects:lmr0 [2022/09/29 03:59] (current) – pleblanc | ||
---|---|---|---|
Line 35: | Line 35: | ||
* Xor | * Xor | ||
* Xnor | * Xnor | ||
- | * Logical shift (potentially 2 separate operations, shift left and shift right) | + | * Logical shift (potentially 2 separate operations; Shift Left / Shift Right) |
- | * Logical rotate | + | * Logical rotate |
We will be writing different functions that will have this functionality. While it seems simple, we have to start somewhere, and you might find the later parts in shift/ | We will be writing different functions that will have this functionality. While it seems simple, we have to start somewhere, and you might find the later parts in shift/ | ||
Line 64: | Line 64: | ||
=====VERIFICATION===== | =====VERIFICATION===== | ||
There is no make verify with this project. Your verification can be in the form of the main function displaying the truth tables. You can also display the rotate left and right array values after calling your function. The truth tables are located above to refer to. | There is no make verify with this project. Your verification can be in the form of the main function displaying the truth tables. You can also display the rotate left and right array values after calling your function. The truth tables are located above to refer to. | ||
+ | |||
+ | =====EXAMPLE===== | ||
+ | Heres an example output: | ||
+ | <cli> | ||
+ | USER@lab46: | ||
+ | --NOT-- | ||
+ | -------- | ||
+ | x | out | ||
+ | 0 | 1 | ||
+ | 1 | 0 | ||
+ | |||
+ | --AND-- | ||
+ | x | y | out | ||
+ | ------------ | ||
+ | 0 | 0 | 0 | ||
+ | 0 | 1 | 0 | ||
+ | 1 | 0 | 0 | ||
+ | 1 | 1 | 1 | ||
+ | |||
+ | --OR-- | ||
+ | x | y | out | ||
+ | ------------ | ||
+ | 0 | 0 | 0 | ||
+ | 0 | 1 | 1 | ||
+ | 1 | 0 | 1 | ||
+ | 1 | 1 | 1 | ||
+ | |||
+ | --NOR-- | ||
+ | x | y | out | ||
+ | ------------ | ||
+ | 0 | 0 | 1 | ||
+ | 0 | 1 | 0 | ||
+ | 1 | 0 | 0 | ||
+ | 1 | 1 | 0 | ||
+ | |||
+ | --XOR-- | ||
+ | x | y | out | ||
+ | ------------ | ||
+ | 0 | 0 | 0 | ||
+ | 0 | 1 | 1 | ||
+ | 1 | 0 | 1 | ||
+ | 1 | 1 | 0 | ||
+ | |||
+ | --XNOR-- | ||
+ | x | y | out | ||
+ | ------------ | ||
+ | 0 | 0 | 1 | ||
+ | 0 | 1 | 0 | ||
+ | 1 | 0 | 0 | ||
+ | 1 | 1 | 1 | ||
+ | |||
+ | --NAND-- | ||
+ | x | y | out | ||
+ | ------------ | ||
+ | 0 | 0 | 1 | ||
+ | 0 | 1 | 1 | ||
+ | 1 | 0 | 1 | ||
+ | 1 | 1 | 0 | ||
+ | |||
+ | Bitset: | ||
+ | Bitset (after LSHIFT): 0100 | ||
+ | Bitset (after RSHIFT): 0010 | ||
+ | |||
+ | Bitset: | ||
+ | Bitset (after LROTATE): 01001 | ||
+ | Bitset (after RROTATE): 10100 | ||
+ | </ |