전체 글24 ㅁㄴㅇㄹ 보호되어 있는 글 입니다. 2023. 10. 3. 2. AXI4_Lite Verilog 설계 [완료] AXI의 write Address와 writeData를 클럭에 맞춰서 정확한 타이밍에 주는게 어려웠던 것 같습니다. 정확한 타이밍을 주기위해서 현재상태를 나타내는 구간, 현재상태에서 값을 주는 구간을 나누어서 만들었습니다. 이 과정에서 Master와 slave를 Axi_Master, Axi_Slaver다른 모듈로 만들었는데 이 두 다른 모듈의 서로의 타이밍을 정확하게 맞추는것이 어려웠습니다. RTL합성을 완료한후 FPGA검증을 위해 Synthsis를 해보았을때 multiple drive가 나와 RTL합성에서 AW_curstate 부분의 값들의 신호들이 다른 AR부분에 들어가있는것을 보아 수정하였습니다. 이 AXI설계를 통해 시뮬레이션을 꼼꼼하게 정확한 타이밍에 내가 원하는 결과가 도출되게 검증하고, 합성.. 2023. 7. 20. 1. [SOC] AXI 4 LITE를 설계해보기 AXI를 설계하게 된 이유는 어떠한 전송장치에서 보내야되는 통신프로토콜이 필요한데 APB, AHB가 있습니다. 이중에 가장 빠르고 크기가 큰 프로토콜을 사용하고 싶기 때문에 AXI를 선택하여 설계를 하기로 계획하였습니다. AXI를 처음보았을 때, 굉장히 복잡한 프로토콜로 보일수 있지만 통신을 계속 보다보니 익숙해졌습니다. System on chip에서 데이터를 전송하는데 중요한 AMBA BUS중에 데이터가크고 속도가 빠른 AXI를 Verilog로 설계해 보겠습니다. AXI 버스는 채널을 이용합니다 - Write Address Channel - Write Data Channel - Write Response Channel - Read Address Channel - Read Data Channel AXI버.. 2023. 7. 18. 3 system verilog) class의 기초, class handle 클래스를 먼저 만들어줍니다. class myPacket; bit [2:0] header; bit encode; bit [2:0] mode; bit [7:0] data; bit stop; function new (bit [2:0] header = 3'h1, bit [2:0] mode = 5); this.header = header; this.encode = 0; this.mode = mode; this.stop = 1; endfunction function display (); $display ("Header = 0x%0h, Encode = %0b, Mode = 0x%0h, Stop = %0b", this.header, this.encode, this.mode, this.stop); endfunction .. 2023. 6. 25. 이전 1 2 3 4 ··· 6 다음