작성
·
51
1
안녕하세요 🙂
[1. 질문 챕터] : HDL 34장
[2. 질문 내용] :
안녕하세요! 강의 너무 즐겁게 잘 수강하고 있습니다.
강의를 듣던 중 예외처리와 관련하여 궁금증이 생겨서 질문 남기게 되었습니다.
강의 내용 중 pos_x + width 가 1920 보다 커질 경우 존재하지 않는 영역에 대한 픽셀 값을 불러오게 되는데,
이렇게 세팅되지 않도록 하드웨어 차원에서 예외처리를 해야하나요?
다른 IP를 설계하면서도 생길 수 있는 모든 상황에 대한 예외처리(안정성)을 하드웨어 설계 차원에서 수행해야하는지, 현업에서는 어떻게 해결하는지 궁급합니다!
항상 좋은 강의 감사합니다.
[3. 시도했던 내용, 그렇게 생각하는 이유] :
이전에 divider 를 설계했던 경험이 있는데, 그때 0으로 나누는 경우에 대한 예외처리를 HW에서 해야하는지, 해당 IP를 사용하는 User가 SW에서 그러한 입력이 생기지 않도록 막아야하는지 의문이 있었는데, 의문을 해결하지 못하였었습니다. 이번 강의를 듣다가 다시 문득 의문이 들어 질문하게 되었습니다.
답변 2
0
안녕하세요 🙂
여러가지 방법이 있을 것 같은데요.
검증 차원에서는 assertion 이 발생할 수 있도록 추가를 하면 좋을 것 같고요.
Driver 단에서는 말씀해주신대로, SW 의 입력을 막는 방법도 있고요. 그럴려면.. 문서에 잘 적혀있어야하는데, 이런방법은 IP 설계하는 입장에서는 추천드리지는 않아요.
HW 설계 입장에서 overflow 의 처리 방법을 별도로 규정해서 구현하면 될 것 같아요.
예를들어서 overflow 발생시
clipping (max 값으로 치환)
0 으로 순환.
등등 이 있을 것 같아요.
즐공하세요!
0
안녕하세요, 인프런 AI 인턴입니다.
tyty09171007님, 반도체 관련 질문 감사드립니다.
하드웨어 설계에서는 예외처리를 어떤 방식으로 해야 할지는 설계하는 시스템의 안정성과 견고성에 크게 의존합니다. 예를 들어, pos_x + width
가 1920을 초과해 존재하지 않는 영역의 픽셀 값을 불러오는 경우, 하드웨어 수준에서 이러한 예외를 처리하는 것은 시스템의 안정성을 높이는 방법 중 하나입니다.
현업에서는 다음과 같은 방법으로 예외처리를 수행할 수 있습니다:
1. 하드웨어 차원에서의 예외처리: 특정 범위를 넘어서지 않도록 추가적인 로직을 하드웨어에 구현하여 예외 발생을 방지합니다. 이 방식은 시스템의 안전성과 신뢰성을 높이지만, 복잡성과 자원 사용량이 증가할 수 있습니다.
주로 하드웨어의 예외처리는 복잡한 계산이나 외부 신뢰성 요구사항이 높은 시스템에서 많이 적용되며, 소프트웨어 측에서의 예외처리는 유연성이 필요한 시스템에서 쉽게 접근할 수 있는 방법입니다.
예를 들어, 이전에 divider를 설계할 때 0으로 나누는 예외 처리는 하드웨어 수준에서 Zero Division
로직을 추가해 방지할 수 있고, 사용자 소프트웨어 측에서 입력을 검열하여 그런 경우가 발생하지 않도록 하는 방식으로 나누어 처리할 수도 있습니다.
이러한 예외처리 방법은 어느 정도의 자원과 복잡성을 허용할 수 있느냐에 따라 결정됩니다. 설계자의 의도와 시스템의 특성에 따라 적절한 선택을 해야 합니다.
항상 좋은 학습 되시길 바랍니다! 😊
답변 감사합니다!