전체 글
-
assert와 propertySystemVerilog 2023. 8. 8. 23:13
systemverilog에서는 검증을 위해 프로그래밍적 요소가 많이 추가 되었는데, 대표적인것이 assert와 property 입니다. assert는 우리가 프로그래밍 할 때 사용하는 assert와 동일 합니다. assert(data_1 == data_2) // data_1과 data_2가 같지 않다면 에러를 발생시킨다 위의 코드를 실제로 돌리면 어떻게 나오는지 코드를 아래와 같이 작성했습니다. initial begin assert(data == data_t) else $fatal("Stop"); fork data_gen(data); data_gen_t(data_t); join end always #(`Clock_period/2) clk = !clk; task automatic data_gen_t(ref..
-
pass by referenceSystemVerilog 2023. 8. 8. 22:42
기존에 포스팅한 것과 같이 automatic이라는 keyword와 같이 사용해야 하는 방식을 정리합니다. 우선 아래와 같은 code가 있다고 하면 initial begin clk = 1'b0; fork data_gen(data); data_read(data); join end always #(`Clock_period/2) clk = !clk; task data_gen(output logic [2:0] wdata); #100 data = 3'd1; #100 data = 3'd2; #100 data = 3'd3; #100 data = 3'd4; #100; endtask task data_read(logic [2:0] rdata); for(integer i =0;i
-
automatic카테고리 없음 2023. 8. 8. 22:33
일반적으로 verilog나 systemverilog에서 그냥 task를 사용하면 default static속성을 가지고 있습니다. static으로 선언이 되면 task나 함수가 호출 될 때마다 사용중인 variable을 공유해서 사용하는 특징을 가지고 있습니다. 예를들어 아래와 같은 코드를 볼 때 module tb; initial display(); initial display(); initial display(); initial display(); task display(); integer i = 0; i = i + 1; $display("i=%0d", i); endtask endmodule display라는 task는 호출될 때 특정영역에 i라는 변수를 공유하게 되어 아래와 같은 출력 1, 2, 3,..
-
비트를 enum 으로 형변환 해서, 보기 편하게SystemVerilog 2023. 7. 24. 17:51
typedef enum logic [2:0] { RED = 3, GREEN = 5, BLUE = 7 } Color; logic [2:0] data = 7; // 기본 데이터 타입 변수를 선언하고 초기화 Color myColor; $cast(myColor, data); // 기본 데이터 타입을 Enum 상수로 형변환 $display("Integer value as enum: %0s", myColor.name); logic [2:0] data = 7; // 기본 데이터 타입 변수를 선언하고 초기화 Color myColor; myColor = Color'(data); // 기본 데이터 타입을 Enum 상수로 형변환 $display("Integer value as enum: %0s", myColor.name);..
-
DSC 의 PPS 에는 어떤 정보가 있어?DDI 2023. 7. 6. 23:33
DSC(Display Stream Compression)에서 PPS(Parameter Packet Sequence)는 압축된 비디오 데이터를 디코딩하기 위해 필요한 인코딩 매개변수와 설정 정보를 포함하는 패킷입니다. PPS는 DSC 디코더에게 올바른 디코딩 설정을 제공하여 압축 데이터를 올바르게 해석하고 화면에 표시할 수 있도록 합니다. PPS에 포함된 정보는 다음과 같습니다: 1. Slice Configuration (슬라이스 구성): PPS는 슬라이스의 구성 정보를 포함합니다. 슬라이스의 크기, 위치 및 관련된 파라미터 등이 여기에 포함됩니다. 이 정보는 디코더가 압축된 데이터를 올바르게 해석하고 슬라이스를 재구성하는 데 사용됩니다. 2. 예측 및 양자화 설정: PPS는 예측 및 양자화 관련 설정 정..