EILR5STVE3MCOXN5MKVD76O4T5KRKG2DKB5TFZVE2RT3R6XZ64CQC use std::{path::PathBuf, process::Command};fn main() {let design = std::env::args().nth(1).expect("you should pass one arg");let out = PathBuf::from("testing").join("designs");if !out.exists() {std::fs::create_dir(&out).expect(format!("cannot create {} dir", out.display()).as_str());}let out = std::fs::canonicalize(out).expect("canonicalize failed");Command::new("/home/adiallo/.local/share/coursier/bin/mill").current_dir("rtl").arg("ucb_tuto").args(["--target",out.display().to_string().as_str(),design.as_str(),]).status().expect("failed to compile the rtl");}
[package]name = "xtask"version = "0.1.0"edition = "2021"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]
use chisel_tuto::get_handle;use cxxrtl::{CxxrtlHandle, CxxrtlSignal};use std::env;struct Blink {pub handle: CxxrtlHandle,pub clk: CxxrtlSignal<1>,pub led: CxxrtlSignal<1>,pub counter: CxxrtlSignal<12>,}impl Blink {fn new() -> Self {let lib = concat!(env!("OUT_DIR"), "/Example.so");let handle = get_handle(lib);let clk = handle.get("clock").unwrap().signal();let led = handle.get("io_led").unwrap().signal();let counter = handle.get("counter").unwrap().signal();Self {handle,clk,led,counter,}}fn step(&mut self) {self.handle.step()}}#[test]fn test_example() {let mut blink = Blink::new();blink.step();for cycle in 0..1000 {blink.clk.set(false);blink.step();let counter: u16 = blink.counter.get();assert_eq!(counter, cycle);blink.clk.set(true);blink.step();let counter: u16 = blink.counter.get();assert_eq!(counter, cycle + 1);let curr_led: bool = blink.led.get();assert_eq!(curr_led, (cycle / 128) % 2 == 1);}}
use std::{env, fs::File};use chisel_tuto::get_handle;use cxxrtl::{CxxrtlHandle, CxxrtlSignal, Vcd};struct Blink {pub handle: CxxrtlHandle,pub clk: CxxrtlSignal<1>,pub led: CxxrtlSignal<1>,pub counter: CxxrtlSignal<12>,}impl Blink {fn new() -> Self {let lib = concat!(env!("OUT_DIR"), "/example.so");let handle = get_handle(lib);let clk = handle.get("clk").unwrap().signal();let led = handle.get("led").unwrap().signal();let counter = handle.get("counter").unwrap().signal();Self {handle,clk,led,counter,}}fn step(&mut self) {self.handle.step()}}fn main() {let mut blink = Blink::new();let mut vcd = Vcd::new();vcd.timescale(cxxrtl::TimescaleNumber::One, cxxrtl::TimescaleUnit::Us);// vcd.add_without_memories(&blink.handle);vcd.add(&blink.handle);// vcd.add_if(&blink.handle, |name, obj| {// dbg!(&name);// dbg!(&obj);// obj.r#type == CxxrtlType::Wire// });blink.step();let mut prev_led = false;let mut vcd_file = File::create("wave.vcd").unwrap();vcd.sample(0);for cycle in 0..1000 {blink.clk.set(false);blink.step();vcd.sample(cycle * 2);blink.clk.set(true);blink.step();vcd.sample(cycle * 2 + 1);let _counter: u16 = blink.counter.get();// println!("counter {counter}");let curr_led = blink.led.get();if prev_led != curr_led {println!("cycle {cycle}, led {curr_led}");prev_led = curr_led;// blink.counter.set(100u16);}vcd.write(&mut vcd_file).unwrap();}}
use cxxrtl::{CxxrtlHandle, _cxxrtl_toplevel};pub fn get_handle(lib: &str) -> CxxrtlHandle {unsafe {let lib = libloading::Library::new(&lib).unwrap();let func: libloading::Symbol<unsafe extern "C" fn() -> *mut _cxxrtl_toplevel> =lib.get(b"cxxrtl_design_create").unwrap();let top = func();std::mem::forget(lib);CxxrtlHandle::new(top)}}
use std::env;use std::path::{Path, PathBuf};use std::process::Command;struct Builder {include: String,capi: PathBuf,}impl Builder {fn new() -> Self {let output = Command::new("yosys-config").args(&["--datdir/include"]).output().expect("failed to get yosys include dir");let stdout = String::from_utf8_lossy(&output.stdout);let include = stdout.trim().to_string();let capi = Path::new(&include).join("backends/cxxrtl/cxxrtl_capi.cc");Self { include, capi }}fn build(&self, source: PathBuf, dest: PathBuf) {let cc_file = dest.with_extension("cc");// touch(format!("/tmp/out/{}", tmp.file_name().unwrap().to_string_lossy()).as_str());Command::new("yosys").args(&["-p", &format!("write_cxxrtl {}", cc_file.to_string_lossy())]).arg(&source).status().expect("cargo:waring=failed generate cxxrtl code");Command::new("clang++").args(&["-g", "-O3", "-fPIC", "-shared", "-std=c++14"]).arg(format!("-I{}", &self.include)).arg(&self.capi).arg(cc_file).arg("-o").arg(dest).status().expect("cargo:warning=failed generate cxxrtl code");}}fn main() {let builder = Builder::new();let out = PathBuf::from(env::var("OUT_DIR").unwrap());let designs = PathBuf::from("designs");println!("cargo:rerun-if-changed={}", designs.display());for file in std::fs::read_dir(designs).into_iter().map(|r| r.filter_map(|f| f.ok())).flatten(){if let Ok(metadata) = file.metadata() {if metadata.is_file() {let file = file.path();if file.extension().and_then(|ext| ext.to_str()) == Some("sv") {let file_name = file.file_stem().unwrap();let dest = out.join(file_name).with_extension("so");let modified = metadata.modified().unwrap();let dest_modified = dest.metadata().and_then(|m| m.modified());let duration = dest_modified.ok().and_then(|m| m.duration_since(modified).ok());if !dest.exists() || duration.is_none() {builder.build(file, dest);}}}}}}
[package]name = "chisel-tuto"version = "0.1.0"edition = "2021"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]cxxrtl = {path = "../../rust-cxxrtl/cxxrtl"}libloading = "0.8"
# This file is automatically @generated by Cargo.# It is not intended for manual editing.version = 3[[package]]name = "aho-corasick"version = "1.0.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"dependencies = ["memchr",][[package]]name = "ansi_term"version = "0.12.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"dependencies = ["winapi",][[package]]name = "atty"version = "0.2.14"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"dependencies = ["hermit-abi","libc","winapi",][[package]]name = "bindgen"version = "0.56.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "2da379dbebc0b76ef63ca68d8fc6e71c0f13e59432e0987e508c1820e6ab5239"dependencies = ["bitflags","cexpr","clang-sys","clap","env_logger","lazy_static","lazycell","log","peeking_take_while","proc-macro2","quote","regex","rustc-hash","shlex","which",][[package]]name = "bitflags"version = "1.3.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"[[package]]name = "cc"version = "1.0.79"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"[[package]]name = "cexpr"version = "0.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"dependencies = ["nom",][[package]]name = "cfg-if"version = "1.0.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"[[package]]name = "chisel-tuto"version = "0.1.0"dependencies = ["cxxrtl","libloading 0.8.0",][[package]]name = "clang-sys"version = "1.6.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"dependencies = ["glob","libc","libloading 0.7.4",][[package]]name = "clap"version = "2.34.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"dependencies = ["ansi_term","atty","bitflags","strsim","textwrap","unicode-width","vec_map",][[package]]name = "cxxrtl"version = "0.1.0"dependencies = ["cxxrtl-sys",][[package]]name = "cxxrtl-sys"version = "0.1.0"dependencies = ["bindgen","cc",][[package]]name = "env_logger"version = "0.8.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"dependencies = ["atty","humantime","log","regex","termcolor",][[package]]name = "glob"version = "0.3.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"[[package]]name = "hermit-abi"version = "0.1.19"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"dependencies = ["libc",][[package]]name = "humantime"version = "2.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"[[package]]name = "lazy_static"version = "1.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"[[package]]name = "lazycell"version = "1.3.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"[[package]]name = "libc"version = "0.2.147"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"[[package]]name = "libloading"version = "0.7.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"dependencies = ["cfg-if","winapi",][[package]]name = "libloading"version = "0.8.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb"dependencies = ["cfg-if","windows-sys",][[package]]name = "log"version = "0.4.19"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"[[package]]name = "memchr"version = "2.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"[[package]]name = "nom"version = "5.1.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b"dependencies = ["memchr","version_check",][[package]]name = "peeking_take_while"version = "0.1.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"[[package]]name = "proc-macro2"version = "1.0.66"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"dependencies = ["unicode-ident",][[package]]name = "quote"version = "1.0.31"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"dependencies = ["proc-macro2",][[package]]name = "regex"version = "1.9.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"dependencies = ["aho-corasick","memchr","regex-automata","regex-syntax",][[package]]name = "regex-automata"version = "0.3.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"dependencies = ["aho-corasick","memchr","regex-syntax",][[package]]name = "regex-syntax"version = "0.7.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"[[package]]name = "rustc-hash"version = "1.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"[[package]]name = "shlex"version = "0.1.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"[[package]]name = "strsim"version = "0.8.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"[[package]]name = "termcolor"version = "1.2.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"dependencies = ["winapi-util",][[package]]name = "textwrap"version = "0.11.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"dependencies = ["unicode-width",][[package]]name = "unicode-ident"version = "1.0.11"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"[[package]]name = "unicode-width"version = "0.1.10"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"[[package]]name = "vec_map"version = "0.8.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"[[package]]name = "version_check"version = "0.9.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"[[package]]name = "which"version = "3.1.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"dependencies = ["libc",][[package]]name = "winapi"version = "0.3.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"dependencies = ["winapi-i686-pc-windows-gnu","winapi-x86_64-pc-windows-gnu",][[package]]name = "winapi-i686-pc-windows-gnu"version = "0.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"[[package]]name = "winapi-util"version = "0.1.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"dependencies = ["winapi",][[package]]name = "winapi-x86_64-pc-windows-gnu"version = "0.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"[[package]]name = "windows-sys"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"dependencies = ["windows-targets",][[package]]name = "windows-targets"version = "0.48.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"dependencies = ["windows_aarch64_gnullvm","windows_aarch64_msvc","windows_i686_gnu","windows_i686_msvc","windows_x86_64_gnu","windows_x86_64_gnullvm","windows_x86_64_msvc",][[package]]name = "windows_aarch64_gnullvm"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"[[package]]name = "windows_aarch64_msvc"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"[[package]]name = "windows_i686_gnu"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"[[package]]name = "windows_i686_msvc"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"[[package]]name = "windows_x86_64_gnu"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"[[package]]name = "windows_x86_64_gnullvm"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"[[package]]name = "windows_x86_64_msvc"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
import circt.stage.ChiselStageobject Main extends App {val usage = """Usage: main [--target dir] design"""if (args.isEmpty || (args.length != 1 && args.length != 3)) {println(usage)} else {val options = args.length match {case 1 => (args(0), Array(""));case 3 if args(0) == "--target" => (args(2), Array("--target-dir", args(1)))case unknow => {println("Unknow option ", args(0))sys.exit(-1);}}ChiselStage.emitSystemVerilogFile(options._1 match {case "example" => new Example();case unknow => {println("Unknown design ", unknow)sys.exit(-1);}},args = options._2,firtoolOpts = Array("-disable-all-randomization", "-strip-debug-info"))}}
import chisel3._import circt.stage.ChiselStageclass Example extends Module {val io = IO(new Bundle {val led = Output(Bool())})val counter = RegInit(0.U(12.W))counter := counter + 1.Uio.led := counter(7)}
// import Mill dependencyimport mill._import mill.define.Sourcesimport mill.modules.Utilimport scalalib._// support BSPimport mill.bsp._object ucb_tuto extends SbtModule { m =>// override def forkWorkingDir = os.pwd / os.up / "testing" / "designs"override def millSourcePath = os.pwdoverride def scalaVersion = "2.13.8"override def scalacOptions = Seq("-language:reflectiveCalls","-deprecation","-feature","-Xcheckinit")override def ivyDeps = Agg(ivy"org.chipsalliance::chisel:5.0.0",)override def scalacPluginIvyDeps = Agg(ivy"org.chipsalliance:::chisel-plugin:5.0.0",)}
[workspace]members = ["testing","xtask",]exclude = ["rtl"]
# This file is automatically @generated by Cargo.# It is not intended for manual editing.version = 3[[package]]name = "aho-corasick"version = "1.0.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"dependencies = ["memchr",][[package]]name = "ansi_term"version = "0.12.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"dependencies = ["winapi",][[package]]name = "atty"version = "0.2.14"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"dependencies = ["hermit-abi","libc","winapi",][[package]]name = "bindgen"version = "0.56.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "2da379dbebc0b76ef63ca68d8fc6e71c0f13e59432e0987e508c1820e6ab5239"dependencies = ["bitflags","cexpr","clang-sys","clap","env_logger","lazy_static","lazycell","log","peeking_take_while","proc-macro2","quote","regex","rustc-hash","shlex","which",][[package]]name = "bitflags"version = "1.3.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"[[package]]name = "cc"version = "1.0.79"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"[[package]]name = "cexpr"version = "0.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"dependencies = ["nom",][[package]]name = "cfg-if"version = "1.0.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"[[package]]name = "chisel-tuto"version = "0.1.0"dependencies = ["cxxrtl","libloading 0.8.0",][[package]]name = "clang-sys"version = "1.6.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"dependencies = ["glob","libc","libloading 0.7.4",][[package]]name = "clap"version = "2.34.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"dependencies = ["ansi_term","atty","bitflags","strsim","textwrap","unicode-width","vec_map",][[package]]name = "cxxrtl"version = "0.1.0"dependencies = ["cxxrtl-sys",][[package]]name = "cxxrtl-sys"version = "0.1.0"dependencies = ["bindgen","cc",][[package]]name = "env_logger"version = "0.8.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"dependencies = ["atty","humantime","log","regex","termcolor",][[package]]name = "glob"version = "0.3.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"[[package]]name = "hermit-abi"version = "0.1.19"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"dependencies = ["libc",][[package]]name = "humantime"version = "2.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"[[package]]name = "lazy_static"version = "1.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"[[package]]name = "lazycell"version = "1.3.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"[[package]]name = "libc"version = "0.2.147"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"[[package]]name = "libloading"version = "0.7.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"dependencies = ["cfg-if","winapi",][[package]]name = "libloading"version = "0.8.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb"dependencies = ["cfg-if","windows-sys",][[package]]name = "log"version = "0.4.19"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"[[package]]name = "memchr"version = "2.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"[[package]]name = "nom"version = "5.1.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b"dependencies = ["memchr","version_check",][[package]]name = "peeking_take_while"version = "0.1.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"[[package]]name = "proc-macro2"version = "1.0.66"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"dependencies = ["unicode-ident",][[package]]name = "quote"version = "1.0.31"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"dependencies = ["proc-macro2",][[package]]name = "regex"version = "1.9.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"dependencies = ["aho-corasick","memchr","regex-automata","regex-syntax",][[package]]name = "regex-automata"version = "0.3.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"dependencies = ["aho-corasick","memchr","regex-syntax",][[package]]name = "regex-syntax"version = "0.7.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"[[package]]name = "rustc-hash"version = "1.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"[[package]]name = "shlex"version = "0.1.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"[[package]]name = "strsim"version = "0.8.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"[[package]]name = "termcolor"version = "1.2.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"dependencies = ["winapi-util",][[package]]name = "textwrap"version = "0.11.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"dependencies = ["unicode-width",][[package]]name = "unicode-ident"version = "1.0.11"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"[[package]]name = "unicode-width"version = "0.1.10"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"[[package]]name = "vec_map"version = "0.8.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"[[package]]name = "version_check"version = "0.9.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"[[package]]name = "which"version = "3.1.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"dependencies = ["libc",][[package]]name = "winapi"version = "0.3.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"dependencies = ["winapi-i686-pc-windows-gnu","winapi-x86_64-pc-windows-gnu",][[package]]name = "winapi-i686-pc-windows-gnu"version = "0.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"[[package]]name = "winapi-util"version = "0.1.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"dependencies = ["winapi",][[package]]name = "winapi-x86_64-pc-windows-gnu"version = "0.4.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"[[package]]name = "windows-sys"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"dependencies = ["windows-targets",][[package]]name = "windows-targets"version = "0.48.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"dependencies = ["windows_aarch64_gnullvm","windows_aarch64_msvc","windows_i686_gnu","windows_i686_msvc","windows_x86_64_gnu","windows_x86_64_gnullvm","windows_x86_64_msvc",][[package]]name = "windows_aarch64_gnullvm"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"[[package]]name = "windows_aarch64_msvc"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"[[package]]name = "windows_i686_gnu"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"[[package]]name = "windows_i686_msvc"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"[[package]]name = "windows_x86_64_gnu"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"[[package]]name = "windows_x86_64_gnullvm"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"[[package]]name = "windows_x86_64_msvc"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"[[package]]name = "xtask"version = "0.1.0"
.git.DS_Store# Added by cargo/targetrtl/outrtl/.metalsrtl/.blooptesting/designs
[alias]xtask = "run --package xtask --"