Skip to content

Commit c6e1c19

Browse files
committed
Merge branch 'main' into dev
2 parents 3a2b926 + 4cb1213 commit c6e1c19

12 files changed

+880
-164
lines changed

README.md

+116-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,116 @@
1-
2024-2025-project-4-web-fpga-team-4
1+
<p align="center"><em>What if you could visualize, simulate, and master FPGA development all in one place with...</em></p>
2+
<p align="center">
3+
<picture><source media="(prefers-color-scheme: dark)" srcset="./documents/functional-specifications/images/logo-light.png"><source media="(prefers-color-scheme: light)" srcset="./documents/functional-specifications/images/logo-dark.png"><img alt="FPGA Explorer Logo" style="width:100px"> </picture>
4+
</p>
5+
<p align="center">
6+
<a href="#features">Features</a> •
7+
<a href="#manifest">Manifest</a> •
8+
<a href="#prerequisites">Prerequisites</a> •
9+
<a href="#configuration">Configuration</a> •
10+
<a href="#json-creator">JSON Creator</a>
11+
</p>
12+
13+
<hr>
14+
15+
**FPGA Explorer** is an interactive platform designed to simplify the exploration and learning of Field-Programmable Gate Arrays (FPGAs). Whether you're a student, teacher, or hobbyist, this tool helps you understand, develop, and simulate FPGA logic in a visual and intuitive way.
16+
17+
👉 [**Try it online**](https://two024-2025-project-4-web-fpga-team-4.onrender.com/client.html)
18+
19+
You can use the file example.sdf to test the application.
20+
21+
You can also upload your own `.sdf` files to visualize and simulate them.
22+
23+
# Features
24+
25+
- **Visual Logic Simulation**
26+
Simulate FPGA circuits in real time and watch how data flows through flip-flops, LUTs, and wires—perfect for exploring internal chip behavior.
27+
28+
- **Educational Focus**
29+
Designed for learning, FPGA Explorer makes it easy to understand digital logic by visualizing how components interact, step by step.
30+
31+
- **Pivot Format**
32+
Upload `.sdf` files and watch them automatically parsed into a structured JSON format designed for clarity and modularity.
33+
You can download the generated JSON, tweak it, and re-upload it to create your own examples effortlessly.
34+
35+
36+
# Manifest
37+
38+
- [Functional Specifications](./documents/functional-specifications/functional-specifications.md)
39+
- [Technical Specifications](./documents/technical-specifications/technical-specifications.md)
40+
- [Test Plan](./documents/quality-assurance/test-plan.md)
41+
- [User Manual](./documents/user-manual/user-manual.pdf)
42+
- [Management Artifacts](./documents/management/management-artifact.md)
43+
- [Source Code](./src/)
44+
- [SDF Example](./documents/user-manual/example.sdf)
45+
- [JSON Creator](./src/json_creator/json-creator.py)
46+
47+
# Prerequisites
48+
49+
- Node.js (v14 or later)
50+
- npm (Node Package Manager)
51+
- Python 3.x (for JSON Creator)
52+
53+
# Configuration
54+
55+
1. Clone the repository
56+
```bash
57+
git clone https://github.com/algosup/2024-2025-project-4-web-fpga-team-4.git
58+
```
59+
2. Navigate to the directory
60+
```bash
61+
cd 2024-2025-project-4-web-fpga-team-4/src
62+
```
63+
3. Start the application
64+
```bash
65+
npm install
66+
npm start
67+
```
68+
69+
The interface will open in your browser at http://localhost:8080/code/client.html.
70+
71+
# JSON Creator
72+
73+
FPGA Explorer includes a **command-line script** to help users generate custom `.json` files without writing them from scratch. This is ideal for testing small examples or building circuits manually.
74+
75+
> ⚠️ Note: This tool is **optional** and not the main feature of the platform.
76+
77+
## Run the Script
78+
79+
```bash
80+
/opt/homebrew/bin/python3 ./src/json_creator/json-creator.py
81+
```
82+
83+
It will guide you step by step through:
84+
- Adding **LUTs**, **Flip-Flops**, and **I/Os**
85+
- Creating **connections** with timing delays
86+
- Saving everything into a valid `output.json` file
87+
88+
You can upload the generated file directly into FPGA Explorer to simulate your custom circuit.
89+
90+
## Important Notes
91+
- **Case sensitive**: Use correct casing for element types (`LUT`, `FlipFlop`, `IO`)
92+
- **Unique IDs**: Required for LUTs and Flip-Flops
93+
- **Valid timing**: Must be a numeric value
94+
- **I/Os use names** instead of numeric IDs
95+
96+
<!-- # Known Bugs
97+
98+
- [ ] Add a list of known bugs here -->
99+
100+
# Contributing
101+
We welcome contributions! Feel free to submit issues, suggest new features, or open pull requests.
102+
103+
# License
104+
[MIT License](./LICENSE.md)
105+
106+
# Authors
107+
108+
Made with ❤️ by Team 4
109+
110+
- [**Thibaud Marlier**](https://www.linkedin.com/in/thibaudmarlier/) – Project Manager
111+
- [**Maxime Caron**](https://www.linkedin.com/in/maxime-caron-dev/) – Program Manager
112+
- [**Emilien Chinsy**](https://www.linkedin.com/in/emilien-chinsy-5a794632b/) – Technical Lead
113+
- [**Guillaume Despaux**](https://www.linkedin.com/in/guillaume-despaux/) – Quality Assurance
114+
- [**Clémentine Curel**](https://www.linkedin.com/in/clementinecurel/) – Technical Writer
115+
- [**Jason Grosso**](https://www.linkedin.com/in/jason-grosso-847b39251/) – Software Engineer
116+
- [**Laurent Bouquin**](https://www.linkedin.com/in/laurentb22/) – Software Engineer

documents/management/communication/communication-artifact.md

+45-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
- [**3rd Response**](#3rd-response)
1717
- [**4th Message**](#4th-message)
1818
- [**4th Response**](#4th-response)
19+
- [**Functional Specifications Review**](#functional-specifications-review)
20+
- [**Response**](#response)
21+
- [**Technical Specifications Review**](#technical-specifications-review)
22+
- [**User Manual Review**](#user-manual-review)
1923

2024
## Introduction
2125

@@ -208,4 +212,44 @@ Best Regard.
208212

209213
Hi, this is related to the way the tool is handling reset ( to be true it doesn't handle flipflop with reset). \
210214
So instead of connecting the reset signal to the reset pin of the flipflop it tries to connect the reset on input signals. \
211-
You should only consider examples without reset in it. It is easier to understand.
215+
You should only consider examples without reset in it. It is easier to understand.
216+
217+
---
218+
219+
### **Functional Specifications Review**
220+
221+
![alt text](./images/review-functional1.png)
222+
223+
- there is a lite free version of xilinx vivado also
224+
225+
- 2.2. User Personas => you should remove this chapter (these are not real cnes people and can confuse) .Your if you want to keep your profile remove CNES name eveyrwhere
226+
227+
- The sdf can be uplodaed but there won't be any prerequisite about it. Your server should come with a preloaded sdf file so simulation can be run without any extra file
228+
229+
![alt text](./images/review-functional2.png)
230+
231+
- the clock component is an input and should be on the left (probably below the I/O)
232+
233+
![alt text](./images/review-functional3.png)
234+
235+
- You cannot render the example strucutre wiht sdf file . this is just a timing format, you need verilog file to create the structure
236+
237+
Otherwise no other remark
238+
239+
Link to the whole discussion: [Click Here](https://github.com/LeFl0w/ALGOSUP_POC/issues/12)
240+
241+
#### **Response**
242+
243+
Hello Florent,
244+
245+
Thank you for your feedbacks, I'll correct the document to fit with them during the week.
246+
247+
Kindly.
248+
249+
Caron Maxime \
250+
Program Manager \
251+
Team 4
252+
253+
### **Technical Specifications Review**
254+
255+
### **User Manual Review**
Loading
Loading
Loading
Loading

documents/management/weekly-report/weekly-report5.md

+55-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@
22

33
## **Overview**
44

5-
## **Week 4 Objectives**
5+
This was the final week with allocated project time before the deadline. The team had significant time to work on the project, leading to major progress in both documentation and code. The primary goal was to finalize all essential documents and refine the web interface.
6+
7+
## **Week 5 Objectives**
8+
9+
- **Complete the Technical Specifications document**
10+
- **Finalize the Test Plan document**
11+
- **Publish the Test Plan and Technical Specifications documents**
12+
- **Implement animations in the web interface**
13+
- **Make significant progress on the User Manual**
614

715
## **Team Feedback**
816

@@ -27,8 +35,54 @@ The team was asked to rate their experience for the week based on the following
2735

2836
### **Survey Results**
2937

38+
![alt text](./images/kpis-week5.png)
39+
40+
The team’s morale significantly improved this week. This was due to the substantial project time available, which allowed for considerable progress. Both the **Technical Specifications** and **Test Plan** documents were completed and published.
41+
42+
Additionally, the positive atmosphere among team members contributed to an overall sense of accomplishment.
43+
44+
You can find a more detailed breakdown following this link: [Link to week's 5 KPIs](https://docs.google.com/spreadsheets/d/1EJIGbOufF86FP-Pb6Y5z0wuYymK0fEmoFKtg16JfIHg/edit?usp=sharing)
45+
3046
## **Project Progress**
3147

48+
- **Technical Specifications Document**
49+
50+
- Finalized and published
51+
- Sent for client review
52+
53+
- **Test Plan**
54+
55+
- Finalized and published
56+
57+
- **User Manual**
58+
59+
- Reached 90% completion
60+
- First version published
61+
62+
- **Web Interface**
63+
64+
- One animation implemented, but it does not yet function in real-time or accurately represent live data
65+
66+
- **Final Presentation**
67+
- The team attended a preparation session for the final presentation
68+
- Progress on the presentation was minimal due to this session
69+
3270
## **Challenges**
3371

72+
- **Formatting Issues in the Technical Specifications Document**
73+
74+
- Code blocks and formatting were disrupted during spell-checking and finalization
75+
- Immediate corrections were required before publication
76+
77+
- **Web Interface Timing Issues**
78+
- The animation does not accurately display the concurrent propagation of electrical signals
79+
- No further improvements will be made due to lack of allocated project time before the final deadline
80+
3481
## **Next Week Plans**
82+
83+
- **Prepare the oral presentation**
84+
- **Finalize and publish the User Manual**
85+
- **Write and format the README file**
86+
- **Final refactoring and code documentation (overtime hours if necessary)**
87+
- **Deliver the final presentation**
88+
- **Conduct a post-mortem analysis of the project**

documents/management/weekly-report/weekly-report6.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## **Overview**
44

5-
## **Week 4 Objectives**
5+
## **Week 6 Objectives**
66

77
## **Team Feedback**
88

documents/management/weekly-report/weekly-reports-cumulative.md

+100
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@
4343
- [**Project Progress**](#project-progress-3)
4444
- [**Challenges**](#challenges-3)
4545
- [**Next Week Plans**](#next-week-plans-3)
46+
- [**Weekly Report 5**](#weekly-report-5)
47+
- [**Overview**](#overview-4)
48+
- [**Week 5 Objectives**](#week-5-objectives)
49+
- [**Team Feedback**](#team-feedback-4)
50+
- [**Survey Questions**](#survey-questions-4)
51+
- [**Survey Results**](#survey-results-4)
52+
- [**Project Progress**](#project-progress-4)
53+
- [**Challenges**](#challenges-4)
54+
- [**Next Week Plans**](#next-week-plans-4)
4655

4756
</details>
4857

@@ -412,3 +421,94 @@ More details on the satisfaction survey can be found [here.](https://docs.google
412421
- **Publish the Test Plan and the Technical Specifications documents**
413422
- **Implement animations in the web interface**
414423
- **Make significant progress on the User Manual**
424+
425+
---
426+
427+
# **Weekly Report 5**
428+
429+
## **Overview**
430+
431+
This was the final week with allocated project time before the deadline. The team had significant time to work on the project, leading to major progress in both documentation and code. The primary goal was to finalize all essential documents and refine the web interface.
432+
433+
## **Week 5 Objectives**
434+
435+
- **Complete the Technical Specifications document**
436+
- **Finalize the Test Plan document**
437+
- **Publish the Test Plan and Technical Specifications documents**
438+
- **Implement animations in the web interface**
439+
- **Make significant progress on the User Manual**
440+
441+
## **Team Feedback**
442+
443+
### **Survey Questions**
444+
445+
The team was asked to rate their experience for the week based on the following questions:
446+
447+
- **How satisfied are you with this week? (Rate from 1 to 5)**
448+
449+
- 1 - Very Unsatisfied
450+
- 2 - Unsatisfied
451+
- 3 - Neutral
452+
- 4 - Satisfied
453+
- 5 - Very Satisfied
454+
455+
- **How would you rate the team's collaboration this week? (Rate from 1 to 5)**
456+
- 1 - Very Poor
457+
- 2 - Poor
458+
- 3 - Average
459+
- 4 - Good
460+
- 5 - Excellent
461+
462+
### **Survey Results**
463+
464+
![alt text](./images/kpis-week5.png)
465+
466+
The team’s morale significantly improved this week. This was due to the substantial project time available, which allowed for considerable progress. Both the **Technical Specifications** and **Test Plan** documents were completed and published.
467+
468+
Additionally, the positive atmosphere among team members contributed to an overall sense of accomplishment.
469+
470+
You can find a more detailed breakdown following this link: [Link to week's 5 KPIs](https://docs.google.com/spreadsheets/d/1EJIGbOufF86FP-Pb6Y5z0wuYymK0fEmoFKtg16JfIHg/edit?usp=sharing)
471+
472+
## **Project Progress**
473+
474+
- **Technical Specifications Document**
475+
476+
- Finalized and published
477+
- Sent for client review
478+
479+
- **Test Plan**
480+
481+
- Finalized and published
482+
483+
- **User Manual**
484+
485+
- Reached 90% completion
486+
- First version published
487+
488+
- **Web Interface**
489+
490+
- One animation implemented, but it does not yet function in real-time or accurately represent live data
491+
492+
- **Final Presentation**
493+
- The team attended a preparation session for the final presentation
494+
- Progress on the presentation was minimal due to this session
495+
496+
## **Challenges**
497+
498+
- **Formatting Issues in the Technical Specifications Document**
499+
500+
- Code blocks and formatting were disrupted during spell-checking and finalization
501+
- Immediate corrections were required before publication
502+
503+
- **Web Interface Timing Issues**
504+
- The animation does not accurately display the concurrent propagation of electrical signals
505+
- No further improvements will be made due to lack of allocated project time before the final deadline
506+
507+
## **Next Week Plans**
508+
509+
- **Prepare the oral presentation**
510+
- **Finalize and publish the User Manual**
511+
- **Write and format the README file**
512+
- **Final refactoring and code documentation (overtime hours if necessary)**
513+
- **Deliver the final presentation**
514+
- **Conduct a post-mortem analysis of the project**

0 commit comments

Comments
 (0)