Expand description
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 exceedfloor(n/2)
columns, and achievesK_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.