본문 바로가기
SMALL

일/Knowledge14

bit sum (verilog) data_width 만큼의 데이터가 있을때, 각 data의 bit의 합을 계산할때, 각bit의 add를 아래와 같이 나타낼수 있음. input data (wd_data[DATA_BIT:0])가있을때, DATA_WIDTH는 DATA_BIT의 log2 값. integer i; reg [DATA_WIDTH:0] cnt_data_bit ; always@* begin cnt_data_bit = 'h0; for ( i=0; i 2016. 11. 11.
ready valid protocol 설명. ( verilog ) amba나 최근에 사용하는 대부분의 bus 는 ready , valid protocol을 이용한다. 간단한 이해를 위해 아래를 참조. ================================================== ===== // 기본형 module sample (verilog) ( // system input wire clk, input wire reset, // slave port input wire [7 : 0] s_data, input wire s_valid, output wire s_ready, // master port output reg [7 : 0] m_data, output reg m_valid, input wire m_ready ); // m_valid이 0 (파이프 라인의 .. 2016. 11. 9.
median-cut 컬러영상을 처리할떄 가장 흔히 사용하는 컬러표현은 RGB 컬러이다. 이것은 R,G,B에 각각 8-비트를 할당하여 256-단계를 표현할수 있게하여, 전체적으로 256x256x256=16777216가지의 컬러를 표현할 수 있게하는 것이다. 그러나 인간의 눈은 이렇게 많은 컬러를 다 구별할 수 없으므로 24-비트 RGB컬러를 사용하는 경우는 대부분의 경우에 메모리의 낭비와 연산에 오버헤드를 가져오는 경우가 많이 생긴다. RGB컬러영상을 R,G,B를 각각 한축으로 하는 3차원의 컬러공간에서의 벡터(점)으로 표현이 가능하다. 컬러영상의 픽셀들이 RGB삼차원의 공간에 골고루 펴져 있는 경우는 매우 드물고, 많은 경우에는 이 컬러공간에서 군집(groups)을 이루면서 분포하게 된다. 하나의 군(group)은 유사한 .. 2016. 6. 15.
indexed part-select (Verilog 2001 => +: ) logic [31: 0] a_vect; logic [0 :31] b_vect; logic [63: 0] dword; integer sel; a_vect[ 0 +: 8] // == a_vect[ 7 : 0] a_vect[15 -: 8] // == a_vect[15 : 8] b_vect[ 0 +: 8] // == b_vect[0 : 7] b_vect[15 -: 8] // == b_vect[8 :15] for(i=0;i dword[7:0] (i=1) => dword[15:8] (i=2) => dword[23:16] (i=3) => dword[31:24] a_vect[x +: y] => [ x + y -1 : x ] a_vect[x -: y] => [ x : x - y + 1 ] 2016. 5. 20.
LIST