일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- linux c++ 컴파일
- Pyverilog 설치
- gpgpu-sim
- AMBA
- 남산업힐
- DNN Accelerator
- Makefile compile
- 대구 반도체 설계기업 특화
- 이진수 곱셈 알고리즘
- pygraphviz 설치 오류
- Data HAzard
- linux makefile 작성
- gcc 컴파일
- Design DNN Accelerator
- pytest-pythonpath 설치 오류
- 컨벌루션 연산
- CLOCK GATING
- pyverilog 설치 오류
- DNN 가속기
- Pyverilog 실행
- 클럭 게이팅
- linux c 컴파일
- Pyvrilog tutorial
- Pyverilog 튜토리얼
- systolic array
- 데이터 해저드
- CUDA
- 딥러닝 가속기
- makefile
- CDC
- Today
- Total
목록Language (22)
오늘은 맑음
대학교 2학년 때 공부했던 자료구조와 알고리즘을 다시 한 번 공부해볼까 합니다. 알고리즘과 자료구조는 소프트웨어/하드웨어 엔지니어를 가리지 않고 모두 필요한 기본 소양입니다. 함수와 함수끼리 주고 받는 데이터에 대해 이해하고 -> 모듈과 모듈 사이에 주고받는 데이터에 대해 이해하고 함수에서 데이터를 어떻게 처리할지 정의한다 -> 모듈에서 데이터를 어떻게 처리할지 정의한다 이러한 공통점으로 인해 입사시 보는 알고리즘 테스트는 python/java/c++/c를 가리지 않습니다. 물론 편의성으로 인해 python이 선호되지만 python 역시 여러가지 표현(언어)중 하나입니다. 이러한 점은 verilog hdl 또한 다르지 않습니다. 따라서 더욱 효율적인 시스템을 설계하기 위해 다시 자료구조와 알고리즘 공부를..
오늘은 여전히 헷갈리는 구조체와 구조체 포인터의 멤버 참조 방법에 대해 정리해보겠습니다. 사실 헷갈리면 안되지만 간혹 명확하게 떠오르지 않네요. 앞으로 확실하게 기억하기 위해서 오늘 정리를 해보려고 합니다. C언어에서는 구조체를 사용할 때도 있고 구조체를 가리키는 포인터를 사용할 때도 있습니다. 이 두가지 상황에서 각자 구조체의 멤버변수를 참조하는 방법이 다릅니다. 구조체 구조체는 멤버변수를 '.'를 통해 참조 구조체 포인터 구조체 포인터는 멤버변수를 '->'를 통해 참조 먼저 아래와 같이 구조체와 구조체 포인터 모두 멤버변수를 '.'로 참조해보겠습니다. 이렇게 참조한 후 컴파일을 하면 아래와 같이 메시지가 나옵니다. 포인터이므로 '->'를 통해 참조하라는 에러가 나오네요. 정말 친절합니다. 이제 주석을..
C언어에서 실행파일에 argument를 전달할 때에는 argc, argv를 이용합니다. Python 역시 argument를 전달해서 동작을 수행해야 하는데 그 방법 중 하나로 argparse를 알아보겠습니다. argparse는 import argparse를 통해 사용할 수 있습니다. 파서 만들기 argparse를 import했다면 parser를 만들어주어야 합니다. parser를 만드는 방법으로는 argparse의 ArgumentParser를 이용합니다. ex) parser = argparse.ArgumentParser() Argument Description Default prog 프로그램의 이름 sys.argv[0] usage 프로그램 사용법 파서에 추가된 인자로부터 만들어지는 값 descriptio..
이번에는 이미 적혀있는 파일을 읽어서 수정을 해보겠습니다. 읽을 파일은 이전에 사용했던 Hello Python! Let's learn Python 으로 하겠습니다. 먼저 파일을 string으로 읽고 char단위로 잘라서 list로 반환해보겠습니다. memo.txt를 읽어 read()함수를 이용해서 string으로 반환합니다. 이 memo를 list()함수를 사용해서 char단위로 list를 만들어 반환합니다. 출력해보면 아래와 같습니다. 이제 기본적으로 파일을 읽어서 수정할 준비가 되었습니다. 그럼 하나하나 읽어서 Python이라는 단어를 Verilog HDL로 변경해보겠습니다. 먼저 special keyword를 정의해줍니다. special keyword란 단어를 제외한 나머지를 의미합니다. 예를 들면..
Python으로 폴더 내부의 파일에 접근해보겠습니다. 이번에 사용할 함수는 아래와 같습니다. 함수명 동작 os.isdir('path') path 내의 모든 폴더와 파일을 list형태로 반환 os.path.isdir('path') path가 directory라면 True를 반환. 아니라면 False를 반환 os.path는 폴더/파일의 경로를 다룰 때 주로 사용합니다. 더 많은 함수는 아래의 링크를 참조하시기 바랍니다. main함수는 탐색할 top 폴더의 경로를 가진 top_path를 설정해주고 search_file에서 top_path를 전달합니다. search_file은 path내의 모든 경로를 list로 반환받습니다. 그리고 list의 인자를 확인해서 directory라면 다시 search_file을 수..
접두사, 접미사를 이용해서 문장에서 검색을 해보겠습니다. 사용되는 함수는 아래와 같습니다. 함수명 동작 s.startswith('keyword', start, end) 문자열 s가 keyword로 시작되는지 판별(bool type) 만약 start가 입력된다면 start부터 keyword로 시작되는지 판별 만약 end가 입력된다면 end지점까지 판별 s.endswith('keyword', start, end) 문자열 s가 keyword로 끝나는지 판별(bool type) start와 end는 startswith와 동일 memo에 "Have a nice day!"를 입력하고 startswith와 endswith를 테스트해보겠습니다. 첫 번째는 memo가 Have로 시작되는지 판별합니다. 두 번째는 문자열 ..