본문 바로가기

Language/Verilog & SV22

[Verilog] Clock generator 목차 Clock generator Blocking assignment(BA)을 사용해야 합니다. NonBlocking assignment(NBA)는 사용하지 말아야 합니다. 시작신호(time-0)는 Low로 권장합니다. negedge로 초기화해야 합니다. start_delay 사용을 권장합니다. Clock을 BA로 설계해야 하는 이유 BA로 표현한 문장은 처리되는 중 다른 이벤트들이 처리되지 않습니다. Clock은 모델의 작동에 기준이 되기 때문에 BA로 작성하여 확실한 이벤트 처리 기준이 되어야 합니다. 2023. 7. 20.
[Verilog] Blocking(=) vs Nonblocking(<=) 목차 Blocking assignments (BA) always 블록 내에서 실행 순서를 제어하기 위해 사용합니다. 현재 명령문이 실행될 때까지 다음 명령문의 실행을 차단합니다. 앞선 명령문이 실행되고 나서 뒷선 명령문들이 차례대로 실행됩니다. 2023. 7. 19.
[Verilog] Parameter 목차 Parameter Verilog HDL의 Parameter는 variable이나 net에 속하지 않습니다. 상수입니다. ​ Parameter의 두 가지 타입 module parameter, witg localparam specify parameters(specparams) parameter : 기본적으로 모듈 내에서 상수값을 특정 문자열에 mapping defparam : 모듈밖에서 parameter값을 재정의(혹은 override) 할 때 사용 localparam : 모듈내에서 localparam으로 선언하면 모듈밖에서 바꿀 수 없음 Specpara : parameter와 비슷하지만 특정 블록 내에서만 사용됩니다. Parameter example 2023. 7. 19.
[System Verilog] 'break' and 'continue' 목차 break loop construct에서 break를 만나면 바로 end로 진입합니다. Code 2023. 7. 19.
[Verilog] D F/F 목차 D 플립플롭 D 래치와 달리, D 플립플롭은, 입력 D(데이터)를 Clk(클럭)에 따라 출력합니다. CP=1, D=1 : G3 출력은 0, G4 출력은 1, 따라서 Q=1 CP=1, D=0 : G3 출력은 1, G4 출력은 0, 따라서 Q=0 Verilog Code 2023. 7. 19.
[Verilog] Ram Model example Code Ram Model 간단한 Ram Verilog Code입니다. simulation model로 사용할 수 있습니다. A는 Write port CLK_A, addr_A, data_A, WENA CLK_A가 posedge일때, WENA == 1이면 addr_A에 해당하는 메모리 공간에 data_A를 씁니다. B는 Read port CLK_B, addr_B, data_B CLK_B가 posedge일때, addr_B에 해당하는 메모리 공간을 읽어 data_B로 출력합니다. Verilog Model Code 2023. 7. 6.
반응형