전체 글85 [systemverilog] task 와 function task와 function은 코드 반복을 줄이기 위해서 verilog, systemverilog에서 사용되는 keyword 들 입니다. 동일한 동작이 많은 프로젝트에서는 task, function을 사용하면 코드가 간결해집니다 두가지 keyword의 차이점에 대해서 알아보겠습니다. 1. Task Task는 정의된 모듈안에서 언제든치 호출이 가능한 서브루틴 keyword 입니다. Task가 정의되어 있지 않은 파일에서 Task를 호출 할 수도 있습니다. 사용하는 방법은 module 선언하는 것과 같이 task와 endtask로 감싸서 사용합니다. 특징은 아래와 같습니다 시간 지연과 관련된 기능들을 포함 시킬 수 있다.(ex. # delay, posedge clk, negedge clk 등) input, o.. 2021. 1. 31. 영화 소울 리뷰 작년에 코로나가 터지기 직전 '남산의 부장들'을 마지막으로 영화관을 가지 않았었습니다 근데 픽사에서 새로나오는 'Soul'이라는 영화가 너무 기대되어 조조로 보고왔습니다 이 영화를 만든 감독이 제가 좋아했던 '업up', '인사이드 아웃'을 만든 감독이라 기대감이 높았는데 제 기대감을 충족시킨 영화였네요 영화에서 표현했던 뉴욕과 등장인물들의 캐미가 정말 잘 어우러진 영화였습니다 어린이도 보기 좋겠지만, 어른이 보면 더 느끼는 것이 많아지는 영화였네요 '인생에 목적을 갖지말고 오늘 하루를 즐기며 살자' 그리고 영화 앞에 나왔던 단편 무비도 정말 좋았습니다 2021. 1. 31. md file previewer 설치 vim plugin 중에 markdown previewer 플러그인을 제대로 사용 안해봤는데 최근에 작성할일이 많아지면서 적용을 해봤습니다. .vimrc에 추가 하고 Pluginstall 적용한다음에 md 파일을 아래와 같이 작성했다고 했을때 여기서 : markdownpreview를 적용하면 아래와 같은 화면이 나옵니다 근데 제가 작성을 잘못했는지 아님 세팅이 부족한건지 약간 안맞는 부분들이 있네요 2021. 1. 30. linux 파일만, 폴더만 출력하기 리눅스에서 파일 리스트를 만들거나 폴더만 만들때 사용하는 방법은 여러가지 명령어가 있는데 아래의 것중 하나만 골라서 쓰면 됩니다. 아래에서 사용한 grep -v는 제외시킬 문자를 나타내는 옵션이고 정규 표현식 ^{문자}는 {문자}로 시작된다는 의미입니다. 1. 폴더만 출력하기 ls -l | grep '^d' ls -l | grep -v '^-' 여기서 완전히 이름만 가져오고 싶으면 ls -l | grep '^d' | cut -f 9 -d ' ' find . -maxdepth 1 -type d 2. 파일만 출력하기 ls -l | grep -v 'd' ls -l | grep '^-' 여기서 이름만 가지고 오고 싶으면 ls -l | grep '^-' | cut -f 10 -d ' ' find . -maxdep.. 2021. 1. 30. vi editor에서 터미널 명령어 수행 vi editor를 사용하다보면 터미널에서 명령한 결과를 직접 타이핑 할 때가 있습니다 예를 들어 파일 list를 가져온다던가, 아니면 파일 개수를 확인 한다던가 할때? 이때 editor를 끄고 터미널로 나갈 수도 있지만 이렇게 될 경우 editor에서 작업하던 내용이 사라지기 때문에 임시저장을 해놓고 잠시 빠져나갈수가 있습니다. 오늘은 해당 기능을 알아 봅시다 1. 쉘로 잠시 빠져나가기 :sh, :shell vi 에서 :sh , :shell이라는 명령어를 입력하면 shell로 빠져나갈수가 있습니다. 이때 다시 기존에 열었던 vi를 열라면 Ctrl + D를 누르면 다시 돌아갈 수가 있습니다 Ctrl + D 하지만 이때 vi를 다시 연다면 또 다른 세션을 열기를 한 것이기 때문에 기존의 vi로 복귀하기 위.. 2021. 1. 29. [쉘 스크립트] for문 활용하기 쉘 스크립트로 여러개의 task를 실행한다거나 입력받은 파일 리스트를 출력할 때 for문을 사용할 수 있습니다 오늘은 for문을 사용하는 방식에 대해서 정리합니다 1. for 문 작성법 for 변수 in [범위](리스트, 배열, 묶음) do 명령어 done 범위에는 리스트, 배열, 묶음등 여러가지 방식으로 표현이 가능하며, 변수는 범위에 표현된 리스트의 순서대로 명령어를 수행 합니다 2. 작성 예시 아래와 같은 결과를 출력하는 방식은 다양하게 있습니다 ▷ 기본 문법 ▷ list 이용 ▷ 배열 이용 ▷ 숫자 범위 이용 ▷ c 언어 문법처럼 사용 괄호 개수에 주의해야 합니다 ▷ 간격을 두고 증가 ▷ 간격을 두고 감소 ▷ 파일 리스트 출력 ▷ 인자 입력 그리고 예전에 정리했었던거 같은데 다시 한번 정리합니다 .. 2021. 1. 28. [쉘 스크립트] 문자열 자르기 shell script에서 사용되는 모든 변수는 그냥 할당하면 default로 문자열로 인식됩니다 변수로 지정된 문자열을 자르거나 인덱스로 접근하여 사용하는 법을 정리하려 합니다 1. cut 명령어 사용 cut 명렁어는 입력받은 data 문자, 바이트, 구분자등을 기준으로 나눌 때 사용한다 ,으로 구분해서 첫번째 필드 출력 cut -f 1 -d ',' 파일명 첫번째부터 4번째 문자 출력 cut -c 1-4 파일명 2. index 사용 python에서 list 접근하듯이 0을 시작으로 하면되고 아래와 같은 규칙을 가진다 맨 뒤의 위치는 음수로 할 경우 -1이다.(음수로 할 경우 띄어쓰기 필수) 처음부터 끝까지 ${변수명} 시작지점부터 끝까지 ${변수명:시작지점} 시작지점부터 4개 ${변수명:시작지점:4} .. 2021. 1. 26. xilinx memory(RAM) 종류 xilinx FPGA에서 memory를 setting할때 종류가 여러개가 나옵니다 오늘은 그 중에서 RAM의 종류에 대해 알아 보겠습니다. RAM type의 종류는 아래와 같이 3가지 입니다 Single Port RAM Simple Dual Port RAM True Dual Port RAM 이것들을 하나하나 봅시다 1. Single Port RAM 우선 그림을 보면 아래와 같이 나오게 됩니다 이름에서 의미하는 것처럼 write/read 시에 사용하는 address가 1개 입니다. 그래서 이걸 구분하는 enable 신호가 필요하죠 여기선 wea신호 입니다. 먼저 말하겠지만 xilinx에서는 port를 구분할때 뒤에 a, b이렇게 구분합니다 위에서는 전부 a로 끝나는걸 보면 해당 port는 전부 memory.. 2021. 1. 26. xilinx line memory 만들기 보통 verilog를 사용하여 필요한 block을 만들 때 memory를 사용해야 할 때가 있습니다. 직접 만들어 사용해도 되지만, 요즘 tool들은 자신들의 IP의 동작대로 memory의 simulation file을 제공합니다. 그걸 어떻게 우리가 제공받을수 있는지 확인해봅시다 우선 아래와 같이 vivado를 여신담에 아무 project를 만듭시다 우리는 memory만 만들꺼니 간단하게 RTL project로 고르고 package도 아무거나 누릅시다 이렇게 선택해서 만들게 되면 아래와 같은 창이 뜨는데 여기서 왼쪽의 IP Catalog를 누릅시다 그럼 위의 그림에서 오른쪽에 우리가 어떤 IP를 만들건지 물어보는 창이 나오는데 여기서 'block'이라고 검색을 하면 아래와 같이 matching 된 IP.. 2021. 1. 26. 이전 1 ··· 4 5 6 7 8 9 10 다음