Ch2 업무 9

LIN IP 설계

제가 FPGA 검증을 담당하는 과제의 끝이 보이네요;; 내년 1~2월에 tape out을 한다는데 조금 더 고생을 해야겠습니다!! 라고 생각했던 때가 있었죠;; ^^ 새로운 과제가 시작댓네여 하하//// 엄마 아무래도 전 이 길이 아닌듯해요, 죄송함다 ㅠㅠ 쨋든 새로운 과제가 시작됐는데 저는 차량용 통신인 LIN controller ip 설계를 맡게 됐습니다. 원래는 외주를 맡겨서 검증만 하기로 했는데 검증하다 보니 거의 수정해야 해서 그냥 다시 설계하게 되더라구요;;; ^^ 검증을 하든 설계를 하든 먼저 IP에 대해 알아야겠죠?? 그래서 LIN protocol specification을 꼼꼼히 읽으면서 공부했습니다. LIN이 단순한것 같으면서도 여러 function들이 있더라구요. 공부한 내용들은 아래..

Ch2 업무 2023.11.24

FPGA 검증

반도체 설계는 프로그램이나 어플과 달리 팹아웃을 하면 수정이나 업데이트를 할 수 없어서 여러 번의 검증을 거칩니다. 먼저 RTL 시뮬레이션을 통해 칩에 들어가는 IP들의 function이 제대로 작동하는지 확인합니다. 그리고 FPGA 합성을 해서 실제 물리적으로 잘 작동하는지 확인해야 합니다. 그리고 Synthesis 이후에 Post-sim을 하고 chip이 나오면 chip level test를 진행합니다, Pre-sim은 요즘에 잘 안 한다고 하더라구요. ASIC 설계 flow와 FPGA에 대한 설명은 다른 글에서 자세히 작성하도록 하겠습니다(아직 저도 잘 몰라요;;) 이 글에서는 FPGA 검증의 전체적인 flow만 작성하고 넘어가겠습니다. 쨋든 RTL 설계를 하면 합성을 위해 RTL freeze를 할..

Ch2 업무 2023.09.05

Timing diagram 용 프로그램, wavedrom

Data sheet를 작성하면 Timing diagram을 그려야 하는 경우가 있습니다. 처음에는 엑셀의 테두리 가능을 사용해서 Timing diagram을 그렸는데요, 위 그림과 같이 셀 구분선 때문에 사진 자료로 사용할 수 없습니다. 이럴 경우 엑셀의 옵션에서 구분선을 없앨 수 있습니다. - 엑셀 표 구분선(눈금선) 지우는 방법 먼저 엑셀 옵션에 들어가서 고급 탭을 선택하고 눈금선을 없앨 시트를 선택해서 눈금선 표시를 해제하면 됩니다. - Wavedrom 그런데 엑셀로 timing diagram을 그리면 너무 번거로운데요, wavedrom으로 편하게 그릴 수 있습니다. https://wavedrom.com/ WaveDrom - Digital timing diagram everywhere WaveDro..

Ch2 업무 2023.08.10

Data sheet 작성

진~~짜 오랜만에 업무 파트 글을 쓰는 것 같네요,,,,,, 입사한지 이제 반년이 되었고 지금쯤이면 많이 배웠어야 했는데,,,,, 아직도 모르는게 산더미입니다 ㅠㅠ. 저희 회사가 요즘 정신없이 바쁜데요, 인력이 많지 않음에도 불구하고 과제를 4개나 진행하고 있어서,,,, 저도 과제 1개의 FPGA 검증을 전담하고 있어서(물론 모르는거 많아서 선배의 도움 없이는 아무것도 못하지만) 정신이 없었네요;; OJT 끝나고 나서 했던 일은 회사 ip에 대한 data sheet를 작성하는 일이었습니다. Data sheet는 IP에 대한 세부적인 내용이 담겨있는 사용자 메뉴얼이라고 보시면 돼요. 기능, signal에 대한 설명이 있고 무엇보다 레지스터에 대한 설명이 있어서 매우매우 중요합니다. 어떤 IP을 작동시킬 때..

Ch2 업무 2023.08.10

Time table 추천, 엑셀 간트(XLGantt)

제가 OJT를 시작할 때 이사님이 엑셀 파일을 하나 주시면서 time table로 사용하라고 하셨어요. 너무 편리하고 좋은 기능이 많아서 추천드리려고 글을 작성합니다. 엑셀 간트는 매크로 프로그램이어서 따로 설치가 필요 없습니다. xlsm으로 저장되어서 바로바로 사용할 수 있거든요 제가 사용했던 Time table을 가져와봤는데요, 색깔을 입혀서 설명을 해보겠습니다 업무 이름을 입력하고 노란색 부분에 시작 날짜, 초록색 부분에 마쳐야 할 날짜를 입력하면 빨간 박스에 보이는 것처럼 일정이 자동으로 생성됩니다. 주황색 부분에 일이 몇 퍼센트 진행됐는지 입력해 주면 빨간 박스부분이 자동으로 업데이트됩니다. 간단하게 설명을 드렸는데 자세한 내용은 엑셀웍스 사이트를 참고하시면 되겠습니다. https://xlwor..

Ch2 업무 2023.05.31

OJT 4. FPGA 합성

반도체 설계는 여러 단계를 통해 검증 검증 검증, 또 검증을 반복합니다. 프로그램을 만들거나 앱을 만들어서 출시한 뒤에 뭔가 오류를 발견하면 수정해서 업데이트를 하면 되지만 반도체는 한번 만들고 Fab out 하면 TSMC 같은 팹에서 정해진 수량만큼 생산하는 동안 수정이 안됩니다 ㅎㄷㄷ....... 업데이트가 없어요!! 그래서 시뮬레이션과 waveform 등으로 기능을 검증하고 FPGA로 실제 칩이 어떻게 작동하는지 확인합니다. FPGA는 따로 정리를 해야겠지만 간단히 말하면 수정이 가능한 반도체를 말합니다. 저는 FPGA로 7 segment 작동을 시켜보라는 미션을 받았어요. 0에서 9까지 1초에 1씩 올라가는 걸 반복하는 동작을 하는데, start를 누르면 시작하고 stop을 누르면 멈추고 rstn..

Ch2 업무 2023.05.31

OJT 3. SOC integration

OJT 2 Testbench 작성을 통해 verilog 코딩방법과 여러 IP들에 대해 공부했습니다. 다음으로는 저희 회사 프로젝트 중 하나에 참여해서 간단한 업무를 했는데요, 바로 integration입니다. ARM같이 자체 IP를 만드는 회사도 있지만 저희 회사는 고객사의 요청을 받아 SOC platform을 설계하는데요, 설계하려는 칩의 spec에 맞는 IP를 사서 칩으로 만드는 작업을 합니다. 반도체 설계 flow는 나중에 따로 정리하겠습니다. 그래서 제가 작업한 부분을 살짝 보여드리면 굉장히 간단한데요 AHB 버스와 APB 버스가 bridge로 연결되어 있고 각각의 APB 버스에 여러 가지 peripheral들이 달려있는 구조입니다. 저는 APB0 부분을 맡았는데요, verilog 코딩 자체는 어..

Ch2 업무 2023.05.30

OJT 2. testbench 작성

1. Checklist 작성 어떤 모듈에 대한 test를 하려면 먼저 체크리스트를 작성해야 합니다. I2C standard에도 나와있는데 Standard-mode, Fast-mode, Fast-mode Plus를 지원한다고 하네요. 모듈에 timing 세팅하는 레지스터가 있는데요, 내가 설정했던 대로 제대로 작동하는지 확인해야겠죠? 마스터모드, 슬레이브모드 설정가능하고 7-bit / 10-bit address mode 확인해야 합니다. (DMA는 아직 몰라서 넘김,,,,) 그리고 모듈의 레지스터들의 기본값이 제대로 읽히는지, Writeable 한 경우 입력한 대로 값이 설정되는지 확인해야 합니다. 마지막으로 제 숙제였던 Data Loopback test로 마무리했어요. 2. Block diagram 그리..

Ch2 업무 2023.05.17

OJT 1. Study ~ 2. testbench 작성 시작

2월 초에 입사하고 한 달 동안은 공부만 했어요. 반도체 설계 flow, CPU 작동, Bus Architecture, Memory, Peripheral을 주제로 공부했고 3월 초부터 실제적으로 Verilog를 쓰기 시작했어요. 공부했던 거는 나중에 Ch1에 정리하려고 합니다. 처음 받은 숙제는 I2C 컨트롤러의 testbench를 작성하고 시뮬레이션을 돌려보는 거였는데 시작부터 문제가 생겼죠. 아니, 나는 verilog는커녕 C언어도 모르고 리눅스도 안 써봤는데 갑자기 testbench를 짜서 시뮬레이션을 돌려보라고?? 우선 리눅스를 쓰는 이유는, verilog로 RTL 설계를 하고 Synopsys나 Cadence 사의 EDA 툴을 통해 합성을 해야 돼요. 근데 그 툴들이 다 리눅스 환경 기반이기 때문..

Ch2 업무 2023.05.16