[][src]Crate xbar

Rust implementation of the algorithm described in the conference paper "A locality preserving one-sided binary tree - crossbar switch wiring design algorithm" published in [2015 49th Annual Conference on Information Sciences and Systems (CISS)] (https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=7075844).

"One-sided crossbar switches allow for a simple implementation of complete K_n graphs. However, designing these circuits is a cumbersome process and can be automated. We present an algorithm that allows designing automatic one-sided binary tree - crossbar switches which do not exceed floor(n/2) columns, and achieves K_n graph without connecting any wires between any three adjacent blocks, thus preserving locality in connections."

Example usage:

use xbar::Crossbar as X;
pub fn main() {
    let n = 5;
    println!("Crossbar for {} terminals has {} rows, \
        formed into {} blocks; and {} columns",
        n, X::rows(n), X::blocks(n), X::columns(n));
    println!("Connections of the crossbar:");
    for con in X::new(n) {
        println!("{:#?}", con);
    }
}

produces the output:

Crossbar for 5 terminals has 20 rows, formed into 4 blocks; and 2 columns
Connections of the crossbar:
Connection {
    start: Position {
        block_idx: 0,
        row_idx: 0,
        abs_idx: 0
    },
    end: Position {
        block_idx: 0,
        row_idx: 1,
        abs_idx: 1
    },
    col_idx: 0
}
...

Reference

Sahin, Devrim. "A locality preserving one-sided binary tree - crossbar switch wiring design algorithm." Information Sciences and Systems (CISS), 2015 49th Annual Conference on. IEEE, 2015.

Bibtex

@inproceedings{dsahin2015crossbar,
  title={A locality preserving one-sided binary tree - crossbar switch wiring design algorithm},
  author={{\c{S}}ahin, Devrim},
  booktitle={Information Sciences and Systems (CISS), 2015 49th Annual Conference on},
  pages={1--4},
  year={2015},
  organization={IEEE}
}

Structs

Connection

A Connection is a (vertical) link between two rows (terminals).

Crossbar

Core struct of the crate.

Position

A Position depicts the location of a row.