util

Modules

Ternary #(T)

module Ternary #(T) {
    interface Ternary : bool cond'0, T a'0, T b'0 -> T o'0
}
Ternary default clock clk cond a b o

Equivalent to the C/Verilog cond ? a : b ternary operator. When cond is true it returns a, otherwise it returns b.

Tuple2 #(T1, T2)

module Tuple2 #(T1, T2) {
  clock clk
   domain clk
   domain pack_dom
    interface pack : T1 v1_i'0, T2 v2_i'0 -> bool[TO2] packed_o'0
   domain unpack_dom
    interface unpack : bool[TO2] packed_i'0 -> T1 v1_o'0, T2 v2_o'0
}
Tuple2 clk clock clk pack_dom unpack_dom v1_i v2_i packed_o packed_i v1_o v2_o

Temporary module for creating and deconstructing tuples, until we have structs

Tuple3 #(T1, T2, T3)

module Tuple3 #(T1, T2, T3) {
  clock clk
   domain clk
   domain pack_dom
    interface pack : T1 v1_i'0, T2 v2_i'0, T3 v3_i'0 -> bool[TO3] packed_o'0
   domain unpack_dom
    interface unpack : bool[TO3] packed_i'0 -> T1 v1_o'0, T2 v2_o'0, T3 v3_o'0
}
Tuple3 clk clock clk pack_dom unpack_dom v1_i v2_i v3_i packed_o packed_i v1_o v2_o v3_o

Temporary module for creating and deconstructing tuples, until we have structs

Tuple4 #(T1, T2, T3, T4)

module Tuple4 #(T1, T2, T3, T4) {
  clock clk
   domain clk
   domain pack_dom
    interface pack : T1 v1_i'0, T2 v2_i'0, T3 v3_i'0, T4 v4_i'0 -> bool[TO4] packed_o'0
   domain unpack_dom
    interface unpack : bool[TO4] packed_i'0 -> T1 v1_o'0, T2 v2_o'0, T3 v3_o'0, T4 v4_o'0
}
Tuple4 clk clock clk pack_dom unpack_dom v1_i v2_i v3_i v4_i packed_o packed_i v1_o v2_o v3_o v4_o

Temporary module for creating and deconstructing tuples, until we have structs

Tuple5 #(T1, T2, T3, T4, T5)

module Tuple5 #(T1, T2, T3, T4, T5) {
  clock clk
   domain clk
   domain pack_dom
    interface pack : T1 v1_i'0, T2 v2_i'0, T3 v3_i'0, T4 v4_i'0, T5 v5_i'0 -> bool[TO5] packed_o'0
   domain unpack_dom
    interface unpack : bool[TO5] packed_i'0 -> T1 v1_o'0, T2 v2_o'0, T3 v3_o'0, T4 v4_o'0, T5 v5_o'0
}
Tuple5 clk clock clk pack_dom unpack_dom v1_i v2_i v3_i v4_i v5_i packed_o packed_i v1_o v2_o v3_o v4_o v5_o

Temporary module for creating and deconstructing tuples, until we have structs