본문 바로가기

분류 전체보기85

[쉘 스크립트] 문자열 자르기 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.
[verilog] $signed casting logic count 기존에 사용해봤던 $signed 동작이 얼마나 chip에 많은 영향을 미치는지 확인해봅시다 해당 포스트는 FPGA 기반으로 한거라 정확하지는 않지만 이렇구나 정도만 알고있으면 될 것 같습니다. 우선 단순 +/- 연산을 아래와 같이 case1, case2로 나누어서 설계합니다.(주석은 무시....) case1은 부호를 따로 처리하는 unsigned 형식으로 설계, case2는 부호를 한번에 처리하는 signed로 설계했습니다 이걸 아래와 같이 한번에 돌리기 위해 이렇게 설계해서 돌리면 아래와 같은 FPGA 결과를 보여주는데요 signed로 casting 한게 더 좋게 보입니다. 하지만 현재 적용중인 code에서 연산 bit를 10bit씩 늘려주면 아래와 같이 바뀌는데요 이 결과를 보면 어떤게 무조건 적게 .. 2021. 1. 26.
[verilog] $signed casting 사용 verilog를 사용하면 수많은 신호들을 선언하게 됩니다. 일반적으로 아래와 같이 선언을 하게 되면 신호들은 unsiged type으로 취급이 됩니다.(제 경험상 그렇더군요... 틀렸으면 댓글 부탁합니다) 위의 신호는 0~511까지의 값을 가지는 register가 되는 겁니다. 만약에 아래와 같이 선언을 하게 될 경우 같은 bit이지만 -를 표현할 수가 있게됩니다. 값의 범위는 -256~+255 까지 표현이 가능합니다. 예전에 signed arithmetic 포스팅에서 잠깐 언급했지만(저도 틀렸을수도 있어요...배우면서 포스팅중입니다) leehc257.tistory.com/8 signed arithmetic verilog 하면서 제일 헷갈리는게 signed arithmetic 인거같다 ​ 매번 할 때 마.. 2021. 1. 26.
[verilog] hardware realtime DCT DCT같은 수식도 LUT(Look Up table)로 구현할 수도 있지만 실제 연산을 통해서 구현할 수가 있습니다 verilog에서 어떻게 구현이 가능한지 정리를 해보겠습니다 1. DCT 수식 우선 dct는 아래와 같은 수식이라고 하며 cosine 함수의 조합으로 적용을 합니다 아래와 같이 2-dimension 수식에서 필요한 dimension만 추출 할 경우 1-dimension 처리가 가능합니다 2. DCT 구현을 위한 SW 검증 이번에 구글링하면서 정말 힘든게 이게 dct도 정확히 모르고 그냥 무작정 찾은 것도 있었지만 대부분 아래와 같은 그림만 주구장창 나와서 이해하는데 한참 걸렸습니다 해당 논문은 dct를 hardware로 구현하는 방식은 무수하게 많은데 compelxity를 고려하여 여러가지 .. 2021. 1. 26.