Replies: 1 comment 5 replies
-
This is interesting. As much as I like John Scott's book "But How Do It Know", this is exactly the point where readers of the book will typically get stuck when trying to build the circuits in the book with any circuit simulator. His "Enabler" component is simply built only from AND gates, and he uses them to build registers that are all connected to the same bus. To make this work, you will either need tri-state-buffers, or the gates need to operate in wired-OR mode, but neither of these concepts is explained in the book. When I've worked my way through the book, I've decided to go with the wired-OR mode and extended my own circuit simulator I'm currently developing with a wired-OR mode, just to stick to the book as close as possible. But if your course is using the tri-state way, that's surely better. |
Beta Was this translation helpful? Give feedback.
-
NOTE: https://slark.me/digital-discussion-1120 is a Dropbox folder of screenshots / PDFs /
.dig
/.circ
files that are relevent to this post.I am currently working my way through the Udemy course Design a CPU (https://www.udemy.com/course/design-a-cpu/), which uses the CPU design from the book But How Do It Know The Basic Principles of Computers For Everyone (http://www.buthowdoitknow.com/).
The lecturer for this course is using Logisim for the lecture videos, however I have chosen to use Digital instead for building my CPU for the usual reasons (less jank etc).
This Logisim → Digital translation, as it were, has been relatively painless for me in the course lectures thus far (lectures 1-9), however things came to a screeching halt for me the other day with lecture 10 Control Buffer.
The lecturer is using the term "control buffer" for the component under discussion in this lecture, and Logisim uses the similar, but not identical, component name "controlled buffer".
As an aside the lecturer also uses the term "unity gain buffer" once early in the lecture, which seems to be an completely unrelated component in analog(ue) electronics called a "buffer amplifier".
Not finding any components with a similar functionality to the search terms "control" or "buffer" in the current Digital docs, I started to assume that Digital, for whatever reason, did not include this component by default.
I discovered via Wikipedia that the component I was looking for is actually called a "three-state / three state / tri-state / tri state / tristate buffer" (three-state etc buffer). Specifically I was looking for a "active high" three-state etc buffer. I also discovered via Wikipedia that multiple three-state etc buffers can be functionally replaced by a multiplexer, a component which is included by default, with the same name, in both Digital and Logisim/Logisim-evolution.
Maybe I could use only multiplexers, instead of using three-state etc buffers, in Digital, for building my CPU. Also maybe I could build my own three-state etc buffer subcircuit in Digital using a few transistors & logic gates, which at first glance seems doable, although I haven't attempted this yet.
Finding my allegedly missing component after searching for "control" or "buffer" in my collection of several digital logic design (DLD) textbooks proved fruitless. After my Wikipedia discoveries however, searching for "three state" or "tri state" buffers in these DLD textbooks was now at least now giving me some relevant reading reference material.
A grand total of ZERO (0) digital logic design textbooks seem to use the terms "control/controlled buffer" for a three-state etc buffer, as far as I can tell.
I was beginning to resign myself to not having three-state etc buffers in Digital by default. However after reading in my DLD textbooks about three-state etc buffers, I found my missing Digital component whilst searching the current Digital docs for "high z".
Lo and behold I discover 6. Wires → 6.6 Driver on page 54 of the current Digital docs. After following along again with Udemy lecture 10 Control Buffer, this "driver" component in Digital seems to have exactly the same digital circuit functionality as the "controlled buffer" component in Logisim. The missing component in Digital is finally found. Hooray!
Also, a grand total of ZERO (0) digital logic design textbooks seem to use the term "driver" for a three-state etc buffer, as far as I can tell.
in summary →
also →
This post is for anyone else who encounters this issue in the future.
Finally my question is will I / another student encounter any other inconsistently named component(s) for any course/lecturer/textbook etc who is using Logisim/Logisim-evolution, when I am / the student is using Digital instead?
Preferably I would like each Digital component to use the de facto naming conventions that digital logic design textbooks use for the functionality equivalent component. Perhaps one or more Digital component(s) need a name change hneemann?
Beta Was this translation helpful? Give feedback.
All reactions