use crate::frontend::types::TypeStruct; use crate::frontend::Callable; use crate::rtlil; use crate::rtlil::SigSpec; fn instantiate_unop(celltype: &str, id: &str, a: &SigSpec, ret: &SigSpec) -> rtlil::Cell { let mut cell = rtlil::Cell::new(id, celltype); cell.add_param("\\A_SIGNED", "0"); cell.add_param("\\A_WIDTH", "1"); cell.add_param("\\Y_WIDTH", "1"); cell.add_connection("\\A", a); cell.add_connection("\\Y", ret); cell } fn instantiate_binop( celltype: &str, id: &str, a: &SigSpec, b: &SigSpec, ret: &SigSpec, ) -> rtlil::Cell { let mut cell = rtlil::Cell::new(id, celltype); cell.add_param("\\A_SIGNED", "0"); cell.add_param("\\A_WIDTH", "1"); cell.add_param("\\B_SIGNED", "0"); cell.add_param("\\B_WIDTH", "1"); cell.add_param("\\Y_WIDTH", "1"); cell.add_connection("\\A", a); cell.add_connection("\\B", b); cell.add_connection("\\Y", ret); cell }