Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| basys3:abacus [2015/12/03 02:05] – [1. Download the Project] Sam Lowe | basys3:abacus [2022/10/04 11:38] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Basys3 Abacus Demo ====== | + | ====== Basys3 Abacus Demo (Legacy) |
| - | {{ :basys3_overview.png?nolink | + | <WRAP round important 660px> |
| + | === Important! === | ||
| + | This is a legacy demo, see the updated version of this demo [[learn: | ||
| + | </ | ||
| + | |||
| + | {{:basys3: | ||
| - | ----- | ||
| ===== Overview ===== | ===== Overview ===== | ||
| ==== Features Used ==== | ==== Features Used ==== | ||
| Line 20: | Line 24: | ||
| ^ USB HID Host with mouse | ^ USB HID Host with mouse | ||
| ^ USB HID Host with keyboard | ^ USB HID Host with keyboard | ||
| + | |||
| + | |||
| ==== Description ==== | ==== Description ==== | ||
| Line 25: | Line 31: | ||
| Abacus demonstration project that implements several arithmetic operations using the Basys3' | Abacus demonstration project that implements several arithmetic operations using the Basys3' | ||
| - | {{ http://www.youtube.com/v/6_GxkslqbcU? | + | {{youtube>6_GxkslqbcU? |
| - | ===== Prerequisites ===== | ||
| - | 1. Vivado installed on your computer\\ | + | ------- |
| - | 2. Basys3 board from Digilent\\ | + | |
| - | 3. Basic familiarity with Vivado\\ | + | |
| - | ===== Downloads | + | ===== Prerequisites |
| - | Basys 3 repository zip folder [[https://github.com/Digilent/Basys3/ | + | ===Skills=== |
| + | * **Basic familiarity with Vivado** | ||
| + | * | ||
| - | Link to the repository on Github [[https:// | + | ===Hardware=== |
| - | ===== How to Build and Program (From Project File) ===== | + | * **Basys3 FPGA board** |
| + | * **Micro-USB cable** | ||
| + | ===Software=== | ||
| + | * **Vivado Design Suite 2015.X** | ||
| + | * // | ||
| + | ----- | ||
| - | ==== 1. Download the Project | + | ===== Downloads ===== |
| - | Download the repository seen above and place it in the location of your choosing. | + | Basys 3 Support Repository -- [[https:// |
| + | ------ | ||
| + | ===== How to... ===== | ||
| - | Download the project zip file which can be found here: {{: | ||
| - | Once you have downloaded the project, unzip it in the location of your choosing. | ||
| + | ==== 1. Generate the Project ==== | ||
| - | **Tcl Script Format** | + | >1.1) Download the repository linked in the download section and place it in the location of your choosing. |
| - | If you are unfamiliar with how to run projects | + | >1.2) Generate the **Abacus** project |
| - | ==== 2. Load the Vivado | + | ==== 2. Build the Project ==== |
| - | In your now unzipped project, open the file abacus_demo.xpr. This should open your project | + | >2.1) Click **Generate Bitstream** on the left hand menu towards the bottom. Vivado will run through both Run Synthesis and Run Implementation before it generates the bitstream automatically. |
| + | > | ||
| + | >Note: If you want, you can click each step by itself | ||
| + | > | ||
| + | > | ||
| - | *The screenshots below are from another project but should look relatively the same and will work for our purposes. | + | ==== 3. Program the Board ==== |
| - | {{:basys3:gpio_load.png?600|}} | + | >3.1) Once you have generated your bit file, Click on the hardware manager and connect to your board by choosing the local server option. |
| + | > | ||
| + | >{{:basys3:device_connected.png?600|}} | ||
| - | ==== 3. Synthesize, Implement and Generate Bitstream ==== | + | >3.2) Click program to load the abacus demo onto your Basys3. |
| - | To complete this step all that you need to do is click **Generate Bitstream** on the left hand menu towards the bottom. Vivado will run through both Run Synthesis and Run Implementation before it generates the bitstream automatically. If you want, you can click each step by itself in the order of **Run Synthesis**, | + | ==== 4. Run the Project |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | ==== 4. Connect and Program | + | |
| - | + | ||
| - | Once you have generated your bit file, Click on the hardware manager and connect to your board by choosing the local server option. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | After your board is connected, just click program to load the abacus demo onto your Basys3. | + | |
| - | + | ||
| - | ===== Running the Basys3 Abacus Demo ===== | + | |
| To run all the features of this demo, all you will need is your programmed Basys3. The abacus can preform 4 arithmatic functions on two 8-bit numbers. Switches 15-8 represent input A. Switches 7-0 represent input B. The abacus works by setting the slide switches to your desired operands and then selecting an operation with the buttons. The result will be displayed on the 7 segment display. On startup, the display will read 0. | To run all the features of this demo, all you will need is your programmed Basys3. The abacus can preform 4 arithmatic functions on two 8-bit numbers. Switches 15-8 represent input A. Switches 7-0 represent input B. The abacus works by setting the slide switches to your desired operands and then selecting an operation with the buttons. The result will be displayed on the 7 segment display. On startup, the display will read 0. | ||
| Line 87: | Line 92: | ||
| - | ==== 1. Subtraction (BTNU) | + | >4.1) Subtraction (BTNU) |
| - | + | > | |
| - | When BTNU is pressed down, this activates subtraction. This function uses the formula A - B. While the button is held down, the display will show a static number that will also display whether it is positive or negative. When BTNU is released, the result will start to scroll through the LEDs. | + | >When BTNU is pressed down, this activates subtraction. This function uses the formula A - B. While the button is held down, the display will show a static number that will also display whether it is positive or negative. When BTNU is released, the result will start to scroll through the LEDs. |
| - | + | > | |
| - | {{: | + | >{{: |
| - | + | ||
| - | ==== 2. Multiplication (BTND) ==== | + | |
| - | + | ||
| - | When BTND is pressed down, this activates multiplication. This function uses the formula A * B. While the button is held down, the display will show the product until the user releases BTND. The display will then return to whatever was last scrolling. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | The abacus calculating 3*3 | + | |
| - | ==== 3. Division (BTNR) ==== | + | |
| - | + | ||
| - | When BTNR is pressed down, this activates division. This function uses the formula A / B. While the button is held down, the display will show the quotient until the user releases BTNR. The display will then return to whatever was last scrolling. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | The abacus calculating 16 / 2 | + | |
| - | ==== 4. Modulo/ | + | |
| - | When BTNL is pressed down, this activates | + | >4.2) Multiplication (BTND) |
| + | > | ||
| + | >When BTND is pressed down, this activates | ||
| + | > | ||
| + | > | ||
| + | > | ||
| + | >The abacus calculating 3*3 | ||
| + | >4.3) Division (BTNR) | ||
| + | > | ||
| + | >When BTNR is pressed down, this activates division. This function uses the formula A / B. While the button is held down, the display will show the quotient until the user releases BTNR. The display will then return to whatever was last scrolling. | ||
| + | > | ||
| + | > | ||
| + | > | ||
| + | >The abacus calculating 16 / 2 | ||
| - | {{: | + | >4.4) Modulo/ |
| + | > | ||
| + | >When BTNL is pressed down, this activates modulo. This function uses the formula A % B. While the button is held down, the display will show the remainder until the user releases BTNL. The display will then return to whatever was last scrolling. | ||
| + | > | ||
| + | >{{: | ||
| + | > | ||
| + | >The abacus calculating 17 % 2 | ||
| - | The abacus calculating 17 % 2 | + | {{tag> |

