이거 내가 봐도 졸라 잘 만든거 같네여 +_+
해피캠퍼스(?) 이런데 팔아버릴까여?

논리회로

( Logic Gate )

[ 4bit Arithmetic Logic Unit ]



 

C O N T E N T S

                              
< 1 bit ALU >
            Verilog Source ― ⓵
      Test Bench Simulation Wave Form ― ⓶
                 장비에서의 실험 결과 기술 ― ⓷
                               < 4 bit ALU >
                             Verilog Source ― ⓸
      Test Bench Simulation Wave Form ― ⓹
                 장비에서의 실험 결과 기술 ― ⓺
                                   < 기타 >
                       문제점, 어려웠던 점 ― ⓻
    32bit ALU Verilog Source ― ⓼
                 실험의 응용 ― ⓽

Ⓐ < 1 bit ALU 구현 부분 >
❶ A,B,Cin,S를 입력으로 Cout와 O를 출력하는 1 bit ALU 회로를 Verilog로 설계한다.
❷ 1bit ALU를 simulation하기 위한 test bench를 작성하고, TestBencherPro로 가능한 입력 case를 섭렵하는 simulation 수행.
❸ 구성된 회로에 적당한 스위치, LED 등을 Assign한 뒤, Compile, Download 하여 실제 FPGA 회로에서의 동작을 확인한다.
   ◇ Assign
   ◇ Result

Ⓑ < 4 bit ALU 구현 부분 >
❶ 위에서 구현된 1 bit ALU를 이용하여 역시 verilog로 4bit ALU를 설계한다.
❷ 4 bit ALU에 시뮬레이션을 위한 test bench를 만들고 회로에 대한 simulation 수행.
❸ pin 할당을 하고, 회로를 Compile해서 장비에서 동작을 확인.
   ◇ Assign
   ◇ Logic
   ◇ Result

Ⓒ < 기 타 >
❶ 실험 진행 상 문제점, 어려웠던 점
❷ 같은 1 bit를 이용해서 32 bit ALU를 만들기 위한 verilog 프로그램
❸ 이번 실험의 응용에 대한 고찰


 
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/05/15 11:02 2008/05/15 11:02
Tag // , ,
1. 표준입력장치로부터 n을 입력받아(scanf 함수 사용) 1부터 n까지의 합을 구하는 함수를 순환함수로 작성하여 출력하는 프로그래밍 하시오.

#include <stdio.h>

int reccur(int ,int );
int main(void)
{
 int input;
 int result=0;
 start:
 printf("Input Number# ");
 fflush(stdin); // 버퍼클리어
 scanf("%d",&input);
 if(input<1) // 입력값이 음수 혹은 문자일때 필터링
 {
  printf("ERROR! Please input POSITIVE number.\n");
  goto start; // 양의정수가 아닐때 처음으로 돌려보냄
 }
 result = reccur(input,result);
 printf("Result# %d\n",result);
 return 0;
}
int reccur(int input,int sum)
{
 if(input>0)
 {
  sum+=input;
  reccur(--input, sum);
 }
 else
 {
  return sum;
 }
}

2. 표준입력장치로부터 n을 입력받아(scanf 함수 사용) n번째 피보나치 수를 출력하는 프로그램을 반복문을 이용하여 작성하고, 또 순환함수를 이용해서 작성하시오.

Recursive
#include <stdio.h>
#include <time.h>
int fibonacci(int);
int main(void)
{
 time_t start, end;
 int input;
 int result=0;
 start:
 printf("Input Number# ");
 fflush(stdin); // 버퍼클리어
 scanf("%d",&input);
 if(input<0) // 입력값이 음수 혹은 문자일때 필터링
 {
  printf("ERROR! Please input POSITIVE number.\n");
  goto start; // 양의정수가 아닐때 처음으로 돌려보냄
 }
 time(&start);
 result = fibonacci(input);
 time(&end);
 printf("Result# %d\nProcessing Time# %.2lf Sec\n",result,(double)end-start);
 return 0;
}
int fibonacci(int input)
{
 if(input==0)
 {
  return 0;
 }
 else if(input==1)
 {
  return 1;
 }
 else
 {
  return fibonacci(input-1)+fibonacci(input-2);
 }
}

Iterative
#include <stdio.h>
#include <time.h>
int main(void)
{
 time_t start, end;
 int input;
 int i,tmp;
 int last=0;
 int result=1;
 start:
 printf("Input Number# ");
 fflush(stdin); // 버퍼클리어
 scanf("%d",&input);
 if(input<0) // 입력값이 음수 혹은 문자일때 필터링
 {
  printf("ERROR! Please input POSITIVE number.\n");
  goto start; // 양의정수가 아닐때 처음으로 돌려보냄
 }
 time(&start);
 if(input==0)
 {
  result=0;
 }
 else if(input==1)
 {
  result=1;
 }
 else
 {
  for(i=2;i<=input;i++)
  {
   tmp=result;
   result+=last;
   last=tmp;
  }
 }
 
 time(&end);
 printf("Result# %d\nProcessing Time# %.2lf Sec\n",result,(double)end-start);
 return 0;
}

재귀함수 이용하는건 그냥 쉽게 구현했는데, 반목문 사용하는건-_-; 어라 잘 생각이 안나서..
교수님 강의노트를 참조했음-_-... (뭘까)

뭐 이딴데서 버벅대고 잇나여-_-;
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/04/07 01:25 2008/04/07 01:25
후우.. 날 괴롭히고 있는 창의적 공학설계-_-;
캐드 속성으로 배워서-_-; (배우긴 뭘배워.. 그냥)

조낸ㅠㅠㅠ 힘들어 죽겟네
*

*

*

*
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/12/03 19:46 2007/12/03 19:46

□ 실험 목표
   백열 광원을 이용하여 빛의 반사법칙과 굴절현상을 관측하고, 빛의 전반사 특성을 이용하여 임계각을 측정하고 사용한 물질의 굴절율을 구한다.

□ 실험 기구 및 장치
 
   ① 광학 받침대
   ② 광선 테이블과 받침
   ③ 슬릿 판
   ④ 슬릿 마스크
   ⑤ 광학 거울
   ⑥ 원통면 렌즈
   ⑦ 투영판
   ⑧ 백열 광원,
   ⑨ 부품 지지대

    
□ 기본 원리
   빛은 한 매질에서 다른 매질로 입사될 때 그 경계면에서 반사와 굴절이 일어난다. 밑에 그림에서 보듯이, 경계면에 직각인 법선과 입사광선, 반사광선, 굴절광선이 이루는 사이 각을 각각 입사각 θ1, 반사각 θ′1, 굴절각 θ2이라 한다. 이 때 입사광선, 반사광선, 굴절 광선이 모두 면의 법선을 포함하는 동일 평면상의  존재하며, 이들 사이에는 아래와 같은 관계가 성립한다.

n1sinθ1= n2sinθ2 (1)

   위의 식을 빛의 반사와 굴절 특성을 나타내는 Snell의 법칙이라 한다. 여기서 n은 빛이 진행하는 물질의 굴절률이다. 굴절률은 진공에 대한 어떤 물질의 상대 굴절률을 의미하나 진공에 대한 값과 공기에 대한 값에 큰 차이가 없으므로 실질적으로 공기 중에서의 상대 굴절률 값을 n=1로 기준하여 사용한다. 만일 굴절률이 큰 물질에서 굴절률이 작은 물질로 빛이 진행한다면, 밑에 그림에서 보듯이 어떤 입사각 θc 이상에서는 굴절광은 사라지고 전반사를한다. 이 반사를 하기 시작하는 입사각 θc를 임계각이라 하며, 다음과 같은 관계가 성립한다.

sin(θc)=n2/n1 (2)

   만일 n2=1이면, 즉 진공 (또는 공기)으로 빛이 굴절하여 들어간다면 다음과 같은 계산식이 성립한다.

sin(θc)=1/n1 (3)
     
   그럼으로, 광선이 굴절하는 매질의 굴절률이 주어지면 위의 식 (3)으로부터 그 임계각을 계산할 수 있다.

□ 실험 방법

    < 빛의 반사 실험 >
① 그림과 같이 장치를 설치하여라. 단일 광선이 광선테이블 위에 수직(Normal)이라고 표시된 굵은 화살표와 일치하도록 한다.
② 거울의 반사면이 광선테이블의 Component라고 쓰여진 굵은 선에 일치하도록 한다. 거울이 잘 놓여졌다면 광선테이블의 굵은 화살표와 거울의 반사면이 서로 수직이 될 것이다.
③ 광선테이블을 돌려가며 광선을 관측한다. 입사와 반사 각도를 반사면의 수직에 대해 측정한다.
④ 광선테이블을 돌려가며 그때의 입사각과 반사각을 기록하여라.
⑤ 반대방향으로 회전시키면서 ④의 과정을 반복하여 기록한다.

     < 빛의 굴절 실험>
① 그림과 같이 장치를 설치한다. 단일 광선이 광선테이블 위에 수직(Normal)이라고 표시된 굵은 화살표와 일치하도록 한다.
② 원통면 렌즈의 평면 부분을 Component라고 쓰인 굵은 선에 일치시킨다. 렌즈가 제대로 놓이면 각도 눈금의 중심부에서부터 퍼지는 방사선들이 렌즈의 원형면과 수직이 될 것이다.
③ 렌즈를 움직이지 말고 광선테이블을 돌려가며 입사각에 대한 굴절각을 관찰한다.
④ 광선테이블을 돌려가며 입사각에 대한 굴절각을 측정하여 기록한다.
⑤ 반대방향으로 회전시키면서 ④의 과정을 반복하여 기록한다.

    < 빛의 전반사 실험 >
① 그림과 같이 장치를 설치한다.
   하나의 광선이 원통면 렌즈의 곡면에 입사하도록 한다.
② 렌즈를 움직이지 말고 광선 테이블을 돌리면서 입사각을 증가시킨다.
③ 투영판에 비친 굴절된 빛을 관찰하며, 굴절광이 사라지기 시작하는 입사각까지 계속하여 임계각을 측정한다.
④ 굴절실험에서 측정한 굴절률을사용하여 식 (3)으로부터 임계각을 계산하여 측정값과 비교하여 본다.

□ 실험 데이터

1) 빛의 반사 측정값

입사각

반사각 1 (왼쪽)

반사각 2 (오른쪽)

10°

10°

10°

20°

20°

20°

30°

30°

30°

40°

40°

40°

50°

50°

50°

60°

60°

60°

70°

70°

70°

80°

80°

80°

90°

90°

90°

2) 빛의 굴절 측정값

입사각

굴절각

굴절률:n=sin(θ1)/sin(θ2)

0

10°

6.8°

1.47

20°

13.5°

1.47

30°

20°

1.46

40°

26°

1.47

50°

31.3°

1.47

60°

36°

1.47

70°

40°

1.46

80°

42°

1.47

90°

-

-

1.47

3) 빛의 전반사 측정값

횟수

임계각

계산된 임계각

1

43°

42.9

2

42.5°

3

44°

4

43.5°

5

42°

평균

43°

공기 중에 빛의 굴절률 : 1.000293
매질의 굴절률 : 1.47
굴절각이 약 90°가 될 때 임계각이 발생하므로 이와 같이 표현 할 수 있다.
1.47 * sinx = 1
sinx = 1 / 1.47
∴ sinx = 42.9

★ 결론
    이번 실험은 직접 레이저를 발사해 반사 시켜보고 굴절 시켜보면서 반사의 법칙과 굴절의 법칙을 확인해보는 실험이었다. 처음 시작할 때의 광원의 위치와 광선테이블의 위치만 잘 고정해놓으면 나머지는 계속해서 입사각만 변화시키면서 반사각과 굴절각을 측정하기만 하면 되는 실험이었다. 굴절각을 측정할 때는 광선테이블을 무턱대고 움직여서 테이블 위에 있던 원통렌즈가 움직여 실수가 있었다. 반사의 법칙을 확인하는 실험에선 입사각과 반사각이 거의 일치하는 것을 확인할 수 있었다.

참고자료 -
http://physics.skku.ac.kr/mannual/lightref.pdf 성균관대 물리연구단
http://www.sgs.co.kr/segye/files/SG-7502.pdf 세계과학 광학종합실험장치 메뉴얼

Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/11/28 13:28 2007/11/28 13:28
후우 드뎌 맥 설치를 하고..

첫번째로 프로그래밍 과제를-_-;

코딩하기도 힘들고..
컴파일하기도...

젤 힘든건 역시 한글로 작성하는게 어렵더라-_-;

앞으론 오피스를 애용해봐야겠다...;

편집 - Coda
컴파일러 - Xcode
보고서 제작 - 한글 2006 for Mac

소스는 나중에 따로 ㅋㅋ
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/11/01 03:45 2007/11/01 03:45
창의적 공학설계..
'ABEEK 공학인증과목' 인데.. 정말-.- 귀찮다...
지난주에 교수한테 빠꾸 먹고-_-


제 1 조 명칭
  1. 본 팀는 "아이들과 조현석"이라 칭한다

 제 2 조 목적
  1. 본 팀는 한성대학교 컴퓨터공학과 1학년 2학기 전공선택 과목 "창의적 공학설계" 그룹 활동 및 토의를 그 목적으로 한다.
  2. 본 팀의 기간은 "창의적 공학설계" 강의기간인 07학년도 2학기까지 한정한다.

 제 3 조 구성
  1. 본 팀의 구성은 본 팀을 대표하는 팀장과 나머지 구성원들로 서기, 발표자, 제작자, 의견수렴자로 정한다.

 제 4 조 팀원의 권리와 의무
  1. 본 팀의 모든 팀원은 본 팀의 모든 팀의에 자기 의사를 표현할 수 있으며 참여할 권리와 의무를 갖는다.
  2. 본 팀의 모든 팀원은 본 팀 및 팀원에 대한 부당한 침해가 있거나 정당한 의사전달에 침해를 받았을 경우, 이에 저항할 권리를 갖는다.
  3. 본 팀의 모든 팀원은 본 팀의 회의시간인 화요일 12시, 금요일 12시를 엄수한다.
  3. 본 팀의 모든 팀원은 본 팀의 회칙 준수의 의무를 갖는다.

 제 5 조 제재
  1. 본 팀의 모든 팀원은 회의에 불참시 회의에 참여한 나머지 회원들의 한끼 식사를 제공해줘야 한다.

 제 6 조 의결 정족수
  1. 본팀의 안건은 총팀 참석자의 2/3 이상의 찬성으로 의결한다.
  2. 조직 운영에 있어서 회칙이 인정하는 범위 내에서 팀장에 의한 결정이 존재할 수 있다.

  제 7 조 부칙
   1. 이 회칙은 2007년 10월 21일 부터 시행한다.
   1-1. 수정된 회칙은 2007년 10월 26일 부터 시행한다.

ACW (Auto Card Wallet : 자동 카드 지갑 )

브레인스토밍 -
(도난)1. gps, 추적가능한칩내장
(도난)2. 비밀번호써야열리는 지갑
(기능)3. 핸드폰과 지갑의 결합
(디자인)4. 슬라이드지갑
(디자인)5. 말수있는지갑
(디자인)6. 디자인 바꿀수있는 지갑
(기능)7. 지갑에 전자사전달기
(기능)8. 지갑에 혈압측정기달기
(디자인)9. 온도에따라 색이 바뀌는 지갑
(디자인)10. 취향에 맞게 디자인할수 있는 지갑
(편의)11. 버스카드 내장된 지갑
(기능)12. 지갑에 LCD모니터가 있어서 동영상감상이 되는거
(기능)13. 네비게이션
(기능)14. 외장하드기능
(편의)15. 자동으로 돈 챙겨주는지갑
(편의)16. 얼마있나 가르쳐주는 지갑
(편의)17. 지갑에 카드를 정리해줄 수 있는지갑
(도난)18. 강력한 자석을 이용한 도난방지 지갑
(기능)19. 메모 가능한 지갑
(도난)20. 소리나는 도난방지 지갑
(편의)21.민증이 지갑표면에 표시

설계목적리스트 -

안전성, 디자인, 휴대성, 비용, 효율

a. 제작비 적게
b. 안전성 확보
c. 고장이 적을 것
d. 수리가 용이함
e. 예산범위 내에서 만들 것
f. 가능한한 부피를 줄일것
g. 사람에게 안전할 것
h. 요구하는 성능을 발휘할 것
i. 가능 한 많은 양의 카드를 보관할 수 있을 것
j. 미려한 디자인
k. 가능한 한 무게를 줄일 것
l. 브랜드 화
m. 유명 메이커와 제휴한다.

안전 : 사용자에 대한 안전
디자인 : 유명 메이커와 제휴해서 브랜드화 시킨다, 미려한 디자인
휴대 : 가능한 한 부피/무게를 줄일것
비용 : 제작비가 적을 것, 예산범위 내에서 만들 것,
효율 : 고장이 적을 것, 수리가 용이함, 성능 발휘, 가능한 한 많은 양의 카드를 보관,

Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/10/26 16:44 2007/10/26 16:44