| The input signals for the ALU are | The output signals are: |
|
x and y are 32 bit busses.
Cin is a one bit carry-in. clk is a one bit signal input to the Signature block. sel is a 5 bit function select bus. |
res is a 32 bit result bus
condition code bits: Cout is a one bit Carry-out. OVF is a one bit overflow. EQ is a one bit equal indicator. mch is a one bit match indicator. Z is a one bit zero result indicator. |
| sel | ALU function (i.e. value on result bus, Condition codes) |
|---|---|
| 00000 | y |
| 00001 | Stop signature, Res=LFSRcontents, Cout=0, mch=0 |
| 00010 | Seed signature, Res=2, Cout=0, mch=1 |
| 00011 | make 2's complement of y |
| 00100 | y XOR signature |
| 00101 | Cout=0; Res=32'hBA040105 |
| 01000 | Step signature, Res=5, Cout==0 |
| 01010 | x and y |
| 01100 | x or y |
| 01111 | x minus y(2's complement Arithmetic) |
| 10000 | restart signature, Res=3, Cout==0 |
| 10001 | not y |
| 10010 | 0 |
| 10100 | x minus y(positive integers) |
| 10101 | x plus y(positive integers) OVF==Cout |
| 11000 | x XOR y |
| 11011 | x and not y |
| 11101 | x or not y |
| 11110 | x plus y(2's complement Arithmetic) |
When you upload the files there are two filenames to enter, your local filename (which can be anything) and the upload filename, which for the module files must end in .v and for the list of files must be alu32.ver.
Feel free to email comments and suggestions to acken@okstate.edu
Today is
And the time is ?
![]()
![]()