FPGA는 전통적인 반도체 설계 과정과 달리, 쉽고 빠르게 설계를 구현할 수 있는 장점을 가진 디바이스입니다. 디자인 소스만 있으면, FPGA의 논리 요소를 활용하여, 즉시 배치 및 연결이 가능합니다. 또한, 하드웨어적인 성격이 강하기 때문에 코드 역시 복잡하지 않고 직관적으로 작성할 수 있습니다.
중요한 것은 FPGA의 설계 개념과 Flow를 이해하며, 나아가서는 설계 목적과 대상에 대해 이해를 하는 것입니다. 이를 바탕으로 디자인 소스의 구조를 최적화하고, 알맞은 제약조건을 입력해 안정적인 FPGA를 설계하는 것이 핵심입니다.
강의에서는 코딩보다는 FPGA 설계 개념과 구조, 설계 방식 및 Flow를 중심으로 구성되며, Step-by-Step 실습 위주의 내용을 담을 것 입니다. 직접 구현하고 실습하며 노하우를 쌓아가는 것이 FPGA 엔지니어의 핵심이며, 앞으로 AI로 대체될 코딩 보다 더 큰 가치가 될 것입니다.
10+ 경력의 FPGA 및 하드웨어 설계 전문가로, 고속 데이터 처리 및 통신 시스템 설계, 영상 처리 등에 특화되어 있으며, 다양한 FPGA 프로젝트에 참여.
아래 Youtube나 Blog에서 추가적인 정보를 얻으실 수 있습니다.
講義
受講レビュー
投稿
Q&A
RTL
안녕하세요.본 강의는 system-verilog 기반으로 하고 있습니다. 해당 코드를 AI를 이용해서 VHDL로 변환 후, 약간만 수정하면, VHDL 코드도 생성하실 수 있을 것 같습니다. 강의 마지막에 제가 생성한 uart_tx.vhd 파일을 추가시켜 놓겠습니다. 시뮬레이션 해서, 기존 uart_tx.sv 파일과 비교해보시면 좋겠습니다.감사합니다.
- 0
- 1
- 21
Q&A
멀티바이트프레임 로직 예시
먼저, 프레임을 정의해야 합니다.예를 들어, Start Byte(1), Command(1), Address(1), Length(1), Data[0]... Data[Length-1], CheckSum(1), EndByte(1)가 될 수 있습니다. 특정 Address에서 데이터를 읽거나 쓸 때 사용합니다.UART에서 수신 된 데이터에서 Start Byte를 찾습니다.parameter START_BYTE = 8'h7B; always @(posedge clk) begin case (state) IDLE: begin if (rx_data == START_BYTE) state 이후, 설계한 프로토콜에 따라서, Command, Address, Length, Data 값을 각 변수에 저장합니다.parameter START_BYTE = 8'h7B; parameter END_BYTE = 8'h7D; typedef enum logic [2:0] { IDLE, CMD, ADDR, LEN, DATA, CHKSUM, END } state_t; state_t state; reg [7:0] length; reg [7:0] data_index; reg [15:0] checksum_calc; reg [7:0] checksum_recv; always @(posedge clk or posedge reset) begin if (reset) begin state 마지막으로, Checksum을 확인 뒤, 이상이 없다면, 수신한 Command값과 Address, Data에 따라 내부 Register를 설정하거나, 메모리에 데이터를 저장할 수 있습니다.위 예시 코드를 참조하면, 도움이 될 것 같습니다.
- 0
- 2
- 23
Q&A
vivado 설치 관련하여 질문 합니다.
제가 질문을 잘 이해하지 못해서요.Windows가 아닌 리눅스를 사용한다는 뜻인가요? WSL(Windows Subsystem for Linux) 같은?Vivado 실행 메모리가 부족하다는 뜻인가요? 아니면, 특정 디바이스(virtex같은) 사용에 실행 메모리가 부족한 것인가요?
- 0
- 2
- 31