본문 바로가기

language68

[systemC] image 입력받기 기존 verilog와 마찬가지로 image를 hex raw data로 변환시켜 입력을 받는 함수를 만들었습니다. 학부 때 이후로 C++을 건드리지 않았더니 문자열, 포인터에서 엄청 고생했습니다..... 우선 기존에 쓰던 lena.hex 파일을 parsing 받는 방식을 아래와 같이 했습니다. 제가 작성한 방식보다 더 좋은 방식을 찾아보려고 했으나, std함수나 vector에 너무 어색해서 아직은 사용은 못했습니다. 그리고 궁금한점은 lena.hex의 총 row는 400개에 RGBhex값을 보면 6개인데 arrays_size가 400*6이 아닌 400*8을 해야되더라구요... \0을 포함하더라고 400*7일것 같은데.... 아래는 최종 R값만 뽑아봤는데 잘 나오는 것을 확인 하였습니다. 이제 기존 de_i.. 2021. 5. 19.
[systemC] display sync signal gen 기존에 포스팅했던 내용을 기반으로 동일한 신호를 systemC를 이용해서 만들어 보겠습니다. https://leehc257.tistory.com/18?category=896295 [verilog] image 입/출력 설계 입력 받은 이미지를 verilog에서 영상 신호에 맞춰 뽑아주는 module을 설계해보려 합니다 1. image RGB channel 우선 우리가 알고 있는 이미지는 각 위치에 R, G, B값을 가지고 있으며 application 마다 다르겠 leehc257.tistory.com 저번에 습득했던 module을 만드는 것을 이해했으면 위의 신호를 만드는 건 문제가 없을 것 같네요 이런 sync_gen module을 만들고 이를 instance로 호출하여 wiring만 아래 처럼 잘해주면 .. 2021. 5. 19.
[systemC] module instance(SC_METHOD, SC_THREAD, SC_CTHREAD) 기존 verilog로 설계할 때와 마찬가지로 System 에서도 동일하게 필요한 module 별로 설계하여 필요한 곳에 instance로 삽입이 가능합니다. 아래처럼 clock을 이용하여 reset을 만들어내는 module을 driver, driver에서 생성한 신호를 이용하여 counter를 만들어내는 module을 sync_gen 이라고 하였을때 이 2가지 module을 top module에서 instance로 불러오고 필요한 신호를 assign 해주면 됩니다. 이렇게 설계를 하면 아래와 같은 신호 파형이 나오게 됩니다. 저도 공부중인데 systemC에서는 member function을 constructor에서 호출할 때 SC_METHOD, SC_THREAD, SC_CTHREAD이렇게 3가지로 나누어.. 2021. 5. 16.
[C ++] shallow copy vs deep copy 1. shallow copy - 원본 객체를 바탕으로 새로운 객체를 생성한후 새로운 객체가 원본객체의 필드를 바라보는 형태 - 같은 객체를 공유하기 때문에 한 쪽만 바꾸어도 양쪽의 data가 동시에 바뀌는 단점 - 메모리에 대한 비용 절감 가능 2. deep copy - 원본 객체를 바탕으로 새로운 객체를 생성한후 새로운 객체의 필드를 새로 만들어주는 형태(원본을 바라보지 않음) - 완전 다른 메모리에 할당이 되어 있기 때문에 한 쪽을 바꾸어도 변경되지가 않음 - 메모리는 절감이 되지 않은채로 2배 늘어남 이 concept은 Systemverilog나 Python 등 모든 program 언어에서 동일한 concept으로 되어 있습니다. 2021. 5. 8.
[System C] 환경 구축하기 기존에 글을 올린 것처럼 집에서 System C를 study하기 위해 준비 중에 있습니다. 우선 이 책을 사서 한 번 다 읽어 보았습니다. 뒷 부분에는 많은 내용을 이해하지는 못하지만 큰 틀은 "RTL로 구현하기전 architecture를 빨리 구체화 시켜 simulation을 해본다" 라는 의미가 큰 것 같습니다. 시작하기에 앞서 우선 System C를 설치합니다 1. 설치하기 www.accellera.org/downloads/standards/systemc로 이동하여 library 파일을 다운받아줍니다 여기서 맨위의 압축파일을 받아 자신이 원하는 폴더에 압축을 풀어 줍니다. 압축을 풀기 위해 configure를 수행해줘야 하는데 build라는 폴더를 만들어 준 후 아래와 같이 명령어를 칩니다. mkd.. 2021. 5. 7.
[linux] 리눅스 용량 확인 명령어(du) 리눅스에서 하위 디렉토리를 포함한 용량을 확인 할 수 있는 명령어인 du는 아래와 같이 주로 사용합니다 단순히 du 만 사용할 경우 불필요하게 정보를 보여줄수 있어 option을 사용합니다. ■ du 명령어 option du -h 폴더,파일 크기를 KB/MB/GB 단위로 표시(-human readable) du -s 폴더의 전체 사용량만 표시 du --max-depth=N 최대 N번째 하위 폴더까지 표시 ■ 사용 화면 2021. 4. 30.