# Digital Electronic System Design  
**Politecnico di Milano (2024-2025)**  

## 📖 Overview  
Welcome to the **Digital Electronic System Design Laboratory** repository!  
This repository contains VHDL projects and exercises from the course **Digital Electronic System Design** at **Politecnico di Milano** *(Course Code: 054083)*.  

The course focuses on:  
- **FPGA-based digital design**  
- **VHDL simulation, synthesis, and implementation**  

## 🛠️ Tools & Hardware  
- **Software**:  
  - [Xilinx Vivado 2020.2](https://www.xilinx.com/products/design-tools/vivado.html) *(WebPack Edition)*  
- **Hardware**:  
  - [Digilent Basys 3](https://digilent.com/shop/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users/)  
    - FPGA: *Xilinx Artix-7* (**XC7A35T-1CPG236C**)  

## 🎯 Course Goals  
- Develop practical skills for **FPGA-based digital system design**  
- Implement and test **VHDL architectures** using Vivado and Basys 3  
- Learn about **FPGA timing, power, I/O, and memory management**  

## 📂 Repository Structure
- `LABx/`
  - `src/`: VHDL source files  
  - `sim/`: Simulation files  
  - `cons/`: Constraint files  
  - `vivado/`: Vivado project files 

## 🚀 Getting Started  

### Clone the Repository  
To get started with this project, follow these steps:  

1. Open a terminal (e.g., Command Prompt or PowerShell) on your Windows machine.
2. Clone the repository using Git:  
   ```cmd
   git clone https://git.cdtech.duckdns.org/PickleRick/DESD.git
   ```
   This will create a folder named `DESD`.  
3. Open the folder `\DESD` in [Visual Studio Code](https://code.visualstudio.com/).  

> [!Warning]  
> The folder structure in the repository may not match the Vivado project structure.  
> If you encounter issues with missing or mismatched files in Vivado, refer to the [Replacing Files in Vivado](#replacing-files-in-vivado) section to update the project with the correct files.

### Install VHDL Extension  
To work with VHDL files in Visual Studio Code, install the **VHDL LS** extension:  

1. Open Visual Studio Code.  
2. Go to the Extensions view by clicking on the Extensions icon in the Activity Bar on the side of the window or pressing `Ctrl+Shift+X`.  
3. Search for **VHDL LS** in the Extensions Marketplace.  
4. Click **Install** on the extension by [Henrik Bohlin](https://marketplace.visualstudio.com/items?itemName=hbohlin.vhdl-ls).  
5. Restart Visual Studio Code to activate the extension.  

### Open Projects in Vivado  
To open and work with the Vivado projects included in this repository:  

1. Launch **Xilinx Vivado 2020.2**.  
2. Click on **Open Project** in the Vivado start screen.  
3. Navigate to the desired project directory (e.g., `LABx/vivado/project_folder/`) and select the `.xpr` file.  
4. Once the project is loaded, you can explore the design, run simulations, or synthesize the project.  

#### Replacing Files in Vivado  
If the folder structure in the repository does not match the Vivado project structure:  

1. Open the Vivado project as described above.  
2. In the **Sources** tab, right-click on the file you want to replace and select **Replace File**.  
3. Navigate to the correct file in the repository (e.g., `LABx/src/`) and select it.  
4. Ensure the file is added to the correct hierarchy (e.g., as a design source or constraint file).  
5. Save the project and re-run synthesis or simulation as needed.  

By following these steps, you can ensure that the Vivado project is correctly configured and up-to-date with the repository files.

## 📬 Contact  
For any questions or issues open an issue in this repository.