본문 바로가기

Digital Design42

[SoC] DMA Controller Direct Memory Access Controller에 대해 공부해볼까 합니다. AMBA Protocol을 공부하면서 알게된건데 DMAC가 꽤 많이 언급이 되더라고요 AXI기반 DMAC ~~ 이런 자료를 많이 봐서 저게 뭔지 궁금해졌습니다. SoC를 공부하시다보면 이런 그림을 몇 번 보셨을 겁니다. 그림을 보면 대충 CPU와 정보를 주고받고, 메모리에 R/W를 하는 것 같이 생겼습니다. CPU가 맨날 메모리에 접근하면 낭비되는 시간이 많으니까, 컨트롤러가 도와주는게 아닐까 하는 추측을 할 수 있습니다. 이번 게시물을 IDEC에 올라온 강의를 참고했습니다. 기안도 교수님의 AMBA Protocol 강의인데, 개인적으로 IDEC에서 들은 강의 중 가장 좋았습니다. 동영상 강의인데 코드도 제공하고 강의노트.. 2023. 3. 6.
[AMBA] AXI Protocol 설계(Verilog) - ④ Simple AXI Slave 정리 들어가기 앞서... " AXI는 말 그대로 Interface이기 때문에 실체라고 할게 딱히 없습니다. Master와 Slave를 연결하는 Bus의 규격을 ARM에서 정해놓은 것인데요, 저와 같은 학부생들은 Master와 Slave를 구하기 어렵습니다. BFM(Bus Functional Model)을 짜서 Bus의 동작을 시뮬레이션해도 되지만 그건 조금 어려워서 아직 공부 중 입니다. 그래서 제멋대로 AXI Slave를 Verilog로 짜보겠습니다. 목적은 오로지 AMBA를 복습하고 기능을 직접 확인해보기 위함입니다! " 조금 더 공부한 후에 정확한 코드를 올려보겠습니다. 앞서 3개의 게시물을 통해 AXI Protocol에 대해 알아보았습니다. Signal Description: https://metast.. 2023. 2. 26.
[AMBA] AXI Protocol 설계(Verilog) - ③ Read Transaction 들어가기 앞서... " AXI는 말 그대로 Interface이기 때문에 실체라고 할게 딱히 없습니다. Master와 Slave를 연결하는 Bus의 규격을 ARM에서 정해놓은 것인데요, 저와 같은 학부생들은 Master와 Slave를 구하기 어렵습니다. BFM(Bus Functional Model)을 짜서 Bus의 동작을 시뮬레이션해도 되지만 그건 조금 어려워서 아직 공부 중 입니다. 그래서 제멋대로 AXI Slave를 Verilog로 짜보겠습니다. 목적은 오로지 AMBA를 복습하고 기능을 직접 확인해보기 위함입니다! " 조금 더 공부한 후에 정확한 코드를 올려보겠습니다. 이번 글에선 AXI Protocol에서 Read Transaction을 살펴보겠습니다. 먼저 채널이 응답하는 순서를 알아야 합니다. 순.. 2023. 2. 26.
[AMBA] AXI Protocol 설계(Verilog) - ② Write Transaction 들어가기 앞서... " AXI는 말 그대로 Interface이기 때문에 실체라고 할게 딱히 없습니다. Master와 Slave를 연결하는 Bus의 규격을 ARM에서 정해놓은 것인데요, 저와 같은 학부생들은 Master와 Slave를 구하기 어렵습니다. BFM(Bus Functional Model)을 짜서 Bus의 동작을 시뮬레이션해도 되지만 그건 조금 어려워서 아직 공부 중 입니다. 그래서 제멋대로 AXI Slave를 Verilog로 짜보겠습니다. 목적은 오로지 AMBA를 복습하고 기능을 직접 확인해보기 위함입니다! " 조금 더 공부한 후에 정확한 코드를 올려보겠습니다. AXI Protocol의 Write Transaction은 세 가지 채널을 사용합니다. Write Address Channel Writ.. 2023. 2. 24.
[AMBA] AXI Protocol 설계(Verilog) - ① Signal Descriptions 이번에는 Verilog로 AXI Protocol의 동작을 확인해보려고 합니다. ARM사의 AMBA AXI datasheet를 참고했습니다. AXI는 말 그대로 Interface이기 때문에 실체라고 할게 딱히 없습니다. Master와 Slave를 연결하는 Bus의 규격을 ARM에서 정해놓은 것인데요, 저와 같은 학부생들은 Master와 Slave를 구하기 어렵습니다. BFM(Bus Functional Model)을 짜서 Bus의 동작을 시뮬레이션해도 되지만 그건 조금 어려워서 아직 공부 중 입니다. 그래서 제멋대로 AXI Slave를 Verilog로 짜보겠습니다. 목적은 오로지 AMBA를 복습하고 기능을 직접 확인해보기 위함입니다! 오늘은 Master가 전송하는 신호를 Testbench에서 직접 넣어주도록.. 2023. 2. 24.
[SoC] FIFO (Design with Verilog) 오늘은 FIFO (First In First Out)에 대해 알아보고 Verilog로 설계해보려고 합니다. FIFO는 직역하면 '선입선출'로 일상생활에서도 많이 들어보셨을 겁니다. 회로에서는 데이터를 buffer하기 위해 사용하곤 합니다. Circular Buffer FIFO 그림처럼 33, 15, 137, 11, 60, 94를 넣으면 똑같이 33, 15, 137, 11, 60, 94 순으로 데이터를 빼는 구조입니다. FIFO는 address가 따로 없기 때문에 순서대로 넣고 순서대로 데이터를 뺍니다. 자주 사용하는 FIFO는 Circular Buffer FIFO인데 순환하는 구조로 생각하시면 됩니다. Shift register를 이용해서 번지 수를 한칸 씩 이동시켜서 마지막 번지에서 빼는 것도 좋겠지만.. 2023. 2. 11.
[AMBA] APB Protocol 설계 (Design with Verilog) 오늘은 AMBA2.0의 APB Protocol을 Verilog로 설계해보려고 합니다. APB Protocol 이론은 다음 게시글을 참고해주세요. APB: https://metastable.tistory.com/39 APB는 Bus입니다. APB를 기반으로 Master와 Slave를 효율적으로 연결할 수 있습니다. APB Protocol을 확인하려면 Master와 Slave를 만들어서 잘 연결이 되는지 확인하면 되는데요, 처음부터 Master와 Slave까지 설계하는 것은 어렵습니다. 따라서 오늘은 간단한 Slave만 만들고 input signal은 testbench에서 넣어주는 식으로 진행하겠습니다. Slave안에 SFR을 만들어서 거기에 데이터를 읽고 쓰는 작업을 수행해보겠습니다. Verilog Cod.. 2023. 2. 9.
[AMBA] AXI (Advanced eXtensible Interface) 오늘은 AMBA protocol 중 3.0 버젼의 AXI에 대해 알아보려고 합니다. ARM이 제공한 AMBA3.0 datasheet를 보면서 설명드리겠습니다. 다른 AMBA protocol은 이전 게시글을 참고해주세요. APB: https://metastable.tistory.com/39 AHB: https://metastable.tistory.com/40 시작하기에 앞서 AXI (Advanced eXtensible Interface)는 확장 가능한 인터페이스를 뜻합니다. About AXI AMBA AXI Protocol은 high-performance, high-frequency를 지원합니다. AXI을 사용하면 어떤 점이 좋을까요? High-bandwidth 그리고 Low-latency를 가진 desi.. 2023. 2. 8.