베릴로그 BCD업,다운카운터
- 최초 등록일
- 2018.09.09
- 최종 저작일
- 2018.03
- 14페이지/ MS 워드
- 가격 1,000원
목차
없음
본문내용
1-digit BCD Counter 소스코드
inc연산일 땐 Q가 9일땐 Q를 0으로 설정하고 아니라면 Q값을 하나 증가시켜줌.
dec연산일 땐 Q가 0일땐 Q를 9로 설정하고, 아니라면 Q값을 하나 내려줌.
TCup,TCdown 부분을 순차회로로 설계할 시 한 클럭이 지나고 그제서야 값이 반영되므로 값이 한 클럭 뒤로 나오는 현상이 있음.
따라서 TCup,TCdown 부분을 처리할 땐 순차회로가 아닌 조합회로로 설계함.
<중 략>
인스턴스 호출 부분 소스코드
U1에서 inc,dec 부분을 tc1up, tc1down으로 전달해서 증가연산인지, 감소연산인지 알 수 있게함. 만약 tc1up이 1이고 이 값이 U1의 매개변수로 들어가면 그땐 Q1값이 90으로 바뀌게 될 것임.
tc1down이 1이고 이 값이 U1의 매개변수로 들어가면 그땐 Q1값이 09로 바뀌게 될 것임.
<중 략>
Q1 : 십의자리
Q0 : 일의자리
10 ns : rstn이 0이므로 Q, TCup, TCdown 값이 모두 0. Q값이 0으로 초기화되면 Q0, Q1도 0으로 설정됨.
30 ns : rstn이 1이면 상승에지때 새로운 값이 반영됨. dec==1 이므로 00 -> 99 값이 변경됨.
50 ns : inc==0, dec==0이므로 상승에지때도 99값이 그대로 유지됨.
70 ns : inc==1 이므로 상승에지때 99 -> 00 값이 변경됨.
90 ns : inc==0, dec==0이므로 상승에지때도 00값이 그대로 유지됨.
110 ns : inc==1 이므로 상승에지때 00 -> 01 값이 변경됨.
130 ns : inc==0, dec==0이므로 상승에지때도 01값이 그대로 유지됨.
<중 략>
14ns ~ 30ns : Q1(십의자리)값을 0에서 9로 해줘야 하므로 09로 될 때까지 TCdown 값을 1로 설정해서 U1 인스턴스의 매개변수로 전달 해줄 수 있게함. 조합회로이므로 클럭에 상관없으며 Q1이 0이고 dec가 1이 된 순간 Q1값이 바뀔때까지 TCdown이 1로 설정됨.
참고 자료
없음