DeleteMe) rename or modify : 일단 ZeroPage 에서 작성했었던 VendingMachine 과는 다른 Spec 이여서 이 위키에서는 맞지 않은듯 합니다. 어떤 분이 작성하신건가요? --1002
설계 사항 ¶
설계하고자 하는 자동 판매기에서 사용 가능한 동전은 50원, 100원, 500원 짜리 3가지이고, 커피 값은 150원이라고 가정한다. 이 자판기는 커피 값 150원 이상의 돈이 입력되면 무조건 커피를 출력하며, 커피 출력 후에 커피값 이하의 잔돈이 남을 경우 잔돈을 반환한다.
입력 변수 ¶
설계하고자 하는 자동판매기의 경우 사용 가능한 동전이 50원짜리, 100원짜리, 500짜리 3가지라고 설정하였음으로 이 회로의 입력은 당연히 50원짜리 동전이 입력되는 경우, 100원짜리 동전이 입력되는 경우, 500원짜리 동전이 입력되는 경우가 있을 수 있다. 입력에 대한 경우의 수는 동전이 들어오지 않는 경우, 50원 짜리가 들어오는 경우, 100원짜리가 들어오는 경우, 500원짜리가 들어오는 경우의 4가지가 되어 입력변수는 2개가 필요하게 된다. 2개의 입력변수를 각각 X, Y 라 하고, 동전이 입력되지 않을 경우에는 XY=00이 되고, 50원짜리 동전이 입력되면 XY=01이 되고, 100원짜리 동전이 입력되면 XY=10이 되고, 500원짜리 동전이 입력되면 XY=11이 된다고 가정한다.
상태 변수 ¶
커피값이 150원이고 사용하는 동전의 최대값이 500원이므로 거스름돈을 계산하기 위해서 상태는 0~450원까지를 상태 변수로 설계한다. 따라서 상태변수는 4개가 필요하게 된다. ABCD=0000일때는 현재 남아있는 돈이 0원인 상태이고, ABCD=0001 일때는 남아있는 돈이 50원인 상태, ABCD=0010 일때는 남아있는 돈이 100원인 상태, ABCD=0011 일때는 남아있는 돈이 150원인 상태, ... , ABCD=1001 일때는 남아있는 돈이 450원인 상태, 그리고 ABCD=1010 이후는 사용하지 않는 무정의 조건 상태(Don't care condition)로 처리한다. 또한 Filp-flop은 D Flip-flop을 사용하기로 한다.
출력 변수 ¶
자동판매기의 출력변수로는 커피가 출력되는지의 여부를 나타내는 변수 C와 잔돈 반환을 나타내는 출력변수 E를 사용하기로 한다. 따라서 2개의 출력변수 C,E가 필요하다. CE=00 1)일 경우는 커피와 잔돈이 모두 출력되지 않는 상태이고, CE=01 일 경우는 커피는 출력되고 잔돈이 없는 상태, CE=10일 경우는 커피는 출력되고 잔돈이 50원인 경우, CE=11일 경우는 커피는 출력되고 잔돈이 100원인 상태를 가정한다.