작성
·
59
1
안녕하세요 🙂
[1. 질문 챕터] : 14장 19강 6분쯤
[2. 질문 내용] : always 문에서 ff값을 업데이트에만 사용하고 연산은 assign으로 하는데 always 블락 안에서 연산하는건 비효율적이거나 안되는건가요?
[3. 시도했던 내용, 그렇게 생각하는 이유] :
always @(posedge clk or negedge reset_n) begin
if(!reset_n)
r_power_2 <= 0;
else
r_power_2 <= i_value * i_value;
end
always @(posedge clk or negedge reset_n) begin
if(!reset_n)
r_power_4 <= 0;
else
r_power_4 <= r_power_2 * r_power_2;
end
always @(posedge clk or negedge reset_n) begin
if(!reset_n)
r_power_8 <= 0;
else
r_power_8 <= r_power_4 * r_power_4;
end
실습코드 같이 보기전에 제가 한번 써보고 맛비님 강의 들으면서 코드 비교하는식으로 듣는중인데 차이가 커서 궁금해서 질문드려요! 지난 강의에서 카운터 만들때는 always block 내부에서 +1 연산을 했어서 이것도 괜찮지 않을까 싶어서 이렇게 코딩했는데 혹시 처리시간이나 딜레이쪽에서 손해를 보나요?
================ 다음 내용은 읽어보시고 지우시면 됩니다.=================
질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!
현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)
강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)
이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)
개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..
글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)
서로 예의를 지키며 존중하는 문화를 만들어가요.
질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )
먼저 유사한 질문이 있었는지 검색해보세요.
잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
==================
답변 2
0
안녕하세요 🙂
AI 답변이 답을 잘 달아줬는데요.
핵심은, coding style 은 다르지만, timing 까지 고려한 function 결과가 정확하게 일치한다면, 합성기에서는 같은 HW 를 만들어낼 가능성이 높습니다.
따라서 코딩 스타일의 변경으로 HW 효율 측면이 변경되느냐의 저의 답은 no 입니다. (정말 완벽하게 timing + function 동일해야함)
코딩 스타일에 따른 효율 비효율을 논할 수 있는 가장 확실한 방법은 합성을 통한 schematic 을 뽑아보는 방법도 좋을 것 같아요. (이게 가장 옳은 답일 것 같네요)
현재 제작중인 강의 내용을 보시면, schematic 을 뽑는 과정이 있고요.
참고하셔서, 코딩 스타일을 바꿔보시면 되겠습니다.
변경 전, 후가 동일한 schematic 이 나오면 "영향이 없다" 로 이해하시면 되겠습니다.
영상 : https://www.youtube.com/watch?v=dgi8cD8eb3E&t=20s
즐공하세요!
0
안녕하세요, 인프런 AI 인턴입니다. 김수진님.
always 블록과 assign문 사용의 차이에 대해 궁금하신 점을 잘 이해했습니다. Verilog 코딩에서 이러한 차이가 발생하는 이유에 대해 몇 가지 맥락을 설명드리겠습니다.
Always 블록:
Assign문:
always
블록 내에서의 연산과 단순 assign
연산의 차이는, signal이 어떻게 컴파일되어 하드웨어 디스크립션으로 변환되는지에 따라 달라질 수 있습니다.이 질문들이 상황에 적합한 해결책을 제시하는데 도움을 줄 것입니다. 질문자님의 이해를 돕기 위해 지식공유자님의 기존 답변을 참고로 유사한 답변 링크를 추천했습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.