mirror of
https://gitlab.com/deetmit/mesecons_x.git
synced 2024-08-19 21:04:13 +02:00
Update TODO file
This commit is contained in:
parent
2f9cdcebcf
commit
792605be84
67
TODO
67
TODO
@ -2,7 +2,8 @@ Here is a list of things I plan to implement.
|
|||||||
|
|
||||||
|
|
||||||
[FSM generator](status: in progress)
|
[FSM generator](status: in progress)
|
||||||
Description: A tool which generates circuit based on code. You use special lanugae to describe FSM (finite state machine), and based on this code circuit is
|
Description: A tool which generates circuit based on code. You use special lanugae
|
||||||
|
to describe FSM (finite state machine), and based on this code circuit is
|
||||||
generated. Example of the code:
|
generated. Example of the code:
|
||||||
|
|
||||||
#pinA = a ~b c
|
#pinA = a ~b c
|
||||||
@ -22,7 +23,8 @@ etc.
|
|||||||
|
|
||||||
|
|
||||||
[Fromula generator](status: not started)
|
[Fromula generator](status: not started)
|
||||||
Description: A tool that generates circuit based on formula. Formula is in special language (similar to logic formula in math). It is also possible to generate
|
Description: A tool that generates circuit based on formula. Formula is in special
|
||||||
|
language (similar to logic formula in math). It is also possible to generate
|
||||||
formulas using numbers. Example:
|
formulas using numbers. Example:
|
||||||
if pin0 = true and counter > 10 then
|
if pin0 = true and counter > 10 then
|
||||||
output = counter + 10
|
output = counter + 10
|
||||||
@ -34,64 +36,87 @@ else
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
As and advanced option, the tool should also be able to generate circuit based on the current selection. Example. if you selected a 5 wires and want to generate
|
As and advanced option, the tool should also be able to generate circuit based on
|
||||||
an adder that should be connected to these wires, the generator should generate circuit with inputs and outpus connected (so the circuit may be streched if necessary)
|
the current selection. Example. if you selected a 5 wires and want to generate
|
||||||
Example. If you are building a cpu with pies, and need from time to time add a registers to store partial computation, you just select the wires, use generator, and
|
an adder that should be connected to these wires, the generator should generate
|
||||||
|
circuit with inputs and outpus connected (so the circuit may be streched if necessary)
|
||||||
|
Example. If you are building a cpu with pies, and need from time to time add a registers
|
||||||
|
to store partial computation, you just select the wires, use generator, and
|
||||||
the registers are connected to the wires (you dont have to connect the wires manualy))
|
the registers are connected to the wires (you dont have to connect the wires manualy))
|
||||||
etc.
|
etc.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Module generator](status: not starte)
|
[Module generator](status: not starte)
|
||||||
Description: A tool that has a list of preprogrammed circuits. Allows you to choose and use it. For some of them you can generate different versions based
|
Description: A tool that has a list of preprogrammed circuits. Allows you to choose and
|
||||||
on the input size or other parameters. Example: you can generate adder setting the size of the input. Example: you can generate incrementer by +8, where the number
|
use it. For some of them you can generate different versions based
|
||||||
|
on the input size or other parameters. Example: you can generate adder setting the size
|
||||||
|
of the input. Example: you can generate incrementer by +8, where the number
|
||||||
8 you set as a parameter for generation algorithm.
|
8 you set as a parameter for generation algorithm.
|
||||||
|
|
||||||
A tool also contains the following modules/circuits: incrementer, decrementer, adder, substracter, multiplier, divider, shift registers, comparators, wire transfomation,
|
A tool also contains the following modules/circuits: incrementer, decrementer, adder,
|
||||||
|
substracter, multiplier, divider, shift registers, comparators, wire transfomation,
|
||||||
number generation (from dec to hex/bin) etc
|
number generation (from dec to hex/bin) etc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Book of circuits](status: not started)
|
[Book of circuits](status: not started)
|
||||||
Description: a tool that stores multiple circuits built by player (blue books). Allows to search, and put in different directories. The tool should be able to store aprox 1000
|
Description: a tool that stores multiple circuits built by player (blue books). Allows
|
||||||
circuits and it should be easy to find and mangae any of them ( adding, removing, renaming, moving etc). Search would use name and descriptinos of the circuits. You can use some tags (i.e. simple string formated like #tagname) in
|
to search, and put in different directories. The tool should be able to store aprox 1000
|
||||||
circuits description. You should also be able to duplicate the circuit, and there should be some mechanism to put a group of circuits in the inventory at once (a previously prepared
|
circuits and it should be easy to find and mangae any of them ( adding, removing, renaming,
|
||||||
groups of circuits that are used often).
|
moving etc). Search would use name and descriptinos of the circuits. You can use some
|
||||||
|
tags (i.e. simple string formated like #tagname) in circuits description. You should also
|
||||||
|
be able to duplicate the circuit, and there should be some mechanism to put a group
|
||||||
|
of circuits in the inventory at once (a previously prepared groups of circuits
|
||||||
|
that are used often).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Gate move tool] (status: not started)
|
[Gate move tool] (status: not started)
|
||||||
Description: tool that moves one gate or piece of wire from one place to another. The connections are rearranged, but the whole circuits stays the same (in terms of functional equivalence).
|
Description: tool that moves one gate or piece of wire from one place to another.
|
||||||
You have to select the circuit (using blue tool) first. This is the area that is going to be changed. During the process circuit may grow, so you must be sure that other things are not deleted.
|
The connections are rearranged, but the whole circuits stays the same (in terms of
|
||||||
|
functional equivalence).
|
||||||
|
You have to select the circuit (using blue tool) first. This is the area that is going
|
||||||
|
to be changed. During the process circuit may grow, so you must be sure that other things are not deleted.
|
||||||
The purpouse of thes too is to optimise your circuit in terms of size.
|
The purpouse of thes too is to optimise your circuit in terms of size.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Delete and change tool](status: not started)
|
[Delete and change tool](status: not started)
|
||||||
Description: If you use circuits templates (ex. adders) sometimes you set some wires to fixed value (eg. using general adder of two numbers, to create incrementer ++2. by seting one numner to 2).
|
Description: If you use circuits templates (ex. adders) sometimes you set some wires
|
||||||
This tool should allow you to remove the unnecessary gates and wires, that never change. You click on power plants (generatin alway 1, or 0) or empty wires (generating always 0), then the wire is
|
to fixed value (eg. using general adder of two numbers, to create incrementer ++2.
|
||||||
deleted and all gates that just lost one of the connections are also deleted (or changed to other gate accordingly). Proces is continued till there are no more changes to do.
|
by seting one numner to 2).
|
||||||
|
This tool should allow you to remove the unnecessary gates and wires, that never change.
|
||||||
|
You click on power plants (generatin alway 1, or 0) or empty wires (generating always 0),
|
||||||
|
then the wire is deleted and all gates that just lost one of the connections are also
|
||||||
|
deleted (or changed to other gate accordingly). Proces is continued till there are no more changes to do.
|
||||||
|
|
||||||
Note that this tool will remove only one starting wire or plant. I could change the whole circuit in the process (as a chain of removal reactin), but if you have another power plants, you must click at all of them.
|
Note that this tool will remove only one starting wire or plant. I could change the whole
|
||||||
|
circuit in the process (as a chain of removal reactin), but if you have another power plants,
|
||||||
|
you must click at all of them.
|
||||||
This tool is not ment to be a whole circuit optymalization.
|
This tool is not ment to be a whole circuit optymalization.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Streching tool](status: not stared)
|
[Streching tool](status: not stared)
|
||||||
Description: There is a need to shring the circuit when possible. I'm not sure yet if this feature should be as a separte tool, or just automatically done in other tools.
|
Description: There is a need to shring the circuit when possible. I'm not sure yet if
|
||||||
|
this feature should be as a separte tool, or just automatically done in other tools.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Reverse Generation](status: not started)
|
[Reverse Generation](status: not started)
|
||||||
Description: Tool that generates a code in special language based on the circuit.
|
Description: Tool that generates a code in special language based on the circuit.
|
||||||
You select some circuit, and use the tool. The tool generates logic formula or FSM. This tool is kind of opposite to the FSM Generator and Formula Generator.
|
You select some circuit, and use the tool. The tool generates logic formula or FSM.
|
||||||
|
This tool is kind of opposite to the FSM Generator and Formula Generator.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Input & Output blocs](status: not started)
|
[Input & Output blocs](status: not started)
|
||||||
Description: just a simple node, to let know all the other tools that the wire is input or output. You can add a name, so some tools can use it to name wires in code or descriptions. Very userful for Reverse Generator tool.
|
Description: just a simple node, to let know all the other tools that the wire
|
||||||
|
is input or output. You can add a name, so some tools can use it to name wires
|
||||||
|
in code or descriptions. Very userful for Reverse Generator tool.
|
||||||
Blocks can also be used by generators, so that the player can see which wire is which.
|
Blocks can also be used by generators, so that the player can see which wire is which.
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user