26 lines
1.0 KiB
Markdown
26 lines
1.0 KiB
Markdown
# 02 Arithmetic Logic
|
|
|
|
Proceed and implement the chips `HalfAdder`, `FullAdder`, `Add16`, `Inc16` and `ALU`.
|
|
|
|
Keep in mind the following remarks:
|
|
|
|
* in order to use the chips implemented in project `01_Boolean_Logic`, they must be listed in the file `Include.v`, which can be found in every subfolder.
|
|
|
|
* you dan use a `Buffer` to split the signal wires. e.g. `ng` signal of ALU can be derived from out[15].
|
|
|
|
* clear cache every time you edit and change your implementation in the verilog file `<chipname>.v`.
|
|
|
|
* test your chip implementation with:
|
|
|
|
```
|
|
$ cd <XX_chipname>
|
|
$ apio clean
|
|
$ apio sim
|
|
```
|
|
|
|
* the chip `HalfAdder` can be uploaded to iCE40HX1K-EVB and tested using BUT1/2 and LED1/2. Keep in mind, that due to pull up resistors at the buttons, the signals appear inverted:
|
|
|
|
| pin | function |
|
|
| ------ | --------------------------------------------------- |
|
|
| LED1/2 | =0 led is off, =1 led is on |
|
|
| BUT1/2 | =0 button is pressed down, =1 button is released up | |