Read in EN

bits

Scode는 integer value를 사용하는데, 해당 value의 bits number를 알 필요가 생기게 된다.

이 때 사용하는 함수들이 min_bits, max_bits_of_list이다.

min_bits

주어진 logic의 width 또는 value를 표현할 수 있는 최소한의 minimum bits를 return한다.

주의할 점은 0, 1이 parameter로 입력되면 0,1은 1bit로 표현가능하므로 1을 return한다. min_bits는 함수에서 주어진 integer value를 표현할 수 있는 logic을 생성할 때 많이 사용된다.

core_lib.sh에 있는 counter_trigger 함수의 일부분이다. counter_trigger는 주어진 n까지 counting 하고 1개의 trigger를 발생시킨다.

def counter_trigger(clk,reset,n) : 
    count = logic_unique('ctrg_out[%s]' % min_bits(n)) 
    
    ... 

주어진 n까지 counting하려면 n을 표현할 수 있는 최소한의 bits width를 갖는 logic을 선언하는 예이다.

max_bits_of_list

max_bits_of_list는 주어진 list에 있는 값들의 min_bits를 구한 후 그 중에서 가장 큰 값을 return하는 함수이다.

주로 복수의 값을 표현할 수 있는 logic을 선언할 때 사용된다. 아래의 code는 core_lib.sh에 있는 tbl_pattern의 code 일부이다.

def tbl_pattern(clk,n,pattern_data): 
    pattern = logic_unique('pattern[%s]' % max_bits_of_list(pattern_data))

pattern_data가 list로 이루어진 경우 그 값들을 모두 표현할 수 있는 logic을 선언하는 code이다.

← All posts