bsg_misc

Multiplier Releted Unint

bsg_mul_comp42

  • Overview

    This module is a adder for mul.

  • Parameter

    None

  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i 4 data input port
    cr_i 1 data input port
    OUTPUT cl_o 1 data output port
    c_o 1 data output port
    s_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mul_comp42.jpg

bsg_mul_comp42_rep

  • Overview

    This module combine vectors of results from blocks.

  • Parameter

    NAME DESCRIPTION DEFAULT
    blocks_p signal width 1
    harden_p use harden IP or not 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i 4*blocks_p data input port
    cr_i 1 data input port
    OUTPUT cl_o 1 data output port
    c_o blocks_p data output port
    s_o blocks_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mul_comp42_rep.jpg

bsg_mul_booth_4_block

  • Overview

    This module is a block of mul_booth_4.

  • Parameter

    NAME DESCRIPTION DEFAULT
    S_above_vec_p select signal 4’b0000
    dot_bar_vec_p select signal 4’b0000
    B_vec_p select signal 4’b0000
    one_vec_p select signal 4’b0000
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT SDN_i 15 data input port
    cr_i 1 data input port
    y_i 8 data input port
    OUTPUT cl_o 1 data output port
    c_o 1 data output port
    s_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mul_comp42_rep.jpg

bsg_mul_booth_4_block_rep

  • Overview

    This module combine vectors of results from blocks.

  • Parameter

    NAME DESCRIPTION DEFAULT
    blocks_p input and output data width 1
    S_above_vec_p select signal 0
    dot_bar_vec_p select signal 0
    B_vec_p select signal 0
    one_vec_p select signal 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT SDN_i 15 data input port
    cr_i 1 data input port
    y_vec_i 8*blocks_p data input port
    OUTPUT cl_o 1 data output port
    c_o blocks_p data output port
    s_o blocks_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mul_booth_4_block_rep.jpg

bsg_imul_iterative

  • Overview

    This is an 32bit integer iterative multiplier, capable of signed & unsigned multiplication.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width 32
  • Port

  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_imul_iterative.jpg

bsg_mul_array

  • Overview

    This module is a pipelined unsigned array multiplier.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
    pipeline_p selcet signal 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET rst_i 1 reset input port
    INPUT v_i 1 data input port
    a_i width_p data input port
    b_i width_p data input port
    OUTPUT o 2*width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mul_array.jpg

bsg_mul_array_row

  • Overview

    This module is a pipelined adder.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
    row_idx_p input and output data width “inv”
    pipeline_p selcet signal “inv”
  • Port

  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mul_array_row.jpg

bsg_mul_pipelined

  • Overview

    This is a library of multipliers.

bsg_mul_synth

  • Overview

    This is synthesized multiplier.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    OUTPUT o 2*width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mul_synth.jpg

bsg_mul

  • Overview

    This module is a pipeline multiplier.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT x_i width_p data input port
    y_i width_p data input port
    signed_i 1 data input port
    OUTPUT z_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mul.jpg

Logic Gate Releted Unit

bsg_abs

  • Overview

    This module calculates the absolute value of signed integers.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    OUTPUT a_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_abs.jpg

bsg_and

  • Overview

    This is a two-input AND gate.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_and.jpg

bsg_inv

  • Overview

    This is an inverter.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_inv.jpg

bsg_nand

  • Overview

    This is a two-input NAND gate.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_nand.jpg

bsg_nor2

  • Overview

    This is a two-input NOR gate.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_nor2.jpg

bsg_nor3

  • Overview

    This is a three-input NOR gate.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    c_i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_nor3.jpg

bsg_xnor

  • Overview

    This is a two-input XNOR gate.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_xnor.jpg

bsg_xor

  • Overview

    This is a two-input XOR gate.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_xor.jpg

Adder Releted Unit

bsg_adder_cin

  • Overview

    This module implements a simple adder with cin.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    cin_i 1 data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_adder_cin.jpg

bsg_adder_one_hot

  • Overview

    This module calculates the absolute value of signed integers.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    OUTPUT o output_width_p data output port
  • Assertion

    assert (output_width_p >= width_p)

  • Details & Circuit structure

    source/image/bsg_adder_one_hot.jpg

bsg_adder_ripple_carry

  • Overview

    This is a traveling wave carry adder.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    b_i width_p data input port
    OUTPUT s_o width_p data output port
    c_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_adder_ripple_carry.jpg

Encoder Releted Unit

bsg_priority_encode

  • Overview

    The function of this module is to encode and output the input data twice.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    lo_to_hi_p control signal “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT v_o 1 data output port
    addr_o `BSG_SAFE_CLOG2(width_p)-1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_priority_encode.jpg

bsg_priority_encode_one_hot_out

  • Overview

    This module encodes by one-hot and outputs the input data.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    lo_to_hi_p control signal “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT v_o 1 data output port
    o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_priority_encode_one_hot_out.jpg

bsg_arb_fixed

  • Overview

    This is a priority encoder that can control the output to all 0 or the encoded result.

  • Parameter

    NAME DESCRIPTION DEFAULT
    inputs_p input and output data width “inv”
    lo_to_hi_p control signal “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT ready_i 1 data input port
    reqs_i width_p data input port
    OUTPUT grants_0 width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_arb_fixed.jpg

bsg_arb_round_robin

  • Overview

    This is a circular encoder.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock port
    RESET reset_i 1 reset port
    INPUT reqs_i width_p data input port
    yumi_i 1 data input port
    OUTPUT grants_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_arb_round_robin.jpg

bsg_arrary_concentrate

  • Overview

    This module outputs an input array of a certain number of digits.

  • Parameter

    NAME DESCRIPTION DEFAULT
    pattern_els_p input and output data width “inv”
    width_p input and output data width “inv”
    dense_els_lp input data width $bits(pattern_els_p)
    sparse_els_lp output data width `BSG_COUNTONES_SYNTH(pattern_els_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i dense_els_lp*width_p data input port
    OUTPUT o sparse_els_lp*width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_arrary_concentrate.jpg

bsg_array_reverse

  • Overview

    This module reverse the input array for output.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
    els_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i els_p*width_p data input port
    OUTPUT o els_p*width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_array_reverse.jpg

bsg_binary_plus_one_to_gray

  • Overview

    This module converts binary input + 1 to gray code.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT binary_i width_p data input port
    OUTPUT gray_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_binary_plus_one_to_gray.jpg

Buffer Releted Unit

bsg_buf

  • Overview

    This is a buffer circuit.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_buf.jpg

bsg_buf_ctrl

  • Overview

    This module buff 1 bit control signal to width_p vector.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i 1 data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_buf_ctrl.jpg

bsg_clkbuf

  • Overview

    This module is a buffer.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. 1
    harden_p use harden IP or not 1
    strength_p no 8
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_clkbuf.jpg

bsg

bsg_concentrate_static

  • Overview

    This module given a bunch of signals, and a bitvector parameter,concentrate those bits together into a more condensed vector.

  • Parameter

    NAME DESCRIPTION DEFAULT
    pattern_els_p input and output data width “inv”
    width_lp input data width $bits(pattern_els_p)
    set_els_lp output data width `BSG_COUNTONES_SYNTH(pattern_els_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_lp data input port
    OUTPUT o set_els_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_concentrate_static.jpg

bsg

bsg_circular_ptr

  • Overview

    This module implements a circular pointer that can be incremented by at most max_add_p and points to slots_p slots.

  • Parameter

    Name DESCRIPTION DEFAULT
    slots_p output data width -1
    max_add_p input data width -1
    ptr_width_lp output data width -1
  • Port

    Type NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT add_i $clog2(max_add_p+1) data input port
    OUTPUT o ptr_width_lp data output port
    n_o ptr_width_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_circular_ptr.jpg

bsg_clkgate_optional

  • Overview

    This is an integrated clock cell using a negative latch and an AND gate.

  • Parameter

    None

  • Port

    Type NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    INPUT en_i 1 data input port
    bypass_i 1 data input port
    OUTPUT gated_clock_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_clkgate_optional.jpg

Counter Releted Unit

bsg_counter_clear_up

  • Overview

    This counter counts up and is occasionally cleared.

  • Parameter

    NAME DESCRIPTION DEFAULT
    max_val_p set the max value -1
    init_val_p set the initial value of the count `BSG_UNDEFINED_IN_SIM(‘0)
    ptr_width_lp output data width `BSG_SAFE_CLOG2(max_val_p+1)
    disable_overflow_warning_p overflow signal 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    CLEAR clear_i 1 clear input port
    INPUT up_i 1 data input port
    OUTPUT count_o ptr_width_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_clear_up.jpg

bsg_counter_clear_up_one_hot

  • Overview

    This counter is a one hot counter only one output bit is set at any time.

  • Parameter

    NAME DESCRIPTION DEFAULT
    max_val_p set the max value -1
    init_val_p set the initial value of the count (width_lp) ‘ (1)
    width_lp output data width max_val_p+1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    CLEAR clear_i 1 clear input port
    INPUT up_i 1 data input port
    OUTPUT count_o width_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_clear_up_one_hot.jpg

bsg_counter_clock_downsample

  • Overview

    This counter will counter down from val_i to 0.When the counter hits 0, the output clk_r_o will invert.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input data width “inv”
    harden_p use harden IP or not 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT val_i width_p data input port
    OUTPUT clk_r_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_clock_downsample.jpg

bsg_counter_dynamic_limit

  • Overview

    This module is a counter with dynamic limit that repeats counting from zero to overflow value.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input data width -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT limit_i width_p data input port
    OUTPUT counter_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_dynamic_limit.jpg

bsg_counter_dynamic_limit_en

  • Overview

    This module implements simple counter with enable signal and dynamic overflow limit.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT en_i 1 setting port
    limit_i width_p data input port
    OUTPUT counter_o width_p data output port
    overflowed_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_dynamic_limit_en.jpg

bsg_counter_overflow_en

  • Overview

    This is a counter with an overflow flag bit.

  • Parameter

    NAME DESCRIPTION DEFAULT
    max_val_p max value -1
    init_val_p initial value -1
    ptr_width_lp output data width `BSG_SAFE_CLOG2(max_val_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT en_i 1 setting port
    OUTPUT count_o ptr_width_lp data output port
    overflow_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_overflow_en.jpg

bsg_counter_overflow_set_en

  • Overview

    This is a counter with a set signal and an overflow flag signal.

  • Parameter

    NAME DESCRIPTION DEFAULT
    max_val_p max value -1
    lg_max_val_lp input and output data width `BSG_SAFE_CLOG2(max_val_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT set_i 1 setting port
    val_i lg_max_val_lp data input port
    OUTPUT count_o lg_max_val_lp data output port
    overflow_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_overflow_set_en.jpg

bsg_counter_set_down

  • Overview

    This is a decrement counter with a set.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
    init_val_p initial value ‘0
    set_and_down_exclusive_p flag bit 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT set_i 1 setting port
    val_i width_p data input port
    down_i 1 data input port
      count_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_set_down.jpg

bsg_counter_set_en

  • Overview

    This is a decrement counter with a set.

  • Parameter

    NAME DESCRIPTION DEFAULT
    max_val_p input and output data width “inv”
    lg_max_val_lp input and output data width `BSG_SAFE_CLOG2(max_val_p)
    reset_val_p reset value 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT set_i 1 setting port
    val_i lg_max_val_lp data input port
    en_i 1 data input port
      count_o lg_max_val_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_set_en.jpg

bsg_counter_up_down

  • Overview

    This is an up-down counter with initial and max values.

  • Parameter

    NAME DESCRIPTION DEFAULT
    max_val_p max value -1
    init_val_p initial value -1
    max_step_p input data width -1
    step_width_lp input data width `BSG_WIDTH(max_step_p)
    ptr_width_lp output data width `BSG_WIDTH(max_val_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT up_i step_width_lp data input port
    down_i step_width_lp data input port
    OUTPUT count_o ptr_width_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_up_down.jpg

bsg_counter_up_down_variable

  • Overview

    This is an up-down counter with initial and max values.

  • Parameter

    NAME DESCRIPTION DEFAULT
    max_val_p max value -1
    init_val_p initial value -1
    max_step_p input data width -1
    step_width_lp input data width `BSG_WIDTH(max_step_p)
    ptr_width_lp output data width `BSG_WIDTH(max_val_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT up_i step_width_lp data input port
    down_i step_width_lp data input port
    OUTPUT count_o ptr_width_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counter_up_down_variable.jpg

bsg_counting_leading_zeros

  • Overview

    This is a priority encoder that encodes the input reversed first.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    OUTPUT num_zero_o `BSG_SAFE_CLOG2(width_p) data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_counting_leading_zeros.jpg

bsg_cycle_counter

  • Overview

    This is a loop counter.

  • Parameter

    NAME DESCRIPTION DEFAULT
    i_els_p input and output data width -1
    o_els_p input and output data width -1
    width_p input and output data width -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    OUTPUT ctr_r_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_cycle_counter.jpg

Crossbar Releted Unit

bsg_crossbar_control_basic_o_by_i

  • Overview

    This module generates the control signals for bsg_router_crossbar_o_by_i.

  • Parameter

    NAME DESCRIPTION DEFAULT
    i_els_p input and output data width “inv”
    o_els_p input and output data width “inv”
    lg_o_els_lp input data width `BSG_SAFE_CLOG2(o_els_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT valid_i i_els_p data input port
    sel_io_i i_els_p*lg_o_els_lp data input port
    ready_and_i o_els_p data input port
    OUTPUT yumi_o i_els_p data output port
    valid_o step_width_lp data output port
    grants_oi_one_hot_o o_els_p*i_els_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_crossbar_control_basic_o_by_i.jpg

bsg_crossbar_o_by_i

  • Overview

    This is a benes network implementation.

  • Parameter

    NAME DESCRIPTION DEFAULT
    i_els_p input and output data width -1
    o_els_p input and output data width -1
    width_p input and output data width -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i i_els_p*width_p data input port
    sel_oi_one_hot_i o_els_p*i_els_p data input port
    OUTPUT o o_els_p*width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_crossbar_o_by_i.jpg

DFF & Latch

bsg_dff

  • Overview

    This is a DFF without other ports. It is triggered by the positive edge of input clock.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port -1
    harden_p use harden IP or not 0
    strength_p drive strength 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    INPUT data_i width_p input data
    OUTPUT data_o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff.svg

bsg_dff_en

  • Overview

    This is a DFF with an enable port. It is triggered by the positive edge of input clock.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port “inv”
    harden_p use harden IP or not 1
    strength_p drive strength 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    INPUT data_i width_p input data
    en_i 1 enable
    OUTPUT data_o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff_en.svg

bsg_dff_reset

  • Overview

    This is a DFF with a reset port. It is triggered by the positive edge of input clock. The reset is synchronous and active high.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port -1
    harden_p use harden IP or not 0
    reset_val_p initial value of data_o if reset 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    RESET reset_i 1 reset
    INPUT data_i width_p input data
    OUTPUT data_o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff_reset.svg

bsg_dff_reset_en

  • Overview

    This is a DFF with reset and enable ports. It is triggered by the positive edge of input clock. The reset is synchronous and active high.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port “inv”
    harden_p use harden IP or not 0
    reset_val_p initial value of output data when reset 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    RESET reset_i 1 reset
    INPUT data_i width_p input data
    en_i 1 enable
    OUTPUT data_o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff_reset_en.svg

bsg_dff_negedge_reset

  • Overview

    This is a DFF with a reset port. It is triggered by the negative edge of input clock. The reset is synchronous and active high.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port -1
    harden_p use harden IP or not 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    RESET reset_i 1 reset
    INPUT data_i width_p input data
    OUTPUT data_o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff_negedge_reset.svg

bsg_dff_gatestack

  • Overview

    This is a set of DFFs. Each DFF is triggered by the positive edge of the its corresponding bit of i1. There is no reset or enable signals for these DFFs.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i0 width_p input data
    i1 width_p data transmission trigger, clocks for each bit of input
    OUTPUT o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff_gatestack.svg

bsg_dff_chain

  • Overview

    This is a DFF chain. Input data will be stored num_stages_p times in the DFF chain. All DFFs are triggered by the positive edge of input clock. There are no reset and enable signals in each DFF.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port -1
    num_stages_p stage number of DFFs 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    INPUT data_i width_p input data
    OUTPUT data_o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff_chain.svg

    Input data will be transmitted stage by stage without any stall. If num_stages_p is 0, input data is assigned to output port directly without any registers.

bsg_dff_en_bypass

  • Overview

    This is a DFF with a bypass lane. The DFF is triggered by positive edge of the clock. If the DFF is enabled, the output data is changed to be the input data immediately.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port “inv”
    harden_p use harden IP or not 1
    strength_p drive strength 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    INPUT data_i width_p input data
    en_i 1 enable
    OUTPUT data_o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff_en_bypass.svg

    When enable is 1, input data is stored into the register and bypassed to the output port at the same time. The module consists of a bsg_dff_en and a bypass lane.

bsg_dff_reset_en_bypass

  • Overview

    This is a DFF with a bypass lane and a reset port. The DFF is triggered by positive edge of the clock. If the DFF is enabled, the output data is changed to be the input data immediately. The reset is synchronous and active high.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port “inv”
    harden_p use harden IP or not 0
    reset_val_p initial value of output data when reset 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    RESET reset_i 1 reset
    INPUT data_i width_p input data
    en_i 1 enable
    OUTPUT data_o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff_reset_en_bypass.svg

    When enable is 1, input data is stored into the register and bypassed to the output port at the same time. The module consists of a bsg_dff_reset_en and a bypass lane.

bsg_dff_reset_set_clear

  • Overview

    This is a DFF with reset, set and clear ports. It is triggered by positive edge of the clock. The reset is synchronous and active high.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port “inv”
    clear_over_set_p priorities of clear. If it is 1, clear is prio to set 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    RESET reset_i 1 reset
    INPUT data_i width_p input data
    set_i width_p set enable
    clear_i width_p clear enable
    OUTPUT data_o width_p output data
  • Assertion

    None

  • Details & Circuit structure

    ../_images/bsg_dff_reset_set_clear.svg

    Reset value of the DFF is ‘0. Each bit of the input data has a corresponding set and clear signal. If set_i[i] and clear_i[i] are both 1’b1: a) data_o[i] is 0, when clear_over_set_p is 1. b)data_o[i] is 1, when clear_over_set_p is 0.

bsg_dlatch

  • Overview

    This is a dlatch. The clock is active high.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p data width of input and output port “inv”
    i_know_this_is_a_bad_idea_p show the necessary to instantiate a latch 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 input clock
    INPUT data_i width_p input data
    OUTPUT data_o width_p output data
  • Assertion

    • i_know_this_is_a_bad_idea_p == 0

      The default value of i_know_this_is_a_bad_idea_p is 0. If users want to instantiate a latch, it is necessary override i_know_this_is_a_bad_idea_p to show that the instantiation is inevitable and the user know all adverse effects.

  • Details & Circuit structure

    ../_images/bsg_dlatch.svg

Decode Releted Unit

bsg_decode

  • Overview

    This unit is a decoder.

  • Parameter

    NAME DESCRIPTION DEFAULT
    num_out_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i `BSG_SAFE_CLOG2(num_out_p) data input port
    OUTPUT o num_out_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_decode.jpg

bsg_decode_with_v

  • Overview

    This unit is a decoder and can control whether the output is zero or decoder.

  • Parameter

    NAME DESCRIPTION DEFAULT
    num_out_p input and output data width -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i `BSG_SAFE_CLOG2(num_out_p) data input port
    v_i 1 control port
    OUTPUT o num_out_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_decode_with_v.jpg

bsg_encode_one_hot

  • Overview

    This is a one hot encoder.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width 8
    o_to_hi_p select signal 1
    debug_p debug signal 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT addr_o `BSG_SAFE_CLOG2(width_p) data output port
    v_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_encode_one_hot.jpg

bsg_expand_bitmask

  • Overview

    This module expands each bit in the input vector by the factor of expand_p.

  • Parameter

    NAME DESCRIPTION DEFAULT
    in_width_p input and output data width “inv”
    expand_p select signal “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i in_width_p data input port
    OUTPUT o in_width_p*expand_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_expand_bitmask.jpg

bsg_gray_to_binary

  • Overview

    This module converts gray code into binary code.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT gray_i width_p data input port
    OUTPUT binary_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_gray_to_binary.jpg

Defines

bsg_defines

  • Overview

    This is a file containing the required macro definition.

Edge

bsg_edge_detect

  • Overview

    This unit produces the fall edge.

  • Parameter

    NAME DESCRIPTION DEFAULT
    falling_not_rising_p input and output data width 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk_i 1 clock input port
    RESET reset_i 1 reset input port
    INPUT sig_i 1 data input port
    OUTPUT detect_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_edge_detect.jpg

Hash Bank Releted Unit

bsg_hash_bank

  • Overview

    This module takes a binary address, and a constant number of banks, and then hashes the address across the banks efficiently; outputing the bank #, and the index at that bank.

  • Parameter

    NAME DESCRIPTION DEFAULT
    banks_p input and output data width “inv”
    width_p input and output data width “inv”
    index_width_lp output data width $clog2((2**width_p+banks_p-1)/banks_p)
    lg_banks_lp output data width `BSG_SAFE_CLOG2(banks_p)
    debug_lp debug signal 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT bank_o lg_banks_lp data output port
    index_o index_width_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_hash_bank.jpg

bsg_hash_bank_reverse

  • Overview

    This module is the inverse,taking a bank number and an index, and producing the original address.

  • Parameter

    NAME DESCRIPTION DEFAULT
    banks_p input and output data width “inv”
    width_p input and output data width “inv”
    index_width_lp input data width $clog2((2**width_p+banks_p-1)/banks_p)
    lg_banks_lp input data width `BSG_SAFE_CLOG2(banks_p)
    debug_lp debug signal 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT index_i index_width_lp data input port
    bank_i lg_banks_lp data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_hash_bank_reverse.jpg

Divider Releted Unit

bsg_idiv_iterative

  • Overview

    This module is an N-bit integer iterative divider, capable of signed & unsigned division.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width 32
  • Port

  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_idiv_iterative.jpg

bsg_idiv_iterative_controller

  • Overview

    The controller of bsg_idiv_iterative module.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p Internal signal width 32
  • Port

  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_idiv_iterative_controller.jpg

bsg_id_pool

  • Overview

    This module is an N-bit integer iterative divider, capable of signed & unsigned division.

  • Parameter

    NAME DESCRIPTION DEFAULT
    id_width_lp input and output data width `BSG_SAFE_CLOG2(els_p)
    els_p internal signal width “inv”
  • Port

  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_id_pool.jpg

Comparator Releted Unit

bsg_less_than

  • Overview

    This is a two input comparer.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT a_i width_p data input port
    OUTPUT b_i width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_less_than.jpg

Linear Shifter Releted Uint

bsg_level_shift_up_down_sink

  • Overview

    This module represents a simple level shifter.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT v0_data_i width_p data input port
    v1_en_i 1 data input port
    OUTPUT v1_data_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_level_shift_up_down_sink.jpg

bsg_level_shift_up_down_source

  • Overview

    This module represents a simple level shifter.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT v0_data_i width_p data input port
    v1_en_i 1 data input port
    OUTPUT v1_data_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_level_shift_up_down_source.jpg

bsg_lfsr

  • Overview

    This module is a LFSR.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width -1
    init_val_p initial signal 1
    xor_mask_p select signal 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk 1 clock input port
    RESET reset_i 1 reset input port
    INPUT yumi_i 1 data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_lfsr.jpg

Arbitration Releted Unit

bsg_locking_arb_fixed

  • Overview

    This module is a fixed priority arbitration unit.

  • Parameter

    NAME DESCRIPTION DEFAULT
    inputs_p input and output data width “inv”
    lo_to_hi_p select signal 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    CLOCK clk 1 clock input port
    INPUT ready_i 1 data input port
    unlock_i 1 data input port
    reqs_i inputs_p data input port
    OUTPUT grants_o inputs_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_locking_arb_fixed.jpg

Pseudo_Tree Releted Unit

bsg_lru_pseudo_tree_backup

  • Overview

    This module is a tree pseudo LRU backup finder.

  • Parameter

    NAME DESCRIPTION DEFAULT
    ways_p input and output data width “inv”
    lg_ways_lp cyclic variable `BSG_SAFE_CLOG2(ways_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT disabled_ways_i ways_p data input port
    OUTPUT modify_mask_o ways_p data output port
    modify_data_o ways_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_lru_pseudo_tree_backup.jpg

bsg_lru_pseudo_tree_decode

  • Overview

    This module is a Pseudo-Tree-LRU decode unit.

  • Parameter

    NAME DESCRIPTION DEFAULT
    ways_p output data width “inv”
    lg_ways_lp input data width `BSG_SAFE_CLOG2(ways_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT way_id_i lg_ways_lp data input port
    OUTPUT data_o ways_p data output port
    mask_o ways_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_lru_pseudo_tree_decode.jpg

bsg_lru_pseudo_tree_encode

  • Overview

    This module is a Pseudo-Tree-LRU encode unit.

  • Parameter

    NAME DESCRIPTION DEFAULT
    ways_p input data width “inv”
    lg_ways_lp output data width `BSG_SAFE_CLOG2(ways_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT lru_i ways_p data input port
    OUTPUT way_id_o lg_ways_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_lru_pseudo_tree_encode.jpg

Selector Releted Unit

bsg_mux

  • Overview

    This is a selector.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width “inv”
    els_p input data width “inv”
    harden_p use harden IP or not 0
    balanced_p assert signal 0
    lg_els_lp input data width `BSG_SAFE_CLOG2(els_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT data_i els_p*width_p data input port
    sel_i lg_els_lp data input port
    OUTPUT data_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mux.jpg

bsg_mux2_gatestack

  • Overview

    This is a two-selection selector with width of width_p bits.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i0 width_p data input port
    i1 width_p data input port
    i2 width_p select port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mux2_gatestack.jpg

bsg_muxi2_gatestack

  • Overview

    This is a two-selection selector with width of width_p bits.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i0 width_p data input port
    i1 width_p data input port
    i2 width_p select port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_muxi2_gatestack.jpg

bsg_mux_bitwise

  • Overview

    This module is a two-to-one data selector with width_p bit width.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT data0_i width_p data input port
    data1_i width_p data input port
    sel_i width_p sel input port
    OUTPUT data_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mux_bitwise.jpg

bsg_mux_butterfly

  • Overview

    This module has stages of mux which interleaves input data.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    els_p input and output data width. “inv”
    lg_els_lp input data width. `BSG_SAFE_CLOG2(els_p)
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT data1_i els_p*width_p data input port
    sel_i lg_els_lp sel input port
    OUTPUT data_o els_p*width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mux_butterfly.jpg

bsg_mux_one_hot

  • Overview

    This module is a multi-bit selector with one-hot encoding.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    els_p input and output data width. 1
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT data_i els_p*width_p data input port
    sel_one_hot_i els_p sel input port
    OUTPUT data_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mux_one_hot.jpg

bsg_mux_segmented

  • Overview

    This is a two-selection selector with width of segment_width_p bits.

  • Parameter

    NAME DESCRIPTION DEFAULT
    data_width_lp input and output data width. segments_p*segment_width_p
    segments_p number of segments “inv”
    segment_width_p width of each segment “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT data0_i data_width_lp data input port
    data1_i data_width_lp data input port
    sel_i segments_p select port
    OUTPUT data_o data_width_lp data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mux_segmented.jpg

pg_tree Releted Unit

bsg_pg_tree

  • Overview

    This module builds a PG (propagate generate) tree.

  • Parameter

    NAME DESCRIPTION DEFAULT
    input_width_p input data width “inv”
    output_width_p ouput data width “inv”
    nodes_p internal signal width 1
    edges_lp internal signal width nodes_p*3
    l_edge_p index value 0
    r_edge_p index value 0
    o_edge_p index value 0
    node_TYPE_p index value 0
    row_p index value 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT p_i input_width_p data input port
    g_i input_width_p data input port
    OUTPUT p_o output_width_p data output port
    g_o output_width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_pg_tree.jpg

Popcount Releted Uint

bsg_popcount

  • Overview

    This module uses a recursive method to reduce the bit width of the input data.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT o log2(width_p+1) data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_popcount.jpg

Reduce Releted Uint

bsg_reduce

  • Overview

    The function of this module is to perform the reduction.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    xor_p xor operation judgment expression 0
    and_p and operation judgment expression 0
    or_p or operation judgment expression 0
    harden_p use harden IP or not 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_reduce.jpg

bsg_reduce_segmented

  • Overview

    The function of this module is to perform the segment_width_p bit reduction.

  • Parameter

    NAME DESCRIPTION DEFAULT
    segments_p input and output data width. “inv”
    xor_p xor operation judgment expression 0
    and_p and operation judgment expression 0
    or_p or operation judgment expression 0
    nor_p nor operation judgment expression 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i segments_p*segment_width_p data input port
    OUTPUT o segments_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_reduce_segmented.jpg

Rotate Shift Releted Unit

bsg_rotate_left

  • Overview

    This is a left shift.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT data_i width_p data input port
    rot_i `BSG_SAFE_CLOG2(width_p) data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_nor2.jpg

bsg_rotate_right

  • Overview

    This is a right shift.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT data_i width_p data input port
    rot_i `BSG_SAFE_CLOG2(width_p) data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_rotate_right.jpg

bsg_round_robin_arb

  • Overview

    This module is a arbiter.

  • Parameter

    NAME DESCRIPTION DEFAULT
    inputs_p input and output data width -1
    lg_inputs_p output data width `BSG_SAFE_CLOG2(inputs_p)
    reset_on_sr_p selcet signal 0
    hold_on_sr_p selcet signal 0
  • Port

  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_mul_array_row.jpg

scan

bsg_scan

  • Overview

    This module can encode the input data by selecting different modes.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. -1
    xor_p control signal 0
    and_p control signal 0
    or_p control signal 0
    lo_to_hi_p control signal 0
    debug_p control signal 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_scan.jpg

Cyclically Arbitration

bsg_strobe

  • Overview

    The function of this module is to cyclically schedule arbitration.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 0
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT clk_i 1 data input port
    reset_r_i 1 data input port
    init_val_r_i width_p data input port
    OUTPUT strobe_r_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_strobe.jpg

Swap Unit

bsg_swap

  • Overview

    The cell provides three ports(data_i,swap_i,data_o).The function of this module is to exchange the first row and the second row of the input array and output the position.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT data_i width_p data input port
    swap_i 1 control port
    OUTPUT data_o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_swap.jpg

Edge Detection Unit

bsg_thermometer_count

  • Overview

    This module encodes and outputs the input data edge detection.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. -1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_p data input port
    OUTPUT o $clog2(width_p+1) data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_thermometer_count.jpg

Output Fixed Bit Value Unit

bsg_tiehi

  • Overview

    The function of this module is to output width_p bit 1.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_tiehi.jpg

bsg_tielo

  • Overview

    The function of this module is to output width_p bit 0.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    harden_p use harden IP or not 1
  • Port

    TYPE NAME WIDTH DESCRIPTION
    OUTPUT o width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_tielo.jpg

Output Switching Position Unit

bsg_transpose

  • Overview

    The function of this module is to exchange the position of the bit width and the bit width of the input data for the output.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input and output data width. “inv”
    els_p input and output data width. “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i els_p*width_p data input port
    OUTPUT o els_p*width_p data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_transpose.jpg

Unconcentrate Uint

bsg_unconcentrate_static

  • Overview

    The function of this module is to extend the elements of the input vector according to the bit pattern.

  • Parameter

    NAME DESCRIPTION DEFAULT
    width_p input data width. `BSG_COUNTONES_SYNTH(pattern_els_p)
    pattern_els_p output data width. “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT i width_1p data input port
    OUTPUT o $bits(pattern_els_p) data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_unconcentrate_static.jpg

Reset Unit

bsg_wait_after_reset

  • Overview

    The function of this module is to wait a certain number of cycles after reset to begin.

  • Parameter

    NAME DESCRIPTION DEFAULT
    lg_wait_cycles_p register variable bit width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT reset_i 1 clk input port
    clk_i 1 reset input port
    OUTPUT ready_r_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_wait_after_reset.jpg

Wait Cycles Unit

bsg_wait_cycles

  • Overview

    The function of this module is to wait for several cycles before the circuit starts to work.

  • Parameter

    NAME DESCRIPTION DEFAULT
    cycles_p circuit intermediate variable bit width “inv”
  • Port

    TYPE NAME WIDTH DESCRIPTION
    INPUT reset_i 1 clk input port
    clk_i 1 reset input port
    activate_i 1 data input port
    OUTPUT ready_r_o 1 data output port
  • Assertion

    None

  • Details & Circuit structure

    source/image/bsg_wait_cycles.jpg