Skip to main content
Tweeted twitter.com/#!/StackElectronix/status/304989915354103809
deleted 25 characters in body
Source Link

I want to design a 4x4 switch with 2x2 switches.

The 2x2 Switch

The 2x2 switches have a one-to-one relationship between inputs and outputs. As such, the select signal for the 2x2 switch is only a single bit because there are only two options: (1) The 2x2 switch is in "bar" broadcast. The inputs go horizontally to the outputs (In0 -> Out0 and In1-> Out1). (2) The 2x2 switch is in "cross" broadcast mode. The inputs cross each other as they go to the outputs (In0 -> Out1 and In1 -> Out0).

The switch is unicast. No input can drive more than one output. Also, no output can be driven by more than one input.

The 4x4 Switch

I hope my reasoning is right. I think the 4x4 switch would have 4!=24 combinations given the unicast limitations. That is, if In0 can go to any 4 outputs, then In1 has three choices left. In1 can go to any 3 leaving 2 choices for In2 and then leaving 1 choice for In3. So: 432*1 = 24 combinations.

Since my select signals are bits I would need 5 of them to cover all the combinations. 2^5 is 32 which is enough to cover 24 combinations.

This leads me to believe that there should be 5 2x2 switches inside the 4x4 switch, but I can't see a way to design it without running into a conflict between inputs going to outputs. Any help please?

Here is the VHDL for the 2x2 switch if it helps:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SW2x2 is
port (
    In0: in std_logic_vector(3 downto 0);
    In1: in std_logic_vector(3 downto 0);
    Out0: out std_logic_vector(3 downto 0);
    Out1: out std_logic_vector(3 downto 0);
    Sel: in std_logic);
end SW2x2;

architecture Behavioral of SW2x2 is

begin
    Out0 <= In0 when Sel='0' else
            In1 when Sel='1' else
            "0000";
    Out1 <= In1 when Sel='0' else
            In0 when Sel='1' else
            "0000";

end Behavioral;
    enter code here

FYI: The question is related to the design, not the VHDL code. VHDL is just given as reference.

I want to design a 4x4 switch with 2x2 switches.

The 2x2 Switch

The 2x2 switches have a one-to-one relationship between inputs and outputs. As such, the select signal for the 2x2 switch is only a single bit because there are only two options: (1) The 2x2 switch is in "bar" broadcast. The inputs go horizontally to the outputs (In0 -> Out0 and In1-> Out1). (2) The 2x2 switch is in "cross" broadcast mode. The inputs cross each other as they go to the outputs (In0 -> Out1 and In1 -> Out0).

The switch is unicast. No input can drive more than one output. Also, no output can be driven by more than one input.

The 4x4 Switch

I hope my reasoning is right. I think the 4x4 switch would have 4!=24 combinations given the unicast limitations. That is, if In0 can go to any 4 outputs, then In1 has three choices left. In1 can go to any 3 leaving 2 choices for In2 and then leaving 1 choice for In3. So: 432*1 = 24 combinations.

Since my select signals are bits I would need 5 of them to cover all the combinations. 2^5 is 32 which is enough to cover 24 combinations.

This leads me to believe that there should be 5 2x2 switches inside the 4x4 switch, but I can't see a way to design it without running into a conflict between inputs going to outputs. Any help please?

Here is the VHDL for the 2x2 switch if it helps:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SW2x2 is
port (
    In0: in std_logic_vector(3 downto 0);
    In1: in std_logic_vector(3 downto 0);
    Out0: out std_logic_vector(3 downto 0);
    Out1: out std_logic_vector(3 downto 0);
    Sel: in std_logic);
end SW2x2;

architecture Behavioral of SW2x2 is

begin
    Out0 <= In0 when Sel='0' else
            In1 when Sel='1' else
            "0000";
    Out1 <= In1 when Sel='0' else
            In0 when Sel='1' else
            "0000";

end Behavioral;
    enter code here

FYI: The question is related to the design, not the VHDL code. VHDL is just given as reference.

I want to design a 4x4 switch with 2x2 switches.

The 2x2 Switch

The 2x2 switches have a one-to-one relationship between inputs and outputs. As such, the select signal for the 2x2 switch is only a single bit because there are only two options: (1) The 2x2 switch is in "bar" broadcast. The inputs go horizontally to the outputs (In0 -> Out0 and In1-> Out1). (2) The 2x2 switch is in "cross" broadcast mode. The inputs cross each other as they go to the outputs (In0 -> Out1 and In1 -> Out0).

The switch is unicast. No input can drive more than one output. Also, no output can be driven by more than one input.

The 4x4 Switch

I hope my reasoning is right. I think the 4x4 switch would have 4!=24 combinations given the unicast limitations. That is, if In0 can go to any 4 outputs, then In1 has three choices left. In1 can go to any 3 leaving 2 choices for In2 and then leaving 1 choice for In3. So: 432*1 = 24 combinations.

Since my select signals are bits I would need 5 of them to cover all the combinations. 2^5 is 32 which is enough to cover 24 combinations.

This leads me to believe that there should be 5 2x2 switches inside the 4x4 switch, but I can't see a way to design it without running into a conflict between inputs going to outputs. Any help please?

Here is the VHDL for the 2x2 switch if it helps:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SW2x2 is
port (
    In0: in std_logic_vector(3 downto 0);
    In1: in std_logic_vector(3 downto 0);
    Out0: out std_logic_vector(3 downto 0);
    Out1: out std_logic_vector(3 downto 0);
    Sel: in std_logic);
end SW2x2;

architecture Behavioral of SW2x2 is

begin
    Out0 <= In0 when Sel='0' else
            In1 when Sel='1' else
            "0000";
    Out1 <= In1 when Sel='0' else
            In0 when Sel='1' else
            "0000";

end Behavioral;

FYI: The question is related to the design, not the VHDL code. VHDL is just given as reference.

Improved formatting: made input/output port names italic
Source Link

I want to design a 4x4 switch with 2x2 switches.

The 2x2 Switch

The 2x2 switches have a one-to-one relationship between inputs and outputs. As such, the select signal for the 2x2 switch is only a single bit because there are only two options: (1) The 2x2 switch is in "bar" broadcast. The inputs go horizontally to the outputs (In0In0 -> Out0Out0 and In1In1-> Out1Out1). (2) The 2x2 switch is in "cross" broadcast mode. The inputs cross each other as they go to the outputs (In0In0 -> Out1Out1 and In1 In1 -> Out0Out0).

The switch is unicast. No input can drive more than one output. Also, no output can be driven by more than one input.

The 4x4 Switch

I hope my reasoning is right. I think the 4x4 switch would have 4!=24 combinations given the unicast limitations. That is, if In0In0 can go to any 4 outputs, then In1In1 has three choices left. In1In1 can go to any 3 leaving 2 choices for In2In2 and then leaving 1 choice for In3In3. So: 432*1 = 24 combinations.

Since my select signals are bits I would need 5 of them to cover all the combinations. 2^5 is 32 which is enough to cover 24 combinations.

This leads me to believe that there should be 5 2x2 switches inside the 4x4 switch, but I can't see a way to design it without running into a conflict between inputs going to outputs. Any help please?

Here is the VHDL for the 2x2 switch if it helps:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SW2x2 is
port (
    In0: in std_logic_vector(3 downto 0);
    In1: in std_logic_vector(3 downto 0);
    Out0: out std_logic_vector(3 downto 0);
    Out1: out std_logic_vector(3 downto 0);
    Sel: in std_logic);
end SW2x2;

architecture Behavioral of SW2x2 is

begin
    Out0 <= In0 when Sel='0' else
            In1 when Sel='1' else
            "0000";
    Out1 <= In1 when Sel='0' else
            In0 when Sel='1' else
            "0000";

end Behavioral;
    enter code here

FYI: The question is related to the design, not the VHDL code. VHDL is just given as reference.

I want to design a 4x4 switch with 2x2 switches.

The 2x2 Switch

The 2x2 switches have a one-to-one relationship between inputs and outputs. As such, the select signal for the 2x2 switch is only a single bit because there are only two options: (1) The 2x2 switch is in "bar" broadcast. The inputs go horizontally to the outputs (In0 -> Out0 and In1-> Out1). (2) The 2x2 switch is in "cross" broadcast mode. The inputs cross each other as they go to the outputs (In0 -> Out1 and In1 -> Out0).

The switch is unicast. No input can drive more than one output. Also, no output can be driven by more than one input.

The 4x4 Switch

I hope my reasoning is right. I think the 4x4 switch would have 4!=24 combinations given the unicast limitations. That is, if In0 can go to any 4 outputs, then In1 has three choices left. In1 can go to any 3 leaving 2 choices for In2 and then leaving 1 choice for In3. So: 432*1 = 24 combinations.

Since my select signals are bits I would need 5 of them to cover all the combinations. 2^5 is 32 which is enough to cover 24 combinations.

This leads me to believe that there should be 5 2x2 switches inside the 4x4 switch, but I can't see a way to design it without running into a conflict between inputs going to outputs. Any help please?

Here is the VHDL for the 2x2 switch if it helps:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SW2x2 is
port (
    In0: in std_logic_vector(3 downto 0);
    In1: in std_logic_vector(3 downto 0);
    Out0: out std_logic_vector(3 downto 0);
    Out1: out std_logic_vector(3 downto 0);
    Sel: in std_logic);
end SW2x2;

architecture Behavioral of SW2x2 is

begin
    Out0 <= In0 when Sel='0' else
            In1 when Sel='1' else
            "0000";
    Out1 <= In1 when Sel='0' else
            In0 when Sel='1' else
            "0000";

end Behavioral;
    enter code here

FYI: The question is related to the design, not the VHDL code. VHDL is just given as reference.

I want to design a 4x4 switch with 2x2 switches.

The 2x2 Switch

The 2x2 switches have a one-to-one relationship between inputs and outputs. As such, the select signal for the 2x2 switch is only a single bit because there are only two options: (1) The 2x2 switch is in "bar" broadcast. The inputs go horizontally to the outputs (In0 -> Out0 and In1-> Out1). (2) The 2x2 switch is in "cross" broadcast mode. The inputs cross each other as they go to the outputs (In0 -> Out1 and In1 -> Out0).

The switch is unicast. No input can drive more than one output. Also, no output can be driven by more than one input.

The 4x4 Switch

I hope my reasoning is right. I think the 4x4 switch would have 4!=24 combinations given the unicast limitations. That is, if In0 can go to any 4 outputs, then In1 has three choices left. In1 can go to any 3 leaving 2 choices for In2 and then leaving 1 choice for In3. So: 432*1 = 24 combinations.

Since my select signals are bits I would need 5 of them to cover all the combinations. 2^5 is 32 which is enough to cover 24 combinations.

This leads me to believe that there should be 5 2x2 switches inside the 4x4 switch, but I can't see a way to design it without running into a conflict between inputs going to outputs. Any help please?

Here is the VHDL for the 2x2 switch if it helps:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SW2x2 is
port (
    In0: in std_logic_vector(3 downto 0);
    In1: in std_logic_vector(3 downto 0);
    Out0: out std_logic_vector(3 downto 0);
    Out1: out std_logic_vector(3 downto 0);
    Sel: in std_logic);
end SW2x2;

architecture Behavioral of SW2x2 is

begin
    Out0 <= In0 when Sel='0' else
            In1 when Sel='1' else
            "0000";
    Out1 <= In1 when Sel='0' else
            In0 when Sel='1' else
            "0000";

end Behavioral;
    enter code here

FYI: The question is related to the design, not the VHDL code. VHDL is just given as reference.

Source Link

How can I make a 4x4 switch out of 2x2 switches?

I want to design a 4x4 switch with 2x2 switches.

The 2x2 Switch

The 2x2 switches have a one-to-one relationship between inputs and outputs. As such, the select signal for the 2x2 switch is only a single bit because there are only two options: (1) The 2x2 switch is in "bar" broadcast. The inputs go horizontally to the outputs (In0 -> Out0 and In1-> Out1). (2) The 2x2 switch is in "cross" broadcast mode. The inputs cross each other as they go to the outputs (In0 -> Out1 and In1 -> Out0).

The switch is unicast. No input can drive more than one output. Also, no output can be driven by more than one input.

The 4x4 Switch

I hope my reasoning is right. I think the 4x4 switch would have 4!=24 combinations given the unicast limitations. That is, if In0 can go to any 4 outputs, then In1 has three choices left. In1 can go to any 3 leaving 2 choices for In2 and then leaving 1 choice for In3. So: 432*1 = 24 combinations.

Since my select signals are bits I would need 5 of them to cover all the combinations. 2^5 is 32 which is enough to cover 24 combinations.

This leads me to believe that there should be 5 2x2 switches inside the 4x4 switch, but I can't see a way to design it without running into a conflict between inputs going to outputs. Any help please?

Here is the VHDL for the 2x2 switch if it helps:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SW2x2 is
port (
    In0: in std_logic_vector(3 downto 0);
    In1: in std_logic_vector(3 downto 0);
    Out0: out std_logic_vector(3 downto 0);
    Out1: out std_logic_vector(3 downto 0);
    Sel: in std_logic);
end SW2x2;

architecture Behavioral of SW2x2 is

begin
    Out0 <= In0 when Sel='0' else
            In1 when Sel='1' else
            "0000";
    Out1 <= In1 when Sel='0' else
            In0 when Sel='1' else
            "0000";

end Behavioral;
    enter code here

FYI: The question is related to the design, not the VHDL code. VHDL is just given as reference.