Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Additional shapes for shift registers.

Snow_Cat
2010-08-15
2013-05-23
  • Snow_Cat
    Snow_Cat
    2010-08-15

    I found myself needing an 8-bit shift register and decided to go ahead and draw the rest of the series.
    (version 1.5 beta)

    #NOTE: Need to make the 8-bit shift register shape.
        <gate> <name>BE_SHIFT_REGISTER_8</name>
            <caption>8-Bit Shift Register</caption>
            <logic_type>REGISTER</logic_type>
            <logic_param>INPUT_BITS 8</logic_param>
            <logic_param>MAX_COUNT 255</logic_param>
            <logic_param>SYNC_CLEAR true</logic_param>
            <logic_param>SYNC_LOAD true</logic_param>
            <gui_type>REGISTER</gui_type>
            <gui_param>VALUE_BOX -1.6,-1.3,1.6,1.3</gui_param>
            <param_dlg_data>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Reset Pin</label>
                    <varname>LOGIC SYNC_CLEAR</varname>
                </param>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Load Pin</label>
                    <varname>LOGIC SYNC_LOAD</varname>
                </param>
            </param_dlg_data>
    #       R
            <input> <name>clear</name>
                      <point>-7,0</point> 
            </input>
    #       S
            <input> <name>shift_enable</name>
                      <point>7,0</point> 
            </input>
    #       L
            <input> <name>load</name>
                      <point>7,-1</point> 
            </input>
    #       Arrow
            <input> <name>shift_left</name>
                      <point>7,-2</point> 
            </input>
    #       CLOCK
            <input> <name>clock</name>
                      <point>-7,-1</point> 
            </input>
    #       SI
            <input> <name>carry_in</name>
                      <point>7,1.5</point> 
            </input>
    #       SO
            <output> <name>carry_out</name>
                      <point>-7,1.5</point> 
            </output>
    #       BUS IN
            <input> <name>IN_0</name>
                      <point>3.5,3.5</point> 
            </input>
            <input> <name>IN_1</name>
                      <point>2.5,3.5</point> 
            </input>
            <input> <name>IN_2</name>
                      <point>1.5,3.5</point> 
            </input>
            <input> <name>IN_3</name>
                      <point>0.5,3.5</point> 
            </input>
            <input> <name>IN_4</name>
                      <point>-0.5,3.5</point> 
            </input>
            <input> <name>IN_5</name>
                      <point>-1.5,3.5</point> 
            </input>
            <input> <name>IN_6</name>
                      <point>-2.5,3.5</point> 
            </input>
            <input> <name>IN_7</name>
                      <point>-3.5,3.5</point> 
            </input>
    #       BUS OUT
            <output> <name>OUT_0</name>
                      <point>3.5,-3.5</point> 
            </output>
            <output> <name>OUT_1</name>
                      <point>2.5,-3.5</point> 
            </output>
            <output> <name>OUT_2</name>
                      <point>1.5,-3.5</point> 
            </output>
            <output> <name>OUT_3</name>
                      <point>0.5,-3.5</point> 
            </output>
            <output> <name>OUT_4</name>
                      <point>-0.5,-3.5</point> 
            </output>
            <output> <name>OUT_5</name>
                      <point>-1.5,-3.5</point> 
            </output>
            <output> <name>OUT_6</name>
                      <point>-2.5,-3.5</point> 
            </output>
            <output> <name>OUT_7</name>
                      <point>-3.5,-3.5</point> 
            </output>
            <shape>
                <line>-6,2.5,6,2.5</line>
                <line>6,2.5,6,-2.5</line>
                <line>6,-2.5,-6,-2.5</line>
                <line>-6,-2.5,-6,2.5</line>
    #           SR IN
                <line>-3.5,2.5,-3.5,3.5</line>
                <line>-2.5,2.5,-2.5,3.5</line>
                <line>-1.5,2.5,-1.5,3.5</line>
                <line>-0.5,2.5,-0.5,3.5</line>
                <line>0.5,2.5,0.5,3.5</line>
                <line>1.5,2.5,1.5,3.5</line>
                <line>2.5,2.5,2.5,3.5</line>
                <line>3.5,2.5,3.5,3.5</line>
    #           SR OUT
                <line>-3.5,-2.5,-3.5,-3.5</line>
                <line>-2.5,-2.5,-2.5,-3.5</line>
                <line>-1.5,-2.5,-1.5,-3.5</line>
                <line>-0.5,-2.5,-0.5,-3.5</line>
                <line>0.5,-2.5,0.5,-3.5</line>
                <line>1.5,-2.5,1.5,-3.5</line>
                <line>2.5,-2.5,2.5,-3.5</line>
                <line>3.5,-2.5,3.5,-3.5</line>
    #           Carry In & Carry Out
                <line>6,1.5,7,1.5</line>
                <line>-6,1.5,-7,1.5</line>
    #           CLOCK
                <line>-6,-0.5,-5,-1</line>
                <line>-6,-1.5,-5,-1</line>
    #           Right Inputs
                <line>7,0,6,0</line>
                <line>7,-1,6,-1</line>
                <line>7,-2,6,-2</line>
    #           Left Inputs
                <line>-6,0,-7,0</line>
                <line>-6,-1,-7,-1</line>
    #           0
                <offset><point>3.3,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           7
                <offset><point>-3.7,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                </offset>
    #           0
                <offset><point>3.3,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           7
                <offset><point>-3.7,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                </offset>
    #           R
                <offset><point>-5.7,0.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0,-0.4</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0,-0.8</line>
                <line>0,-0.4,0.4,-0.8</line>
                </offset>
    #           S
                <offset><point>5.3,0.4</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           L
                <offset><point>5.3,-0.6</point>
                <line>0,0,0,-0.8</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
    #           Arrow
                <offset><point>5.3,-2</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0.2,-0.2</line>
                <line>0,0,0.2,0.2</line>
                </offset>
    #           S
                <offset><point>-5.7,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           0
                <offset><point>-5.2,1.9</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           S
                <offset><point>5.8,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           I
                <offset><point>5.3,1.9</point>
                <line>0.2,0,0.2,-0.8</line>
                <line>0,0,0.4,0</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
            </shape>
        </gate>
    #NOTE: Need to make the 12-bit shift register shape.
        <gate> <name>BI_SHIFT_REGISTER_12</name>
            <caption>12-Bit Shift Register</caption>
            <logic_type>REGISTER</logic_type>
            <logic_param>INPUT_BITS 12</logic_param>
            <logic_param>MAX_COUNT 4095</logic_param>
            <logic_param>SYNC_CLEAR true</logic_param>
            <logic_param>SYNC_LOAD true</logic_param>
            <gui_type>REGISTER</gui_type>
            <gui_param>VALUE_BOX -2.4,-1.3,2.4,1.3</gui_param>
            <param_dlg_data>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Reset Pin</label>
                    <varname>LOGIC SYNC_CLEAR</varname>
                </param>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Load Pin</label>
                    <varname>LOGIC SYNC_LOAD</varname>
                </param>
            </param_dlg_data>
    #       R
            <input> <name>clear</name>
                      <point>-9,0</point> 
            </input>
    #       S
            <input> <name>shift_enable</name>
                      <point>9,0</point> 
            </input>
    #       L
            <input> <name>load</name>
                      <point>9,-1</point> 
            </input>
    #       Arrow
            <input> <name>shift_left</name>
                      <point>9,-2</point> 
            </input>
    #       CLOCK
            <input> <name>clock</name>
                      <point>-9,-1</point> 
            </input>
    #       SI
            <input> <name>carry_in</name>
                      <point>9,1.5</point> 
            </input>
    #       SO
            <output> <name>carry_out</name>
                      <point>-9,1.5</point> 
            </output>
    #       BUS IN
            <input> <name>IN_0</name>
                      <point>5.5,3.5</point> 
            </input>
            <input> <name>IN_1</name>
                      <point>4.5,3.5</point> 
            </input>
            <input> <name>IN_2</name>
                      <point>3.5,3.5</point> 
            </input>
            <input> <name>IN_3</name>
                      <point>2.5,3.5</point> 
            </input>
            <input> <name>IN_4</name>
                      <point>1.5,3.5</point> 
            </input>
            <input> <name>IN_5</name>
                      <point>0.5,3.5</point> 
            </input>
            <input> <name>IN_6</name>
                      <point>-0.5,3.5</point> 
            </input>
            <input> <name>IN_7</name>
                      <point>-1.5,3.5</point> 
            </input>
            <input> <name>IN_8</name>
                      <point>-2.5,3.5</point> 
            </input>
            <input> <name>IN_9</name>
                      <point>-3.5,3.5</point> 
            </input>
            <input> <name>IN_10</name>
                      <point>-4.5,3.5</point> 
            </input>
            <input> <name>IN_11</name>
                      <point>-5.5,3.5</point> 
            </input>
    #       BUS OUT
            <output> <name>OUT_0</name>
                      <point>5.5,-3.5</point> 
            </output>
            <output> <name>OUT_1</name>
                      <point>4.5,-3.5</point> 
            </output>
            <output> <name>OUT_2</name>
                      <point>3.5,-3.5</point> 
            </output>
            <output> <name>OUT_3</name>
                      <point>2.5,-3.5</point> 
            </output>
            <output> <name>OUT_4</name>
                      <point>1.5,-3.5</point> 
            </output>
            <output> <name>OUT_5</name>
                      <point>0.5,-3.5</point> 
            </output>
            <output> <name>OUT_6</name>
                      <point>-0.5,-3.5</point> 
            </output>
            <output> <name>OUT_7</name>
                      <point>-1.5,-3.5</point> 
            </output>
            <output> <name>OUT_8</name>
                      <point>-2.5,-3.5</point> 
            </output>
            <output> <name>OUT_9</name>
                      <point>-3.5,-3.5</point> 
            </output>
            <output> <name>OUT_10</name>
                      <point>-4.5,-3.5</point> 
            </output>
            <output> <name>OUT_11</name>
                      <point>-5.5,-3.5</point> 
            </output>
            <shape>
                <line>-8,2.5,8,2.5</line>
                <line>8,2.5,8,-2.5</line>
                <line>8,-2.5,-8,-2.5</line>
                <line>-8,-2.5,-8,2.5</line>
    #           SR IN
                <line>-5.5,2.5,-5.5,3.5</line>
                <line>-4.5,2.5,-4.5,3.5</line>
                <line>-3.5,2.5,-3.5,3.5</line>
                <line>-2.5,2.5,-2.5,3.5</line>
                <line>-1.5,2.5,-1.5,3.5</line>
                <line>-0.5,2.5,-0.5,3.5</line>
                <line>0.5,2.5,0.5,3.5</line>
                <line>1.5,2.5,1.5,3.5</line>
                <line>2.5,2.5,2.5,3.5</line>
                <line>3.5,2.5,3.5,3.5</line>
                <line>4.5,2.5,4.5,3.5</line>
                <line>5.5,2.5,5.5,3.5</line>
    #           SR OUT
                <line>-5.5,-2.5,-5.5,-3.5</line>
                <line>-4.5,-2.5,-4.5,-3.5</line>
                <line>-3.5,-2.5,-3.5,-3.5</line>
                <line>-2.5,-2.5,-2.5,-3.5</line>
                <line>-1.5,-2.5,-1.5,-3.5</line>
                <line>-0.5,-2.5,-0.5,-3.5</line>
                <line>0.5,-2.5,0.5,-3.5</line>
                <line>1.5,-2.5,1.5,-3.5</line>
                <line>2.5,-2.5,2.5,-3.5</line>
                <line>3.5,-2.5,3.5,-3.5</line>
                <line>4.5,-2.5,4.5,-3.5</line>
                <line>5.5,-2.5,5.5,-3.5</line>
    #           Carry In & Carry Out
                <line>8,1.5,9,1.5</line>
                <line>-8,1.5,-9,1.5</line>
    #           CLOCK
                <line>-8,-0.5,-7,-1</line>
                <line>-8,-1.5,-7,-1</line>
    #           Right Inputs
                <line>9,0,8,0</line>
                <line>9,-1,8,-1</line>
                <line>9,-2,8,-2</line>
    #           Left Inputs
                <line>-8,0,-9,0</line>
                <line>-8,-1,-9,-1</line>
    #           0
                <offset><point>5.3,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           1
                <offset><point>-4.7,2.2</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           1
                <offset><point>-5.7,2.2</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           0
                <offset><point>5.3,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           1
                <offset><point>-4.7,-1.4</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           1
                <offset><point>-5.7,-1.4</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           R
                <offset><point>-7.7,0.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0,-0.4</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0,-0.8</line>
                <line>0,-0.4,0.4,-0.8</line>
                </offset>
    #           S
                <offset><point>7.3,0.4</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           L
                <offset><point>7.3,-0.6</point>
                <line>0,0,0,-0.8</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
    #           Arrow
                <offset><point>7.3,-2</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0.2,-0.2</line>
                <line>0,0,0.2,0.2</line>
                </offset>
    #           S
                <offset><point>-7.7,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           0
                <offset><point>-7.2,1.9</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           S
                <offset><point>7.8,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           I
                <offset><point>7.3,1.9</point>
                <line>0.2,0,0.2,-0.8</line>
                <line>0,0,0.4,0</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
            </shape>
     </gate>
    #NOTE: Need to make the 16-bit shift register shape.
        <gate> <name>BM_SHIFT_REGISTER_16</name>
            <caption>16-Bit Shift Register</caption>
            <logic_type>REGISTER</logic_type>
            <logic_param>INPUT_BITS 16</logic_param>
            <logic_param>MAX_COUNT 65536</logic_param>
            <logic_param>SYNC_CLEAR true</logic_param>
            <logic_param>SYNC_LOAD true</logic_param>
            <gui_type>REGISTER</gui_type>
            <gui_param>VALUE_BOX -3.2,-1.3,3.2,1.3</gui_param>
            <param_dlg_data>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Reset Pin</label>
                    <varname>LOGIC SYNC_CLEAR</varname>
                </param>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Load Pin</label>
                    <varname>LOGIC SYNC_LOAD</varname>
                </param>
            </param_dlg_data>
    #       R
            <input> <name>clear</name>
                      <point>-11,0</point> 
            </input>
    #       S
            <input> <name>shift_enable</name>
                      <point>11,0</point> 
            </input>
    #       L
            <input> <name>load</name>
                      <point>11,-1</point> 
            </input>
    #       Arrow
            <input> <name>shift_left</name>
                      <point>11,-2</point> 
            </input>
    #       CLOCK
            <input> <name>clock</name>
                      <point>-11,-1</point> 
            </input>
    #       SI
            <input> <name>carry_in</name>
                      <point>11,1.5</point> 
            </input>
    #       SO
            <output> <name>carry_out</name>
                      <point>-11,1.5</point> 
            </output>
    #       BUS IN
            <input> <name>IN_0</name>
                      <point>7.5,3.5</point> 
            </input>
            <input> <name>IN_1</name>
                      <point>6.5,3.5</point> 
            </input>
            <input> <name>IN_2</name>
                      <point>5.5,3.5</point> 
            </input>
            <input> <name>IN_3</name>
                      <point>4.5,3.5</point> 
            </input>
            <input> <name>IN_4</name>
                      <point>3.5,3.5</point> 
            </input>
            <input> <name>IN_5</name>
                      <point>2.5,3.5</point> 
            </input>
            <input> <name>IN_6</name>
                      <point>1.5,3.5</point> 
            </input>
            <input> <name>IN_7</name>
                      <point>0.5,3.5</point> 
            </input>
            <input> <name>IN_8</name>
                      <point>-0.5,3.5</point> 
            </input>
            <input> <name>IN_9</name>
                      <point>-1.5,3.5</point> 
            </input>
            <input> <name>IN_10</name>
                      <point>-2.5,3.5</point> 
            </input>
            <input> <name>IN_11</name>
                      <point>-3.5,3.5</point> 
            </input>
            <input> <name>IN_12</name>
                      <point>-4.5,3.5</point> 
            </input>
            <input> <name>IN_13</name>
                      <point>-5.5,3.5</point> 
            </input>
            <input> <name>IN_14</name>
                      <point>-6.5,3.5</point> 
            </input>
            <input> <name>IN_15</name>
                      <point>-7.5,3.5</point> 
            </input>
    #       BUS OUT
            <output> <name>OUT_0</name>
                      <point>7.5,-3.5</point> 
            </output>
            <output> <name>OUT_1</name>
                      <point>6.5,-3.5</point> 
            </output>
            <output> <name>OUT_2</name>
                      <point>5.5,-3.5</point> 
            </output>
            <output> <name>OUT_3</name>
                      <point>4.5,-3.5</point> 
            </output>
            <output> <name>OUT_4</name>
                      <point>3.5,-3.5</point> 
            </output>
            <output> <name>OUT_5</name>
                      <point>2.5,-3.5</point> 
            </output>
            <output> <name>OUT_6</name>
                      <point>1.5,-3.5</point> 
            </output>
            <output> <name>OUT_7</name>
                      <point>0.5,-3.5</point> 
            </output>
            <output> <name>OUT_8</name>
                      <point>-0.5,-3.5</point> 
            </output>
            <output> <name>OUT_9</name>
                      <point>-1.5,-3.5</point> 
            </output>
            <output> <name>OUT_10</name>
                      <point>-2.5,-3.5</point> 
            </output>
            <output> <name>OUT_11</name>
                      <point>-3.5,-3.5</point> 
            </output>
            <output> <name>OUT_12</name>
                      <point>-4.5,-3.5</point> 
            </output>
            <output> <name>OUT_13</name>
                      <point>-5.5,-3.5</point> 
            </output>
            <output> <name>OUT_14</name>
                      <point>-6.5,-3.5</point> 
            </output>
            <output> <name>OUT_15</name>
                      <point>-7.5,-3.5</point> 
            </output>
        <shape>
                <line>-10,2.5,10,2.5</line>
                <line>10,2.5,10,-2.5</line>
                <line>10,-2.5,-10,-2.5</line>
                <line>-10,-2.5,-10,2.5</line>
    #           SR IN
                <line>-7.5,2.5,-7.5,3.5</line>
                <line>-6.5,2.5,-6.5,3.5</line>
                <line>-5.5,2.5,-5.5,3.5</line>
                <line>-4.5,2.5,-4.5,3.5</line>
                <line>-3.5,2.5,-3.5,3.5</line>
                <line>-2.5,2.5,-2.5,3.5</line>
                <line>-1.5,2.5,-1.5,3.5</line>
                <line>-0.5,2.5,-0.5,3.5</line>
                <line>0.5,2.5,0.5,3.5</line>
                <line>1.5,2.5,1.5,3.5</line>
                <line>2.5,2.5,2.5,3.5</line>
                <line>3.5,2.5,3.5,3.5</line>
                <line>4.5,2.5,4.5,3.5</line>
                <line>5.5,2.5,5.5,3.5</line>
                <line>6.5,2.5,6.5,3.5</line>
                <line>7.5,2.5,7.5,3.5</line>
    #           SR OUT
                <line>-7.5,-2.5,-7.5,-3.5</line>
                <line>-6.5,-2.5,-6.5,-3.5</line>
                <line>-5.5,-2.5,-5.5,-3.5</line>
                <line>-4.5,-2.5,-4.5,-3.5</line>
                <line>-3.5,-2.5,-3.5,-3.5</line>
                <line>-2.5,-2.5,-2.5,-3.5</line>
                <line>-1.5,-2.5,-1.5,-3.5</line>
                <line>-0.5,-2.5,-0.5,-3.5</line>
                <line>0.5,-2.5,0.5,-3.5</line>
                <line>1.5,-2.5,1.5,-3.5</line>
                <line>2.5,-2.5,2.5,-3.5</line>
                <line>3.5,-2.5,3.5,-3.5</line>
                <line>4.5,-2.5,4.5,-3.5</line>
                <line>5.5,-2.5,5.5,-3.5</line>
                <line>6.5,-2.5,6.5,-3.5</line>
                <line>7.5,-2.5,7.5,-3.5</line>
    #           Carry In & Carry Out
                <line>10,1.5,11,1.5</line>
                <line>-10,1.5,-11,1.5</line>
    #           CLOCK
                <line>-10,-0.5,-9,-1</line>
                <line>-10,-1.5,-9,-1</line>
    #           Right Inputs
                <line>11,0,10,0</line>
                <line>11,-1,10,-1</line>
                <line>11,-2,10,-2</line>
    #           Left Inputs
                <line>-10,0,-11,0</line>
                <line>-10,-1,-11,-1</line>
    #           0
                <offset><point>7.3,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           5
                <offset><point>-6.7,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0.4,-0.4</line>
                <line>0,-0.4,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                </offset>
    #           1
                <offset><point>-7.7,2.2</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           0
                <offset><point>7.3,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           5
                <offset><point>-6.7,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0.4,-0.4</line>
                <line>0,-0.4,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                </offset>
    #           1
                <offset><point>-7.7,-1.4</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           R
                <offset><point>-9.7,0.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0,-0.4</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0,-0.8</line>
                <line>0,-0.4,0.4,-0.8</line>
                </offset>
    #           S
                <offset><point>9.3,0.4</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           L
                <offset><point>9.3,-0.6</point>
                <line>0,0,0,-0.8</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
    #           Arrow
                <offset><point>9.3,-2</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0.2,-0.2</line>
                <line>0,0,0.2,0.2</line>
                </offset>
    #           S
                <offset><point>-9.7,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           0
                <offset><point>-9.2,1.9</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           S
                <offset><point>9.8,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           I
                <offset><point>9.3,1.9</point>
                <line>0.2,0,0.2,-0.8</line>
                <line>0,0,0.4,0</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
            </shape>
        </gate>
    
     
  • Snow_Cat
    Snow_Cat
    2010-08-15

    oops. characters are 0.5 not 1.0 wide.

    #NOTE: Need to make the 8-bit shift register shape.
        <gate> <name>BE_SHIFT_REGISTER_8</name>
            <caption>8-Bit Shift Register</caption>
            <logic_type>REGISTER</logic_type>
            <logic_param>INPUT_BITS 8</logic_param>
            <logic_param>MAX_COUNT 255</logic_param>
            <logic_param>SYNC_CLEAR true</logic_param>
            <logic_param>SYNC_LOAD true</logic_param>
            <gui_type>REGISTER</gui_type>
            <gui_param>VALUE_BOX -1.6,-1.3,1.6,1.3</gui_param>
            <param_dlg_data>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Reset Pin</label>
                    <varname>LOGIC SYNC_CLEAR</varname>
                </param>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Load Pin</label>
                    <varname>LOGIC SYNC_LOAD</varname>
                </param>
            </param_dlg_data>
    #       R
            <input> <name>clear</name>
                      <point>-7,0</point> 
            </input>
    #       S
            <input> <name>shift_enable</name>
                      <point>7,0</point> 
            </input>
    #       L
            <input> <name>load</name>
                      <point>7,-1</point> 
            </input>
    #       Arrow
            <input> <name>shift_left</name>
                      <point>7,-2</point> 
            </input>
    #       CLOCK
            <input> <name>clock</name>
                      <point>-7,-1</point> 
            </input>
    #       SI
            <input> <name>carry_in</name>
                      <point>7,1.5</point> 
            </input>
    #       SO
            <output> <name>carry_out</name>
                      <point>-7,1.5</point> 
            </output>
    #       BUS IN
            <input> <name>IN_0</name>
                      <point>3.5,3.5</point> 
            </input>
            <input> <name>IN_1</name>
                      <point>2.5,3.5</point> 
            </input>
            <input> <name>IN_2</name>
                      <point>1.5,3.5</point> 
            </input>
            <input> <name>IN_3</name>
                      <point>0.5,3.5</point> 
            </input>
            <input> <name>IN_4</name>
                      <point>-0.5,3.5</point> 
            </input>
            <input> <name>IN_5</name>
                      <point>-1.5,3.5</point> 
            </input>
            <input> <name>IN_6</name>
                      <point>-2.5,3.5</point> 
            </input>
            <input> <name>IN_7</name>
                      <point>-3.5,3.5</point> 
            </input>
    #       BUS OUT
            <output> <name>OUT_0</name>
                      <point>3.5,-3.5</point> 
            </output>
            <output> <name>OUT_1</name>
                      <point>2.5,-3.5</point> 
            </output>
            <output> <name>OUT_2</name>
                      <point>1.5,-3.5</point> 
            </output>
            <output> <name>OUT_3</name>
                      <point>0.5,-3.5</point> 
            </output>
            <output> <name>OUT_4</name>
                      <point>-0.5,-3.5</point> 
            </output>
            <output> <name>OUT_5</name>
                      <point>-1.5,-3.5</point> 
            </output>
            <output> <name>OUT_6</name>
                      <point>-2.5,-3.5</point> 
            </output>
            <output> <name>OUT_7</name>
                      <point>-3.5,-3.5</point> 
            </output>
            <shape>
                <line>-6,2.5,6,2.5</line>
                <line>6,2.5,6,-2.5</line>
                <line>6,-2.5,-6,-2.5</line>
                <line>-6,-2.5,-6,2.5</line>
    #           SR IN
                <line>-3.5,2.5,-3.5,3.5</line>
                <line>-2.5,2.5,-2.5,3.5</line>
                <line>-1.5,2.5,-1.5,3.5</line>
                <line>-0.5,2.5,-0.5,3.5</line>
                <line>0.5,2.5,0.5,3.5</line>
                <line>1.5,2.5,1.5,3.5</line>
                <line>2.5,2.5,2.5,3.5</line>
                <line>3.5,2.5,3.5,3.5</line>
    #           SR OUT
                <line>-3.5,-2.5,-3.5,-3.5</line>
                <line>-2.5,-2.5,-2.5,-3.5</line>
                <line>-1.5,-2.5,-1.5,-3.5</line>
                <line>-0.5,-2.5,-0.5,-3.5</line>
                <line>0.5,-2.5,0.5,-3.5</line>
                <line>1.5,-2.5,1.5,-3.5</line>
                <line>2.5,-2.5,2.5,-3.5</line>
                <line>3.5,-2.5,3.5,-3.5</line>
    #           Carry In & Carry Out
                <line>6,1.5,7,1.5</line>
                <line>-6,1.5,-7,1.5</line>
    #           CLOCK
                <line>-6,-0.5,-5,-1</line>
                <line>-6,-1.5,-5,-1</line>
    #           Right Inputs
                <line>7,0,6,0</line>
                <line>7,-1,6,-1</line>
                <line>7,-2,6,-2</line>
    #           Left Inputs
                <line>-6,0,-7,0</line>
                <line>-6,-1,-7,-1</line>
    #           0
                <offset><point>3.3,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           7
                <offset><point>-3.7,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                </offset>
    #           0
                <offset><point>3.3,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           7
                <offset><point>-3.7,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                </offset>
    #           R
                <offset><point>-5.7,0.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0,-0.4</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0,-0.8</line>
                <line>0,-0.4,0.4,-0.8</line>
                </offset>
    #           S
                <offset><point>5.3,0.4</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           L
                <offset><point>5.3,-0.6</point>
                <line>0,0,0,-0.8</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
    #           Arrow
                <offset><point>5.3,-2</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0.2,-0.2</line>
                <line>0,0,0.2,0.2</line>
                </offset>
    #           S
                <offset><point>-5.7,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           0
                <offset><point>-5.2,1.9</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           S
                <offset><point>4.8,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           I
                <offset><point>5.3,1.9</point>
                <line>0.2,0,0.2,-0.8</line>
                <line>0,0,0.4,0</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
            </shape>
        </gate>
    #NOTE: Need to make the 12-bit shift register shape.
        <gate> <name>BI_SHIFT_REGISTER_12</name>
            <caption>12-Bit Shift Register</caption>
            <logic_type>REGISTER</logic_type>
            <logic_param>INPUT_BITS 12</logic_param>
            <logic_param>MAX_COUNT 4095</logic_param>
            <logic_param>SYNC_CLEAR true</logic_param>
            <logic_param>SYNC_LOAD true</logic_param>
            <gui_type>REGISTER</gui_type>
            <gui_param>VALUE_BOX -2.4,-1.3,2.4,1.3</gui_param>
            <param_dlg_data>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Reset Pin</label>
                    <varname>LOGIC SYNC_CLEAR</varname>
                </param>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Load Pin</label>
                    <varname>LOGIC SYNC_LOAD</varname>
                </param>
            </param_dlg_data>
    #       R
            <input> <name>clear</name>
                      <point>-9,0</point> 
            </input>
    #       S
            <input> <name>shift_enable</name>
                      <point>9,0</point> 
            </input>
    #       L
            <input> <name>load</name>
                      <point>9,-1</point> 
            </input>
    #       Arrow
            <input> <name>shift_left</name>
                      <point>9,-2</point> 
            </input>
    #       CLOCK
            <input> <name>clock</name>
                      <point>-9,-1</point> 
            </input>
    #       SI
            <input> <name>carry_in</name>
                      <point>9,1.5</point> 
            </input>
    #       SO
            <output> <name>carry_out</name>
                      <point>-9,1.5</point> 
            </output>
    #       BUS IN
            <input> <name>IN_0</name>
                      <point>5.5,3.5</point> 
            </input>
            <input> <name>IN_1</name>
                      <point>4.5,3.5</point> 
            </input>
            <input> <name>IN_2</name>
                      <point>3.5,3.5</point> 
            </input>
            <input> <name>IN_3</name>
                      <point>2.5,3.5</point> 
            </input>
            <input> <name>IN_4</name>
                      <point>1.5,3.5</point> 
            </input>
            <input> <name>IN_5</name>
                      <point>0.5,3.5</point> 
            </input>
            <input> <name>IN_6</name>
                      <point>-0.5,3.5</point> 
            </input>
            <input> <name>IN_7</name>
                      <point>-1.5,3.5</point> 
            </input>
            <input> <name>IN_8</name>
                      <point>-2.5,3.5</point> 
            </input>
            <input> <name>IN_9</name>
                      <point>-3.5,3.5</point> 
            </input>
            <input> <name>IN_10</name>
                      <point>-4.5,3.5</point> 
            </input>
            <input> <name>IN_11</name>
                      <point>-5.5,3.5</point> 
            </input>
    #       BUS OUT
            <output> <name>OUT_0</name>
                      <point>5.5,-3.5</point> 
            </output>
            <output> <name>OUT_1</name>
                      <point>4.5,-3.5</point> 
            </output>
            <output> <name>OUT_2</name>
                      <point>3.5,-3.5</point> 
            </output>
            <output> <name>OUT_3</name>
                      <point>2.5,-3.5</point> 
            </output>
            <output> <name>OUT_4</name>
                      <point>1.5,-3.5</point> 
            </output>
            <output> <name>OUT_5</name>
                      <point>0.5,-3.5</point> 
            </output>
            <output> <name>OUT_6</name>
                      <point>-0.5,-3.5</point> 
            </output>
            <output> <name>OUT_7</name>
                      <point>-1.5,-3.5</point> 
            </output>
            <output> <name>OUT_8</name>
                      <point>-2.5,-3.5</point> 
            </output>
            <output> <name>OUT_9</name>
                      <point>-3.5,-3.5</point> 
            </output>
            <output> <name>OUT_10</name>
                      <point>-4.5,-3.5</point> 
            </output>
            <output> <name>OUT_11</name>
                      <point>-5.5,-3.5</point> 
            </output>
            <shape>
                <line>-8,2.5,8,2.5</line>
                <line>8,2.5,8,-2.5</line>
                <line>8,-2.5,-8,-2.5</line>
                <line>-8,-2.5,-8,2.5</line>
    #           SR IN
                <line>-5.5,2.5,-5.5,3.5</line>
                <line>-4.5,2.5,-4.5,3.5</line>
                <line>-3.5,2.5,-3.5,3.5</line>
                <line>-2.5,2.5,-2.5,3.5</line>
                <line>-1.5,2.5,-1.5,3.5</line>
                <line>-0.5,2.5,-0.5,3.5</line>
                <line>0.5,2.5,0.5,3.5</line>
                <line>1.5,2.5,1.5,3.5</line>
                <line>2.5,2.5,2.5,3.5</line>
                <line>3.5,2.5,3.5,3.5</line>
                <line>4.5,2.5,4.5,3.5</line>
                <line>5.5,2.5,5.5,3.5</line>
    #           SR OUT
                <line>-5.5,-2.5,-5.5,-3.5</line>
                <line>-4.5,-2.5,-4.5,-3.5</line>
                <line>-3.5,-2.5,-3.5,-3.5</line>
                <line>-2.5,-2.5,-2.5,-3.5</line>
                <line>-1.5,-2.5,-1.5,-3.5</line>
                <line>-0.5,-2.5,-0.5,-3.5</line>
                <line>0.5,-2.5,0.5,-3.5</line>
                <line>1.5,-2.5,1.5,-3.5</line>
                <line>2.5,-2.5,2.5,-3.5</line>
                <line>3.5,-2.5,3.5,-3.5</line>
                <line>4.5,-2.5,4.5,-3.5</line>
                <line>5.5,-2.5,5.5,-3.5</line>
    #           Carry In & Carry Out
                <line>8,1.5,9,1.5</line>
                <line>-8,1.5,-9,1.5</line>
    #           CLOCK
                <line>-8,-0.5,-7,-1</line>
                <line>-8,-1.5,-7,-1</line>
    #           Right Inputs
                <line>9,0,8,0</line>
                <line>9,-1,8,-1</line>
                <line>9,-2,8,-2</line>
    #           Left Inputs
                <line>-8,0,-9,0</line>
                <line>-8,-1,-9,-1</line>
    #           0
                <offset><point>5.3,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           1
                <offset><point>-5.2,2.2</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           1
                <offset><point>-5.7,2.2</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           0
                <offset><point>5.3,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           1
                <offset><point>-5.2,-1.4</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           1
                <offset><point>-5.7,-1.4</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           R
                <offset><point>-7.7,0.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0,-0.4</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0,-0.8</line>
                <line>0,-0.4,0.4,-0.8</line>
                </offset>
    #           S
                <offset><point>7.3,0.4</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           L
                <offset><point>7.3,-0.6</point>
                <line>0,0,0,-0.8</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
    #           Arrow
                <offset><point>7.3,-2</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0.2,-0.2</line>
                <line>0,0,0.2,0.2</line>
                </offset>
    #           S
                <offset><point>-7.7,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           0
                <offset><point>-7.2,1.9</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           S
                <offset><point>6.8,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           I
                <offset><point>7.3,1.9</point>
                <line>0.2,0,0.2,-0.8</line>
                <line>0,0,0.4,0</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
            </shape>
     </gate>
    #NOTE: Need to make the 16-bit shift register shape.
        <gate> <name>BM_SHIFT_REGISTER_16</name>
            <caption>16-Bit Shift Register</caption>
            <logic_type>REGISTER</logic_type>
            <logic_param>INPUT_BITS 16</logic_param>
            <logic_param>MAX_COUNT 65536</logic_param>
            <logic_param>SYNC_CLEAR true</logic_param>
            <logic_param>SYNC_LOAD true</logic_param>
            <gui_type>REGISTER</gui_type>
            <gui_param>VALUE_BOX -3.2,-1.3,3.2,1.3</gui_param>
            <param_dlg_data>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Reset Pin</label>
                    <varname>LOGIC SYNC_CLEAR</varname>
                </param>
                <param>
                    <type>BOOL</type>
                    <label>Synchronous Load Pin</label>
                    <varname>LOGIC SYNC_LOAD</varname>
                </param>
            </param_dlg_data>
    #       R
            <input> <name>clear</name>
                      <point>-11,0</point> 
            </input>
    #       S
            <input> <name>shift_enable</name>
                      <point>11,0</point> 
            </input>
    #       L
            <input> <name>load</name>
                      <point>11,-1</point> 
            </input>
    #       Arrow
            <input> <name>shift_left</name>
                      <point>11,-2</point> 
            </input>
    #       CLOCK
            <input> <name>clock</name>
                      <point>-11,-1</point> 
            </input>
    #       SI
            <input> <name>carry_in</name>
                      <point>11,1.5</point> 
            </input>
    #       SO
            <output> <name>carry_out</name>
                      <point>-11,1.5</point> 
            </output>
    #       BUS IN
            <input> <name>IN_0</name>
                      <point>7.5,3.5</point> 
            </input>
            <input> <name>IN_1</name>
                      <point>6.5,3.5</point> 
            </input>
            <input> <name>IN_2</name>
                      <point>5.5,3.5</point> 
            </input>
            <input> <name>IN_3</name>
                      <point>4.5,3.5</point> 
            </input>
            <input> <name>IN_4</name>
                      <point>3.5,3.5</point> 
            </input>
            <input> <name>IN_5</name>
                      <point>2.5,3.5</point> 
            </input>
            <input> <name>IN_6</name>
                      <point>1.5,3.5</point> 
            </input>
            <input> <name>IN_7</name>
                      <point>0.5,3.5</point> 
            </input>
            <input> <name>IN_8</name>
                      <point>-0.5,3.5</point> 
            </input>
            <input> <name>IN_9</name>
                      <point>-1.5,3.5</point> 
            </input>
            <input> <name>IN_10</name>
                      <point>-2.5,3.5</point> 
            </input>
            <input> <name>IN_11</name>
                      <point>-3.5,3.5</point> 
            </input>
            <input> <name>IN_12</name>
                      <point>-4.5,3.5</point> 
            </input>
            <input> <name>IN_13</name>
                      <point>-5.5,3.5</point> 
            </input>
            <input> <name>IN_14</name>
                      <point>-6.5,3.5</point> 
            </input>
            <input> <name>IN_15</name>
                      <point>-7.5,3.5</point> 
            </input>
    #       BUS OUT
            <output> <name>OUT_0</name>
                      <point>7.5,-3.5</point> 
            </output>
            <output> <name>OUT_1</name>
                      <point>6.5,-3.5</point> 
            </output>
            <output> <name>OUT_2</name>
                      <point>5.5,-3.5</point> 
            </output>
            <output> <name>OUT_3</name>
                      <point>4.5,-3.5</point> 
            </output>
            <output> <name>OUT_4</name>
                      <point>3.5,-3.5</point> 
            </output>
            <output> <name>OUT_5</name>
                      <point>2.5,-3.5</point> 
            </output>
            <output> <name>OUT_6</name>
                      <point>1.5,-3.5</point> 
            </output>
            <output> <name>OUT_7</name>
                      <point>0.5,-3.5</point> 
            </output>
            <output> <name>OUT_8</name>
                      <point>-0.5,-3.5</point> 
            </output>
            <output> <name>OUT_9</name>
                      <point>-1.5,-3.5</point> 
            </output>
            <output> <name>OUT_10</name>
                      <point>-2.5,-3.5</point> 
            </output>
            <output> <name>OUT_11</name>
                      <point>-3.5,-3.5</point> 
            </output>
            <output> <name>OUT_12</name>
                      <point>-4.5,-3.5</point> 
            </output>
            <output> <name>OUT_13</name>
                      <point>-5.5,-3.5</point> 
            </output>
            <output> <name>OUT_14</name>
                      <point>-6.5,-3.5</point> 
            </output>
            <output> <name>OUT_15</name>
                      <point>-7.5,-3.5</point> 
            </output>
        <shape>
                <line>-10,2.5,10,2.5</line>
                <line>10,2.5,10,-2.5</line>
                <line>10,-2.5,-10,-2.5</line>
                <line>-10,-2.5,-10,2.5</line>
    #           SR IN
                <line>-7.5,2.5,-7.5,3.5</line>
                <line>-6.5,2.5,-6.5,3.5</line>
                <line>-5.5,2.5,-5.5,3.5</line>
                <line>-4.5,2.5,-4.5,3.5</line>
                <line>-3.5,2.5,-3.5,3.5</line>
                <line>-2.5,2.5,-2.5,3.5</line>
                <line>-1.5,2.5,-1.5,3.5</line>
                <line>-0.5,2.5,-0.5,3.5</line>
                <line>0.5,2.5,0.5,3.5</line>
                <line>1.5,2.5,1.5,3.5</line>
                <line>2.5,2.5,2.5,3.5</line>
                <line>3.5,2.5,3.5,3.5</line>
                <line>4.5,2.5,4.5,3.5</line>
                <line>5.5,2.5,5.5,3.5</line>
                <line>6.5,2.5,6.5,3.5</line>
                <line>7.5,2.5,7.5,3.5</line>
    #           SR OUT
                <line>-7.5,-2.5,-7.5,-3.5</line>
                <line>-6.5,-2.5,-6.5,-3.5</line>
                <line>-5.5,-2.5,-5.5,-3.5</line>
                <line>-4.5,-2.5,-4.5,-3.5</line>
                <line>-3.5,-2.5,-3.5,-3.5</line>
                <line>-2.5,-2.5,-2.5,-3.5</line>
                <line>-1.5,-2.5,-1.5,-3.5</line>
                <line>-0.5,-2.5,-0.5,-3.5</line>
                <line>0.5,-2.5,0.5,-3.5</line>
                <line>1.5,-2.5,1.5,-3.5</line>
                <line>2.5,-2.5,2.5,-3.5</line>
                <line>3.5,-2.5,3.5,-3.5</line>
                <line>4.5,-2.5,4.5,-3.5</line>
                <line>5.5,-2.5,5.5,-3.5</line>
                <line>6.5,-2.5,6.5,-3.5</line>
                <line>7.5,-2.5,7.5,-3.5</line>
    #           Carry In & Carry Out
                <line>10,1.5,11,1.5</line>
                <line>-10,1.5,-11,1.5</line>
    #           CLOCK
                <line>-10,-0.5,-9,-1</line>
                <line>-10,-1.5,-9,-1</line>
    #           Right Inputs
                <line>11,0,10,0</line>
                <line>11,-1,10,-1</line>
                <line>11,-2,10,-2</line>
    #           Left Inputs
                <line>-10,0,-11,0</line>
                <line>-10,-1,-11,-1</line>
    #           0
                <offset><point>7.3,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           5
                <offset><point>-7.2,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0.4,-0.4</line>
                <line>0,-0.4,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                </offset>
    #           1
                <offset><point>-7.7,2.2</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           0
                <offset><point>7.3,2.2</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           5
                <offset><point>-7.2,-1.4</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0.4,-0.4</line>
                <line>0,-0.4,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                </offset>
    #           1
                <offset><point>-7.7,-1.4</point>
                <line>0,0,0,-0.8</line>
                </offset>
    #           R
                <offset><point>-9.7,0.4</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0,-0.4</line>
                <line>0,0,0,-0.4</line>
                <line>0,-0.4,0,-0.8</line>
                <line>0,-0.4,0.4,-0.8</line>
                </offset>
    #           S
                <offset><point>9.3,0.4</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           L
                <offset><point>9.3,-0.6</point>
                <line>0,0,0,-0.8</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
    #           Arrow
                <offset><point>9.3,-2</point>
                <line>0,0,0.4,0</line>
                <line>0,0,0.2,-0.2</line>
                <line>0,0,0.2,0.2</line>
                </offset>
    #           S
                <offset><point>-9.7,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           0
                <offset><point>-9.2,1.9</point>
                <line>0,0,0.4,0</line>
                <line>0.4,0,0.4,-0.4</line>
                <line>0.4,-0.4,0.4,-0.8</line>
                <line>0.4,-0.8,0,-0.8</line>
                <line>0,-0.8,0,-0.4</line>
                <line>0,-0.4,0,0</line>
                </offset>
    #           S
                <offset><point>8.8,1.9</point>
                <line>0.4,0,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0.1,0</line>
                <line>0,-0.1,0,-0.2</line>
                <line>0,-0.2,0.4,-0.6</line>
                <line>0.4,-0.7,0.4,-0.6</line>
                <line>0.4,-0.7,0.3,-0.8</line>
                <line>0.3,-0.8,0,-0.8</line>
                </offset>
    #           I
                <offset><point>9.3,1.9</point>
                <line>0.2,0,0.2,-0.8</line>
                <line>0,0,0.4,0</line>
                <line>0,-0.8,0.4,-0.8</line>
                </offset>
            </shape>
        </gate>