답변 감사합니다. 만약 드레인 전압(Vd) 이 빠르게 변한다면 커패시터 충전 전류는 i = C ⋅ dV/dt 라 Cgd, Cgs에 전하가 축적되어 MOSFET Self Turn-on이 될 수 있다고 이해했습니다. 그런데 하단 스위치가 빠르게 ON이되어 스위칭 노드가 GND 근처로 떨어지면 Vd도 같이 변하는지에 대해 이해하지 못했습니다. 상단 MOSFET의 드레인엔 모터에 공급되는 전압을 인가할텐데 왜 드레인 전압이 변하는건가요?
답변 감사합니다. 코드에서는 FIFO에 ARLEN만 넣어줘서 의문이 생겼는데 이제야 좀 이해가 가는거 같아요. 메모리도 AXI4 I/F를 사용하기 때문에 MOR 지원이 되니까 AR hand shake가 발생하면 FIFO에 다음 읽어올 burst len만 넣어주는 거 같네요. 맞을까요? 근데 추가로 궁금한 점이 생기는데요. 같은 질문이긴 하지만 컨트롤러를 통해 DMA 설정을 만약 0x20000000번지에서 128 byte read (1) 0x2000c000번지에서 128 byte read (2) 이것도 MOR이 될까요? (1)의 작업이 실행 중이라면 Module FSM의 상태가 S_RUN일텐데 이 때 (2) 작업에 대한 DMA 설정이 r_real_base_addr과 r_num_total_stream_hs가 사용자가 입력한 값으로 업데이트가 되지 않을 것 같아서요. matbi_rdma.v, code line 272-280, code line 326-334에 코드를 참고했습니다.
32장-2부 AXI4-Lite I/F - 실습편 12분 40초 쯤에 언급한 내용입니다. AWADDR과 WDATA 둘 다 input인 것 같은데 WDATA가 output이라는 말이 잘 이해가 안되네요. AWADDR과 마찬가지로 WDATA도 핸드쉐이크 이후에 변경 가능성 때문에 래치를 하는게 맞지 않나라는 생각입니다. state RESET은 아래 그림을 말한겁니다. 저는 WRRESET의 상태가 왜 필요한지 잘 모르겠습니다. 확인 부탁 드립니다. 감사합니다.
잘못 이해하고 있던 것 같습니다. 저는 combinational logic인 ready 신호에만 F/F을 연결하면 안되나 싶었습니다. 그런데 이러면 ready 신호는 F/F 때문에 1 cycle 딜레이가 될거고 결과적으로 이러면 m_ready가 되지 않았는데 딜레이된 ready 신호 때문에 데이터가 전송되는 불상사가 발생할 것 같네요.
감사합니다. 그런데 의존하는 대상이 바뀌어도 기존 코드에 영향이 없으려면 추상클래스를 의존하고 있어야 의미가 있을 것 같은데 맞을까요? 아래의 코드처럼 MessageSender라는 추상클래스에 의존하도록 하고 생성자나 메소드로 SmsSender나 AlimtalkSender를 인자를 받도록 해야 의존하는 대상이 변경되어도 코드 수정이 없을 것 같아서요. 처음 예시에서 SomeService가 SmsSender를 가지고 있고 의존 주입으로 생성자나 메소드로 SmsSender를 초기화한다 하면 요구사항이 변경되어 AlimtalkSender로 변경됬을 때 결국 코드가 수정되어야 하니까요.. 제가 이해하고 있는게 맞나요? class SomeService { //private AlimtalkSender sender = new AlimtalkSender(); // sender = sender; } void doSome() { ... // DB 연동 등 작업 sender.send(to, msg); } }