-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This page shall serve as a placeholder for the various development tasks associated with the CoreGenPortal sub-project. The goal of this development effort is to provide a functional GUI interface written using wxWidgets to utilize the CoreGen (et al. CoreGenBackend, Stonecutter) hardware development libraries and associated compilers. The GUI must provide all the fundamental functionality provided by the command line version of the tools (cgcli, sccomp, etc) using the GUI.
The basic layout of the GUI should be effectively in place. The multi-pane layout controls are relatively straightforward and will permit users to resize the various panes (or remove them) where needed. It would be ideal to provide a mechanism by which to hide and unhide panes at will. This may be required as users can accidentally close a pane without the ability to reopen it. The top-level pane objects should be constructed in a manner that they can be passed around as mutable objects. This permits inherited and downstream class objects the ability to dynamically update the content within target panes as required.
All errors/warnings from CoreGen (CoreGenBackend) and StoneCutter (SCExec) should be printed to a common error console. Note that the current infrastructure prints errors/warnings using colorized text. Not sure how this will work with wxWidgets. Need to test.
File editing should be handled inline as any other normal editor. We may be able to handle this using temporary buffers and copying the temporary buffers to the actual root files when saved by the user (File->Save; Ctrl-S). Basic text highlighting for YAML has been tested to be mostly functional. We need to extend this text highlighting to the SigMap YAML files and to StoneCutter files. The StoneCutter files may be able to inherit text highlighting from C or C++ syntax (maybe also Python). This would be much faster and more efficient than manually writing a text highlighting handler.
File types that need to be supported in the file editor:
- CoreGen IR Files: *.yaml
- StoneCutter/CoreGen SigMap Files: *.yaml
- StoneCutter Source Files: *.sc
All of the various interfaces to CoreGen (CoreGenBackend) and StoneCutter (SCExec) need to be supported. Note the interface method to SCExec and how it handles option arguments.
Any time nodes in the CoreGen IR are dynamically added, the user should have the option to rerun all the passes. This may be a future option to effectively JIT the passes as the user adds new nodes. However, when the user requests to delete a node, the tool should automatically initiate and run the SafeDeletePass system pass in order to ensure that the change does not break the design connectivity. This should be done before the node is actually deleted. If the change does, in fact, break the design connectivity, the user should be prompted to accept the change given the error.
We need the ability to selectively and (potentially) automatically initiate the CoreGen and StoneCutter compilers to initiate syntax checks. Both libraries have this capability.
We need the ability to drive the top-level build infrastructure. This includes the ability to initiate all the 'make' options from the top-level (generated) makefiles. This will likely be done less often, so it probably needs to be a toolbar option.
The default installation location in /opt/coregen/
The current OSX build infrastructure needs to be fixed. CMake doesn't handle the Darwin packaging correctly. The CentOS and Ubuntu packaging appears to work, but needs further testing.