Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PH_1_2 #5

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

PH_1_2 #5

wants to merge 3 commits into from

Conversation

ParkHyeon89
Copy link
Collaborator

No description provided.

@ParkHyeon89
Copy link
Collaborator Author

Count.v

UP 버튼을 통해 숫자의 값을 올리고 Down버튼을 통해 숫자를 내리며 초기화Reset버튼을 통해 숫자를 초기 숫자로 바꾸는 기능을 포함하고 있다.
사용할 변수들을 맨 처음 선언을 하며 클릭신호의 입력의 i_clk, 초기화 입력의 i_Rst , 버튼의 신호의 입력의 i_Push , 버튼이 입력된 다면 불이 켜질 수 있는? 출력의 o_LED , 7비트 디스플레이의 출력의 o_FND 로 변수가 선언되어있다,

첫 always@ 내부에는 모듈 실행시 카운터의 수를 0으로 돌리는 코드와 n_cnt를 통하여 현재 카운트의 값을 변경하는 코드가 포함되어 있으며 두번째 always@ 내부에는 입력되는 버튼에 따라 n_cnt의 값을 올리는 코드를 포함하고 있다.

FND.v
입력된 카운트에 따른 숫자를 디스플레이에 표시하는 값이 작성되어있다.

tb_Counter.v

임의의 버튼 입력값을 출력하고 있다..?

변경한 코드 내용
7비트 디스플레이를 추가 하여 1자리 숫자 이상의 수를 카운트 하는 목표를 두고 코드를 수정하여 디스플레이를 추가하였지만, 카운트 가능한 숫자의 증가값은 어느 코드를 수정하면 좋을지 모르겠어 변경하지 못하였다

wire fUp;
wire fDn;

FND FND0(c_Cnt, o_FNDA, o_FNDB);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

하위 모듈인 FND 모듈의 input, output 을 손봤다 그죠? 그럼 상위 모듈에서 호출할 때 input, output도 마찬가지로 손봐야겠다 그죠??

@@ -0,0 +1,37 @@
module FND(i_NumA, i_NumB, o_FNDA, o_FNDB);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FND를 2자리를 쓰기 위한 좋은 접근이였습니다! 하지만 아래 코드 내용이 중복된다 그죠? 같은 내용을 똑같이 반복한다면 코드 낭비가 심해요!

그렇다면 '단일 모듈로 2개 기능 하기' 보다 '같은 모듈을 2개 만들어서 쓰기' 가 코드를 더욱 절약할 수 있겠죠??

Copy link
Collaborator Author

@ParkHyeon89 ParkHyeon89 Oct 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'단일 모듈로 2개 기능하기'와 '같은 모듈 2개 만들어서 쓰기'의 차이점을 잘 모르겠습니다...
제가 이해한 바로는 A란 모듈이 2개 기능하는 것과 A_0, A_1이 각각 기능을 하는 것인데 무슨 차이가 있는 것일까용

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. 내부에 반복되는 코드가 존재하는 모듈 1개
    ex) FND F0(c_Cnt0, c_Cnt1, o_FND0, o_FND1)
  • 한 모듈이 n개의 역할을 함
  • 직관적인 해결방식이지만 코드 수정이 필요할 경우 여러번 수정해야하고 한 눈에 들어오지 않음
  • 코드 길이가 김
  1. 모듈 2개 사용
    ex) FND F0(c_Cnt0, o_FND0)
    FND F1(c_Cnt1, o_FND1)
  • n개의 모듈이 n개의 역할을 함
  • 코드 한 줄만 바꾸면 모든 모듈에 대해 수정 가능하고 한 눈에 들어옴
  • 코드 길이 짦음

의 차이 입니다

output wire [6:0] o_FNDA;
output wire [6:0] o_FNDB;

reg [3:0] c_Cnt, n_Cnt;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FND가 0번, 1번이 따로 있고 두 부분에 들어가는 숫자가 다르다면 Cnt 값도 2개 있어야 겠죠?

오늘 스터디에서 했던 fLstCnt, fIncCnt를 잘 활용해보면 금방 할 수 있을 거예요!

@yuyu0830
Copy link
Collaborator

yuyu0830 commented Oct 9, 2024

작성된 코드는 잘 분석 했습니다! 아직 새로 코드를 짤 때 너무 신중한 것 같아요.. 실패하고 틀려도 되니까 과감하게 도전해보고 좀 더 적극적으로 물어봐도 됩니다 ㅎㅎ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants