본문 바로가기

Language28

[System Verilog] always @(*), always_ff, always_comb, always_latch always @(*) Verilog의 always sensitivity list가 바뀔때 동작 always_comb Verilog에서의 combination logic을 구현할 때 사용 sensitive list 필요 없음 latch가 생기지 않도록 모든 조건문 필요 Code [ always @(*), always_comb ] module test; logic a, b, c, always_d, always_comb_d; function logic my_func(input logic m_c); my_func = a | b | m_c; endfunction always @* always_d = my_func(c); always_comb always_comb_d = my_func(c); initial begi.. 2024. 4. 7.
[Perl] die die 예외사항이 있을때 실행됩니다. 예를들어 file handle를 하기 위해 파일을 열었을때 file이 없을 경우 실행됩니다. 2023. 12. 31.
[Perl] Scalar 변수 "연산자" 스칼라에 대입된 값이 "숫자"인지 "문자열"인지 확인하는 것은 불가능합니다. 정확하게 말하면 그럴 필요가 없어야 합니다. 사용하는 연산자에 따라 스칼라를 숫자로 취급할지 또는 문자열로 취급할지가 결정됩니다. 문자열 연산자를 사용하면 문자열처럼 동작하고 숫자 연산자를 사용하면 숫자로 동작합니다. 값의 유형이 달라 동작이 불가능하면 경고가 발생합니다. ​ 숫자로 취급하여 비교하는 연산자 = == != + * ​ 문자열로 취급하여 비교하는 연산자 lt gt le ge eq ne cmp . x Example 2023. 11. 19.
[Verilog] 1bit Half adder(반가산기) 목차 Half adder 1비트 이진수 두 개를 더한 합 Sum (S)과 자리올림 수 Carry (C)를 구하는 회로 Code 2023. 7. 23.
[Python] DCT 8x8 목차 DCT에 대하여 간략하게 정리한 글입니다. DCT에 대한 내용은 해당 글 참고바랍니다. 2023.07.23 - [Knowledge/Basic] - 2차원 DCT(Discrete cosine transform), 이산 코사인 변환 2차원 DCT(Discrete cosine transform), 이산 코사인 변환 목차 DCT 흔히 DCT라 부르는 DCT2, DCT역변환은 DCT3이자 IDCT(Inverse DCT)라 부릅니다. 간단하게 DCT2는 공간 영역에서 주파수 영역으로 변환하는 방법입니다. 흔히 사용하는 이미지 확장자 JPEG라는 국제 vir-us.tistory.com DCT 8x8 변환식 HTML 삽입 미리보기할 수 없는 소스 수학적으로 계산해보자. x=0, y=0일때를 가정하면 다음과 같다... 2023. 7. 23.
[Verilog] Frequency(Clock) Divider 목차 Frequency(Clock) Divider D F/F를 이용한 주파수 분할입니다. 간단하게 하나의 F/F를 거치면 2 분할됩니다. 카운터를 활용해서 분할할 수 도 있습니다. 생산 이후에 Clock divider를 잘못설계하면(ex. 홀수 분주 시 Timing 고려하지 않은 경우) clock glitch가 발생할 수 있습니다. 간단하게 말해서 clock내 Timing문제가 생겨 해당 clock를 사용하거나 동기화된 모든 기능이 먹통이 될 수 있습니다. 제일 안전하게 분주하는 방법은 F/F를 활용하여 짝수 분주하는 방법입니다. Code D F/F를 이용한 Clock divide Code입니다. 위 그림의 D F/F가 연달아 3개 이어져 있다고 생각하시면 됩니다. 2023. 7. 21.
반응형