|
 |
On 5/20/2010 10:29 AM, Invisible wrote:
> Mike Raiford wrote:
>
>> Unrelated, but tangential, How do you like LogiSim?
>
> Not very much.
>
> I mean, it *works*, but that's about it. It's really hard work to *do*
> anything with it. All gates default to having 5 inputs, no matter how
> many times you change it back to 2. All devices default to East
> orientation, no matter how many times you change it. Even just moving
> part of the circuit to make some room is quite unecessarily difficult.
Funny, it seems to get high ratings on SourceForge. ;)
But, yeah, all of your complaints are legitimate. Actually, if you click
an item on the toolbar (And I hate the way the toolbar is tied to the
project, BTW...) and change its attributes there, then it should stick.
Pin labels on a subcircuit are a major PITA. IMO it should print the pin
on the block (even if the block needs to be a tiny bit larger)
One thing that is particularly annoying is if you need a gate with an
even number of inputs beyond 2: They don't exist. So, you wind up tying
2 inputs together, then later (because you can barely see the wire
connecting those 2 inputs) wind up wiring 2 wires together and getting
an error.
> On top of that, the graphics look horrible, pin labels refuse to display
> when you need to see them, it's quite hard to label anything properly,
> and it spazzes out if you try to built a latch.
Yeah, it doesn't do too well with latches or flip-flops. I tried to
build a J-K flip-flop in it, and it fell flat. Surprisingly the latch
worked fine (Maybe because it was a NAND latch, instead of a NOR latch?)
Another nuisance that I've encountered a frustratingly large amount of
the time is the "phantom wire", where you'll click somewhere to select
something and a wire will appear out of what appears to be nowhere
(usually connecting to half a dozen wires that shouldn't be tied together.)
Also frustrating is the lack of bidirectional pins for subcircuits. I
started my design, and only when going out to the main block and
wondering why the app didn't seem to pass signals out when I was asking
for signals did I discover that inconvenient fact.
I'm not terribly concerned with how the application looks. It functions
reasonably if you stay away from the caveats.
> But apart from all that, it works perfectly. :-}
It does the job, at least. It's somewhat better than the rest of the
programs out there.
One thing the program truly needs is hotkeys. The way it is now requires
excessive mousing.
Falstad's circuit sim seems a bit easier to use at times, and it's
interface isn't stellar.
> As if the problem of designing complex arrangements of logic wasn't hard
> enough to start with...
Heh. A side project to this whole thing is writing my own logic
simulator. I've got it at least moving signals from point a to point b
reliably. I can modify wires and move things around in the program, but
that's about it. My simulation model is different (from what I can tell)
from Logisim, so I'm guessing the whole flipping out over oscillation
and stopping the simulator may not happen. We'll see, but that's the
trouble with feedback. ;)
Actually I'm quite happy with myself as far as my sim's UI code goes at
the moment, even if it's extremely minimal. One of the issues I ran into
was reconciling the pin connections from their locations. Walking the
list of pins for each item's pin took a painfully long time once you had
an appreciable amount of items on the board. My solution: a quadtree.
This morning I filled the board up with over 100 wires, and with an
average of 10 iterations it finds the nearest pin. As opposed to the 100
iterations it would take before. Nice savings (it becomes important
after moving an item, because the program checks that every pin is
connected, and removes connections on any previously connected pins)
Also, when dragging handles or items, the interface highlights areas
where a pin will either split a wire or connect to another pin. Since
this happens hundreds of times in the course of a drag operation, you
get more than a few dozen items, and the UI gets sluggish.
I have the project on SourceForge (yeah, I'm going to do the entire open
source thing with it. Why not?) But, contrary to their suggestions of
releasing files on essentially day 0, I haven't released anything yet.
Once I get more of the basics done, I'll do a preview release.
One of the things that would be nice is the ability to create a timing
graph.
I also have a design goal of allowing the interface to be flexible. Such
as allowing the user to assign hotkeys to items, giving a choice between
We'll see if it turns out to be anything more than vaporware, though. I
have a history of ethereal personal programming projects.
--
~Mike
Post a reply to this message
|
 |