Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A List of Widgets Required #37

Open
tangxifan opened this issue Oct 19, 2021 · 6 comments
Open

A List of Widgets Required #37

tangxifan opened this issue Oct 19, 2021 · 6 comments

Comments

@tangxifan
Copy link
Contributor

tangxifan commented Oct 19, 2021

Is your feature request related to a problem? Please describe.
As seen in PR #35, the main window has been created.
I have learned from Qt online documentation: https://doc.qt.io/qt-5/qtwidgets-index.html
As the Qt framework is modularized, the main window will finally be a place where all the widgets are added.
Each widget will be an independent class inherit from Qt classes, e.g., QDockWidget, QApplication etc.
Therefore, it is time to split our workload and parallelize the effort.

Describe the solution you'd like

Work plan

I propose that we work in this style

  • Define the list of Widgets to be created
  • Each team member claims the Widget to work on
  • We keep a track on the progress of each Widget. One Widget -> one or more pull requests

List of Widgets

Here, I only list the minimum Widgets required to build a mini FPGA IDE
Each widget can be in a separated issue

  • Console which includes
    • A text box where Tcl command can be typed in
    • A label box where all the logs can be shown
    • A filter to display only errors and warnings
  • Flow navigator which includes
    • A QTreeWidget which show steps required to perform a complete design flow
    • (Optional) Progress bars to show success and failures of each step
    • Right click to open any log files outputted by each step
  • Text Editor which supports
    • TextBox to load and write HDL codes from/to files
    • HDL syntax highlight and error indicator
    • Multi-tab to open multiple files
  • Project navigator which shows
    • Project settings
    • Source file categories and hierarchies
  • New project wizard
    • Select device/board from a list
    • Select source files/design constraints
    • Create project description file
  • New file wizard
  • I/O plan wizard
    • Select the I/O plan from figures
    • Output I/O constraints to files
  • Timing analysis stats
    • Show bar graph on the slack/path delay distribution on all the paths
@tangxifan
Copy link
Contributor Author

@MidsummerNight @alain-rs @liibin

Feel free to comment and add new Widgets.
Open to discussion here

@liibin
Copy link
Contributor

liibin commented Oct 19, 2021

About the editor, I found an open source editor Qsciscintila

Can we use it.

@tangxifan
Copy link
Contributor Author

About the editor, I found an open source editor Qsciscintila

Can we use it.

I just see they use a mix of GPL and commercial

QScintilla is available under the GNU General Public License v3 and the Riverbank Commercial License.

If you go for commercial, you may have to buy licenses.
It will turn our project into GPL license.

@MidsummerNight
Copy link
Contributor

Just a heads up, I have a couple of priorities to sort out at my commpany before I can really work on this full-time. I'll follow as closely as I can, but at least for the next 2 or 3 months @liibin will be the major GUI dev on our side.

@tangxifan
Copy link
Contributor Author

After a discussion with the team, the Widget workload is now splitted between groups

@tangxifan
Copy link
Contributor Author

Let me know if this works fine for you @alain-rs @MidsummerNight @liibin
We can start working in parallel.

The first thing we should do is to create specification for each widget (can be slide only)

  • Specification includes
    • Widget window floorplanning
    • Input&output file formats
    • Tcl commands
  • Each widget should have a dedicated issue opened, where specification is uploaded
  • All the teams should agree on specifications and then we can start coding

shivaahir1508 pushed a commit that referenced this issue Jun 15, 2023
* test install

* xml lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* qt lib

* Centos git version

* Undo

* FOEDAG dyn library support

* Change exec name and add device.xml support

* Change exec name and add device.xml support

* Update compiler support

* format

* qt on macos

* Update compiler support

* SDC preprocessor

* sync FOEDAG

* sync FOEDAG

* New Tcl API commands

* RaptorRS compiler

* RaptorRS compiler

* cmd check and RS compiler

* cmd check and RS compiler

* version and verilog out

* version and verilog out

* help

* gemini.xml support

* rs_synth

* rs_synth

* Fixed 76x76 gemini

* write verilog

* default lang

* default lang

* incr synth

* Compiler commands

* Update Foedag

Co-authored-by: Alain Dargelas <alain.dargelas@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants