ckdk
Bronze개인인증
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 1
검색어 입력폼
  • 판매자 표지 디지털시스템설계 7-segments 실습보고서
    디지털시스템설계 7-segments 실습보고서
    디지털시스템설계 실습 결과보고서학번이름1. 실험 제목FPGA 7-segments 구동 Design2. 실험목표FPGA 7-segments 구동 Design- 7-Segment LED Display 이해- 4-Digit의 7-Segment LED Display의 Rotate 동작의 이해- Up Coming Display(0~9999) 설계3. 실험 내용1) 7-Segments 구동 Design위 왼쪽 사진은 7-Segments로, a, b, c, d, e, f, g를 조합하여 0에서 9까지를 나타낼 수 있다. 또한 오른쪽 사진의 표는 7-Segments의 진리표로 a~g 중 입력 데이터가 1인 부분에 불이 들어와 표시하게 된다. 소수를 나타내기 위해서, 숫자의 오른쪽 아래에 소수점이 붙는 경우가 있는데, 이때 사진의 DP 부분이 소수점이다.(1) Top 모듈top 모듈의 코드이다. clock_12MHz와 RESET을 입력(인풋) 데이터로 설정하고, FND_COM은 0부터 3까지의 벡터를 갖는 4비트, FND_DATA는 0부터 7까지의 벡터를 갖는 8비트 출력(아웃풋) 데이터로 선언한다. 그리고 전선으로 연결된 내부 신호를 clock_24MHz, PLL_locked로 선언하는 Port를 설정한다.PLL 모듈을 사용하여 12MHz clock을 24MHz로 변경하는 코드이다.7-Segment 구현 모듈을 불러오는 코드이다. 이 코드로 7-Segment를 제어한다.2) FND decorder source모듈의 이름을 bin2seg로 설정하고, bin_data를 4비트 2진수인 입력(인풋) 데이터로 선언, seg_data를 8비트 출력(아웃풋) 데이터로 선언한다.입력된 데이터를 7-Segment에 맞게 10진수로 변환하는 코드이다.(3) 7-Segment 제어 모듈Segment 제어 모듈에서 Port 설정하는 코드이다. 입력(인풋) 데이터를 CLK과 RESET으로 설정하였고, 4비트 2진수 FND_COM과 8비트 2진수 FND_DATA를 출력(아웃풋) 데이터로 선언하였다. 그 외의 내부 신호는 ent_time0, cnt64k, cnt4, regseg0 ~ regseg3, seg0 ~ seg3으로 선언하였다.1초를 생성하는 코드이다. RESET이나 CLK이 상승할 때, 이 always문이 실행하게 된다. 만약 RESET이 1이라면, cnt_time0는 22비트 2진수 0으로 초기화되고, 0이라면, 또 다른 if ~ else문이 실행하게 된다. 만약 cnt_time0이 32비트 2진수 23999999보다 작다면, 현재 cnt_time0값에 22비트 2진수 1을 더하고, 그렇지 않다면 cnt_time0는 22비트 2진수 0으로 초기화한다. 이 때, cnt_time0은 24MHz 클럭을 이용한 1초 카운트이며, count하는 시간 간격이다.7-Segment의 시간 간격을 나타내는 코드이다. 그림 21과 마찬가지로 RESET과 CLK이 상승하면, always 문이 실행된다. RESET이 1이면, cnt64k값이 16비트 2진수인 0으로 초기화된다. 만약 RESET이 0이라면, 또 다른 if ~ else문이 실행된다. 만약 cnt64k가 16비트 2진수인 hffff보다 작다면, cnt64k에는 현재 값에 16비트 2진수인 1을 더한 값을 저장한다. cnt64k가 16비트 2진수 hffff보다 크거나 같다면, cnt64k에는 16비트 2진수인 0이 저장된다. 이 때, cnt64k는 64kHz 클럭을 이용한 자리 시간 간격이다.자리를 선택하는 코드이다. 그림 24도 그림 22, 23와 같이 RESET이나 CLK이 상승할 때 always문을 실행한다. RESET이 1이면, cnt4값에 2비트 2진수인 0으로 초기화된다.만약 RESET이 0이라면, 또 다른 if ~ else문이 실행된다. 만약 cnt64k가 16비트 2진수인 hffff와 같다면, 또 다른 if ~ else문이 실행된다. cnt4가 2비트 2진수 11보다 작다면, cnt4에는 현재 값에 2비트 2진수인 01을 더한 값을 저장한다. cnt4가 2비트 2진수 11보다 작거나 같다면, cnt4에는 2비트 2진수인 00이 저장된다. 이 때, cnt4는 7-Segment 자리를 선택한다.1초마다 segment 값을 변화시키는 코드이다. regseg 0 ~ regseg 3에는 4개의 segment에 가각 입력되는 값을 초기화 한다. 그리고 각 segment는 0 ~ 9의 값을 출력할 수 있으며, 0000 ~ 9999 출력을 반복한다.출력할 segment를 선택하는 코드이다. cnt4의 값이 바뀔 때마다 always문이 실행된다. cnt4가 2비트 2진수 00일 때, FND_COM에는 4진수 2비트 1000이 저장된다. cnt4가 2비트 2진수 01일 때, FND_COM에는 4진수 2비트 0100이 저장된다. cnt4가 2비트 2진수 10일 때, FND_COM에는 4진수 2비트 0010이 저장된다.10진수를 segment 값으로 변환해주는 코드이다. 맨 첫 줄은, 가장 왼쪽의 7-Segment에 숫자를 출력하는 코드이고, 그 다음 줄은, 두 번째 7-Segment에, 그 다음 줄은, 세 번째 7-Segment에, 마지막 줄은 맨 오른쪽 7-Segment에 숫자를 출력하는 코드이다.segment를 출력하는 코드이다. FND_COM, seg0 ~ seg3 중 하나의 값이 변하면 always문을 실행하게 되는데, 이 때 FND_COM은 cnt4의 값에 의해 해당하는 segment를 선택한다.FND_COM의 값이 4비트 이진수 1000일 때, FND_DATA에 seg0값을 저장하여 가장 왼쪽에 있는 숫자를 출력한다. 이 때 FND_DATA는 선택된 segment에 표시될 숫자를 정의한다. FND_COM의 값이 4비트 이진수 0100일 때는, FND_DATA에 seg1값을 저장하여 두 번째에 있는 숫자를 출력하고, FND_COM의 값이 4비트 이진수 0010일 때는, FND_DATA에 seg2값을 저장하여 세 번째에 있는 숫자를 출력하고, FND_COM이 1000, 0100, 0010도 아닐 때에는 FND_DATA에 seg3값을 저장하여 맨 오른쪽에 있는 숫자를 출력한다.
    공학/기술| 2022.10.28| 11페이지| 2,000원| 조회(169)
    미리보기
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 02일 토요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
5:25 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감