IT/ASIC | FPGA 2024. 2. 15.
Verilog 기초 - case 문
Verilog 기초 문법과 관련된 것도 하나씩 정리해 보자. 오늘은 case 문이다. if 문과는 다르게 병력적으로 우선순위 없이 생긴다는 장점이 있다. 반드시 우선순위가 필요하다면 if else 문을 사용해야 하며, 같은 조건에서 mux 하는 로직 같은 경우에는 case 문을 활용하면 된다. 아래 문법과 예제는 다음 사이트에서 참고하였다. https://vlsiverify.com/verilog/case-statement/ Case 문법 기본 문법은 다음과 같다. case() : : : : begin ... ... end default: endcase 사실 예제로 보는 게 가장 낫다. Case 예제 module case_example; reg [2:0] data; always @(data) begin c..
IT/ASIC | FPGA 2024. 2. 13.
Xilinx Vivado - 다운로드 및 설치
FPGA 에 프로그래밍 할 수 있는 툴인 Vivado를 다운로드 하고 설치해 보자. 사용자 계정 생성 우선 툴 제공 업체인 AMD 사이트에서 계정을 먼자 만들고 로그인 해야 한다. 계정 생성하는 방법은 AMD 사이트에서 로그인 버튼은 누르면, 아래와 같이 생성할 수 있는 "계정 만들기" 버튼을 볼 수 있다. 클릭해서 생성작업을 해보자. 정보를 입력하고 생성이 완료되면, 꼭 로그인을 하도록 한다. Vivado Download 이제 Vivado 툴을 다운로드 하면 된다. 해당 툴을 다운로드 하는 경로는 아래와 같다. 다운로드 주소https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tool..
IT/ASIC | FPGA 2024. 2. 5.
Verilog - flatten array - 2차원 배열 1차원으로 변환
Verilog 에서 포트로 넘길때 2차원 배열이 되지 않는다는 슬픈 진실이 있네 ㅜㅜ 일단 보통 합성할 때 합성툴에서 다 자동으로 해줄 듯 한데 이를 손으로 해야 한다니 일단 방법은 알아두자고 https://stackoverflow.com/questions/28623819/how-to-flatten-array-in-verilog How to flatten array in Verilog As Verilog does not allow to pass the array as input to module, so how can we flatten any array in Verilog. Suppose I have this array: parameter [31:0] A [0:31]; wire [31:0] B I wan..
IT/ASIC | FPGA 2024. 2. 2.
Xilinx Vivado - FPGA 에 bit 생성해서 올리기 - 보드 테스트
Xilinx Vivado로 만들어지 bit 파일을 이제 실제 FPGA 에 올려서 보드 테스트를 해보자. 이과정도 툴 마다 달라서 일단 정리해 둔다. 먼저 여러 단계를 각각 누르지 말고, "Generate Bitstream" 을 그냥 확 누른다. 즉, 합성, P&R, 구현 다 한꺼번에 수행한다. 코드가 변경되어서 합성부터 구현까지 다시 하겠다는 창이다. 그냥 "Yes" 누르면 진행된다. 얼마나 빨리 하려고 이런걸 묻나 그냥 기본값을 4를 두고 오케이 본격적으로 합성을 수행하고 있음을 알수 있다. "Project Summary" 창에서 보면 현재 진행되는 과정을 볼 수 있다. 에러가 없다는 아래 메시지 창이 등장한다. 이제 다했으니 머할까요? 이런 창이다. FPGA에 bit를 올리기 위해 "Open Hard..
IT/ASIC | FPGA 2024. 2. 2.
Xilinx Vivado - 핀 할당 하기 Constraints 추가
Xilinx Vivado에서 원하는 핀을 할당 하려면 Constraints 파일을 추가해야 한다. 아니면 랜덤으로 막 핀을 Assign 하므로 하드웨어설계도와 맞출 필요가 있다. 참고로, FPGA하드웨어 핀을 선택하기 위해서는 기본적으로 어떤 핀을 뽑아야 할지 처음에는 랜덤으로 돌린 후에 하드웨어 설계를 진행하는 경우가 일반적이다. 아무튼 핀 할당을 해보자. 위의 그림처럼 수정하기를 눌러본다. 새로 만드는 것이므로 과감하게 "Create File"을 누른다. 나타나는 창에 원하는 이름만 딱 쓰고, OK 하면 그럼 다음과 같이 파일이 하나 생성됨을 볼 수 있다. 그럼 왼쪽 트리창에 하나 추가되어 있는데, 아시다시피 빈파일이다. 전구 모양 버튼 "Language Template" 을 누르면 기본 문법 구문을..
IT/ASIC | FPGA 2024. 2. 2.
Xilinx Vivado - FIFO Generator 로 사용자 FIFO 만들기
Xilinx Vivado 툴에서 제공되는 FIFO Generator 로 사용자 FIFO 만들기를 그냥 한번 해보고, 그림을 남겨둔다. FPGA는 참 어찌보면 쉽다. 이렇게 마법사로 FIFO를 원하는 대로 만들어 낼 수 있다니 8비트 UART 송수신용 FIFO가 필요해서 일단 IP 검색에서 FIFO Generator 를 선택하면 더블 클릭하거나 엔터를 치면 아래와 같은 창이 나타난다. 일단, 아무것도 하지 말고 자기가 원하는 이름만 변경하자. 이제 원하는 데이터 비트를 8비트로 변경해 보자. 위의 그림에서 "Native Ports" 라는 부분을 클릭하면, 아래 창이 나타난다. 아무것도 건드리지 말고 Data Port 만 수정하자. Width 를 8 로 변경하고 Tab을 누르면 아래 Read Width도 자..
IT/파이썬 2024. 2. 2.
Pydantic none 오류 처리 방법 - Optional 사용
Django ninja 로 API Schema를 만드는데 None type으로 정희한 부분에서 에러가 발생했다. Null이 들은 필드의 값을 받아오는 Schema에서 기본값으로 None을 주면 Exception이 발생하지 않은 것 같은데 갑자기 발생하네 response.items.1.manager2_position Input should be a valid string [type=string_type, input_value=None, input_type=NoneType] For further information visit https://errors.pydantic.dev/2.6/v/string_type 에러 내용은 대충 이러했다. class ProductInSchema(ModelSchema): note..
IT/Software 2024. 1. 26.
SNMP - 용어 이해와 Arduino C 프로젝트들
SNMP(Simple Network Management Protocol) 는 UDP 기반 프로토콜인데, TCP 처럼 서버 클라이언트 구조를 가지는 형태다. 그냥 서버 클라이언트라는 용어를 쓰면 좋겠는데, 매니저 에이전트 이런 용어를 사용한다. 개괄적인 내용은 아래글에 정리가 잘 되어 있으니 확인해 보고, https://aws-hyoh.tistory.com/179 SNMP 쉽게 이해하기 #1 제 친구 중에 초등학교 교사가 있습니다. 하는 말을 들어보니 예전보다야 학생 수는 줄었지만 돌보고 가르치는 것은 더더욱 어렵다고 합니다. 요즘 같이 교권이 바닥에 추락한 현실에 한창 뛰어 aws-hyoh.tistory.com https://itragdoll.tistory.com/43 [Network] 네트워크용어 - ..
IT/ASIC | FPGA 2024. 1. 25.
Xilinx JTAG – HS2, HS3, Platform Cable USB II
Xilinx JTAG 케이블 종류가 많은데 숫자가 보통 높은걸로 선택하는데 이것은 JTAG HS2 가 호환성이 더 좋은듯 Digilent FPGA 보드를 많이 쓰니, 해당 회사에서 만든 제품으로 알아보자!! https://digilent.com/reference/programmers/jtag-hs2/reference-manual?_ga=2.209894997.1913691520.1700123539-2102363698.1698815413#supported_target_devices Is JTAG-HS2 is compatible with Artix 7 series FPGA? @vertika.s, Yes, it is compatible. You can view the full supported Artix 7 시..
IT/IoT | Hardware 2024. 1. 19.
전자전기 - SCR 제어
전자 전기 SCR 제어 방법에 대해서 알아보다가, SCR이 머야? https://javalab.org/breadboard_thyristor_switch/ 6-4 사이리스터(SCR)를 활용한 스위치 - 자바실험실 택트 스위치를 한번 눌렀다 떼면 LED에 불이 들어옵니다. 스위치에서 손을 떼고 있어도 불은 계속 켜져 있습니다. 스위치를 계속 누르고 있지 않아도 됩니다. 클릭하여 3D 모델링 화면을 회전시켜 javalab.org 사이리스터(Thyristor)는 트랜지스터와 비슷한 기능을 하는 스위칭 소자입니다. ‘사이리스터’를 ‘실리콘 제어 정류기(Silicon-controlled rectifier, 줄여서 SCR)’라고 부르기도 합니다. 정식명칭은 ‘사이리스터’입니다. 완벽한 그림 설명이다. 감탄!! SCR..
IT/리눅스 2023. 12. 21.
60초 안에 Linux 성능 분석하기 - 원본 글 번역
리눅스 성능 분석을 위해 사용하는 명령어를 아래에 레퍼런스 해서 적어두었다. 넷플릭스의 고급 개발자들이 사용하는 명령어도 그냥 일반 적인데, 자세히 결과를 뜯어보고 그중에서 성능분석을 위한 요소를 잘 뽑아 쓰는것 같다. 아무튼 정리해놔야 지식이 되는건 진리이다!! https://netflixtechblog.com/linux-performance-analysis-in-60-000-milliseconds-accc10403c55 Linux Performance Analysis in 60,000 Milliseconds You log in to a Linux server with a performance issue: what do you check in the first minute? netflixtechblog..
IT/Software 2023. 12. 15.
안드로이드 앱 등록하기 - 기본 스토어 등록정보
안드로이드 앱 개발을 했다면 Play console 에 등록해야 한다. 간단하게 절차를 알아보자. - Play console 에 당연히 회원 가입을 먼저해야 한다. (유료이다. 돈이 조금 든다) - 기본 스토어 등록 정보에 앱 이름, 설명을 먼저 등록한다. - 주의 할 점은, 기본값으로 (영어) 로 언어가 설정되어 있고, 설명이나 앱이름도 영문으로 해야한다. 한글로 했더니 오류가 나서 등록이 되지 않았다. - 그런 다음 앱 아이콘과 설명을 위한 그래픽 이미지를 올려야 한다. - 앱 아이콘은 512 x 512px 로 등록해야 한다. - 그래픽 이미지는 1024 x 500px 로 등록 해야 한다. - 이제, 휴대전화 스크린샷, 7인치 태블릿 스크린샷을 등록해야 한다. - 스크린샷은 크기가 320 X 3840..
IT/Web 2023. 12. 12.
Notion 노션 팁 - 프린트 깔끔하도록 pdf 내보내기 팁
Notion 노션 팁 - 프린트 깔끔하도록 pdf 내보내기 팁 곧이 곧대로 A4에 출력한다꼬~, A4로 보통 내보내면 실제로 종이에 글자도 크고 한줄에 몇자 안나온다. 테이블 문제 말고도 그냥 출력할 때 이 팁을 사용하면 좋을 듯~~ 팁의 원본 글은 여기서 https://www.facebook.com/groups/notion.so/posts/677654059363248/ 내용을 정리해 보면, - 아래 그림처럼 노션에서 내보내기할 페이지를 선택하고 우측 상단의 더보기 메뉴를 클릭하세요. - 내보내기 (PDF, HTML, Markdown) 메뉴를 선택하세요. - 내보내기 형식은 PDF 로 선택한다. - 페이지 형식은 A3로 선택한다. 내보내기가 완료되면, pdf 파일을 저장하면 된다. 저장된 pdf 를 열고..