Get ready
Download the Logisim software for your machine through Logisim's official website, launch the Logisim application (Logisim may be a bit bug, if the program is running weird, it may have been crashing inside, the best solution is to restart it).
Logisim Advanced Use
Two useful Logisim functions are introduced, which will be helpful for subsequent experiments.
Tunnel
Tunnel allows you to draw a "stealth line" to bind two points together. Tunnel are grouped according to the labels assigned to the lines, which are case-sensitive, and they are used for connection lines:
Be careful with which wires the wires are connected through the tunnel and vice versa,
Splitter
As the name implies, is the separator, the n-bit input, divided into M-group output (the number of groups and each group of members can be adjusted). It can also be used in turn to synthesize an n-bit output from an n-bit input.
The following is a 16-bit number, the whole loop is shifted right by two bits.
Extenders Extender
For clarity, you should use the bit extender bit extender when changing the line width.
For example, consider extending the 8-bit to 16-bit, one approach is to use splitter to merge the original number with 00000000,
Here's a simpler approach, easier to read, and less prone to error
It can do the "opposite" work when considering discarding bits
Experiment
Requirements: Based on your knowledge and experience with Splitter and multiplexers, you can implement a non-trivial combination of logic blocks: ROTR, which represents "right loop", ROTR A, a, a, a, and B, which is the "right loop" of the bit pattern of input A.
For example, A is 0BC110101and B is ob0101 (that is, decimal 5), the output of the circuit block is OB110101110101, note that the rightmost 5 bits are looped from the right end of the value to the left side.
In RTL, this action is similar to "R = A >> B | | A << (16-b) ".
Allow any combination logic circuit other than shift shifter to use your ROTR sub-circuit in main's sub-circuit.
Tip One : Before you start wiring, you should carefully consider how to break this problem down into smaller problems and connect them together. When implementing ROTR, other sub-circuits can be used at will. If you don't do it, you'll regret it.
Tip Two : Although we gave you the ROTR RTL, that doesn't mean it's the best way to look at the problem. Think about the input bit of B and consider how to use splitter! effectively
Tip three :: If you use a large splitter wiring will be very chaotic, and sometimes can be multiple splitter string up, things will be more localized and neat. For example, separating 1 inputs into 16 outputs can be divided into 4 branches with one splitter, and each branch to a splitter with four branches.
Ideas
First, make a loop right shift 1-bit, 2-bit, 4-bit, 8-bit sub-circuit (remember to consider sub-circuit multiplexing), where the right shift 1 bits can be separated by splitter 16 bits, and then the wrong one connection and then use splitter merge.
The 4 bits of B are separated out to make 4 2-to-1-mux.
My lab This I wrote, there was a mistake welcome to point out, thank you!
Use of Logisim