본문 바로가기

분류 전체보기85

[verilog] 동일 logic LUT 비교 예전에 블로그 포스팅할때 정리해둘라고 했는데 아직도 정리를 못했습니다 우선 내용은 그대로 복사해놓고 집에서 시간나면 다른 tool로 돌려볼 예정입니다. 내용은 RGB to YCbCr을 두가지 방식으로 변환하였을 때의 LUT변화량 입니다 1. Case 1(한번에 연산) 이렇게 연산을 하면 simulation에서는 가능할지 몰라도 clock 주파수가 높아진다거나 target하는 timing에 meet를 하지못하는 case가 발생할 수도 있습니다. 2. Case 2(clock 분배) 이렇게 설계하면 기존보다 5 clock정도의 delay가 생기지만 timing meet하기에는 유리한 조건으로 바뀌게 됩니다. FPGA에서는 case 1처럼 해도 될 때도 있습니다만, 권고사항은 Case2 처럼 설계하는 방식이겠죠.. 2021. 1. 26.
[verilog] 16bit floating point hdl 구현(adder) python에서 사용하는 weight나 bias는 전부 floating point로 구성이 되어있습니다 하지만 이를 그대로 hdl로 구현하기에는 불필요한 logic이 너무 클 것 같다고 생각하여 우선 fixed point로 해볼려고 했으나 이왕 하는 김에 floating point로 똑같이 설계해서 SW vs HW 결과값을 비교하는 걸 시작하려 합니다 1. floating point 구조 floating32는 너무 size가 클 것같아서 우선 floating16 spec 찾아보니 설계를 하려하고 찾아보니 아래와 같은 구조를 가집니다 sign bit 1 지수 bit 5 가수 bit 10 이걸 유효숫자 형태로 표현한다음에 더하거나 곱하는 식으로 하는것인데 인터넷에 설명된 자료는 대부분이 32bit 기준인데 .. 2021. 1. 26.
[verilog] 16bit floating point hdl구현(multiplier) 저번 시간에 작성한 adder에 사용했던 코드들을 기반으로 multiplier를 구현해보려고 합니다 1. floating point multiplier 설계 multiplier는 over, underflow를 처리를 잘해줘야 하는 것으로 예상이 되는데 구현을 해야 convoltion 처리도 가능하므로 rtl code는 아래처럼 구성을 했습니다 이렇게 코드를 구성하면 나중에 warning이 뜨겠지만 그냥 결과만 보는 것이기에 그냥 사용했습니다 2. simulation result simulation을 돌려서 나온 결과는 결과가 똑같이 나온것을 확인 할 수 있습니다 input : (19,88) → (17,195) → (20,191) → ... output : (19,88) → (17,195) → (20,19.. 2021. 1. 25.
[verilog] memory 및 image filter 설계 image processing을 하기 위해서는 다양한 filter mask를 설계하여야 하는데 가장 간단한 3x3 sobel filter를 설계해보겠습니다 그냥 하기엔 아쉬우니 Ycbcr로 변경하여 아래와 같은 data flow로 진행이 됩니다 1. YCbCr 이제 Ycbcr을 구현하면 되는데 구글링 하면 아래와 같은 수식이 나오게 됩니다 hardware에서는 소수점을 표현하는데 제한이 있기 때문에 아래와 같은 수식으로 변경하여 설계를 합니다 이걸로 검증을 해보면 아래와 같이 나오게 됩니다 결과를 보면 Y에 대한 수식이 거의 동일하게 나오는 것을 확인하고 simulation을 하면 아래와 같이 나오게 됩니다. 2. image filter 이제 간단한 sobel mask를 설계를 해봅시다 우선 sobel .. 2021. 1. 24.
linux find, grep 명령어 최근에 linux에서 작업을 많이하다보니 원하는 file이나 구문을 찾을 때 find, grep으로 많이 찾게 됩니다 명령어에 따른 옵션이 너무 많은데 이걸 일일히 다 외울수도 없고 필요할때 마다 검색을 해서 하긴 하지만 자주 쓰이는 옵션들을 정리해두려고 합니다. 1. find 명령어 find는 linux에서 원하는 파일이나 디렉토리를 검색할 때 사용하는 명령어 입니다. file 내부의 내용을 읽어보지는 않고 파일명, 디렉토리명 기준으로 탐색을 하게 되며, 자세한 정보는 find --help 를 입력하면 어떤 방식으로 명령어를 쳐야하는지 나오게 됩니다 그럼 아래와 같은 폴더구조를 갖는다고 하였을 때를 예로들어서 연습을 해봤습니다 주로 사용하는 명령어만 연습해 봤습니다. "fold_*" 인 파일/디렉토리 .. 2021. 1. 24.
linux 터미널 명령어 alias 최근에 linux에서 대부분의 작업을 많이 하고 있다. 윈도우에 있는 GUI만을 이용하여 파일을 옮기고 디렉토리를 바꾸고 하는건 클릭과 ctrl+c/v만으로 거의 모든게 가능하지만 터미널 상에서는 명령어를 알고 있어야 하고 명령어를 정확히 쳐주어야만 내가 원하는 동작을 할 수가 있습니다. 하지만 너무 긴 명령어를 치다가 오타가 날 경우엔 짜증이 나겠죠... 그래서 전 아래와 같은 명령어를 alias를 하고 있는데요 구글 검색하면 더 많이 편한 alias들이 있길래 정리를 해봅니다. ① 이동 및 파일 목록 보기 관련 alias c='clear && ls --color=auto' function cd { builtin cd "$@" && c } alias ll='ls -alh --color=auto' ali.. 2021. 1. 24.