alkaid.codegen.rtl.verilog package
Submodules
alkaid.codegen.rtl.verilog.comb module
- alkaid.codegen.rtl.verilog.comb.comb_logic_gen(sol: CombLogic, fn_name: str, print_latency: bool = False, timescale: str | None = None)
alkaid.codegen.rtl.verilog.fsm module
- alkaid.codegen.rtl.verilog.fsm.fsm_logic_gen(fsm: FSM, name: str, print_latency=False, timescale: str | None = '`timescale 1 ns / 1 ps', comb_logic_gen_fn=None, no_shreg: bool = False)
- alkaid.codegen.rtl.verilog.fsm.gen_assignments(map_out: list[BitMap], name_inp: str, name_out: str, clocked: bool, inp_offset: str | None = None, out_offset: str | None = None)
- alkaid.codegen.rtl.verilog.fsm.gen_io_map_sugar(precs: Sequence[Precision], direction: str, merge: bool)
- alkaid.codegen.rtl.verilog.fsm.gen_mux_assignments_conn(conn: Conn, enable_sig_name: str, dst_off: str | None) list[str]
alkaid.codegen.rtl.verilog.io_map module
alkaid.codegen.rtl.verilog.lookup module
alkaid.codegen.rtl.verilog.ternary module
- class alkaid.codegen.rtl.verilog.ternary.TernaryLayout(terms: tuple[alkaid.codegen.rtl.verilog.ternary.TernaryTerm, alkaid.codegen.rtl.verilog.ternary.TernaryTerm, alkaid.codegen.rtl.verilog.ternary.TernaryTerm], out_width: int, drop_lsbs: int)
Bases:
object- drop_lsbs: int
- out_width: int
- terms: tuple[TernaryTerm, TernaryTerm, TernaryTerm]
- class alkaid.codegen.rtl.verilog.ternary.TernaryTerm(addr: int, width: int, signed: int, negate: int, pad: int)
Bases:
object- addr: int
- negate: int
- pad: int
- signed: int
- width: int
- alkaid.codegen.rtl.verilog.ternary.ternary_layout(sol: CombLogic, op_idx: int, kifs: Sequence[Precision], widths: Sequence[int]) TernaryLayout