본문 바로가기

Digital Design/SoC17

[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.
[AMBA] AHB (Advanced High-Performance Bus) 이번에 다룰 주제는 AMBA 2.0의 AHB (Advanced High-Performance Bus) 입니다. ARM이 제공한 Datasheet를 이용해 설명하도록 하겠습니다. 이름처럼 APB보다는 Performance가 뛰어난 Bus Protocol입니다. APB와 겹치는 부분은 APB 게시글을 참고해주세요! AMBA 2.0 APB: https://metastable.tistory.com/39 AHB Interconnection APB는 하나의 Master가 여러 Slave에 연결되어 있는 반면, AHB는 여러개의 Master가 여러개의 Slave에 연결되어 있습니다. Master와 Slave가 연결 될 때 Bus를 타고 신호를 전송합니다. 이때 여러개의 M/S가 신호를 주고받으면 충돌이 일어나겠죠? .. 2023. 2. 6.
[AMBA] APB (Advanced Peripheral Bus) ※ 본 게시글의 그림 저작권은 ARM사에 있습니다. 앞으로 AMBA Bus Protocol을 하나하나 설명할 예정인데요, 오늘은 그 중 가장 간단한 APB로 시작하겠습니다. APB (Advanced Peripheral Bus) APB의 장점 Low power Low cost Low complexity APB의 단점 Low bandwidth Non pipelined APB Signals 우선 모든 signal들은 APB의 P를 앞에 붙여줍니다. PADDR은 APB의 Address Bus를 전송합니다. PSELx는 어떤 slave device를 선택할 지 결정합니다. PWRITE는 읽을 지 쓸 지 결정합니다. (1이면 Write, 0이면 Read) PWDATA는 write data로 쓸 data를 보냅니다... 2023. 2. 6.